Produits

Définition des champs

Les champs obligatoires sont signalés par un crayon. Les définitions des champs se réfèrent à la syntaxe MySQL.

Tous les champs sont analysés en fonction de leur type avant l'importation. Si vous indiquez une chaîne vide dans parent_id, celle-ci est convertie en 0 par un cast INT.

model
varchar(255)
La référence unique du produit.
La mise à jour ou la création d'un produit s'effectue toujours à l'aide du numéro d'article.
status
tinyint(1)
Statut du produit : actif/inactif
  • 1 : actif (par défaut)
  • 0 : inactif
  • 2 : actif dans une catégorie inactive
plan du site
tinyint(1)
Lier le produit dans le plan du site XML : oui/non
  • 1 : oui (par défaut)
  • 0 : non
storage_comment
varchar(64)
Lieu de stockage (entrepôt principal)
ean
varchar(256)
GTIN, plusieurs codes séparés par des virgules (par exemple pour un lot)
quantity
decimal(16,8)
Stock disponible dans l'entrepôt principal
profil_d'expédition
int(11)
ID du profil de statut
cost
décimal(16,8)
Prix d'achat net
evp
décimal(16,8)
Prix de vente conseillé net
remise
décimal(16,8)
 
products_eol
tinyint(1)
Le produit est-il en fin de vie ? Oui/Non
  • 1 : oui
  • 0 : non (par défaut)
date_added
datetime
Date de création
Format : AAAA-mm-jj HH:ii:ss
Si aucune date n'est fournie, NOW() est utilisé comme horodatage.
last_modified
datetime
Date de modification
Format : AAAA-mm-jj HH:ii:ss
Si aucune date n'est fournie, NOW() est utilisé comme horodatage.
products_date_available
datetime
Date de disponibilité
Format : AAAA-mm-jj HH:ii:ss
Si aucune date n'est transmise, la valeur NULL est définie comme horodatage.
products_date_reservable
datetime
Date de précommande
Format : AAAA-mm-jj HH:ii:ss
Si aucune date n'est transmise, la valeur NULL est définie comme horodatage.
weight
decimal(16,8)
Poids (en unité standard de la boutique, généralement en kg)
products_bulky_good
tinyint(1)
Articles volumineux : oui/non
  • 1 : oui
  • 0 : non (par défaut)
tax_class
int(11)
ID des classes d'imposition
classé
décimal(16,8)
Compteur de commandes
utilisé à la place de l'évaluation en temps réel aux points critiques pour les performances.
sort_order
int(11)
Ordre de tri des produits
Le tri des catégories de même niveau s'effectue par ordre croissant
family
varchar(128)
Famille de produits (groupe maître/esclave). Identique pour tous les articles d'un groupe – la valeur correspond à la référence (model) de l'article maître. Voir la section Articles maître/esclave (familles de produits).
products_family_type
int(11)
Type d'affichage de la sélection des variantes
  • 0 : Liste (par défaut)
  • 1 : Sélection
  • 2 : Bouton radio
  • 3 : Bouton radio (bouton)
  • 4 : Bouton radio (fenêtre contextuelle)
products_master
—
N'est pas pris en compte lors de l'importation XML. L'affectation maître/esclave s'effectue exclusivement via family – voir la section Articles maîtres/esclaves (familles de produits). Le produit maître ne peut être défini directement par son ID que via l'API REST/JSON et le CSV-Porter.
free_shipping
tinyint(1)
Livraison gratuite
  • 1 : oui
  • 0 : non (par défaut)
non_cod
tinyint(1)
Paiement à la livraison désactivé
  • 1 : oui
  • 0 : non (par défaut)
non_cart
tinyint(1)
Panier verrouillé
  • 1 : oui
  • 0 : non (par défaut)
non_price
tinyint(1)
Affichage du prix désactivé
  • 1 : oui
  • 0 : non (par défaut)
special_shipping_cost
décimal(16,8)
Frais de port spéciaux nets
commandé
décimal(16,8)
Compteur de commandes
est utilisé à la place de l'évaluation en temps réel aux points critiques en termes de performances.
base_price
décimal(16,8)
Facteur de prix de base
top_new
tinyint(1)
Nouveautés/Coup de cœur
  • 1 : oui
  • 0 : non (par défaut)
products_topnew_begin
datetime
Nouveautés/Coup de cœur - Début
products_topnew_end
datetime
Nouveautés/Coup de cœur - Fin
highlight
tinyint(1)
En vedette
  • 1 : oui
  • 0 : non (par défaut)
featured_begin
datetime
Début de la mise en avant
featured_end
datetime
Fin de la mise en avant
points
int(11)
 
