Importul de produse

Adresa URL a serviciului Webservice : https://sws.spartoo.ro/mp/xml_import_products.php

Acest webservice este utilizat pentru a crea și actualiza produsele pe site-ul Spartoo.
Pentru fiecare produs trimis, serviciul web va retrimite un cod de eroare care să indice dacă totul a funcționat corect sau nu. Unele erori sunt blocate (fatal), altele nu sunt blocate (warning).

Acest serviciu web este folosit pentru a crea produse și pentru a actualiza catalogul . Poate fi folosit pentru a trimite întregul catalog sau doar câteva produse.

Frecvența apelurilor:
- Când acest serviciu web este utilizat pentru a face o actualizare completă a catalogului, vă recomandăm să îl utilizați o dată la 6 ore.
- Când acest serviciu web este folosit pentru a face o actualizare parțială (doar pentru câteva produse), acceptăm o frecvență maximă a unui apel la fiecare 10 minute.

Acest serviciu web funcționează în modul „Actualizare” și nu în modul „Suprascriere”. Adică produsele care nu sunt trimise în XML nu vor fi șterse.
Pentru a elimina un produs de pe site, trebuie să vă puneți stocul la 0.

Lista de parametri

Parametrii de la acest serviciu web trebuie obligatoriu să fie transmis în POST

Paramètre Descriere
partener Trebuie să conțină identificatorul vostru unic :
xml Șir de caracter XML care conține lista elementelor care trebuie create sau actualizate


Parametrii opționali care pot fi transmiși în POST

asynchrone
Paramètre Descriere
force_description Setați 1 dacă doriți să forțați actualizarea des descrierilor produse: ștergeți descrierile existente, editați descrierea unui produs din stoc zero, etc.
force_overwrite Setați1 dacă doriți să corectați erorile de integrare legate de o scădere semnificativă a prețurilor
async Setați la 1 dacă doriți să utilizați metoda asynchrone


Format parametru xml


Câmpurile de text trebuie să fie protejate de balize CDATA dacă conține caractere speciale care ar putea face XML invalid.

Format mono country

<root>
	<products>
		<product>
			<reference_partenaire>string</reference_partenaire>
			<product_name>string</product_name>
			<manufacturers_name>string</manufacturers_name>
			<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>
				<!-- ... Mai multe balize "size" posibile ... -->
			</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>
				<!-- ... Mai multe balize "info" posibile ... -->
			</extra_infos>
			<selections>
				<selection>int</selection>
				<!-- ... Mai multe balize "selection" posibile ... -->
			</selections>
		</product>
		<!-- ... Mai multe balize "product" posibile ... -->
	</products>
</root>


Format multi-țară

<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>
					<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>
				<!-- ... Mai multe balize "language" posibile ... -->
			</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>
						<!-- ... Mai multe balize "language" posibile ... -->
					</languages>
				</size>
				<!-- ... Mai multe balize "size" posibile ... -->
			</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>
				<!-- ... Mai multe balize "info" posibile ... -->
			</extra_infos>
			 <selections>
				<selection>int</selection>
				<!-- ... Mai multe balize "selection" posibile ... -->
			</selections>
		</product>
		<!-- ... Mai multe balize "product" posibile ... -->
	</products>
</root>


Descrierea câmpurilor XML de intrare


