Import produktów

URL Webservice : https://sws.spartoo.pl/mp/xml_import_products.php

Niniejszy webservice służy do tworzenia i aktualizacji produktów na stronie Spartoo.
Dla każdego wysłanego produktu, webservice generuje kod błędu, wskazujący czy wszystko przebiegło pomyślnie, czy nie. Niektóre błędy mają charakter krytyczny (fatal), inne tylko formę ostrzeżenia (warning).

Ten webservice służy do tworzenia produktów i aktualizacji Państwa katalogu. Może być użyty do wysłania całości katalogu, lub tylko kilku produktów.

Częstotliwość użycia:
- Kiedy ten webservice jest używany do zrobienia kompletnej aktualizacji katalogu, polecamy używać go tylko jeden raz co 6 godzin.
- Kiedy ten webservice jest używane do zrobienia częściowej aktualizacji (tylko kilku produktów), akceptujemy maksymalną częstotliwość jednego użycia co 10 minut.

Ten webservice działa w trybie "Aktualizacja", a nie w trybie "Zniszczenia". Znaczy to, że produkty które nie są wysłane w XML nie zostają usunięte.
Aby wycofać produkt ze strony, należy ustawić jego stock na 0.

Lista parametrów

Parametry tego webservice muszą uzyskać obowiązkowo status POST

Parametr Opis
partenaire Musi zawierać Państwa identyfikator:
xml Ciąg znaków XML zawierający listę produktów do utworzenia lub zaktualizowania


Parametry nieobowiązkowe, które mogą uzyskać status POST

Parametr Opis
force_description Wybierz 1 jeżeli chcesz uaktualnić opis produktu: usunąć dotychczasowy opis, edytować nowy opis produktu w magazynie, itd.
force_overwrite Wybierz 1 jeśli chcesz skorygować błędy w integracji związane ze znaczną obniżką cen


Format parametru xml


Rubryki tekstowe muszą być chronione przez tagi CDATA, jeżeli zawierają znaki specjalne, które mogłyby spowodować nieprawidłowość XML.

Format jeden kraj

<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>
				<!-- ... Różne tagi "size" możliwe ... -->
			</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>
				<!-- ... Różne tagi "info" możliwe ... -->
			</extra_infos>
			<selections>
				<selection>int</selection>
				<!-- ... Różne tagi "selection" możliwe ... -->
			</selections>
		</product>
		<!-- ... Różne tagi "product" możliwe ... -->
	</products>
</root>


Format wiele krajów

<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>
				<!-- ... Różne tagi "language" możliwe ... -->
			</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>
						<!-- ... Różne tagi "language" możliwe ... -->
					</languages>
				</size>
				<!-- ... Różne tagi "size" możliwe ... -->
			</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>
				<!-- ... Różne tagi "info" możliwe ... -->
			</extra_infos>
			 <selections>
				<selection>int</selection>
				<!-- ... Różne tagi "selection" możliwe ... -->
			</selections>
		</product>
		<!-- ... Różne tagi "product" możliwe ... -->
	</products>
</root>


Opis rubryk XML wprowadzenia


