Gestion en masse de rubriques perso ajoutées aux fournisseurs
L'objectif de ce second tutoriel sur la gestion en masse des champs personnalisés est de vous apprendre trois choses supplémentaires par rapport au premier tuto (qu'il est indispensable de suivre en premier):
- Comment utiliser cette technique pour éditer en masse des rubriques natives de PrestaShop mais non gérées nativement par Merlin Backoffice ® Flex. On prendra comme exemple le champ "Description" des fournisseurs.
- Comment établir une jointure automatique entre deux colonnes perso.
- Comment établir une jointure automatique entre une colonne perso et une colonne standard.
Commencez par étudier la table contenant les champs custom à administrer
En effet dans la majorité des cas d'utilisation de la gestion en masse de champs personnalisés, la première étape consiste à ouvrir la ou les tables dans la base, contenant les rubriques en question, afin d'en connaitre la structure.
Le contexte : dans la version actuelle de Merlin Backoffice Flex, on peut faire de la gestion fine et en masse des associations croisées entre les produits et les fournisseurs, mais on ne peut pas encore modifier leur nom ou leur description.
Le but de ce tutoriel est de vous apprendre à administrer en masse avec Merlin Backoffice ® Flex n'importe laquelle des propriétés des fournisseurs, comme leur nom ou leur description ainsi qu'une seconde description custom que l'on a ajoutée dans la table, comme on l'avait fait précédemment pour les produits.
La table que l'on va traiter est donc la table supplier_lang, que l'on a ouvert ci dessous dans PHPMyAdmin.
Afficher les rubriques dans des colonnes perso de Merlin Backoffice ® Flex
Si vous ne connaissez pas du tout la technique, merci de voir ou revoir le premier tutoriel de cette catégorie.
Sinon, comme on vous l'a montré, allez dans le configurateur de colonnes, créez une nouvelle configuration et glisser déposer de la gauche vers la droite trois colonnes perso. Ci dessous on a choisi les N° 1, 4 et 5.
- Pour la N°1, mappez la à la table product et à la rubrique id_supplier. Ceci va nous permettre de choisir le fournisseur à lire et modifier, en l'occurrence le fournisseur par défaut du produit, identifié dans cette table par son Id.
- Pour la N°4, on va aussi allez lire id_supplier, mais cette fois dans la table contenant les rubriques à modifier (ex : description du fournisseur), donc la table supplier_lang étudiée au 1er chapitre).
- Et enfin, dans la N°5, dans la même table, je choisi la 1re rubrique à modifier, la "Description". Mais j'aurais tout aussi bien pu choisir la "Description 2", voir inclure une ligne perso pour chacune.
Pour les trois lignes, le type de données par défaut "Valeurs unique" convient parfaitement, un produit n'ayant qu'un seul fournisseur par défaut).
Jetons ensuite un œil rapide sur les filtres automatiques, que Merlin Backoffice Flex a rempli automatiquement en analysant la structure des tables choisies. On voit que la table product est bien sûr filtrée par produit et que la table supplier_lang l'est par langue (mais pas par boutique, ce qui indique que PS ne permet pas de personnaliser ces informations indépendamment pour chaque boutique).
Il n'y rien à modifier concernant ces réglages.
Il faut à présent indiquer à l'outil comment relier ensemble les deux tables product et supplier_lang.
Ce que l'on souhaite vous l'aurez peut être deviné, c'est que les deux id_supplier aient toujours la même valeur. Ou encore que lorsque Merlin lira chaque produit, qu'il cherche et lise dans la table supplier_lang la ligne correspondante à la même valeur valeur id_supplier que celle trouvée dans la table product.
Pour un développeur coutumier du langage mySQL, cela consiste à savoir écrire requête SELECT avec une jointure de type LEFT JOIN entre les deux tables, avec une condition ON sur id_supplier.
Mais ne prenez surtout pas peur, vous n'avez même pas besoin de comprendre ce charabia, Merlin Backoffice ® Flex va faire tout cela pour vous.
Vous, tout ce que vous avez à faire c'est de :
Méthode 1 : liaison entre deux lignes de colonnes perso
- Dans la ligne N°4, dérouler la liste présente dans la colonne "Jointure auto sur..."
- Sélectionner la valeur "1 (N° de ligne de cette table), pour dire à Merlin de rendre la ligne N°4 dépendante de la ligne N°1.
Ensuite on active et on donne un "Titre affiché" un peu plus parlant à nos trois futures colonnes :
Une fois la configuration enregistrée, la table des produits est rafraîchie. On peut immédiatement voir les Ids des fournisseurs par défaut (ex le 70 pour le premier produit). On retrouve bien aussi automatiquement les mêmes valeurs dans la colonne "Id supplier Table supplier", grâce à la jointure automatique entre les deux colonnes perso N°1 et N°4 :
Vous pouvez à présent librement saisir à l'unité ou en masse la colonne Description Supp (erreur d'intitulé, il s'agit dans cet exercice de la description par défaut).
A titre d'exemple, voici la méthode avec MagicEdit, pour remplir la colonne avec le texte paramétré "Supp N° x" avec x étant l'Id du fournisseur:
- Clic Droit dans la colonne pour ouvrir le menu contextuel.
- Lancement de MagicEdit sur les lignes sélectionnées.
- Sélection de "Ajouter un texte devant" rempli avec "Supp N°".
- Activation de la fonction d'agrégat de colonnes et choix de la colonne "Fournisseur (Def)".
- On clique sur le bouton "Phase 1..." (non visible sur la capture), pour pré-visualiser le résultat directement dans la table des produits.
- On coche "Enregistrer les colonnes perso" (on peut aussi enregistrer plus tard).
- On clique sur le bouton "Phase 2..." pour valider et enregistrer.
Méthode 2 : liaison entre une colonne perso et une colonne "standard"
Avec cette seconde méthode, c'est encore plus simple, on va lier la colonne affichant l'Id supplier de la table supplier_lang, directement à la colonne standard affichant le nom du fournisseur.
De ce fait, on n'a plus besoin de la ligne de colonne perso N°1, qui ne sert dans la première méthode qu'à établir la liaison. On ne conserve que les deux colonnes perso de la table supplier_lang :
Et on remplace la jointure auto précédente de la ligne N°4, par une jointure sur la colonne standard "Fournisseur (déf.)." :
Remarquez également que bien que la colonne "Fournisseur (déf.)." affiche le nom des fournisseurs et non pas leur Id, la liaison fonctionnera car le contenu de ce type de colonnes est bien constitué en interne des identifiants.
Après enregistrement de cette nouvelle configuration et relecture des données, on constate que la liaison est bien fonctionnelle:
Vous pouvez faire vous même l'essai de modifier le choix du fournisseur par défaut sur un ensemble de produits, vous verrez le contenu de la colonne grisée être mis à jour automatiquement grâce à la jointure directe.
Autres articles de la catégorie Champs personnalisés
-
Gestion en masse d'un second champ de description dans PrestaShop
Tuto
Pas à pas pour gérer en masse le contenu d'un second champ descriptif (texte ou HTML) ajouté dans les fiches produit d'une boutique PrestaShop
-
Gestion en masse de nouveaux onglets Easy Tabs
Tuto
Méthodologie pour gérer en masse le contenu d'onglets personnalisés Easy Tabs dans les pages produits PrestaShop