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 :

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 des déclinaisons, et renseignez :

if (in_array($switchObject, ['my_field'])) {
    $id_prd = (!empty($id_product) ? (int)$id_product : (int)$newprod->id);
    $sql = 'SELECT `id_product`
               FROM `' . _DB_PREFIX_ . 'my_table`
               WHERE `id_product` = ' . (int)$id_prd;
    $exist = Db::getInstance()->getValue($sql);
    if (!empty($exist)) {
        Db::getInstance()->execute('UPDATE `' . _DB_PREFIX_ . 'my_table`
                                           SET `' . $switchObject . '`= "' . pSQL($GLOBALS["import_value"], true) . '"
                                           WHERE id_product=' . (int)$id_prd);
    } else {
        Db::getInstance()->execute('INSERT INTO `' . _DB_PREFIX_ . 'my_table` (`id_product`, `' . $switchObject . '`)
                                         VALUES ("' . (int)$id_prd . '","' . 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.



Articles associés