Balise Descriere Obligattoriu
reference_partenaire Codul de identificare al produsului furnizorului. Acesta este codul SKU care identifică un produs al unui brand într-o anumită culoare
Codul de identificare al produsului poate conține doar caractere alfanumerice, precum și caracterele - (tiret) _ (tiret bas) et . (point).
Oui
product_name Numele modeluui
INu trebuie să conțină categoria, culoarea sau marca produsului
De asemenea, nu trebuie să conțină caractere sau elemente html
Nu
manufacturers_name Numele brandului produsuluit Oui
code_idu Code IDU de la produs (vezi legea AGEC) Non
product_sex Sex produs
> Vezi valorile posibile
Oui
product_price Prețul produsului în euro (nu este obligatoriu pentru prețurile pe mărimi) Oui / Non
color_id Culoare destinată filtrelor din meniuri
Dacă nu este specificată, produsul nu va apărea în rezultatele căutării dacă un client utilizează un filtru după culoare
> Vezi valorile posibile
Nu
product_style Categoria produsului
> Vezi valorile posibile
Oui
product_description Descrierea produsului permite adăugarea unui număr cât mai mare de informații despre produse, care pot ajuta clientul să ia decizia de achiziție.
Une bonne description produit est détaillée et spécifique pour chaque produit. În acest scop, ea poate conține denumirea modelului, marca, culoarea, stilul produsului, materialul etc.
Il n'est pas possible d'y insérer de l'HTML, à l’exception du saut à la ligne:
, "
", ainsi que , "", "" et . JavaScript nu este permis.
Aceasta va fi vizibilă doar pe pagina produsului.
Numărul maxim de caractere este de 65 000.
Nu
product_color Câmp de text liber pentru culoare. Apare pe fișa produsului. Nu
product_quantity Stocul total al unui produs
Se ignoră dacă se detectează una sau mai multe etichete size_quantity pentru produs.
Pentru produsele cu mărime unică, este obligatorie prezența unei etichete product_quantity dacă baliza size_quantity nu este specificată..
Nu
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 Pentru fiecare mărime, trebuie specificat stocul disponibil.
Pentru a dezactiva un produs, trebuie să setați stocul la 0.
Când stocul ajunge la 0, produsul este dezactivat și nu mai apare pe Spartoo.
Oui
size_reference Referința produsului în funcție de mărime.
Acest câmp este destinat exclusiv includerii în fișierele de export ale comenzilor sau retururilor.. O bună practică este generarea acestei referințe prin concatenarea câmpurilor reference_partenaire și size_name ” folosind o liniuță de jos "_".
Nu
ean EAN de la produs la mărime
Obligatoriu pentru prestarea serviciilor logistice
Non / Oui
foto Lista fotografiilor și adresele URL ale acestora.
Este obligatorie cel puțin o fotografie.
Vă recomandăm să aveți cel puțin 3 fotografii. Putem include maximum 8 fotografii
Fotografia va fi încărcată o singură dată, apoi va fi stocată pe serverele noastre, după ce va fi redimensionată la dimensiunile Spartoo.
Fotografiile trebuie să fie în format jpg, pătrate și să aibă cel puțin 350x350 pixeli. Dacă au dimensiuni mai mari sau egale cu 800x800 pixeli, pe site va fi posibilă mărirea imaginii.
Oui
url1, url2 ... url8 Linkuri către fotografii
Trebuie să ne furnizați un link către fiecare fotografie. Numele fișierului trebuie să conțină numai caractere alfanumerice, precum și caracterele „-” (liniuță), „_” (liniuță de subliniere) și „.” (punct). Spațiile, precum și literele accentuate (de exemplu, é, à și ñ) nu sunt permise.
Oui
country_origin Țara de origine a produsului
> Vezi valorile posibile
Non
code_hs Codul vamal al produsului Nu
heel_height Înălțimea tocului în centimetri (cm). Valabil numai pentru încălțămintea de damă. Trebuie să folosiți un punct pentru a separa unitatea de zecimale (de exemplu: 1,5). No
product_composition Compoziția tălpii produsului. Numai pentru încălțăminte și genți
> Vezi valorile posibile
Non
voering_composition Compoziția căptușelii produsului. Valabil numai pentru încălțăminte și genți
> Vezi valorile posibile
Non
first_composition Compoziția tălpii interioare a produsului. Numai pentru încălțăminte
> Vezi valorile posibile
Non
zool_composition Compoziția tălpii exterioare a produsului. Numai pentru încălțăminte
> Voir les valeurs possibles
Non
discount Permite aplicarea unei promoții la produs sau la o mărime.
Campul rate din campul discount se referă la reducerea procentuală a prețului față de valoarea de referință product_price.
Campul price_discount du champ discount se referă la prețul redus al produsului. Procentul de reducere afișat va fi calculat.
Dacă ambele câmpuri sunt prezente, câmpul price_discount are prioritate față de câmpul rate.
Dacă reducerea este aplicată imediat, nu este necesar să se precizeze câmpul startdate. Dacăcampul stopdate dacă nu se specifică altfel, promoția va avea o durată implicită de o lună. Daca baliza sales este specificat, promoția va fi una de lichidare de stoc. În caz contrar, va fi o promoție clasică. Setarea acestui parametru permite afișarea produselor pe pagina de lichidare de stoc în perioadele de lichidare de stoc. (1 corespunde unei categorii de lichidare de stoc, iar 0 unei categorii de reduceri obișnuite)
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
languages Permite gestionarea distribuției în mai multe țări și specificarea datelor traduse, precum și a prețurilor diferite în funcție de țară (denumirea produsului, descrierea, prețul de bază, culoarea, codul IDU și promoția)).
Fiecare bloc conține una sau mai multe etichete language caracterizate printr-un code de țară/limbă obligatorie (ex: FR, IT, DE, etc.).

