Nous souhaitons ajouter le champ "En Soldes" à la grille des propriétés Produits > Prix spéciaux.
Pour ajouter le champ à la liste des champs disponibles pour vos grilles produit, cliquez sur le bouton de l'interface "Ajout de champ", puis saisissez les informations suivantes :
Quel est l'ID du champ ? : on_sale
SC crée le champ, il faut maintenant renseigner dans la grille :
Nom du champ : En Solde
Table : Another table
Type : Choix multiple (doit correspondre à votre type de champ, ici un champ avec des valeurs prédéfinies)
Dans le panneau des Propriétés Avancées à droite :
- sélectionner le menu Liste de choix (uniquement si le type de champ est « Choix multiple », sinon ne rien mettre) et renseignez :
return array(1=>_l('Yes') , 0=>_l('No'));
- sélectionner le menu SQL Select et renseignez :
return ' ,prs.on_sale as on_sale';
- sélectionner le menu SQL Left Join et renseignez :
return " LEFT JOIN "._DB_PREFIX_."product_shop prs ON (sp.id_product= prs.id_product AND prs.id_shop=".(int) SCI::getSelectedShop().")";
- sélectionner le menu PHP onAfterUpdateSQL et renseignez :
if (isset($_POST['on_sale']))
{
$sql = 'UPDATE '._DB_PREFIX_.'product
SET on_sale='.(int) Tools::getValue('on_sale').'
WHERE id_product=' .(int) $specificPrice->id_product;
Db::getInstance()->Execute($sql);
$sql = 'UPDATE '._DB_PREFIX_.'product_shop
SET on_sale='.(int) Tools::getValue('on_sale').'
WHERE id_product=' .(int) $specificPrice->id_product . '
AND id_shop='.(int) SCI::getSelectedShop();
Db::getInstance()->Execute($sql);
}
Fermez la fenêtre d'édition des champs personnalisés après avoir enregistré.
Le nouveau champ est présent dans la liste des champs disponibles, et vous pouvez l'ajouter à vos grilles.