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

Import Produits : importer un champ dans une table (insert et update)


Pré-requis

Le champ doit être déjà présent en base de données

 

Objectif

Nous souhaitons importer des informations complémentaires à un produit depuis un fichier CSV vers le champ d'une table. Si l'information existe déjà dans la table, elle est mise à jour. Si elle n'existe pas, elle est créée.

 

Mise en place

Pour ajouter le champ à la liste des champs disponibles dans le mapping d'import produits, cliquez sur le bouton 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électionnez le menu Processus d'import des déclinaisons, et renseignez :

 

if ($switchObject == 'my_field' && !empty($newprod->id)) {
   $sql = "SELECT *
           FROM " . DB_PREFIX . "my_table
           WHERE id_product=" . (int)$newprod->id;
   $exist = Db::getInstance()->ExecuteS($sql);
   if (!empty($exist[0]["id_product"])) {
       $TODO[] = "UPDATE " . DB_PREFIX . "my_table
                   SET " . $switchObject . "='" . pSQL($GLOBALS["import_value"], true) . "'
                   WHERE id_product=" . (int)$newprod->id;
   } else {
       $TODO[] = "INSERT INTO " . DB_PREFIX . "my_table(id_product, " . $switchObject . ")
                   VALUES ('" . (int)$newprod->id . "','" . pSQL($GLOBALS["import_value"], true) . "')";
   }
}

 

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.