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

Import Produits : importer dans une déclinaison produit ou un produit le produit si pas de déclinaisons


Pré-requis

Le champ doit être déjà présent en base de données, dans les tables ps_product et ps_product_attribute

Objectif

Nous souhaitons importer une information (valeur numérique) à un produit depuis un fichier CSV.
Si le produit n'a pas de déclinaison, c'est le champ de la table ps_product qui est mis à jour.
Si le produit a des déclinaisons, on force la valeur du produit de base à 0 et on met à jour la déclinaison concernée.

Mise en place

Pour ajouter le champ à la liste des champs disponibles dans le mapping d'import produits, cliquez sur le bouton add_dis.png de l'interface "Ajout de champ", puis saisissez les informations suivantes :

Quel est l'ID du champ ? : my_field (doit correspondre exactement au nom du champ dans la table)

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

ID : my_field
Nom : my_field

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

- sélectionner le menu Processus d'import, et ajoutez:

if ($switchObject == 'my_field' && $GLOBALS['import_value'] != '')
{
    $id_prd = (!empty($id_product) ? (int) $id_product : (int) $newprod->id);
    Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product 
                SET `'.$switchObject."`='".importConv2Float($GLOBALS['import_value'])."' 
                WHERE id_product=".(int) $id_prd);
}

- sélectionner le menu Processus d'import des déclinaisons, et ajoutez:

if ($switchObject == 'my_field' && isCombinationWithID() && $GLOBALS['import_value'] != '')
{
    $id_prd = (!empty($id_product) ? (int) $id_product : (int) $newprod->id);
    Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product SET `'.$switchObject.'`=0 WHERE id_product='.(int) $id_prd);
    Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product_attribute SET `'.$switchObject."`='".importConv2Float($GLOBALS['import_value'])."' WHERE id_product_attribute=".(int) $id_product_attribute);
}


Ce code est à adapter à vos besoins.

Fermez la fenêtre d'édition des champs personnalisés et utilisez le champ dans votre mapping d'import.




Articles associés