Jump to content
vince0

Comment assigner à tous mes produits une même caractéristique ?

Recommended Posts

Bonjour,

Suite à un mise à jour de module, je dois créer une caractéristique produit et assigner à cette caractéristique une même valeur pour tous mes produits. Si j'avais que quelques produits, je le ferai directement depuis les fiches produits , le seul soucis c'est que j'en ai un peu moins de 1 000 et que je ne vois pas les faire une par une....

Donc si quelqu'un a une idée pour réaliser cela en masse (requete SQL ?), je suis preneur !!! :)

D'avance, merci

Vincent

Share this post


Link to post
Share on other sites

Après avoir créer la caractéristique (id = C) et la valeur (id = V), exécutez la requête:

INSERT INTO ps_feature_product (id_product, id_feature, id_feature_value) SELECT id_product, C, V FROM ps_product

Share this post


Link to post
Share on other sites

Merci Erouvier, ça marche nickel ! :)

Si tu me permettais d'abuser de ta gentillesse, tu pourrais aussi résoudre un second pb assez similaire. En fait je cherche à copier les valeurs de la caractéristique produit Editeur (id=4) dans la table fabricant. Du coup, en suivant la même logique que précédemment, je peux exécuter la requête :

INSERT INTO ps_manufacturer (id_manufacturer, name) SELECT 4, id_feature_value FROM ps_feature_product

Bien entendu je perdrais les liens préexistants entre les produits et les fabricants ...

Qu'en penses tu ?

Share this post


Link to post
Share on other sites

Non, c'est un peu plus compliqué que ça.

On ne précise pas l'identifiant du fabricant, il est automatiquement déterminé par incrément.

Le nom doit être la valeur de la caractéristique (dans une langue déterminée) plutôt que son identifiant.

 

Donc, pour créer un fabricant par valeur (en FR supposé id 1) de la caractéristique "Editeur" (id 4), et les activer (par défaut ils ne le seront pas):

INSERT INTO ps_manufacturer (name, active) SELECT fvl.value, 1
FROM ps_feature_value fv
JOIN ps_feature_value_lang fvl ON fvl.id_feature_value = fv.id_feature_value AND fvl.id_lang = 1
WHERE fv.id_feature = 4

PS: Proposé de tête, pas de BDD sous la main. Si vous commencez avec une BDD de test, ou par faire une sauvegarde, c'est mieux...

Share this post


Link to post
Share on other sites

Haha !! Je me disais aussi que cela paraissait trop simple !!  :P

Je teste dés que j'ai 5 min ... cet après midi ça va être compliqué mais je vous tiens au courant...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More