Tag Opis Obowiązkowa
reference_partenaire Identyfikacja produktu sprzedawcy. Sku identyfikuje produkt danej marki w konkretnym kolorze
Indywidualne oznaczenie produktu, jego numer, może zawierać wyłącznie znaki alfanumeryczne oraz znaki - (myślnik) _ (podkreślenie) i . (kropka).
NonTak
product_name Nazwa modelu
Nazwa nie może zawierać kategorii, koloru ani marki produktu.
Nazwa nie może także zawierać znaków ani symboli html.
Nie
manufacturers_name Nazwa marki danego produktu Tak
product_sex Płeć, przeznaczenie, produktu
> Zobacz dopuszczalne wartości
Tak
product_price Cena produktu w euro (nieobowiązkowa dla cen rozmiarów) Tak / Nie
color_id Kolor przeznaczony do filtru w menu na stronie
Jeżeli nie został podany, produkt nie pojawi się w wynikach wyszukiwania z pomocą filtru kolor.
> Zobacz dopuszczalne wartości
Nie
product_style Kategoria produktu
> Zobacz dopuszczalne wartości
Tak
product_description Opis produktu. Wyświetla się na karcie produktu. Nie
product_color Rubryka na wpisanie koloru. Wyświetla się na karcie produktu. Nie
product_quantity Całkowity stan magazynowy produktu
Zignorowano jeśli jeden, lub wiele znaczników size_quantity wykrytych dla produktu.
Dla produktów o rozmiarze uniwersalnym, jest konieczne oznaczenie product_quantity jeśli ozaczenie balise size_quantity nie jest wskazane.
Nie
size Spis rozmiarów i ich ilości.
Informacja opcjonalna, dla produktów, które nie mają rozmiarów (torby/akcesoria). Dla innych, obowiązkowa.
Tak / Nie
size_name Nazwa rozmiaru
> Zobacz dopuszczalne wartości
Tak
size_quantity Dla każdego rozmiaru musi być sprecyzowana dostępna ilość.
Aby dezaktywować produkt należy zmienić dostępną ilość na 0.
Kiedy stock jest ustawiony na 0, produkt jest dezaktywowany i nie jest widoczny w Spartoo
Tak
size_reference Oznaczenie produktu według rozmiaru.
Ta rubryka służy wyłącznie do przesłania danych w ramach eksportu zamówień lub zwrotów. Najlepiej jest wygenerować wpis w tej rubryce łącząc reference_partenaire i size_name za pomocą podkreślnika (dolnego myślnika) "_".
Nie
ean EAN dla danego rozmiaru Nie
zdjęcia Lista zdjęć i ich url.
Wymagane jest przynajmniej jedno zdjęcie.
Zalecamy dodanie przynajmniej 3 zdjęć. Możliwe jest dodanie maksymalnie 8 zdjęć.
Zdjęcie zostanie probrane tylko raz i po zmianie rozmiaru na wymiary Spartoo zostanie zapisane na naszych serwerach.
Zdjęcia muszą mieć format jpg, muszą być kwadratowe i mieć co najmniej 350 x 350 pikseli. Jeśli są większe lub równe 800 x 800 pikseli, możliwe będzie zrobienie zoomu na stronie.
Tak
url1, url2 ... url8 Linki do zdjęć
Należy udostępnić nam link do każdego zdjęcia. Nazwa pliku powinna zawierać wyłącznie znaki alfanumeryczne, a także znaki "-" (myślnik), "_" (podkreślnik) i "." (kropka). Spacje i litery akcentowane (np. ą, ż) nie są dozwolone.
heel_height Wysokość obcasa w centymetrach (cm). Dotyczy wyłącznie obuwia damskiego. Wysokość musi być wielokrotnością 0,5. No
product_composition Skład cholewki. Wyłącznie dla butów.
> Zobacz dopuszczalne wartości
Nie
voering_composition Skład wyściółki w bucie. Dotyczy wyłącznie obuwia.
> Zobacz dopuszczalne wartości
Nie
first_composition Skład wkładki wewnętrznej. Dotyczy wyłącznie obuwia.
> Zobacz dopuszczalne wartości
Nie
zool_composition Skład podeszwy. Dotyczy wyłącznie obuwia.
> Zobacz dopuszczalne wartości
Nie
discount Umożliwia zastosowanie promocji na produkt lub na rozmiar.
Rubryka rate, w rubryce discount dotyczy procentowej obniżki w stosunku do ceny wpisanej w rubryce product_price.
Rubryka price_discount w rubryce discount dotyczy kwotowej obniżki stałej ceny. Procent wyświetlonej obniżki zostanie wyliczony.
Jeżeli obie rubryki są dostępne, rubryka price_discount ma pierwszeństwo przed rubryką rate.
Jeśli rabat jest natychmiastowy, nie ma potrzeby wypełniania rubryki startdate. Jeśli pole stopdate nie zostanie określone, promocja będzie trwała domyślnie jeden miesiąc. Jeżeli zakładka sales została określona, promocja będzie promocją w czasie wyprzedaży. W przeciwnym wypadku chodzi o zwykłą promocję poza wyprzedażą. Określenie tego parametru powoduje, że produkty wyświetlane będą na stronie wyprzedaży w okresie, gdy trwa wyprzedaż. I
Nie
extra_infos Rubryka dotyczy dodatkowych informacji w zależności od typu produktu.
Każda informacja skonstruowana jest z id ( > Zobacz wartości ) oraz z wartości w formie liczbowej.
Nie
selekcja Pozwala określić kontekst wykorzystania produktu przy pomocy listy id.
Wszystkie konteksty są określone i dostępne ici.
Nie


Przykład 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[Kultowy model z kolekcji Converse, Chuck Taylor All Star, nigdy nie wychodzi z mody.
Marka proponuje tym razem ten fantastyczny model w wersji wysokiej, wykonany z kolorowego płótna. Ponadczasowa klasyka gatunku!
]]></product_description>
			<product_color><![CDATA[Czerwony]]></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>

Format XML zwrócony


<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>
				<!-- ... Różne tagi "error" możliwe ... -->
			</errors>
		</product>
		<!-- ... Różne tagi "product" możliwe ... -->
	</products>
	<errors>int</errors>
</root>


Lista kodów błędów webservice


Kod Opis
1 Nie ma błędu parametrów
-1 Parametr partenaire nie uzyskał statusu parametru lub jest pusty
-2 Parametr firmy partnerskiej nie istnieje
-11 Parametr xml nie uzyskał statusu parametru lub jest pusty
-15 Błąd składniowy XML, należy sprawdzić plik XML
-428 Twoje konto zostało dezaktywowane. Nie będziesz już mógł/mogła się do niego zalogować
-429 W ciągu ostatniej godziny wykonałeś/aś zbyt wiele połączeń z tym serwisem internetowym

Opis rubryk odpowiedzi XML


