Nous souhaitons ajouter le champ "Label BIO" qui permettra de distinguer ce type de produit dans le grille déclinaison multi boutique. Pour notre exemple, ce champ est situé dans la table ps_label ( id_product_attribute ; label_bio (0/1); id_shop ).
Nous pourrons ainsi :
Pour ajouter le champ à la liste des champs disponibles pour votre grille MB - 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 : -
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 = pas.id_product_attribute AND lab.id_shop=pas.id_shop) ';
- sélectionner le menu PHP definition et renseignez :
$product_attr['label_bio'] = $product_attr_by_shop['label_bio'];
- sélectionner le menu PHP onAfterUpdateSQL et renseignez :
if (isset($_POST['label_bio']))
{
$the_id = (int) Db::getInstance()->getValue('SELECT id_product_attribute
FROM '._DB_PREFIX_.'label
WHERE id_product_attribute = '.(int) $id_product_attribute.'
AND id_shop = '.(int)$id_shop);
if ($the_id)
{
$sql = 'UPDATE '._DB_PREFIX_.'label
SET label_bio = '.(int) Tools::getValue('label_bio', 0).'
WHERE id_product_attribute='.(int) $id_product_attribute.'
AND id_shop = '.(int)$id_shop;
}
else
{
$sql = 'INSERT INTO '._DB_PREFIX_.'label (`id_product_attribute`,`label_bio`, `id_shop`)
VALUES ('.(int) $id_product_attribute.', '.(int) Tools::getValue('label_bio', 0).', '.(int)$id_shop.')';
}
Db::getInstance()->execute($sql);
}
- Si vous souhaitez ajouter un choix Oui/Non, sélectionnez le menu Liste de choix et renseignez :
return [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.