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

Grille Déclinaisons : Ajouter le champ 'désactiver déclinaisons'


Objectif

Nous souhaitons inclure dans la grille des déclinaisons de Store Commander, le champ du module Activation/Désactivation de déclinaisons'

Mise en place

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 ? used

SC crée le champ, il faut maintenant renseigner dans la grille :

ID : used
​Nom du champ : Désactivé​​​​​​
Table : Another table
Type: Choix multiples

Dans le panneau des Propriétés Avancées à droite :

- sélectionnez le menu Liste de choix et renseignez :

return array(1=>_l('Yes'), 0=>_l('No'));

 

- sélectionnez le menu SQL Select et renseignez :

return ', IF( (SELECT COUNT(tsad.id_tot_switch_attribute_disabled) 
                FROM pre9680_tot_switch_attribute_disabled tsad 
                WHERE tsad.id_product_attribute=pa.id_product_attribute)>0, 1, 0 ) as used ';

 

- sélectionnez le menu PHP definition et renseignez :

$combArray[$combinaison['id_product_attribute']]['used'] = $combinaison['used'];

 

- sélectionnez le menu PHP onAfterUpdateSQL et renseignez :

if (isset($_POST['used'])) {
    $sql = "SELECT * FROM pre9680_tot_switch_attribute_disabled WHERE id_product_attribute=" . (int)$id_product_attribute;
    $exist = Db::getInstance()->ExecuteS($sql);
    $used = (int)$_POST['used'];
    if (count($exist) > 0 && empty($used)) {
        $sql = "DELETE FROM pre9680_tot_switch_attribute_disabled WHERE id_product_attribute=" . (int)$id_product_attribute;
        Db::getInstance()->Execute($sql);
    } elseif (count($exist) <= 0 && !empty($used)) {
        $sql = "INSERT INTO pre9680_tot_switch_attribute_disabled (id_product_attribute,id_shop) VALUES (" . (int)$id_product_attribute . ",'1')";
        Db::getInstance()->Execute($sql);
    }
}


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.

 


Pour ajouter ce champ à l'import de Store Commander

Après avoir sélectionné Catalogue Import Produits, cliquez sur pour ajouter le champ et renseigner les données suivantes :

ID : used
Nom : _déclinaison - utilisée

Dans le panneau des propriétés avancées : After import process

 

if ($switchObject=='used') {
    $sql = "SELECT * FROM pre9680_tot_switch_attribute_disabled WHERE id_product_attribute=" . (int)$id_product_attribute;
    $exist = Db::getInstance()->ExecuteS($sql);
    $used = (int)$value;
    if (count($exist) > 0 && !empty($used)) {
        if (!empty($used)) {
            $sql = "DELETE FROM pre9680_tot_switch_attribute_disabled WHERE id_product_attribute=" . (int)$id_product_attribute;
            Db::getInstance()->Execute($sql);
        }
    } elseif (count($exist) <= 0 && empty($used)) {
        $sql = "INSERT INTO pre9680_tot_switch_attribute_disabled (id_product_attribute,id_shop) VALUES (" . (int)$id_product_attribute . ",'1')";
        Db::getInstance()->Execute($sql);
    }
}

 


Pour ajouter ce champ à l'export de Store Commander

Après avoir sélectionné Catalogue Export Produits, cliquez sur pour ajouter le champ et renseigner les données suivantes :

ID : used
Nom : _déclinaison - utilisée

Dans le panneau des propriétés avancées : Champs des déclinaisons

if (in_array($switchObject, array('used'))) {
    $field = 0;
    $sql = "SELECT * FROM pre9680_tot_switch_attribute_disabled WHERE id_product_attribute=" . (int)$id_product_attribute;
    $exist = Db::getInstance()->ExecuteS($sql);
    if (count($res) > 0) {
        $field = 1;
    }
}