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

Export Produits : exporter un champ de langue de la classe Product

Pré-requis

Le champ doit être déjà présent en base de données et dans un override de la classe Product Langue

Objectif

Nous souhaitons exporter un champ ajouté à la classe Product Langue de PrestaShop.

Mise en place

Pour ajouter le champ à la liste des champs disponibles pour l'export produits, cliquez sur le bouton de l'interface "Ajout de champ", puis saisissez les informations suivantes :

Quel est l'ID du champ ? : my_field

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 Langue sélectionnable, et ajoutez:

my_field

- sélectionner le menu Processus d'export, et ajoutez:

if (in_array($switchObject, ['my_field']))
{
    $field = $p->my_field;
}

CAS PARTICULIER

Si le champ est présent dans la base de donnée mais que l'override n'a pas été fait dans la classe Product. Alors il est quand même possible d'aller chercher sa valeur en ajoutant du code qui produise une requête SQL plutôt que d'utiliser l'objet Product.

if ($switchObject == 'my_field') {
    $field = '';
    $sql = "SELECT `".$switchObject."` FROM " . _DB_PREFIX_ . "product_lang
            WHERE id_product=" . (int)$id_product."
            AND id_lang=".(int)$getIDlangByISO[$f['lang']]."
            AND id_shop=".(int) $selected_shops_id;

        $field = (string)Db::getInstance()->getValue($sql);
}

Ce code est à adapter à vos besoins.

Fermez la fenêtre d'édition des champs personnalisés et utilisez le champ dans votre mapping d'export.



Articles associés