07/11/2023 Franck Bugnet Tuto

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. 

Champs personnalisés, tuto 2 - Méthode 1 - image 1 - Contenu de la table supplier_lang, enrichie avec une seconde colonne de description



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.



  1. 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.
  2. 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).
  3. 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.

Champs personnalisés, tuto 2 - image 2 - Ajout et configuration de trois colonnes perso permettant de lire les informations fournisseur



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.


Champs personnalisés, tuto 2 - image 3 - Filtres automatiques des colonnes perso



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

  1. Dans la ligne N°4, dérouler la liste présente dans la colonne "Jointure auto sur..."
  2. 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.

Champs personnalisés, tuto 2 - image 4 - Ajout dune jointure automatique permettant de lier la lecture des lignes dans la table des traductions à lidentifiant fournisseur lu dans la table des produits



Ensuite on active et on donne un "Titre affiché" un peu plus parlant à nos trois futures colonnes :

Champs personnalisés, tuto 2 - image 5 - Activation et nomage des 3 colonnes perso



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 :

Champs personnalisés, tuto 2 - image 6 - Après fermeture de la configuration, les trois colonnes perso saffichent



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:

  1. Clic Droit dans la colonne pour ouvrir le menu contextuel.
  2. Lancement de MagicEdit sur les lignes sélectionnées.
  3. Sélection de "Ajouter un texte devant" rempli avec "Supp N°".
  4. Activation de la fonction d'agrégat de colonnes et choix de la colonne "Fournisseur (Def)".
  5. On clique sur le bouton "Phase 1..." (non visible sur la capture), pour pré-visualiser le résultat directement dans la table des produits.
  6. On coche "Enregistrer les colonnes perso" (on peut aussi enregistrer plus tard).
  7. On clique sur le bouton "Phase 2..." pour valider et enregistrer.

Champs personnalisés, tuto 2 - image 7 - Lancement de MagicEdit



Champs personnalisés, tuto 2 - image 7 - Lancement de MagicEdit



Champs personnalisés, tuto 2 - image 9 - Prévisualisation et option de sauvegarde des colonnes perso dans MagicEdit




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 :

Champs personnalisés, tuto 2 - image 9 - Prévisualisation et option de sauvegarde des colonnes perso dans MagicEdit



Et on remplace la jointure auto précédente de la ligne N°4, par une jointure sur la colonne standard "Fournisseur (déf.)." :

Champs personnalisés, tuto 2 - Méthode 2 - image 3 - Ajout dune jointure automatique sur la colonne standard identifiant le fournisseur par défaut



Note : la liste des "Colonnes standards", dans "Jointure auto sur...", ne contient que les colonnes présentes dans la table de droite du configurateur de colonnes. Donc que les colonnes affichées dans la table des produits.
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:

Champs personnalisés, tuto 2 - Méthode 2 - image 5 - Lecture du contenu de la table perso jointe

Vous aurez peut être remarqué que la colonne "Id Supplier Table sup" est à présent grisée. Elle n'est en effet plus éditable car son contenu est  directement lié au contenu de la colonne Fournisseur (déf.)
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

Réglages
  • Identification
    • £ GBP
    • $ USD
Menu