Intégration par flux CSV ou XML
Introduction
Les produits de votre site peuvent être intégrés sur Spartoo par flux CSV ou XML.Dans ce cas, le fichier CSV ou XML contenant les informations de tous vos produits devra être accessible sur le web par notre robot.
Notre robot viendra télécharger environ toutes les heures le fichier et intégrera les informations qui sont dedans.
Le fichier devra être le plus à jour possible pour éviter que des produits épuisés apparaissent encore sur Spartoo.
Le fichier doit contenir toutes les informations nécessaires à la catégorisation de vos produits et à la quantification de vos stocks.
Chaque champ peut être obligatoire, recommandé ou facultatif. Si un des champs obligatoire est vide ou mal rempli, le produit ne sera pas intégré.
Vous trouverez plus bas, quelques modèles de fichier CSV ou XML. Le modèle de fichier n'est pas imposé par Spartoo. Toutefois, votre fichier doit contenir toutes les informations obligatoires.
Idéalement, votre fichier doit utiliser l'encodage UTF-8. Dans le cas contraire, merci de nous prévenir pour configurer le traitement du fichier.
Pour les fichiers CSV, le fichier doit utiliser le point-virgule ';'. Dans le cas contraire, merci de nous prévenir pour configurer le traitement du fichier.
Si vous ne disposez pas d'un serveur de partage de fichier (serveur ftp) Spartoo vous conseille l'utilisation de Dropbox.
plus d'information
Définition
-
Produit ou Produit parent : Pour Spartoo, un produit correspond à un modèle et une couleur.
Donc pour modèle qui a deux couleurs, il y aura deux produits ( donc deux identifiants produits différents )
Par contre, un produit peut avoir plusieurs tailles.
-
Produit enfant : Pour Spartoo, un produit enfant correspond à un produit et une taille distincte.
Donc pour modèle qui a une couleur et deux taille, il y aura deux "produits enfant" ( donc un seul identifiant produit et deux identifiants produit enfant )
Le stock doit obligatoirement être associé au produit enfant. c'est d'ailleurs la seule information obligatoire pour les produits enfants. Les autres informations concernent essentiellement les produits parents et peuvent être omises pour les enfants
Liste des informations pour flux CSV
Nom du champ | Champ | Description |
---|---|---|
SKU / Identifiant produit | Obligatoire |
Ce champ contient la valeur "parent SKU" pour les lignes parent et "sku child" pour les lignes child. Les "sku parent" doivent contenir uniquement des caractères alphanumériques (a-Z 0-9 . _ -). Les espaces ne sont pas admis. Le "sku child" peut contenir n'importe quel type de caractère. |
Parent / Child | Obligatoire pour CSV |
Ce champ est obligatoire dans le cas où le fichier contient une ligne par produit et une ligne par produit enfant Il faut dans ce cas nous fournir un moyen didentifier si une ligne est un produit ou un produit enfant Ce champ peut par exemple contenir "Parent" pour les produits parents et "Child" pour les produits enfants |
Parent SKU | Obligatoire pour CSV |
Ce champ est obligatoire dans le cas où le fichier contient une ligne par produit et une ligne par produit enfant Pour chaque produit enfant, il faut qu'on puisse savoir à quel produit parent correspond le produit enfant. Ce champ doit donc contenir l'identifiant produit du produit parent. |
Nom du modèle | Recommandé | Ce champ doit contenir uniquement le nom du modèle, il ne doit pas contenir autres informations (catégorie, couleur, marque) |
Nom de la marque | Obligatoire | |
Code IDU | Recommandé | Ce champ contient le code IDU du produit (voir loi AGEC) |
Genre | Obligatoire |
Genre du produit. Il faut utiliser les codes suivants :
|
Prix du produit | Obligatoire |
Doit obligatoirement être en monnaie 'EUR'. Le prix ne s'applique qu'au produit parent. Il n'est pas possible d'avoir des prix différents pour les produits enfants. |
Catégorie | Obligatoire |
Contient le code de la catégorie du produit. Merci d’éviter les macro-catégories (en rouge) et de privilégier les autres, plus précises. Dans le cas où vous ne pouvez pas nous fournir le code Spartoo, vous pouvez mettre le nom de la catégorie. Il faudra alors utiliser l'outil de matching des catégories pour faire correspondre vos catégories avec les catégories Spartoo. Voir la liste de tous les codes catégories |
Selections | Facultatif |
Permet de spécifier les contextes d'utilisations du produit au moyen d'une liste d'id. L'ensemble des contexte disponibles est fourni ici |
Prix discount | Recommandé |
Contient le prix discounté du produit. Si le taux de discount est rempli est qu'il ne correspond pas au prix discounté, alors c'est le prix discounté qui est pris. |
Taux de discount | Recommandé |
Contient le taux de discount désiré. Toutes les réductions seront arrondies ( au dessous ) par Spartoo par pas de 5%. Par exemple, un taux de discount de 27% sera arrondi à 25%. |
Type de discount | Recommandé | Si une promotion est de type soldes, il faut le préciser dans ce champ. |
Dates promotions | Facultatif |
Les promotions peuvent être configurées avec une date de début et une date de fin. Dans le cas où ces dates ne sont pas précisées, la promotion démarre immédiatemment. Cela peut être intéressant pour les soldes d'indiquer la date de début de la promotion, les discounts démarrreront ainsi directement à la bonne heure, sans avoir à attendre la prochaine intégration du fichier. |
Taille | Obligatoire |
Contient le nom de la taille du produit. Si le champ n’est pas présent ou s’il est vide, le produit sera considéré comme ayant une taille unique. Dans le cas des tailles textiles US, il faut que l'on ait un moyen de savoir si la taille est EU ou US : soit indiquer US dans le nom de la taille, soit ajouter un champ qui indique si la taille est US ou non. |
Quantité en stock | Obligatoire |
Pour chaque taille, le stock doit être précisé. Pour désactiver un produit, il faut mettre le stock à 0. Quand le stock est à 0, le produit est désactivé et n'apparaît plus sur Spartoo. |
EAN | Obligatoire | Code standard international qui identifie chaque produit et qui permet d’être présent sur google shopping et d’autres comparateurs de prix. |
Photos | Obligatoire |
Au moins une photo est obligatoire. Nous recommandons d'avoir au minimum 3 photos. Nous pouvons intégrer au maximum 8 photos. Il faut nous fournir le lien vers la photo. Le nom de fichier doit contenir uniquement des caractères alphanumérique ainsi que les caractères "-" (tiret), "_" (tiret bas) et "." (point). Attention: les espaces dans le nom du fichier ne sont pas autorisés, ainsi que lettres accentuées (par ex. é, à et ñ). La photo ne sera téléchargée qu'une seule fois, puis sera stockée sur nos serveurs, après avoir été redimensionnée aux dimensions Spartoo. Les photos doivent être au format jpg, carrées et au minimum en 350x350 pixels. Si elles sont supérieures ou égales à 800x800 pixels, il y aura un zoom possible sur le site. |
Descriptif produit | Recommandé |
Description texte du produit. La description produit permet d’ajouter un maximum d’informations sur les produits, susceptibles d’aider le client à prendre sa décision d’achat. Une bonne description produit est détaillée et spécifique pour chaque produit. Pour cela, elle peut contenir le nom du modèle, la marque, la couleur, le style du produit, la matière, etc. Il n'est pas possible d'y insérer de l'HTML, à l’exception du saut à la ligne: <br>, ainsi que <b>, <i> et <u>. Le javascript n'est pas autorisé. Elle sera visible uniquement sur la fiche produit. |
Couleur filtre | Recommandé |
Identifiant Spartoo pour la couleur. Utilisé pour les filtres des menus. Si cet identifiant n'est pas fournir, il est possible d'utiliser l'outil de matching couleurs pour faire correspondre les noms de vos couleurs avec les couleurs Spartoo. Voir la liste de tous les codes couleur |
Couleur | Recommandé | Champ texte pour la couleur. Sera affiché sur la fiche produit |
Compositions | Facultatif |
Uniquement pour les chaussures. Nous pouvons intégrer 4 compositions différentes :
Voir la liste de tous les codes composition |
Hauteur de talon | Facultatif |
Uniquement pour les produits chaussures femmes ( escarpins, bottes, etc ... ) Hauteur du talon en centimètres. Il faut indiquer uniquement le chiffre et utiliser un point pour séparer l'unité des décimaux (exemple: 1.7) |
Pays d'origine | Facultatif |
Le pays d'origine du pays Voir les valeurs possibles |
Code HS | Facultatif | Le code HS du produit pour la douane |
Informations additionnelles | Facultatif |
Liste des codes d'informations séparés d'une virgule (ex: '120,521') Voir les valeurs possibles |
Saison | Obligatoire pour MPO |
Saison du produit, composé d'un code "AH" (Automne-Hiver) ou "PE" (Printemps-Été ) suivi de l'année. (ex: AH21, PE22) |
Liste des informations pour flux XML
Balise | Description | Obligatoire |
---|---|---|
reference_partenaire |
Identifiant produit du marchand. C'est le sku qu'identifie un produit d’une marque dans une couleur précise L'identifiant du produit ne peut contenir que des caractères alphanumérique ainsi que les caractères - (tiret) _ (tiret bas) et . (point). |
Oui |
product_name |
Nom du modèle Il ne doit pas contenir la catégorie, la couleur ou la marque du produit Il ne doit pas contenir non plus de caractères ou de balises html |
Non |
manufacturers_name | Nom de la marque du produit | Oui |
code_idu | Code IDU du produit (voir loi AGEC) | Non |
product_sex |
Sexe du produit > Voir les valeurs possibles |
Oui |
product_price | Prix du produit en euro (non obligatoire pour les prix des tailles) | Oui / Non |
color_id |
Couleur destinée aux filtres des menus Si elle n'est pas précisée, le produit ne ressortira pas si un client utilise un filtre sur la couleur > Voir les valeurs possibles |
Non |
product_style |
Catégorie du produit > Voir les valeurs possibles |
Oui |
product_description | Descriptif du produit. Apparait sur la fiche produit. | Non |
product_color | Champ texte libre pour la couleur. Apparaît sur la fiche produit. | Non |
product_quantity |
Stock total d'un produit Ignoré si un ou plusieurs balises size_quantity sont détectés pour le produit. Pour les produits de taille unique il faut obligatoirement une balise product_quantity si la balise size_quantity n'est pas renseigné. |
Non |
size |
Liste des tailles et leur stock. Facultatif pour les produits sans tailles ( Sacs / Accessoires ). Obligatoire Sinon. |
Oui / Non |
size_name |
Nom de la taille > Voir les valeurs possibles |
Oui |
size_quantity | Pour chaque taille, le stock doit être précisé. Pour désactiver un produit, il faut mettre le stock à 0. Quand le stock est à 0, le produit est désactivé et n'apparaît plus sur Spartoo. |
Oui |
size_reference |
Référence du produit à la taille. Ce champ sert uniquement à être renvoyé dans les exports des commandes ou retours. Une bonne pratique est de générer cette référence en concaténant les champs reference_partenaire et size_name à l'aide d'un tiret bas "_". |
Non |
ean | EAN du produit à la taille Obligatoire pour la prestation logistique |
Non / Oui |
photos |
Liste des photos et leur url. Au moins une photo est obligatoire. Nous recommandons d'avoir au minimum 3 photos. Nous pouvons intégrer au maximum 8 photos. La photo ne sera téléchargée qu'une seule fois, puis sera stockée sur nos serveurs, après avoir été redimensionnée aux dimensions Spartoo. Les photos doivent être au format jpg, carrées et au minimum en 350x350 pixels. Si elles sont supérieures ou égales à 800x800 pixels, il y aura un zoom possible sur le site. |
Oui |
url1, url2 ... url8 |
Liens vers les photos Il faut nous fournir un lien vers chaque photo. Le nom de fichier doit contenir uniquement des caractères alphanumérique ainsi que les caractères "-" (tiret), "_" (tiret bas) et "." (point). Les espaces, ainsi que les lettres accentués (par ex. é, à et ñ) ne sont pas autorisés. |
Oui |
country_origin |
Pays d'origine du produit > Voir les valeurs possibles |
Non |
code_hs | Code douane du produit | Non |
heel_height | Hauteur talon en centimètre (cm). Uniquement pour les chaussures femme. Il faut utiliser un point pour séparer l'unité des décimaux (par exemple: 1.5). | No |
product_composition |
Composition de la tige du produit. Uniquement pour les chaussures et les sacs > Voir les valeurs possibles |
Non |
voering_composition |
Composition de la doublure du produit. Uniquement pour les chaussures et les sacs > Voir les valeurs possibles |
Non |
first_composition |
Composition de la semelle intérieure du produit. Uniquement pour les chaussures > Voir les valeurs possibles |
Non |
zool_composition |
Composition de la semelle extérieure du produit. Uniquement pour les chaussures > Voir les valeurs possibles |
Non |
discount |
Permet d'appliquer une promotion sur le produit ou sur une taille. Le champ rate du champ discount concerne la réduction du prix en pourcentage par rapport au champ product_price. Le champ price_discount du champ discount concerne le prix discounté du produit. Le pourcentage de réduction affiché sera calculé. Si les deux champs sont présents, le champ price_discount est prioritaire sur le champ rate. Si le discount est immédiat, il n'y a pas besoin de préciser le champ startdate. Si le champ stopdate n'est pas précisé, la promotion aura une durée par défaut d'un mois. Si la balise sales est précisée, la promotion sera une promotion de soldes. Sinon, ce sera une promotion classique. Indiquer ce paramètre permet aux produits d'être présent sur la page des soldes pendant les périodes de soldes. |
Non |
extra_infos |
Permet de spécifier des informations complémentaires dépendantes du type de produit. Chaque information est constitué d'un id ( > Voir les valeurs ) et d'une valeur sous forme numérique. |
Non |
selections | Permet de spécifier les contextes d'utilisations du produit au moyen d'une liste d'id. L'ensemble des contexte disponibles est fourni ici. |
Non |
Format du paramètre xml
Les champs texte doivent être protégés par des balises CDATA s'ils contiennent des caractères spéciaux qui rendrait le XML invalide.
Format mono pays
<root> <products> <product> <reference_partenaire>string</reference_partenaire> <product_name>string</product_name> <manufacturers_name>string</manufacturers_name> <code_idu>string</code_idu> <product_sex>char</product_sex> <product_price>float</product_price> <product_quantity>int</product_quantity> <color_id>int</color_id> <product_style>int</product_style> <product_description>string</product_description> <product_color>string</product_color> <heel_height>float</heel_height> <country_origin>int</country_origin> <code_hs>int</code_hs> <size_list> <size> <size_name>string</size_name> <size_quantity>int</size_quantity> <size_reference>string</size_reference> <ean>string</ean> <code_hs>int</code_hs> <product_price>float</product_price> <discount> <startdate>timestamp</startdate> <stopdate>timestamp</stopdate> <price_discount>float</price_discount> <rate>int</rate> <sales/> </discount> </size> <!-- ... Plusieurs balises "size" possibles ... --> </size_list> <product_composition>int</product_composition> <voering_composition>int</voering_composition> <first_composition>int</first_composition> <zool_composition>int</zool_composition> <photos> <url1>url</url1> <url2>url</url2> <url3>url</url3> <url4>url</url4> <url5>url</url5> <url6>url</url6> <url7>url</url7> <url8>url</url8> </photos> <discount> <startdate>timestamp</startdate> <stopdate>timestamp</stopdate> <price_discount>float</price_discount> <rate>int</rate> <sales>0/1</sales> </discount> <extra_infos> <info> <id>int</id> <value>float</value> </info> <!-- ... Plusieurs balises "info" possibles ... --> </extra_infos> <selections> <selection>int</selection> <!-- ... Plusieurs balises "selection" possibles ... --> </selections> </product> <!-- ... Plusieurs balises "product" possibles ... --> </products> </root>
Format multi pays
<root> <products> <product> <reference_partenaire>string</reference_partenaire> <manufacturers_name>string</manufacturers_name> <product_sex>char</product_sex> <product_quantity>int</product_quantity> <color_id>int</color_id> <product_style>int</product_style> <heel_height>float</heel_height> <country_origin>int</country_origin> <code_hs>int</code_hs> <languages> <language> <code>string</code> <product_name>string</product_name> <product_description>string</product_description> <code_idu>string</code_idu> <product_color>string</product_color> <product_price>float</product_price> <discount> <startdate>timestamp</startdate> <stopdate>timestamp</stopdate> <price_discount>float</price_discount> <rate>int</rate> <sales /> </discount> </language> <!-- ... Plusieurs balises "language" possibles ... --> </languages> <size_list> <size> <size_name>string</size_name> <size_quantity>int</size_quantity> <size_reference>string</size_reference> <ean>string</ean> <code_hs>int</code_hs> <languages> <language> <code>string</code> <product_price>float</product_price> <discount> <startdate>timestamp</startdate> <stopdate>timestamp</stopdate> <price_discount>float</price_discount> <rate>int</rate> <sales/> </discount> </language> <!-- ... Plusieurs balises "language" possibles ... --> </languages> </size> <!-- ... Plusieurs balises "size" possibles ... --> </size_list> <product_composition>int</product_composition> <voering_composition>int</voering_composition> <first_composition>int</first_composition> <zool_composition>int</zool_composition> <photos> <url1>url</url1> <url2>url</url2> <url3>url</url3> <url4>url</url4> <url5>url</url5> <url6>url</url6> <url7>url</url7> <url8>url</url8> </photos> <extra_infos> <info> <id>int</id> <value>float</value> </info> <!-- ... Plusieurs balises "info" possibles ... --> </extra_infos> <selections> <selection>int</selection> <!-- ... Plusieurs balises "selection" possibles ... --> </selections> </product> <!-- ... Plusieurs balises "product" possibles ... --> </products> </root>
Exemples de fichiers
Fichiers CSV
Fichier CSV avec produit parent / produit enfant classiqueFichier CSV Multi pays
Fichiers XML
Exemple de fichier XML Mono paysExemple de fichier XML Multi pays
Fichiers XSD
Fichier XSD Multi paysListe des codes d'erreurs produit
Code | Level | Description |
---|---|---|
1 | Fatal | La référence partenaire n'est pas assez longue |
2 | Fatal | La référence partenaire n'est pas valide, elle ne peut contenir que des caractères alphanumériques |
3 | Warning | Le nom du produit n'est pas spécifié |
4 | Fatal | La marque n'est pas spécifiée |
5 | Fatal | Le genre n'est pas valide, les seules valeurs possibles sont : H, F, M, K, G, B |
6 | Fatal | Le prix doit être un nombre |
7 | Fatal | le prix est négatif ou non-renseigné |
8 | Warning | Le prix nous semble très grand ( > 1000€ ) |
9 | Fatal | La quantité doit être un nombre entier |
10 | Fatal | La quantité doit être positive |
11 | Warning | La couleur xxx n'existe pas : le produit ne sera pas disponible via les filtres de couleurs |
13 | Fatal | La catégorie xxx n'existe pas |
14 | Warning | Le descriptif produit est vide |
15 | Warning | La couleur d'affichage est vide |
16 | Warning | Pas de liste de tailles : utilisation de la taille unique |
17 | Warning | La composition est spécifiée, mais n'est pas valide |
18 | Fatal | La photo 1 est obligatoire |
19 | Warning | Le taux de discount de la promo doit être compris entre 0 et 100, la promo ne sera pas prise en compte |
20 | Warning | La taille xxx n'existe pas |
200 | Fatal | La taille xxx n'existe pas pour la marque xxx. |
201 | Fatal | Le code EAN est obligatoire |
202 | Fatal | Le code EAN xxx sur la référence xxx en taille xxx est déjà utilisé par la ref : xxx. |
203 | Warning | Le code EAN est trop court ou se finit par '000' |
204 | Warning | Le code EAN xxx existe en plusieurs exemplaires dans le flux. |
205 | Fatal | Référence partenaire trop longue |
23 | Warning | La photo xxx est plus petite que 350x350 : elle sera de mauvaise qualité sur le site |
24 | Warning | La photo xxx est plus petite que 350x350 : elle ne sera pas affichée sur le site |
25 | Fatal | Taille xxx : Impossible de réguler le stock |
26 | Fatal | Pas de stock : le produit ne sera pas créé |
27 | Fatal | Impossible d'accéder à la photo 1 ( url xxx ) |
28 | Warning | Impossible d'accéder à la photo xxx ( url xxx ) |
281 | Fatal | Photo trop volumineuse (xxxo) |
30 | Fatal | La quantité de la taille xxx est trop grande (Quantité max : xxx) |
31 | Warning | Votre compte n'est pas activé sur le site xxx |
32 | Fatal | aucune information produit trouvé pour ce pays |
33 | Fatal | Un produit de genre xxx ne peut pas appartenir à la catégorie xxx |
34 | Fatal | Le mot xxx est blacklisté et ne devrait pas apparaître dans le nom ou la description du produit. |
35 | Fatal | Nom produit trop long, il doit contenir seulement le nom du modèle. Erreur(s) sur le(s) pays: xxx |
341 | Fatal | Le mot xxx est blacklisté et ne devrait pas apparaître dans la description du produit. |
36 | Fatal | Impossible d'importer le produit : le produit a une duplication du couple taille/couleur. |
38 | Fatal | La taille xxx ne peut être définie qu'une fois pour la référence xxx |
39 | Warning | La référence partenaire est présente plusieurs fois dans le flux, les doublons ont été ignorés |
42 | Warning | La saison n'est pas valide. |
43 | Warning | L'information produit xxx correspond à un product_type = xxx et non xxx. |
44 | Warning | La catégorie xxx ne correspond pas à un type de produit xxx mais xxx. |
451 | Fatal | Pas de prix pour la taille xxx du pays xxx. (nécessaire pour un discount) |
452 | Warning | Date de fin du discount dépassé pour la taille xxx du pays xxx. |
453 | Fatal | "rate" (xxx) invalide pour la taille xxx du pays xxx. |
454 | Fatal | "rate" (xxx) > 85% pour la taille xxx du pays xxx. |
455 | Warning | La taille xxx à un prix sur un pays (xxx) non défini pour le produit. |
456 | Warning | La taille xxx à un prix sur xxx identique au prix global sur ce pays. |