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

Import Clients : 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 client 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 clients, 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électionner le menu Processus d'import, et renseignez :

if ($switchObject == 'my_field')
{
    $rowValue = (int) $GLOBALS['import_value'];

    $sql = 'SELECT COUNT(*)
               FROM '._DB_PREFIX_.'my_table
               WHERE id_customer='.(int) $newcustomer->id;
    if (Db::getInstance()->getValue($sql))
    {
        Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'my_table 
                                SET sms = '.(int) $rowValue.' 
                                WHERE id_customer = '.(int) $newcustomer->id);
    }
    else
    {
        Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'my_table (`id_customer`, `'.$switchObject.'`)
                                            VALUES ('.(int) $newcustomer->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.




Articles associés