Integration by CSV or XML stream

Introduction

The products available on your website can be uploaded on Spartoo either by CSV or XLM flux.
In this case, the CSV or XLM file containing all of your product information must be available on the internet and accessible by our processor.

Every hour, our processor will download the file and it will integrate the information contained within the file.
The file must be as up to date as possible to prevent unavailable items from appearing as in stock on Spartoo.

The file must contain all the information necessary to categorise your products and quantify your stock.

Each field can be either obligatory, recommended, or optional. If one of the obligatory fields is empty or incorrectly filled in, the product will not be uploaded.
At the end you will find a few example CSV and XML file models. The file example is not used by Spartoo. However, your file must contain all of the obligatory information.

Ideally, your file should use UTF-8 encoding. If this isn't the case, please let us know so that we can configure the uploading of your file.
For CSV files, the file should use the semicolon ';'. If this is not the case, please let us know so that we can configure the uploading of your file.


If you do not have a file sharing server (ftp server) Spartoo advises you to use Dropbox.
more information

Definition

  • Product or Parent product : For Spartoo, a product refers to a style and a colour.
    So, for a style that comes in two colours, there will be two products (and two different product identification codes)
    However, a product can have multiple sizes.

  • Child product: For Spartoo, a child product refers to a product and a specific size.
    So, for a style that comes in one colour and two sizes, there will be two "child products"(one product identification code and two child product identification codes)
    The stock must be associated with a child product. This is the only required information for child products. Other information essentially concerns parent products and it may be omitted for child products.

Information List for CSV flux

Field Name Field Description
SKU / Product code Required The SKU identifies each parent product.
It can contain alphanumeric characters as well as the following characters: - (hyphen); _ (underscore); and . (full stop).
A code may be provided for each child product (the code EAN for example), but it is not required.
Parent / Child Required for CSV This field is required if the file contains one line per product and one line per child product.
In this case, you must give us a way to determine if the line is a parent product or a child product.
For example, this field can contain the word "Parent" for parent products and "Child" for child products.
Parent SKU Required for CSV This field is required if the file contains one line per product and one line per child product.
For each child product, you must give us a way to determine which parent product corresponds to which child product.
This field must contact the product code of the parent product.
Style name Recommended This field must only contain the style name, it must not contain any other information (category, colour, brand)
Brand name Required
Gender Required The product gender. Please use the following codes:
  • H : Men
  • F : Women
  • M : Unisex adult
  • B : Boys
  • G : Girls
  • K : Unisex children
Product price Required Must be in the following currency'SEK'.
The price only applies to the parent product. It is not possible to have different prices for child products.
Category Required Contains the category code of the product.
If you cannot provide the Spartoo code, you can put the category name. In this case, you must use the category matching tool to make your categories correspond with Spartoo's categories.

See the list of all category codes
Discount Recommended May contain the desired discount rate or the discounted price.
All discounts are rounded down by Spartoo in increments of 5%. For example, a discount rate of 27% will be rounded down to 25%.
Sale dates Optional Sales may be configured with a start date and an end date.
If the dates are not specified, the sale will start immediately.
During the sale period, it is useful to indicate the start of the sale date so that the discounts will start at the right time without you having to wait until the next file is uploaded.
Size Required Contains the size name of the product.
If this field is not present, or it is empty, the product will be considered as having one size.
In the case of US clothing sizes, we must have a way to distinguish whether the sizes are EU or US sizes: either indicate "US" in the size name, or add a field that indicates if the size is a US size or not.
Stock Quantity Required For each size, the stock must be specified.
To deactivate a product, you must put the stock at 0.
When the stock is 0, the product is deactivated, and it will no longer appear on Spartoo.
Photos Required At least one photo is required.
We would recommend a minimum of 3 photographs. We can integrate a maximum of 8 photos.
You must provide us with a link to the photo. The photo will only be uploaded once, and it will then be saved on our server. Once it is on our server, we will resize it to the dimensions shown on Spartoo.
The photos must be jpg format, square, and a minimum of 350x350 pixels. If the size is equal to or larger than 800x800 pixels, there will be a zoom view on the website.The file name must contain only alphanumeric characters as well as the characters "-" (hyphen), "_" (underscore) and "." (point). Accented letters (eg é, à and ñ) are not allowed.
Product description Recommended Text description of the product.
The product description allows you to add as much information as possible regarding the products, in order to help the customer when making a purchase decision.
A detailed and specific description for each product. For this, the description can contain the name of the model, the brand, the colour, the style of the product, the material, etc.
It is not possible to insert HTML, with the exception of line breaks:
, ainsi que , et . Javascript is not authorised.
It will be visible on the product page.
Colour filter Recommend Spartoo colour code. Used for the menu filters.
If this code is not provided, you may use the colour matching tool to match your colour names with Spartoo colours.

