Déclinaisons - Champ d'une table externe aux tables déclinaisons (avec liste de choix)
Instructions pour ajouter une colonne dans la grille des déclinaisons, indiquant la valeur d'un champ qui se trouve dans une table externe aux tables produits
Accédez à la partie PRO de l’outil pour l’ajout de champs personnalisés :

Assurez-vous de bien choisir la grille dans laquelle vous voulez ajouter votre champ - dans cet exemple, il s’agira de la Grille Produits.

Ajout du champ
Clic sur l’icône d’ajout pour créer la ligne du nouveau champ et indiquez son ID label_bio
(doit correspondre exactement au nom du champ dans la base de données)

La ligne du champ est créée dans la liste. Il faut maintenant renseigner les informations :
Il faut ensuite ajouter les éléments de configuration techniques, dans les propriétés spécifiques, dans le panneau de droite :

Copiez/collez le contenu ci-dessous dans le menu SQL Select et enregistrez :
return ' ,lab.label_bio';Copiez/collez le contenu ci-dessous dans le menu SQL Leftjoin et enregistrez :
return ' LEFT JOIN '._DB_PREFIX_.'label lab ON (lab.id_product_attribute = pa.id_product_attribute) ';Copiez/collez le contenu ci-dessous dans le menu PHP definition et enregistrez :
$combArray[$combinaison['id_product_attribute']]['label_bio'] = $combinaison['label_bio'];Copiez/collez le contenu ci-dessous dans le menu PHP onAfterUpdateSQL et enregistrez :
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);
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;
}
else
{
$sql = 'INSERT INTO '._DB_PREFIX_.'label (`id_product_attribute`,`label_bio`)
VALUES ('.(int) $id_product_attribute.', '.(int) Tools::getValue('label_bio', 0).')';
}
Db::getInstance()->execute($sql);
}Si vous souhaitez ajouter un choix Oui/Non, Copiez/collez le contenu ci-dessous dans le menu Liste de choix et enregistrez :
return [1 => _l('Yes'), 0 => _l('No')];Vous pouvez maintenant fermer cette fenêtre.
De retour dans la fenêtre précédente, le nouveau champ se trouve dans la liste des champs disponibles (surligné en orange) et vous pouvez l’ajouter à votre grille de déclinaisons.