Gestionarea în funcție de mărime : Această etichetă poate fi adăugată și sub fiecare etichetă size pour appliquer des prix et des promotions spécifiques par taille et par pays.

Reguli esențiale de comportament :
Stocuri globale : Nu este posibil să se gestioneze cantități diferite pentru fiecare țară. Stocul (cantitatea) rămâne strict global la nivel de dimensiune.
Dezactivarea produsului pe țări : Dacă o țară/limbă este eliminată din bloc languages la nivelul produsului (de exemplu: eticheta FR este prezentă, dar eticheta IT lipsește), produsul va fi dezactivat automat (retras) pentru această țară.
Retragerea unei țări de pe o mărime: Dacă o țară este exclusă din bloc languages la nivelul unei mărimi (de exemplu, mărimea 42), dar acea țară rămâne activă la nivelul general al produsului, mărimea 42 nu va fi dezactivată pentru aceasta țara, Ea va rămâne disponibilă la vânzare, dar nu va mai avea prețul specific pentru mărimea respectivă și se va alinia automat, în mod implicit (fallback), la prețul general al produsuluit (product_price) definit pentru această țară. Pentru a dezactiva complet o mărime, trebuie să setați stocul total al acesteia la 0.
Non


Exemplu de parametru xml

<root>
	<products>
		<product>
			<reference_partenaire>98</reference_partenaire>
			<product_name><![CDATA[ALL STAR HI]]></product_name>
			<manufacturers_name><![CDATA[Converse]]></manufacturers_name>
			<product_sex>M</product_sex>
			<product_price>64.99</product_price>
			<product_quantity>5</product_quantity>
			<color_id>8</color_id>
			<product_style>10010</product_style>
			<product_description><![CDATA[Mitic printre mitici, Chuck Taylor All Star de Converse un must have indispensabil. 
În versiunea tip gheată și cu partea exterioară confecționată din pânză și imprimeuri clasice, el va rămâne întodeaune un must have atemporal și trendy !
]]></product_description>
			<product_color><![CDATA[Roșu]]></product_color>
			<country_origin>73</country_origin>
			<code_hs>64059090</code_hs>
			<size_list>
			 <size>
				<size_name>38</size_name>
				<size_quantity>4</size_quantity>
				<size_reference>98_38</size_reference>
				<ean>123456789011></ean>
			 </size>
			 <size>
				<size_name>39</size_name>
				<size_quantity>1</size_quantity>
				<size_reference>98_39</size_reference>
				<ean>123456789012></ean>
			 </size>
			</size_list>
			<product_composition>4</product_composition>
			<photos>
				<url1>https://imgext.spartoo.com/photos/98/98/98_350_A.jpg</url1>
				<url2>https://imgext.spartoo.com/photos/98/98/98_350_B.jpg</url2>
				<url3>https://imgext.spartoo.com/photos/98/98/98_350_C.jpg</url3>
				<url4>https://imgext.spartoo.com/photos/98/98/98_350_D.jpg</url4>
				<url5>https://imgext.spartoo.com/photos/98/98/98_350_E.jpg</url5>
				<url6>https://imgext.spartoo.com/photos/98/98/98_350_F.jpg</url6>
				<url7>https://imgext.spartoo.com/photos/98/98/98_350_G.jpg</url7>
				<url8>https://imgext.spartoo.com/photos/98/98/98_350_H.jpg</url8>
			</photos>
			<discount>
				<startdate>1199170800</startdate>
				<stopdate>1204354800</stopdate>
				<rate>20</rate>
			</discount>
		</product>
	</products>