langues
language
Chaque nœud « languages » contient [1..n] nœuds « language_{languages_code} ». Le « {languages_code} » correspond au code ISO-2 de la langue concernée.
language_{languages_code}
name
varchar(255)
Nom du produit
description
longtext
Description longue
short_description
longtext
Description courte
products_checkout_description
longtext
Caractéristiques principales du produit (informations de paiement)
products_contracts_description
text_moyen
Description du contrat
products_url
varchar(255)
Lien externe vers le produit (à titre d'information interne uniquement)
seo_name
varchar(255)
Nom SEO du produit
domainname.tld/ProduktSEOName.html/
Si aucun nom SEO n'est indiqué, le nom du produit est utilisé comme nom SEO.
title_tag
mediumtext
Balise méta « titre »
desc_tag
mediumtext
Balise méta « Description »
balise_mots_clés
texte_moyen
Mots-clés de la balise méta (séparés par des virgules)
titre_de_l'image_du_produit
varchar(255)
Description de l'image principale
products_image_title
varchar(255)
Description de l'image principale
unit_single
varchar(255)
Unité (nom au singulier)
unit_multi
varchar(255)
Unité (nom pluriel)
unit_base
varchar(255)
Unité de prix de base
special_shipping_description
varchar(255)
Description des frais de port spéciaux
catégories
category
Chaque nœud « categories » contient [1..n] nœuds « category ». Il doit y avoir au moins un lien de catégorie valide.
category
 
int(11)
ID de catégorie
extra_fields
extra_field
Chaque nœud extra_fields contient [1..n] nœuds extra_field.
extra_field
name
varchar(64)
Nom
value
text
Valeur
type
 
 
étiquettes
label
Chaque nœud « labels » contient [1..n] nœuds « label ».
label
label_category_id
int(11)
ID de catégorie d'étiquette
label_id
int(11)
ID de l'étiquette
desc_id
int(11)
ID de la description de l'étiquette
badges
badge
Chaque nœud « badges » contient [1..n] nœuds « badge ».
badge
badge_id
int(11)
ID du badge du produit (doit être > 0)
sort
int(11)
Ordre de tri du badge
xsells
xsell
Chaque nœud xsells contient [1..n] nœuds xsell.
xsell
products_model
varchar(255)
Référence du produit X-Sell
sort_order
int(11)
Ordre de tri
upsells
upsell
Chaque nœud « upsells » contient [1..n] nœuds « upsell ».
upsell
 
varchar(255)
Référence du produit de vente incitative
images
image
Chaque nœud « images » contient [1..n] nœuds « image ».
image
fichier
varchar(255)
Nom du fichier de l'image OU lien externe vers l'image
sort
int(11)
Ordre de tri de l'image
vidéos
vidéo
Chaque nœud « vidéos » contient [1..n] nœuds « vidéo ».
vidéo
videos_file
varchar(255)
Nom du fichier vidéo OU lien externe vers la vidéo
images_d'aperçu_vidéos
varchar(255)
Nom du fichier de l'image d'aperçu de la vidéo
fabricants
manufacturer
Chaque nœud « manufacturers » contient [1..n] nœuds « manufacturer ».
fabricant
id
int(11)
ID du fabricant
nom
varchar(255)
Nom du fabricant
fournisseurs
fournisseur
Chaque nœud « suppliers » contient [1..n] nœuds « supplier ».
fournisseur
id
int(11)
ID du fournisseur. S’il est transmis avec le nom, le fournisseur est créé ou mis à jour. Si seul l’ID est transmis, un fournisseur existant est associé.
name
varchar(255)
Nom du fournisseur. Si seul le nom est transmis sans ID, une recherche est effectuée à partir du nom. S'il n'existe aucun fournisseur portant ce nom, un nouveau fournisseur est automatiquement créé.
products_to_marketplaces
products_to_marketplace
Chaque nœud « products_to_marketplaces » contient [1..n] nœuds « products_to_marketplace ».
products_to_marketplace
marketplace_id
int(11)
ID de la place de marché
marketplace_status
tinyint(1)
Statut sur la place de marché
  • 1 : actif
  • 0 : inactif (par défaut)
données_sur_les_produits_destinés_aux_places_de_marché
products_to_marketplace_data
Chaque nœud « products_to_marketplaces_data » contient [1..n] nœuds « products_to_marketplace_data ».
products_to_marketplaces_data
marketplace_id
int(11)
ID de la place de marché
languages_id
int(11)
ID de la langue
products_to_marketplaces_data_id
int(11)
ID de la configuration de la place de marché
products_to_marketplaces_data_value
varchar(255)
Valeur de la configuration de la place de marché
bonus_free_features
max_bonus
int(4)
 
max_free
int(4)
 
status_bonus
bool
Statut (produit bonus)
status_free
bool
Statut (produit gratuit)
auto_free
bool
Statut (produit gratuit automatique)
bonus_points
int(11)
 
bonus_value
int(11)
 
special
prix
décimal(16,8)
Prix net de l'offre spéciale
nom
varchar()
Nom de l'offre spéciale
status
int(1)
Statut (offre spéciale)
begin
datetime
Début de l'offre spéciale
fin
datetime
Fin de l'offre spéciale
customers_group_id
int(11)
ID du groupe de clients pour les offres spéciales spécifiques à ce groupe
tabs
tab
Chaque nœud « tabs » contient [1..n] nœuds « tab ».
tab
tabname
varchar()
Nom de l'onglet
tabcontent
text-moyen
Contenu de l'onglet
tablng
varchar(2)
Code de langue ISO-2
tabsort
int(11)
Ordre de tri de l'onglet
mask_tab_id
int(11)
ID du modèle d'onglet
groups
group
Chaque nœud « groups » contient [1..n] nœuds « group ».
group
id
int(11)
ID du groupe de clients
price
décimal(16,8)
Prix du groupe de clients (net)
prices
price
Chaque nœud « prices » contient [1..12] nœuds « price ».
price
valeur
décimal(16,8)
Prix échelonné
quantité
décimal(16,8)
Quantité pour le prix dégressif
quantité_blocs
décimal(16,8)
Échelonnement des quantités
quantité minimale
décimal(16,8)
Quantité minimale de commande
max_quantity
décimal(16,8)
Quantité maximale de commande
customers
client
Se trouve dans le nœud « groups » (<groups><customers><customer>) : chaque nœud « customers » contient [1..n] nœuds « customer » avec des prix spécifiques à chaque client.
Remarque : fonctionne à partir de l'API xoPort 2.57.1 (juillet 2026) – les anciennes versions de la boutique ignoraient tacitement ce bloc lors de l'importation XML.
Important – Logique de remplacement/suppression :
  • l’importation de produits remplace, pour chaque produit importé, l’ensemble des prix clients associés à ce produit (reflètement complet).
  • Suppression : réimportez le produit sans l'entrée « customer » correspondante (ou sans le bloc « customers » tout court).
  • Les prix client gérés manuellement dans la boutique ne sont conservés après l’importation de produits que si le nœud d’importation customers_prices est désactivé dans la configuration xoPort ou si le produit dispose de la protection d’importation « Prix (prix client) » (price_customers) dans l’onglet « Interface de données xoPort (XML) ».
customer
id
int(11)
ID client
external
varchar(64)
Numéro client WaWi (customers_id_extern)
price
décimal(16,8)
Prix client (net)
prices
price
Chaque nœud « prices » contient [1..12] nœuds « price ».
price
valeur
décimal(16,8)
Prix échelonné
quantité
décimal(16,8)
Quantité pour le prix dégressif
quantité_blocs
décimal(16,8)
Échelonnement des quantités
quantité minimale
décimal(16,8)
Quantité minimale de commande
max_quantity
décimal(16,8)
Quantité maximale de commande
features
feature
Chaque nœud « features » contient [1..n] nœuds « feature ».
Règles de traitement importantes :
  • Regroupement : plusieurs caractéristiques ayant le même name sont regroupées en UNE seule option ; les entrées value différentes sont créées en tant que valeurs d'option.
  • Exemple : deux features avec respectivement name="Farbe" et value="Rot" ou value="Blau" donnent lieu à une liste déroulante « Couleur » avec les valeurs « Rouge » et « Bleu ».
  • Nouvelles options : les noms et valeurs d’options inexistants sont automatiquement créés dans toutes les langues.
  • Traitement des images : les images sont automatiquement copiées de /images/product/src/ vers /images/optionen/src/, et les vignettes sont régénérées.
fonctionnalité
name
varchar()
Nom de l'option
valeur
varchar
Valeur de l'option
type
chaîne/entier(11)
Type d'option
Valeurs de type chaîne (recommandé) :
  • select: menu déroulant (par défaut, correspond au type 0)
  • text: champ de saisie à une ligne (type 1)
  • radio: Boutons radio (type 2)
  • textarea: Zone de texte multiligne (type 4)
  • show_only: Affichage uniquement, non sélectionnable (type 5, par défaut si le type est manquant ou vide)
  • hide: Masqué (Type 6, définit automatiquement required=0)
  • radio_button: Boutons radio classiques (Type 7)
  • radio_popup: Boutons radio avec info-bulle (Type 9)
Valeurs numériques (héritées) :
  • 0 : Liste déroulante
  • 1 : Texte
  • 2 : Bouton radio
  • 3 : Case à cocher
  • 4 : Zone de texte
  • 5 : Afficher uniquement (par défaut en l'absence de type)
  • 6 : Masquer (définit automatiquement required=0)
  • 7 : Bouton radio
  • 8 : Case à cocher (bouton)
  • 9 : Bouton radio (fenêtre contextuelle)
  • 12 : Panier
Important : pour select, radio, radio_button et radio_popup, plusieurs fonctionnalités ayant le même name sont regroupées en UNE SEULE option. Pour hide et show_only, required est automatiquement défini sur 0.
ean
varchar(255)
EAN/GTIN de l'option
modèle
varchar(255)
Suffixe du numéro d'article des options
Important : la valeur est automatiquement préfixée par une virgule (,) !
Exemple : saisie ROT → Enregistré : ,ROT
Le code produit complet se compose de : Basis-Artikelnummer,Suffix
(par ex. ART-12345,ROT)
image
varchar(255)
Source de l'image des options (nom de fichier ou lien)
Traitement automatique de l'image :
  • l'image est copiée depuis /images/product/src/ vers /images/optionen/src/
  • Les vignettes existantes sont automatiquement supprimées et régénérées
  • Tailles de vignettes prises en charge : mini, small, medium, large, xlarge
quantity
décimal(16,8)
Quantité en stock de l'option
Stock disponible pour cette variante spécifique (par exemple, « Couleur : rouge » dispose de 10 pièces en stock)
price
décimal(16,8)
Supplément/réduction d'option (net)
Remarque : la virgule (,) et le point (.) sont acceptés comme séparateurs décimaux.
Les valeurs négatives sont autorisées pour les remises (par exemple : -2.50)
poids
décimal(16,8)
Poids de l'option en kg
Remarque : la virgule (,) et le point (.) sont acceptés comme séparateurs décimaux.
obligatoire
tinyint(1)
Champ obligatoire de l'option
  • 0 : Non (par défaut)
  • 1 : Oui - le client DOIT faire un choix
Important : pour les adresses type=hide et type=show_only, la valeur est automatiquement définie sur 0 (non modifiable).
sort
int(11)
Ordre de tri des options
pre_select
tinyint(1)
Option présélectionnée
  • 0 : Non (par défaut)
  • 1 : Oui – Cette option est présélectionnée lors de l'affichage de la page
Important : pour chaque option (même name), une seule valeur peut être présélectionnée. En cas de plusieurs pre_select=1, c'est la première entrée qui prévaut.
text_type_details
varchar(255)
Attributs de texte d'option (pertinents uniquement pour les types d'option « text » ou « textarea »)
Peut contenir des règles de validation, des caractères de remplacement ou d’autres spécifications pour les champs de texte.

Articles maître/esclave (familles de produits)

Les variantes d’un article (par exemple, les formats d’emballage ou les couleurs) sont représentées via une famille de produits. L’affectation s’effectue exclusivement via l’élément family:

  • Tous les articles d’un groupe ont la même valeur dans family.
  • L'articlemaître est précisément celui dont la valeur « model » est identique à celle de son « family ».
  • Tous les autres articles ayant la même valeur pour « family » deviennent automatiquement ses variantes.

La boutique calcule elle-même le lien interne à partir de ces informations. L'élément « products_master » n'existe pas dans l'importation XML.

<product>
  <model>ABC-100</model>              <!-- Master: model == family -->
  <family>ABC-100</family>
  <products_family_type>3</products_family_type>
  <groups><group><id>0</id><price>19.90</price></group></groups>
</product>
<product>
  <model>ABC-100-250</model>          <!-- Variante -->
  <family>ABC-100</family>
  <products_family_type>3</products_family_type>
  <groups><group><id>0</id><price>19.90</price></group></groups>
</product>
<product>
  <model>ABC-100-1000</model>         <!-- Variante -->
  <family>ABC-100</family>
  <products_family_type>3</products_family_type>
  <groups><group><id>0</id><price>59.90</price></group></groups>
</product>

Remarques :

  • L'ordre dans le flux n'a pas d'importance : le produit principal peut également figurer après ses variantes.
  • family est limité à 128 caractères et doit correspondre exactement, caractère par caractère.
  • Si family est fourni vide dans un flux ultérieur, le groupe est à nouveau dissous. Pour les flux consacrés uniquement aux stocks ou aux prix, il faut donc inclure cette valeur – ou désélectionner simultanément products_family et products_master dans la liste des champs de l’importation.
  • products_family_type Définissez la même valeur pour tous les articles du groupe.
  • Le prix provient de groups/group avec id 0 (groupe de clients par défaut). Un price situé directement sous groups n’est pas pris en compte.

Exemple de fichier XML

Le fichier XML doit respecter la convention de nommage suivante :
Products(.)*.xml

Télécharger des exemples :

Télécharger un fichier d'exemple

Télécharger le fichier d'exemple maître/esclave

Télécharger la définition XSL (pas XSD !)

Last updated: 9 octobre 2026