Import produktów
URL Webservice : https://sws.spartoo.pl/mp/xml_import_products.phpNiniejszy 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 POSTParametr | 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ń:
|
błędy |
Lista błędów:
|
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>