Jump to content

Comment associer rapidement un grand nombre de produits à telle ou telle catégorie ?


Recommended Posts

Bonjour à tous et à toutes,

 

J'ai plusieurs centaines de produits qui ont déjà une catégorie par défaut.

Je souhaiterais associer ces produits à une ou plusieurs autres catégories.

A l'heure actuelle,

  1. je vais dans le B.O > Catalogue > Produits,
  2. je cherche, avec sa référence, un produit (un à la fois) à qui je veux associer une ou plusieurs autres catégories
  3. je clique sur Modifier
  4. je vais dans l'onglet Associations
  5. je coche la ou les autres catégorie auxquelles je veux associer ce produit
  6. j'enregistre
  7. je recherche un autre produit
  8. etc...

Vous pouvez constater que c'est long et fastidieux.

Comment faire pour associer rapidement un grand nombre de produits à telle ou telle catégorie ?

 

J'ai bien pensé passer par la BDD, l'exporter et la modifier sous Excel avant de la réimporter, mais, je ne sais pas dans quelle table sont enregistrées toutes les associations que l'on fait.

Je sais que la catégorie par défaut d'un produit est enregistrée dans la table ps_product, mais dans quelle table sont enregistrées les autres associations aux catégories ?

 

D'avance merci pour votre réponse.

Bonne soirée ;)

Link to comment
Share on other sites

  • 4 months later...

Pour ceux que ça intéresse (et pour les plus téméraires) voici la solution que j'ai trouvé.

En fait, j'ai modifié la BDD.

Ainsi, j'ai exporté la table ps_category_product en SQL et CSV. (SQL pour voir la structure et CSV pour pouvoir l'ouvrir et le modifier sous un tableur comme Excel) Perso, pour le fichier SQL, je choisis un export personnalisé où je coche "Ajouter une instruction DROP TABLE / TRIGGER " . Je ne sais pas si c'est nécessaire, mais jusqu'à présent, je n'ai pas eu de souci à ce niveau en cochant cette option.

Dans cette table, il y a 3 colonnes (dans l'ordre) :

- ID de la catégorie

- ID du produit

- Position (0 pour la 1ere position, 1 pour la 2nde ...)

J'ai donc ouvert le fichier CSV dans Excel.

Sur la 1ere feuille j'ai la table d'origine. Sur une seconde feuille, sur la première ligne, je mets les 3 entêtes suivantes :

- ID de la catégorie

- ID du produit

- Position

Ensuite, je rempli chaque ligne en indiquant :

- ID de la catégorie à laquelle je veux associer mon produit

- ID du produit

- Position (0 pour la 1ere position dans la catégorie, 1 pour la 2nde ...) Avant d'attribuer une position à un produit, assurez-vous bien que la position que vous voulez attribuer n'est pas déjà prise par un autre produit. Si par exemple, la position 3 dans la catégorie 6 est déjà attribuée, il faudra attribuer la position 4 à votre produit, et ainsi de suite.

Je crée une 3eme feuille Concatener. Je me mets en A2 (1ere colonne, 2nde ligne) et je rentre la formule suivante :

=concatener("(";[nom_feuill2]!A2;", ";[nom_feuill2]!B2;", ";[nom_feuill2]!C2;"),"

(Pour les débutants sur Excel) Après avoir entré cette formule, il faut placer la souris dans le coin droit, en bas, de la cellule pour avoir une petite croix noire, cliquer et descendre jusqu'au numéro de la dernière ligne de la feuille2. La formule va alors s'appliquer sur toutes ces lignes (Pour être plus clair) Par exemple : Vous regardez sur la feuille 2 où s'arrête votre tableau. Si elle s'arrête, sur la feuille 2 à la ligne 1500, il faudra, sur la feuille 3 "Concatener", tirer jusqu'à la ligne 1500.

Citation

/ !!! \ Aller sur la feuille 3 "Concatener" à la dernière ligne du tableau et remplacer ")," par ");" (il faut remplacer la virgule par un point virgule. C'est très important. Un point virgule indique au système qu'il n'y a plus rien derrière alors qu'une virgule indique qu'il y a encore d'autre chose (une ligne, une valeur ...))

(Toujours sur la feuille 3 "Concatener") On se met alors en A2 et on appuie sur CTRL + Maj + Flèche du bas (pour lui dire "Tu sélectionnes toutes lignes jusqu'à la dernière ligne où il y a quelque chose") et on copie (Ctrl + C)

On ouvre le fichier SQL que l'on a exporté au début. On repère où se terminent les données et on remplace le point virgule par virgule. On va à la ligne suivante et on colle ce qu'on a copié sous Excel.

Vérifiez bien que ça se termine par un point virgule.

On enregistre le fichier SQL (un conseil : enregistrez-le sous un autre nom pour ne pas écraser le fichier d'origine)

On retourne sur la BDD, sur la table ps_category_product et, cette fois-ci, on importe le fichier SQL qu'on vient d'enregistrer.

"Normalement", ça devrait aller (enfin j'espère ... pour vous :P)

C'est long, c'est fastidieux, c'est alambiqué (et encore, je l'ai un peu simplifié), mais c'est la méthode que j'ai choisie. A vous de voir si vous vous sentez capable de l'appliquer.

En tout cas j'espère qu'elle vous servira.

Bonne journée ;)

 

P.S : En cas de pépin, vous pouvez toujours ré-importer le fichier SQL d'origine si vous ne l'avez pas écrasé avec vos modifs

Edited by spip93 (see edit history)
Link to comment
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...