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

Grille Déclinaisons Multi-Boutique : Ajouter un champ d'une table externe aux tables déclinaison multi boutique


Objectif

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 :

  • 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

 

Mise en place

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é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 = pas.id_product_attribute AND lab.id_shop=pas.id_shop) ';

 

- sélectionnez le menu PHP definition et renseignez :

$product_attr['label_bio'] = $product_attr_by_shop['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_shop = ".(int)$id_shop." 
            AND 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.