Importul de produse
Adresa URL a serviciului Webservice : https://sws.spartoo.ro/mp/xml_import_products.phpAcest 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
| 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 | 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 :
|
| errors |
Lista erorilor de prelucrare :
|
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
www.spartoo.ro
























