07/11/2023 Franck Bugnet Tuto

Gestion en série d'une seconde description produit dans PrestaShop

Un grand classique de l'utilisation des champs personnalisés est d'afficher dans les pages produits, une seconde description. C'est à dire une information complémentaire, en texte brut ou en HTML, souvent multi langues et multi boutiques, à un emplacement différent du résumé ou de la description longue.

Après avoir ajouté une nouvelle rubrique dans la table existante product_lang qui contient déjà les autres textes traduisibles des produits (nom, résumé...), cet article va vous montrer pas à pas comment l'afficher dans Merlin Backoffice ® Flex, pour ensuite pouvoir éditer plus rapidement son contenu produit par produit ou en masse.


L'ajout d'une nouvelle rubrique dans une table de la base



Imaginons que sur votre site, dans les pages des produits, vous souhaitiez ajouter une second zone de texte HTML, pour afficher une seconde description, contenant du HTML.
Il faudrait dans ce cas de figure, ajouter une rubrique de type texte directement dans la table product_lang, comme ceci

Champs personnalisés, tuto 1 - image 1 - Seconde description dans table product_lang



Afficher la rubrique dans une colonne perso de Merlin Backoffice ® Flex



La gestion des champs personnalisés ou custom, c'est à dire des données non natives, ajoutées dans les tables natives ou dans des tables elles mêmes non standards, peut être réalisé grâce au concept des colonnes perso.

  1. Dans le configurateur de colonnes, cherchez dans la table de gauche le bloc "Custom" et glissez vers la table de droite une des colonnes perso.
  2. Pour ouvrir l'éditeur des colonnes perso, faites un clic droit dans l'une ou l'autre des deux tables.

champs_perso/Champs personnalisés, tuto 1 - image 2 - glisser déposer 1 colonne perso



La fenêtre de réglage des colonnes perso s'étant ouverte, il suffit de suivre les 5 étapes. Etape N°1:

  1. Nous avons ajouté la colonne perso N°3. Commençons par lui associer la table contenant la seconde description. Il suffit pour cela de dérouler la liste des tables de la base...
  2. ...et de sélectionner la ligne de la table product_lang (vous pouvez aussi la trouver rapidement tapant le début de son nom, en commençant par le préfix : "pscw_product_l...")

Champs personnalisés, tuto 1 - image 3 - choix de la table contenant le champ



  1. Déroulez à présent la liste des rubriques de la table.
  2. Pour sélectionner notre rubrique custom "Description2".
  3. Etape 2 : dans la colonne suivante, "Type de données et traitement", laissez la valeur par défaut "Valeurs unique", car un produit ne peut avoir qu'une seule valeur associée à ce champ.

Champs personnalisés, tuto 1 - image 4 - Choix de la rubrique dans la table