See the list of all colour codes
Colour Recommended Text field for the colour. Will be shown on the product page.
Material Optional Only for shoes.
We can include 4 different compositions:
  • Upper material
  • Lining material
  • Insole material
  • Outer sole material
We do not have a matching tool for materials, you are required to use the Spartoo codes.

See the list of composition codes
Heel height Optional Only for women's footwear products (pumps, boots, etc ...)
Height of the heel in centimetres. It is necessary to indicate only the figure and to use a point to separate the unit from the decimals (example: 1.7)
Season Required for MPO Product season, composed of a code "AH" (Autumn-Winter) or "PE" (Spring-Summer) followed by the year.
(ex: AH21, PE22)

List of information for XML feeds

Tag Description Required
reference_partenaire Merchant product code. It is the sku that identifies a product of a brand in a precise color
The product code may only contain alphanumeric characters as well as the following symbols: - (hyphen); _ (underscore); and . (full stop).
Yes
product_name Style name
Must not contain the category, colour, or brand of the product
No
manufacturers_name Name of the product brand Yes
product_sex Product gender
> See all possible values
Yes
product_price Product price in euros (not compulsory for size prices) Yes / Non
color_id Colour for menu filters
If the colour is not specified, the product will not show up if a customer uses the filter by colour
> See all possible values
No
product_style Product category
> See all possible values
Yes
product_description Product description. Appears on the product page. No
product_color Text field for the colour. Appears on the product page. No
product_quantity Total stock of a product
Ignore if one or more size_quantity markers are detected for the product.
For one-size products, a product_quantity marker is necessary when the size_quantity is not given.
No
size List of sizes and their stock.
Optional for products with sizes (Bags/Accessories). Otherwise required.
Non / Oui
size_name Size name
> See all possible values
Yes
size_quantity For each size, the number in stock must be specified.
To deactivate a product, set the stock at 0.
The product will then no longer appear on Spartoo.
Yes
size_reference Reference of product size.
This field is only used for the exporting of orders and returns. A good idea is to generate this reference by combining the fields reference_partenaire and size_name with an underscore "_".
No
ean EAN of product size No
photos List of photos and their url.
At least one photo is needed.
However, we recommend a minimum of 3 photos. A maximum of 8 photos can be included.
The photo will only be uploaded once, then stored on our servers once it has been resized to fit Spartoo dimensions.
Photos must be in jpg format, square and a minimum of 350x350 pixels. If they are above or equal to 800x800 pixels, a zoom will be available on the site.
Yes
url1, url2 ... url8 Links to the photos
You must provide one link per photo. Only alphanumeric characters and the characters "-" (dash), "_" (underscore) and"." (full stop) can be included in the file name. Spaces and accented letters (e.g. é, à, ñ) are not allowed.
Yes
heel_height Heel height in centimetres (cm). Only for women's shoes. Must be a multiple of 0,5. No
product_composition Material of the product upper. Only for shoes.
> See all possible values
No
voering_composition Material of the product lining. Only for shoes.
> See all possible values
No
first_composition Material of the product insole. Only for shoes.
> See all possible values
No
zool_composition Material of the product outer sole. Only for shoes.
> See all possible values
No
discount Allows you to apply a promotion to a product or size.
The field rate in the discount field applies to the discount by percentage with regards to the field product_price.
The field price_discount in the discount concerns the discounted price of the fixed product. The discount percentage displayed will be calculated.
If both fields are present, the price_discount field takes precedence over the rate field.
If the discount is to start immediately, there's no need to fill in the field start date. If the stopdate field is not specified, the promotion will have a default duration of one month. If the field sales is specified, the offer will be a sales discount. Otherwise, it will be a standard offer. By defining this parameter, the item will appear on the sale page during the sales.
No
extra_infos Specify additional information depending on the type of product.
Each information is constituted by an id ( > See values ) and a numerical value.
No
selections Specify the context of use thanks to a id list
All the possible id are available here.
No


XML parameter format


The text fields must be protected by CDATA tags if they contain special characters that would make the XML invalid.

Format single country

<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>
				<!-- ... Multiple "size" tags possible ... -->
			</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>
				<!-- ... Multiple "info" tags possible ... -->
			</extra_infos>
			<selections>
				<selection>int</selection>
				<!-- ... Multiple "selection" tags possible ... -->
			</selections>
	   </product>
	   <!-- ... Multiple "product" tags possible ... -->
   </products>
</root>


