Étendez les possibilités de l'export avec vos propres champs
Accédez à la partie PRO de l’outil pour l’ajout de champs personnalisés :

Pour accéder à la partie PRO, cliquez sur l'icône + de la colonne de droite intitulée 'Champs Disponibles'
Exporter un champ provenant d'une table externe
Pré-requis
Le champ doit être déjà présent en base de données et dans un override de la classe Product
Assurez-vous de bien choisir la grille dans laquelle vous voulez ajouter votre champ - dans cet exemple, il s’agira de la grille Catalogue : Export Produit.

Ajout du champ
Clic sur l’icône d’ajout pour créer la ligne du nouveau champ et indiquez son ID “my_field” dans cet exemple précis.

L’ID du champ doit correspondre exactement au nom du champ dans la table de la base de données
La ligne du champ est créée dans la liste. Vous devez voir deux colonnes comme ceci :
Le nom du champ peut être modifié par la suite si besoin.
Ajout des requêtes
Dans le panneau des Propriétés avancées à droite :
- Sélectionner le menu Processus d'export et renseignez :
if (in_array($switchObject, ['my_field']))
{
$sql = 'SELECT `'.$switchObject.'`
FROM '._DB_PREFIX_.'my_table
WHERE id_product='.(int) $p->id;
$field = Db::getInstance()->getValue($sql);
}Ce code est à adapter à vos besoins.
N’oubliez pas de l’enregistrer en cliquant sur ce bouton :

Fermez la fenêtre d'édition des champs personnalisés et utilisez le champ dans votre mapping d'export.
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.
Assurez-vous de bien choisir la grille dans laquelle vous voulez ajouter votre champ - dans cet exemple, il s’agira de la grille Catalogue : Export Produit.

Ajout du champ
Clic sur l’icône d’ajout pour créer la ligne du nouveau champ et indiquez son ID “my_field” dans cet exemple précis.

L’ID du champ doit correspondre exactement au nom du champ dans la table de la base de données
La ligne du champ est créée dans la liste. Vous devez voir deux colonnes comme ceci :
Le nom du champ peut être modifié par la suite si besoin.
Ajout des requêtes
Dans le panneau des Propriétés avancées à droite :
- sélectionner le menu Langue sélectionnable et renseignez :
my_field- sélectionner le menu Processus d'export et renseignez :
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.
N’oubliez pas de l’enregistrer en cliquant sur ce bouton :

Fermez la fenêtre d'édition des champs personnalisés et utilisez le champ dans votre mapping d'export.
Exporter un champ 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
Assurez-vous de bien choisir la grille dans laquelle vous voulez ajouter votre champ - dans cet exemple, il s’agira de la grille Catalogue : Export Produit.

Ajout du champ
Clic sur l’icône d’ajout pour créer la ligne du nouveau champ et indiquez son ID “my_field” dans cet exemple précis.

L’ID du champ doit correspondre exactement au nom du champ dans la table de la base de données
La ligne du champ est créée dans la liste. Vous devez voir deux colonnes comme ceci :
Ajout des requêtes
Dans le panneau des Propriétés avancées à droite :
- Sélectionner le menu Processus d'export, et renseignez :
if (in_array($switchObject, array('my_field'))) { $field = $p->my_field; }
Ce code est à adapter à vos besoins.
N’oubliez pas de l’enregistrer en cliquant sur ce bouton :

Fermez la fenêtre d'édition des champs personnalisés et utilisez le champ dans votre mapping d'export.
Exporter le nombre de ventes produits sur une période
Assurez-vous de bien choisir la grille dans laquelle vous voulez ajouter votre champ - dans cet exemple, il s’agira de la grille Catalogue : Export Produit.

Ajout du champ
Clic sur l’icône d’ajout pour créer la ligne du nouveau champ et indiquez son ID “my_field” dans cet exemple précis.

La ligne du champ est créée dans la liste. Vous devez voir deux colonnes comme ceci :
Le nom du champ peut être modifié par la suite si besoin.
Ici nous voulons exporter le nombre de ventes pour la période 2025-01-01 au 2025-09-01
Ajout des requêtes
Dans le panneau des Propriétés avancées à droite :
- Sélectionner le menu Processus d'export et renseignez :
if (in_array($switchObject, ['my_field']))
{
$sql = 'SELECT COALESCE(SUM(od.product_quantity),0) AS nb_ventes
FROM `'._DB_PREFIX_.'order_detail` od
RIGHT JOIN `'._DB_PREFIX_.'orders` o ON (od.id_order = o.id_order)
WHERE od.product_id = '.(int) $p->id.'
AND o.valid = 1
AND o.date_add BETWEEN "2025-01-01 00:00:00" AND "2025-09-01 00:00:00"';
$field = (int) Db::getInstance()->getValue($sql);
}Exporter l'intervalle de jours depuis la dernière commande
Assurez-vous de bien choisir la grille dans laquelle vous voulez ajouter votre champ - dans cet exemple, il s’agira de la grille Catalogue : Export Produit.

Ajout du champ
Clic sur l’icône d’ajout pour créer la ligne du nouveau champ et indiquez son ID “my_field” dans cet exemple précis.

La ligne du champ est créée dans la liste. Vous devez voir deux colonnes comme ceci :
Le nom du champ peut être modifié par la suite si besoin.
Ajout des requêtes
Dans le panneau des Propriétés avancées à droite :
- Sélectionner le menu Processus d'export et renseignez :
if (in_array($switchObject, ['my_field']))
{
$sql = '(SELECT DATEDIFF(NOW(),o.date_add)
FROM '._DB_PREFIX_.'orders o
WHERE o.id_order IN (SELECT DISTINCT(od.id_order)
FROM '._DB_PREFIX_."order_detail od
WHERE od.product_id = '".(int) $p->id."')
ORDER BY o.date_add DESC
LIMIT 1)";
$field = (int)Db::getInstance()->getValue($sql);
}
Ce code est à adapter à vos besoins.
N’oubliez pas de l’enregistrer en cliquant sur ce bouton :

Fermez la fenêtre d'édition des champs personnalisés et utilisez le champ dans votre mapping d'export.
Ajouter un champ 'déclinaison oui/non'
Assurez-vous de bien choisir la grille dans laquelle vous voulez ajouter votre champ - dans cet exemple, il s’agira de la grille Catalogue : Export Produit.

Ajout du champ
Clic sur l’icône d’ajout pour créer la ligne du nouveau champ et indiquez son ID “has_combi” dans cet exemple précis.

La ligne du champ est créée dans la liste. Vous devez voir deux colonnes comme ceci :
Le nom du champ peut être modifié par la suite si besoin.
Ajout des requêtes
Dans le panneau des Propriétés avancées à droite :
- Sélectionner le menu Processus d'export et renseignez :
if (in_array($switchObject, ['has_combi']))
{
$sql = "SELECT IF(COUNT(*)>0, '".pSQL(_l('Yes'))."', '".pSQL(_l('No'))."')
FROM `"._DB_PREFIX_."product_attribute`
WHERE id_product = '".(int) $p->id."'";
$field = Db::getInstance()->getValue($sql);
}Ce code est à adapter à vos besoins.
N’oubliez pas de l’enregistrer en cliquant sur ce bouton

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