Ce champ custom ayant été ajouté dans une table de base, déjà connue de Merlin Backoffice Flex, la suite des réglages ci-dessous peut être complétement ignorée, l'outil a déjà coché et pré-rempli pour vous ce qui est nécessaire. Sans toucher à rien d'autre cela fonctionnera.
Regardons quand même car il s'agit d'un tuto :

  1. Etape 3, les filtres. La case "Filtrer par produit" s'est cochée toute seule, car le logiciel est aller lire les index de la table et sait que id_product est un des éléments de la clé composée. Dans 99% des cas vous n'aurez pas à vous préoccuper de ce réglage.
  2. Même chose pour id_shop.
  3. Et pour id_lang.  Donc en gros cela signifie que Merlin sait déjà que dans cette table, sont stockées des informations liées aux produits et qui peuvent être différente pour chaque langue de chaque boutiques (dans le cas d'une configuration multi boutiques). Il va en tenir compte pour la lecture des données et leur sauvegarde.

Champs personnalisés, tuto 1 - image 6 - Filtres automatiques



  1. Etape 4 : les jointures. Laissez vite la colonne "Jointure automatique". Vous verrez plus tard des exemples montrant son utilisation.
  2. Ainsi que la colonne "Filtre ou jointure manuelle". Ignorons pour le moment les autres colonnes plus à droite utiles uniquement dans des cas bien plus complexes.

Champs personnalisés, tuto 1 - image 7 - Etape 4 : jointures.



  1. Etape 5 : cliquez sur "Valider" pour enregistrer les réglages et sortir de la fenêtre.
  2. Le programme vous si vous ne l'avez pas déjà fait, de cocher "l'oeil" pour valider l'affichage de la colonne et de lui donner un titre non générique.

Champs personnalisés, tuto 1 - image 8 - En sortie, cocher la colonne à afficher



  1. Une fois revenu dans la fenêtre du configurateur de colonnes, notez que vous pouvez ici aussi cocher ou décocher l'oeil pour chaque ligne et changer le titre à afficher.
  2. Quand ce travail de réglage est terminé, cliquez sur "Valider et fermer".

Champs personnalisés, tuto 1 - image 9 - Configurateur de colonne, donner un titre à la colonne



Modification des valeurs stockées dans le champ personnalisé



Une fois sorti du configurateur de tables. On voit que la table des produits affiche à présent notre nouvelle rubrique "Description 2".

Bon à savoir : les colonnes liées à des champs personnalisés sont identifiables visuellement grâce à leur titre sur fond coloré (orange pale).

La saisie de son contenu, produit par produit est parfaitement possible, comme pour toute autre champ natif.
Dans l'exemple ci dessous j'ai juste saisie un texte simple, mais je pourrais tout aussi bien saisir un texte HTML, comme <h3 class="toto">Ceci et un sous titre</h3>.

Et comme habituellement, l'enregistrement de la valeur est réalisé au moment ou on sort de la ligne (on verra plus tard que la sauvegarde automatique peut être désactivée dans le panneau "Options de calcul" et réalisée sur demande) :

Champs personnalisés, tuto 1 - image 10 - La colone s'affiche et permet la saisie



Mais là ou Merlin Backoffice ® Flex devient réellement magique, c'est que tous ses outils de traitement de masse sont à présent disponibles aussi sur ce type de colonnes.
Par exemple, pour copier à l'identique la seconde description du premier produit vers une sélection d'autres produits, il suffit de :

  1. Les sélectionner.
  2. De faire un clic droit sur la valeur à copier.
  3. Puis de choisir l'option de Coller dans le menu contextuel, comme ceci :

Champs personnalisés, tuto 1 - image 11 - Copier coller du texte dans la seconde description par clic droit



  1. Et enfin de confirmer l'enregistrement des contenus des colonnes perso (dans ce 1er exemple il n'y en a pas d'autres) dans la base.

Champs personnalisés, tuto 1 - image 12 - Confirmation du copier coller, avec sauvegarde immédiate dans la base



Résultat après le copier coller :

Champs personnalisés, tuto 1 - image 13 - Après rafraichissement, les éditions ont bien été prises en compte



Seconde possibilité, utilisation de MagicEdit et de MagicFormula.

  1. Les produits sélectionnés, clic droit à nouveau dans la colonne à modifier.
  2. Choisir la commande "MagicEdit dans toutes les cellules sélectionnées de cette colonne".

Champs personnalisés, tuto 1 - image 14 - Utilisation possible de MagicEdit dans une colonne perso



Imaginons que nous souhaitions compléter le contenu actuel de chaque seconde description avec le le texte " produit N°x", avec x valant le numéro d'identifiant du produit. Nous pourrions le faire avec ce réglage :

  1. Cliquez sur "Ajouter un texte à la fin" et saisir le début du texte " produit N°".
  2. Cliquez sur "Insérer le contenu d'autres colonnes" pour l'activer et dans le sélecteur "Colonne 1", choisir "identifiant produit".
  3. Cliquez sur "Phase 1...".

Champs personnalisés, tuto 1 - image 15 - réglage de MagicEdit



  1. Pour enregistrer dans la base, vous avez alors deux choix, soit cocher l'option "Enregistrer les colonnes perso" en dessous du bouton "Phase 2..."
  2. Puis cliquer sur le bouton :

Champs personnalisés, tuto 1 - image 18 - Option denregistrement des colonnes perso



  1. Soit ne pas cocher la case "Enregistrer les colonnes perso", mais cliquer directement sur "Phase 2...", puis dans un second temps rappeler le menu contextuel d'un clic droit.
  2. Et lancer la fonction d'enregistrement des colonnes perso :

Champs personnalisés, tuto 1 - image 19 - Fonction denregistrement des colonnes perso



L'enregistrement décalé dans le temps permet de remplir plusieurs colonnes perso avant de réaliser l'enregistrement de l'ensemble. On verra des cas concrets d'utilisation lors des prochains tutos.

Le résultat sera identique quelque soit la méthode d'enregistrement. Les modifications sont à présent en base et les secondes descriptions peuvent être affichées dans la boutique.

Coté front office, il y a bien sûr quelques étapes supplémentaires : il faut enrichir le modèle product.php pour qu'il sache lire lui aussi cet nouvelle rubrique et adapter les fichiers product du thème pour ajouter l'affichage à l'endroit souhaité. Ceci pourra être réalisé avec les techniques de l'override (surclassement) ou l'utilisation des hooks. Cette dernière étape sortant du cadre de ce tuto et variant selon la version de PrestaShop et le thème utilisé, elle n'est pas présentée ici et devra être confiée à votre webmestre.

Ce premier exemple ne montre qu'une toute petite partie des possibilités offertes par cet outil hyper puissant. On vous invite à présent à consulter les autres exemples ci dessous.


Autres articles de la catégorie Champs personnalisés

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