Afficher une colonne avec les valeurs d'un champ perso ajouté dans Prestashop

Publié le : 03/01/2018 11:22:51
Catégories : Astuces Sitolog Rss feed

Afficher une colonne avec les valeurs d'un champ perso ajouté dans Prestashop

Niveau : avancé

Affichage d'un bloc HTML ou texte complémentaire dans PrestaShop

Pour cela vous faites souvent appel à un module externe, voir développé sur mesure qui va par exemple permettre d'ajouter un bloc HTML complémentaire à l'emplacement de votre choix, et dont le contenu sera différent pour chaque produit.

La plupart du temps, ce type de module ajoute une nouvelle table à la base de données, pour stocker le contenu du champ.

Dans d'autre cas, il se contente d'ajouter une nouvelle rubrique à une table déjà existante de PrestaShop, comme la table "product" ou "product_shop".

La question que vous nous posez alors souvent et à laquelle se tuto essaie de répondre : est-il possible d'afficher le contenu de ce type de champs non standards dans PrestaPricing ou dans Merlin Backoffice ®, voir de saisir et modifier son contenu pour chaque produit. La réponse est oui, bien sûr, grâce aux colonnes "Perso".

Pour, ce tuto, nous allons partir d'un cas très concret, avec l'utilisaton du module d'un confrère, "Products Stock Threshold". Ce module n'ajoute pas un champ à l'affichage mais un paramètre numérique à chaque produit. En l'occurence une quantité plancher, qui déclenche une alerte lorsqu'elle est atteinte. Une fois installé, ce module ajoute un nouvel onglet de saisie dans la fiche produit coté back office pour saisir ce "Stock threshold" :

Module de gestion de stock d'alerte

Le principe reste le même, pour fonctionner, ce module a ajouté sa propre table dans la base de données (pss_products_stock_threshold), et sauve les valeurs dans une rubrique appelée "quantity". Cette information est rarement documentée, mais la plupart du temps, le nom de la ou des tables ajoutées, fait référence au nom du module. Il est donc assez aisé, dans PHPMyAdmin, de trouver cette information. Si vous ne trouvez pas ces infos, posez simplement la question au développeur du module : "Quelle sont les noms de la table et de la rubrique contenant les valeurs du champ personnalisé ?".

Pour le module de ce tuto, voici une cature de PHPMyAdmln, montrant la structure de la table trouvée dans la base, après son installation:

Table ajoutée par le module dans PHPMyAdmin

Comment afficher cette rubrique non standard dans Merlin Backoffice ?

1/ Placez vous dans la vue "Produits" et dans un premier temps, ouvrez le configurateur de colonnes en cliquant sur le bouton "Colonnes" présent dans le titre de la fenêtre principale.

2/ Placez vous dans le sous onglet "Produits" de la fenêtre de configuration des tables et faites un clic droit dans la liste de gauche, afin d'ouvrir le configurateur de colonnes perso:

Configurateur des tables de Merlin Backoffice

3/ Vous avez juste deux champs à remplir, dans les colonnes indiquées par des flèches dans la capture ci-dessous, le nom de la table (1) et le nom de la rubrique non standard à afficher (2).

Attention, le nom de la table doit être saisie sans son préfixe (ici j'ai enlevé le préfix pss_) :

Configurateur de colonnes personnalisables

(3) Validez pour fermer la fenêtre de réglage des colonnes perso, ce qui vous ramene dans la fenêtre de configuration des tables. 

4/Faites alors un glisser déposer de la ligne "Perso 1" de la liste de gauche vers la liste de droite à l'emplacement (ordre) souhaité (1).

Ajout de la colonne perso

Vous pouvez aussi (2), donner le titre que vous souhaitez  à votre colonne.

Changement du titre donné à la colonne :

Changement du titre donné à la colonne

(3) validez.

5/ L'affichage des produits se rafraîchit automatiquement, en ajoutant votre colonne perso et affichant la valeur quelle contient pour chaque produit :

La colonne non standard est ajoutée dans la table

A partir de là, il est possible de:

-Afficher les valeurs

-Modifier les valeurs, cellule par cellule (une ligne à la fois)

-Filtrer sur cette colonne

Il n'est pas possible (pour le moment) :

-D'effectuer des modifications de masse

-D'importer dans ce type de champ via un fichier csv/xls.

Note complémentaire : le cas ci-dessus était assez simple, car la table pss_products_stock_threshold contenait une rubrique id_product . C'st ce que l'on appelle une liaison directe. Parfois, il faudra dans le configurateur de colonne perso, saisir du code sql pour définir une liaison entre les tables de la base. Il est aussi de définir des filtres par langue, par boutique... Tout cela requière une bonne connaissance technique du language sql et n'a pas été couvert dans ce tuto. Mais sachez que c'est faisable....

Partager ce contenu

Vous devez être enregistré

Cliquez ici pour vous enregistrer

Ajouter un commentaire