Balise Opis
reference_partenaire Oznaczenie (numer) produktu partnera
status OK jeżeli produkt jest wprowadzony do bazy danych
KO jeżeli produkt nie mógł być wprowadzony
action Lista możliwych działań:
  • created: produkt został utworzony.
  • not created: produkt nie został utworzony. Uwaga: produkt może mieć status 'OK', choć nie został utworzony w wyniku 'Warning'.
  • updated: produkt został zaktualizowany.
  • not updated: produkt nie został zaktualizowany. Uwaga: produkt może mieć status 'OK', choć nie został zaktualizowany w wyniku 'Warning'.
błędy Lista błędów:
  • id: kod błędu produktu
  • poziom: poziom błędu
    • Warning: nie hamuje integracji produktu
    • Fatal: błąd krytyczny, integracja produktu niemożliwa
  • opis: opis błędu


Lista kodów błędów produktów


Kod Poziom Opis
1 Fatal Dane referencyjne firmy partnerskiej są zbyt krótkie
2 Fatal Dane referencyjne firmy partnerskiej są nieprawidłowe, powinny zawierać one wyłącznie znaki alfanumeryczne
3 Warning Nazwa produktu nie jest określona
4 Fatal Marka nie jest określona
5 Fatal Rodzaj nie jest prawidłowo określony, dopuszczalne symbole to: H, F, M, K, G
6 Fatal Cena musi być liczbą
7 Fatal cena jest ujemna lub nie została podana
8 Warning Cena wydaje się nam zbyt wysoka (> 4000 zł)
81 Fatal Cena nie może być wyższa niż 800 zł
9 Fatal Kwota musi być liczbą całkowitą
10 Fatal Ilość musi mieć wartość dodatnią
11 Warning Kolor xxx nie istnieje: produkt nie będzie dostępny w wyszukiwaniu poprzez filtr kolorów
13 Fatal Kategoria xxx nie istnieje
14 Warning Opis produktu jest pusty
15 Warning Kolor nie jest podany
16 Warning Brak listy rozmiarów: oznaczenie one size
17 Warning Skład jest określony, ale nie jest poprawny
18 Fatal Zdjęcie 1 jest obowiązkowe
19 Warning Wysokość rabatu w ramach promocji musi zawierać się pomiędzy 0 i 100, promocja nie zostanie uwzględniona
20 Warning Rozmiar xxx nie istnieje
201 Fatal Kod EAN jest obowiązkowy
202 Fatal Kod EAN xxx numeru referencyjnego xxx w rozmiarze xxx został już użyty przez ref: xxx.
205 Fatal Zbyt długi numer referencyjny partnera
23 Warning Zdjęcie xxx jest mniejsze niż 350x350: jego jakość na stronie będzie bardzo słaba
24 Warning Zdjęcie xxx jest mniejsze niż 350x350: nie zostanie ono wyświetlone na stronie
25 Fatal Rozmiar xxx: Niemożliwa regulacja stanu magazynowego
26 Fatal Brak w stanie magazynowym: produkt nie zostanie utworzony
27 Fatal Brak dostępu do zdjęcia 1 ( url xxx )
28 Warning Brak dostępu do zdjęcia xxx ( url xxx )
30 Fatal Ilość dla rozmiaru xxx jest zbyt duża (Ilość maks.: xxx)
33 Fatal Produkt typu xxx nie może należeć do kategorii xxx
34 Fatal Słowo xxx znajduje się na czarnej liście i nie powinno się pojawiać w nazwie lub opisie produktu.
35 Fatal Nazwa produktu zbyt długa, musi ona wyłącznie zawierać nazwę modelu. Błąd (błędy) w kraju (krajach): xxx
341 Fatal Słowo xxx znajduje się na czarnej liście i nie powinno się pojawiać w opisie produktu.
36 Fatal Nie można przenieść produktu: produkt jest duplikatem rozmiar / kolor.
37 Fatal Ten produkt nie zawiera żadnych informacji językowych dla strony aktywnej.
38 Fatal Rozmiar xxx może być zdefiniowany tylko jeden raz dla numeru referencyjnego xxx
39 Warning Odniesienie do partnera występuje kilka razy w przepływie, duplikaty zostały zignorowane.
451 Fatal Brak ceny dla rozmiaru xxx w kraju xxx. (wymagany do uzyskania zniżki)
452 Warning Data końcowa rabatu przekroczona dla rozmiaru xxx kraju xxx.
453 Fatal "rate" (xxx) nieprawidłowa dla rozmiaru xxx kraju xxx.
454 Fatal "rate" (xxx) > 85% dla rozmiaru xxx kraju xxx.
455 Warning Rozmiar xxx ma cenę w kraju (xxx) niezdefiniowanym dla produktu.
456 Warning Rozmiar xxx z ceną w xxx identyczną z ceną globalną w tym kraju.


Przykłady komunikatów XML


Przykład odpowiedzi na nieudane połączenie web service :

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

Przykład odpowiedzi na udane połączenie web service :

<root>
	<products>
		<product>
		<reference_partenaire>EEAJBCC</reference_partenaire>
		<status>KO</status>
		<action>not created</action>
		<errors>
			<error>
				<id>14</id>
				<description>Opis produktu jest pusty</description>
				<level>warning</level>
			</error>
			<error>
				<id>4</id>
				<description>Marka nie jest określona</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>

Pliki XSD

Pliki XSD dla wielu krajów