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

Grille Déclinaisons : ajouter le champ 'désactiver déclinaisons' (avec liste de choix)

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électionner le menu Liste de choix et renseignez :

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

- sélectionner le menu SQL Select et renseignez :

return ', IF( (SELECT COUNT(tsad.id_tot_switch_attribute_disabled) 
                FROM '._DB_PREFIX_.'tot_switch_attribute_disabled tsad 
                WHERE tsad.id_product_attribute=pa.id_product_attribute AND id_shop='.SCI::getSelectedShop().')>0, 1, 0 ) as used ';

- sélectionner le menu PHP definition et renseignez :

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

- sélectionner le menu PHP onAfterUpdateSQL et renseignez :

if (isset($_POST['used']))
{
    $id_shop = SCI::getSelectedShop();
    $sql = 'SELECT id_product_attribute 
            FROM '._DB_PREFIX_.'tot_switch_attribute_disabled 
            WHERE id_product_attribute='.(int) $id_product_attribute.' 
            AND id_shop='.(int) $id_shop;
    $exist = Db::getInstance()->getValue($sql);
    $used = (int) $_POST['used'];
    if ($exist && empty($used))
    {
        $sql = 'DELETE FROM '._DB_PREFIX_.'tot_switch_attribute_disabled WHERE id_product_attribute='.(int) $id_product_attribute.' AND id_shop='.(int) $id_shop;
        Db::getInstance()->execute($sql);
    }
    elseif (!$exist && !empty($used))
    {
        $sql = 'INSERT INTO '._DB_PREFIX_.'tot_switch_attribute_disabled (`id_product_attribute`,`id_shop`) VALUES ('.(int) $id_product_attribute.','.(int) $id_shop.')';
        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')
{
    $value = $GLOBALS['import_value'];
    $id_shop = SCI::getSelectedShop();
    $sql = 'SELECT id_product_attribute 
            FROM '._DB_PREFIX_.'tot_switch_attribute_disabled 
            WHERE id_product_attribute='.(int) $id_product_attribute.' 
            AND id_shop='.(int) $id_shop;
    $exist = Db::getInstance()->getValue($sql);
    $used = (int) $value;
    if ($exist && empty($used))
    {
        $sql = 'DELETE FROM '._DB_PREFIX_.'tot_switch_attribute_disabled WHERE id_product_attribute='.(int) $id_product_attribute.' AND id_shop='.(int) $id_shop;
        Db::getInstance()->execute($sql);
    }
    elseif (!$exist && !empty($used))
    {
        $sql = 'INSERT INTO '._DB_PREFIX_.'tot_switch_attribute_disabled (`id_product_attribute`,`id_shop`) VALUES ('.(int) $id_product_attribute.','.(int) $id_shop.')';
        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 ($switchObject == 'used') {
    $sql = 'SELECT IF(COUNT(*) > 0 ,1 ,0) as nb 
            FROM ' ._DB_PREFIX_. 'tot_switch_attribute_disabled 
            WHERE id_product_attribute=' . (int)$id_product_attribute. ' 
            AND id_shop=' .(int)$selected_shops_id;
    $field = Db::getInstance()->getValue($sql);
}



Articles associés