</root>

Transfer de flux prin fișier

De asemenea, este posibil să transferați fluxul (XML sau ZIP) printr-un fișier. Pentru a face acest lucru, corpul cererii trebuie să conțină numai fișierul.
Parametrii diverși (precum« partener », « force_description », « force_overwrite », …) trebuie transmise obligatoriu în GET.

Prețuri și discounturi în funcție de mărime

Balizele de preț și reducere în funcție de mărime au fost introduse pentru a permite o diferențiere precisă a prețurilor în cadrul aceluiași produs.
Ele nu trebuie utilizate decât în cazul în care o mărime are un preț diferit de prețul general al produsului.
Prețul stabilit la nivel de produs constituie referința principală. Etichetele specifice unei mărimi au rolul de a suprataxa acest preț numai atunci când este necesară o excepție (de exemplu: mărimi speciale, costuri suplimentare pentru materiale, sfârșitul unei serii parțiale etc.).
Este strict interzisă utilizarea balizelor de preț sau de reducere pe mărimi atunci când toate mărimile au același preț ca produsul principal. În acest caz, prețul trebuie definit numai la nivel global al produsului.

Formatul XML returnat


<root>
	<products>
		<product>
			<reference_partenaire>string</reference_partenaire>
			<status>string</status>
			<action>string</action>
			<errors>
				<error>
					<id>int</id>
					<description>string</description>
					<level>string</level>
				</error>
				<!-- ... Mai multe balize "error" posibile ... -->
			</errors>
		</product>
		<!-- ... Mai multe balize "product" posibile ... -->
	</products>
	<errors>int</errors>
</root>


Lista codurilor de eroare ale serviciului web


Cod Descriere
1 Nici o eroare de parametru
-1 Parametrul partenaire nu este trecut în parametru sau este gol
-2 Parametrul partenerului nu există
-11 Parametrul xml nu este trecut în parametru sau este gol
-15 Eroare de sintaxă XML, verificați fișierul dvs XML
-428 Contul dvs a fost dezactivat. Nu mai puteți efectua solicitări către serviciile web
-429 Ați efectuat prea multe solicitări către serviciile web peste limita la oră

Descrierea câmpurilor răspunsului XML


Balise Descriere
reference_partenaire Identificator produs vânzător
status OK dacă produsul a fost inserat în baza de date
KO dacă produsul nu a fost inserat
acțiune Lista acțiunilor posibile :
  • created : produsul a fost creat.
  • not created : produsul nu a fost creat. Notă : un produs poate avea un statut 'OK' însă să nu fie creat din cauza unor 'Warning'.
  • updated : produsul a fost actualizat.
  • not updated : produsul nu a fost actualizat. Notă : un produs poate avea un statut 'OK' dar să nu fie actualizat din cauza unor 'Warning'.
errors Lista erorilor de prelucrare :
  • id : cod eroare produs
  • level : nivel de eroare
    • Warning : nu împiedică integrarea produsului
    • Fatal : blochează integrarea produsului
  • descriere : descriere text eroare


Lista codurilor de eroare a produsului


