Le champ doit être déjà présent en base de données, dans les tables ps_product et ps_product_attribute
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.
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électionner le menu Processus d'import, et renseignez :
if ($switchObject == 'my_field' && $GLOBALS['import_value'] != '') {
$id_prd = (!empty($id_product) ? (int)$id_product : (int)$newprod->id);
$TODO[] = "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 renseignez :
if ($switchObject == 'my_field' && isCombinationWithID() && $GLOBALS['import_value'] != '') {
$id_prd = (!empty($id_product) ? (int)$id_product : (int)$newprod->id);
$TODO[] = "UPDATE " . _DB_PREFIX_ . "product SET `".$switchObject."`=0 WHERE id_product=" . (int)$id_prd;
$TODO[] = "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.