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 :
Pour ajouter le champ à la liste des champs disponibles pour votre grille déclinaisons, cliquez sur le bouton 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 : Another table
Type : Choix multiples
Dans le panneau des Propriétés Avancées à droite :
- sélectionner le menu SQL Select et renseignez :
return ' ,lab.label_bio';
- sélectionner le menu SQL Leftjoin et renseignez :
return ' LEFT JOIN '._DB_PREFIX_.'label lab ON (lab.id_product_attribute = pa.id_product_attribute) ';
- sélectionner le menu PHP definition et renseignez :
$combArray[$combinaison['id_product_attribute']]['label_bio'] = $combinaison['label_bio'];
- sélectionner 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.