Cod Level Descriere
1 Fatal Referința partenerului nu este suficient de lungă
2 Fatal Referința vânzător nu este validă, aceasta poate conține numai caractere alfanumerice
3 Warning Numele produsului nu este specificat
4 Fatal Brandul nu este specificat
5 Fatal Stilul nu este valid, singurele valori posibile sunt: : H, F, M, K, G, B
6 Fatal Prețul trebuie să fie un număr
7 Fatal Prețul este negativ sau nu este indicat
8 Warning Prețul pare foarte mare ( > 5000 Lei )
195 Fatal Noul preț nu poate conține mai mult de xxx cifre
81 Fatal Prețul nu poate fi mai mare de 800 de lei
9 Fatal Cantitatea trebuie să fie un număr întreg
10 Fatal Cantitatea trebuie să fie pozitivă
11 Warning Culoarea xxx nu există :produsul nu va fi disponibil utilizânf filtrele de culoare
13 Fatal Categoria xxx nu există
16 Warning Nici o listă de mărimi : utilizare mărime unică
17 Warning Compoziția este specificată, dar nu este validă
18 Fatal Fotografia 1 este obligatorie
19 Warning Rata de discount a promoției trebuie să fie cuprinsă între 0 și 100, dacă nu promoția nu va fi luată în considerare
20 Warning Mărimea xxx nu există
200 Warning Mărimea xxx nu există pentru brandul xxx.
201 Fatal Codul EAN este obligatoriu
202 Fatal Codul EAN xxx de la referința xxx de mărime xxx este deja utilizat de către ref: xxx.
205 Fatal Referința partenerului este prea lungă
23 Warning Fotografia xxx este mai mică decât 350x350 : ea va avea o calitate inferioară pe site
24 Warning Fotografia xxx este mai mică decât 350x350 : aceasta nu va fi afișată pe site
25 Fatal Taille xxx :
26 Fatal Nu există stoc: produsul nu va fi conceput
27 Fatal Nu se poate accesa la fotografia 1( url xxx )
28 Warning Nu se poate accesa la fotografia xxx ( url xxx )
30 Fatal Cantitatea mărimii xxx este prea mare (Cantitate max : xxx)
33 Fatal Un produs de genul xxx nu poate aparține categoriei xxx
34 Fatal Cuvântul xxx este în blacklist și nu trebuie să apară în denumirea sau descrierea produsului.
35 Fatal Numele produsului este prea lung, trebuie să conțină doar numele modelului. Eroare (erori) la țara (țări): xxx
341 Fatal Termenul xxx este în blacklist și nu trebuie să apară în descrierea produsului
36 Fatal Imposibil de a importa produsul: produsul are deja o duplicare mărime / culoare.
37 Fatal Acest produs nu conține nicio informație lingvistică pentru un site activ.
32 Fatal Nici o informație de localizare pentru acest produs pentru această țară.
38 Fatal Mărimea xxx poate fi setată o singură dată pentru referința xxx
39 Warning Referința partenerului este prezentă de mai multe ori în flux, duplicatele au fost ignorate
451 Fatal Fara preț pentru marime xxx din tara xxx. (necesar pentru o reducere)
452 Warning Data de încheiere a reducerii a fost depășită pentru mărimi xxx din țară xxx.
453 Fatal "rată" (xxx) invalid pentru mărime xxx din țară xxx.
454 Fatal "rată" (xxx) > 85% pentru mărime xxx din țară xxx.
455 Warning Mărimea xxxare un preț într-o o țară (xxx)nu este definit pentru produs .
456 Warning Mărimea xxx are un preț pe xxx identic cu prețul total din această țară .
194 Fatal Căderea noului preț nu poate fi mai mare decât xxx%


Exemple de returnări XML


Exemplu de răspuns la un apel de serviciu web KO :

<root>
	<products></products>
	<errors>-1</errors>
</root>

Exemplu de răspuns la un apel de serviciu web OK :

<root>
	<products>
		<product>
		<reference_partenaire>EEAJBCC</reference_partenaire>
		<status>KO</status>
		<action>not created</action>
		<errors>
			<error>
				<id>14</id>
				<description></description>
				<level>warning</level>
			</error>
			<error>
				<id>4</id>
				<description>Brandul nu este specificat</description>
				<level>fatal</level>
			</error>
		</errors>
		</product>
		<product>
			<reference_partenaire>KJHGFDS</reference_partenaire>
			<status>OK</status>
			<action>created</action>
		</product>
	</products>
	<errors>1</errors>
</root>

Fișiere XSD

Fișier XSD Multinațional




Saitoo - Assistant
Bonjour ! Comment puis-je vous aider aujourd'hui ?