Pour créer un ticket support, commencez par une recherche

Grille Déclinaisons : Ajouter un champ d'une table externe aux tables produits


Objectif

Nous souhaitons ajouter le champ "Label BIO" qui permettra de distinguer ce type de produit dans les grilles. Pour notre exemple, ce champ est situé dans la table ps_label ( id_product_attribute ; label_bio (0/1) ).

Nous pourrons ainsi :

  • utiliser les filtres dans les grilles pour affiner nos sélections de déclinaisons
  • éditer en masse ce champ par le système de copier coller de SC
  • exporter rapidement la grille des déclinaisons avec ce champ

 

Mise en place

Pour ajouter le champ à la liste des champs disponibles pour votre grille déclinaisons, cliquez sur le bouton add.png de l'interface "Ajout de champ", puis saisissez les informations suivantes :


Quel est l'ID du champ ? : label_bio (doit correspondre exactement au nom du champ dans la base de données)

 

SC crée le champ, il faut maintenant renseigner dans la grille :

Nom du champ : Label BIO
Table : special
Type : Choix multiples

 

Dans le panneau des Propriétés Avancées à droite :
 

- sélectionnez le menu SQL Select et renseignez :

return ' ,lab.label_bio';

- sélectionnez le menu SQL Leftjoin et renseignez :

return ' LEFT JOIN '._DB_PREFIX_.'label lab ON (lab.id_product_attribute = pa.id_product_attribute) ';

 

- sélectionnez le menu PHP definition et renseignez :

$combArray[$combinaison['id_product_attribute']]['label_bio'] = $combinaison['label_bio'];


- sélectionnez le menu PHP onAfterUpdateSQL et renseignez :

if (isset($_POST['label_bio'])){
    $sql = "UPDATE "._DB_PREFIX_."label 
            SET label_bio = ".(int)Tools::getValue('label_bio',0)." 
            WHERE id_product_attribute=".(int)$id_product_attribute;
    Db::getInstance()->Execute($sql);
}


- Si vous souhaitez ajouter un choix Oui/Non, sélectionnez le menu Liste de choix et renseignez :

return array(1=>_l('Yes'), 0=>_l('No'));


 

Fermez la fenêtre d'édition des champs personnalisés.

Le nouveau champ est présent dans la liste des champs disponibles, et vous pouvez l'ajouter à votre grille déclinaisons.