Format multi country

<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>
				<!-- ... Multiple "language" tags possible ... -->
			</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>
						<!-- ... Multiple "language" tags possible ... -->
					</languages>
				</size>
				<!-- ... Multiple "size" tags possible ... -->
			</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>
				<!-- ... Multiple "info" tags possible ... -->
			</extra_infos>
			 <selections>
				<selection>int</selection>
				<!-- ... Multiple "selection" tags possible ... -->
			</selections>
	   </product>
	   <!-- ... Multiple "product" tags possible ... -->
   </products>
</root>


File Examples

CSV files

CSV file with classic parent / child product

Fichier CSV Multi pays

XML files

XML file example

File example XML Multi country

Files XSD

File XSD Multi country

List of product error codes
Code Level Description
1 Fatal Referensnumret partner är för kort
2 Fatal Partnerreferensen stämmer inte, den ska bara innehålla alfanumeriska tecken
3 Warning Artikelns namn saknas
4 Fatal Inget märke är angivet
5 Fatal Kön är inte rätt angett, endast följande val är möjliga: H, F, M, K, G och B
6 Fatal Priset ska vara i siffror
7 Fatal Priset är negativt eller ej angett
8 Warning Priset verkar för stort ( > 9000 kr)
9 Fatal Kvantiteten ska vara ett heltal
10 Fatal Kvantiteten måste vara ett positivt tal
11 Warning Färgen xxx existerar inte: artikeln kommer inte gå att söka via färgfiltren
13 Fatal Kategorin xxx existerar inte
14 Warning Produktbeskrivning saknas
15 Warning Färgbeskrivning saknas
16 Warning Ingen lista med storlekar: använd one size
17 Warning Kompositionen är angiven men inte rätt
18 Fatal Foto nr 1 är obligatoriskt
19 Warning Rabatten kommer inte att visas - procentsatsen för rabatten ska ligga mellan 0 och 100
20 Warning Storleken xxx existerar inte
200 Fatal Storleken xxx finns inte för varumärket xxx.
201 Fatal EAN-kod krävs
202 Fatal EAN-koden xxx på produktreferensen xxx i storlek xxx används redan i referensen : xxx.
203 Warning EAN-koden är för kort eller slutar på "000".
204 Warning EAN-koden xxx finns i flera exemplar i strömmen.
205 Fatal Partnerreferensen är för lång
23 Warning Fotot xxx är i mindre format än 350x350 och kvaliteten blir dålig på sajten
24 Warning Fotot xxx är i mindre format än 350x350 och kan inte visas på sajten
25 Fatal Storlek xxx: Omöjligt att följa upp och kontrollera lagersaldot
26 Fatal Ej lagerförd: artikeln skapas inte
27 Fatal Ingen åtkomst för foto nr 1: xxx ( url xxx )
28 Warning Ingen åtkomst för detta foto: xxx ( url xxx )
281 Fatal Fotot är för stort (xxxo)
30 Fatal Antalet artiklar i storlek xxx är för stort (Maximalt antal: xxx)
31 Warning Ditt konto är inte aktiverat på hemsidan xxx
32 Fatal Ingen information har hittats för detta land
33 Fatal En produkt för xxx kan inte läggas in kategorin xxx
34 Fatal Ordet xxx är blockerat och bör inte finns med i produktnamnet eler beskrivningen av produkten.
35 Fatal Produktnamnet är för långt, det här fältet ska endast innehålla namnet på modellen. Felet/felen gäller för landet/länderna: xxx
341 Fatal Ordet xxx är blockerat och bör inte finns med i produktbeskrivningen.
36 Fatal Det går inte att importera produkten: produkten har en dubblering av storlek / färgpar.
38 Fatal Storleken xxx kan bara användas en gång för produktreferensen xxx
39 Warning Partnerreferensen finns flera gånger i flödet, dubbletter har ignorerats.
42 Warning Säsongen är inte giltig.
43 Warning Informationen om produkten xxx motsvarar product_type = xxx och inte xxx.
44 Warning Kategorin xxx motsvarar inte till produkttypen xxx utan till xxx.
451 Fatal Inget pris för storlek xxx i land xxx. (krävs för rabatt)
452 Warning Slutdatum för den rabatt som överskrids för storleken xxx i landet xxx.
453 Fatal "rate" (xxx) ogiltig för landets storlek xxx xxx.
454 Fatal "rate" (xxx) > 85% för landets storlek xxx xxx.
455 Warning Storleken xxx har ett pris på ett land (xxx) som inte är definierat för produkten.
456 Warning Storlek xxx har ett pris på xxx som är identiskt med det globala priset på detta land.