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

Import produit : importer un champ de langue dans une table

Pré-requis

  • Version 2015-07-01 de Store Commander
  • Extension SC Éditeur de grilles Pro - Version 1.2
  • Le champ doit être déjà présent en base de données

 

 

Objectif :

Nous souhaitons importer un champ de langue dans une table, la langue sera préalablement sélectionnée dans le mapping d'import.

 

Mise en place :

  • Pour ajouter le champ à la liste des champs disponibles dans le mapping d'import produits, cliquez sur le bouton add.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 la partie droite de la fenêtre, sélectionnez Propriétés avancées > Processus d'import des déclinaisons, et ajoutez : 

 

if ($switchObject=='my_field' && $GLOBALS['import_value']!='')
{
$value = $GLOBALS['import_value'];
$id_lang = intval($getIDlangByISO[$mappingData['CSV2DBOptions'][$firstLineData[$key]]]);
if(!empty($id_lang))
{
$sql="SELECT * FROM "._DB_PREFIX_."mytable_lang WHERE id_product='".intval($id_product)."' AND id_lang = ".intval($id_lang);
$lang_row = Db::getInstance()->ExecuteS($sql);
if(!empty($lang_row[0]["id_product"]))
{
$TODO[]="UPDATE "._DB_PREFIX_."mytable_lang SET my_field='".psql($value)."' WHERE id_product='".intval($id_product)."' AND id_lang = ".intval($id_lang);
}
else
{
$TODO[]="INSERT INTO "._DB_PREFIX_."mytable_lang (id_product, id_lang, my_field)
VALUES ('".intval($id_product)."','".intval($id_lang)."','".psql($value)."')";
}
}
}

 

ATTENTION : pour les tables product_lang et product_attribute_lang, ne pas ajouter ce bloc de code dans les données ci-dessus :

else
{
$TODO[]="INSERT INTO "._DB_PREFIX_."mytable_lang (id_product, id_lang, my_field)
VALUES ('".intval($id_product)."','".intval($id_lang)."','".psql($value)."')";
}

  • Dans la partie droite de la fenêtre, sélectionnez Propriétés avancées > Langue sélectionnable, et ajoutez le nom du champ (séparés par une virgule si plusieurs champs à saisir)

          Exemple : last_field,my_field

 

 

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.