REST API Import údajů o produktech specifických pro pobočku
Tento zdroj slouží k aktualizaci údajů produktů v Quantu, které jsou specifické pro každou pobočku. Aktuálně používá JSON jako vstup i jako výstup.
K importu může přistupovat pouze takový uživatel Quantu s rolí Robot, který má v nastavení povolen tento Import (viz. atribut Import údajů specifické pro pobočku na Obrázku 1). V opačném případě se import neprovede a atribut status v odpovědi bude obsahovat chybovou hlášku:
HTTP 401 {"token":<TOKEN>,"status":"User is not authorized for this Resource."}
- Požadavek
Parametr | Hodnota |
URL | /storeSpecificProductDataImport/json |
Debug | ?debug=true přidaný do URL zobrazí v odpovědi i varování. Bez toho se vypisují pouze chyby. |
Header | Accept: application/json |
Header | Content-type: application/json |
Header | Authorization: Bearer <TOKEN> TOKEN se získává pomoci /authenticate (viz. Přihlášení). |
Method | POST |
Payload | [{id1:value1, id2:value2}, {id1:value3, id2:value4}] Pole JSON objektů, ve kterém každý JSON objekt popisuje atributy jednoho produktu v jedné pobočce. |
- Atributy
Nastavení importů se zadávají také na uživateli (viz. Obrázek 1)
Atribut | Popis | Typ |
Zapnuto | Určuje, zda uživatel může přistupovat k tomuto zdroji. | ano/ne |
Titul | Vlastní název zdroje v Quantu. | text |
Popis | Popis funkce zdroje. | formátovaný text |
Poznámky | Poznámky. | dlouhý text |
Odpovídající atribut | Atribut produktu v Quantu, pomocí kterého se budou párovat položky z importu s produkty v Quantu. | výběr |
Vytvořit nové produkty | Je-li zapnutý, import vytvoří nové produkty pro neexistující ID produktů. Tato volba je aktivní pouze, když v Odpovídající atribut je vybraný Primární Id Produktu. | ano/ne |
Nastavit nové produkty pro planogramy | Je-li zapnutý, nově vytvořené produkty budou určené pro tvorbu planogramů. Tato volba je aktivní pouze, když Vytvořit nové produkty je zapnutý. | ano/ne |
Ignorovat smazané produkty | Standardně, když import nenajde živý produkt k danému ID, tak hledá mezi smazanými produkty. Pokud najde smazaný, tak ho oživí. Zapnutím této volby se smazané produkty místo oživení ignorují. | ano/ne |
Mapování produktových atributů | Mapování obsahující položku pro každý atribut produktu, který má být importován. Tato položka definuje způsob, jak se hodnoty ze vstupu interpretují (viz. obrázek níže). Pro detaily viz. část Mapování atributů. | komplexní typ |
Jednotka rozměru | Měrná jednotka jako cm, mm atd. | výběr |
Oddělovač desetinných míst | Znak oddělující celou a desetinnou část čísel. Pokud se zvolí čárka, musí být i číselné hodnoty uzavřené do uvozovek, protože čárka odděluje atributy v JSONu. | znak |
Zápis hodnoty „Ano“ | Text, který se bude považovat (bez ohledu na velká a malá písmena) za hodnotu „Ano“ u atributů typu ano/ne. Všechny ostatní hodnoty se překládají na „Ne“. | text |
Formát dat | Formát zápisu data, např. 31.12.19 | výběr |
Odstranit počáteční nuly z ID pobočky | Je-li zapnutý, odstraní se počáteční nuly z ID pobočky. ID „00123“ ze vstupu se převede na „123“ a na základě toho se hledá pobočka v Quantu. | ano/ne |
Vymazat údaje specifické pro pobočku | Seznam atributů specifických pro pobočku, které se před provedením importu smažou ze všech produktů pro všechny pobočky. | výběr |
Spustit detekci změn v cenovkách | Je-li zapnutý, pustí se detekce změn v cenovkách, pokud import provedl nějaké změny. | ano/ne |
- Mapování produktových atributů
- Mapování atributů
Atribut | Popis | Typ |
Vlastnost produktu specifická pro pobočku | Atribut produktu, který se aktualizuje touto hodnotou. | výběr |
Klíč | Text klíče v JSON objektu. | text |
Náhrada hodnot | Definuje seznam mapování, kde textová hodnota ze vstupu je nahrazena jinou hodnotou před konverzí na konkrétní typ atributu. | komplexní typ |
Id produktu a Id pobočky musí mít mapování. V opačném případě import končí chybou:
HTTP 409 {"token":<TOKEN>,"status":"Check Execution Log in Quant for details"}
Hodnota záznamu pro Id produktu se páruje s hodnotou produktu pro Odpovídající atribut.
Hodnota záznamu pro Id pobočky se páruje s hodnotou pobočky pro atribut Externí Id.
- Odpověď
Parametr | Hodnota |
Body | {"token":"<TOKEN>","status":"<STATUS>,"Total Lines":<LINE_COUNT>,"Ignored Products":<IGNORED>, "Unknown Store IDs":<UNKNOWN>","Errors":[ERRORS],"Warnings":[WARNINGS]"} |
Atribut | Popis | Typ |
Token | Autorizační token uživatele. | text |
Status | SUCCESS v případě, že se vše v pořádku naimportovalo a PARTIAL_SUCCESS, pokud import proběhl v pořádku, ale některé záznamy se nenaimportovaly a FAILURE v případě nečekané chyby, která předčasně zastavila import. | text |
Total Lines | Počet záznamů na vstupu. | číslo |
Ignored Products | Počet záznamů, které se nenaimportovaly kvůli:
| číslo |
Unknown Store IDs | Počet záznamů, které obsahují Id pobočky, která neexistuje v Quantu. | číslo |
Errors | Pole JSON objektů popisující chyby. | JSON Array |
Warnings | Pole JSON objektů popisující varování (pouze pokud požadavek obsahoval parametr debug=true). | JSON Array |
- Záznam průběhu
V Quantu vedle nastavení importu na Robotovi lze prohlížet i záznamy průběhů jednotlivých importů včetně statistik, chyb, varování a obecných informací.
Vybereme-li konkrétní záznam, můžeme zobrazit jeho detaily tlačítkem Zobrazit položky. Po označení vybraných položek klikněte na Stáhnout soubory. Tyto soubory obsahují vstupní data pro daný běh importu.
- Požadavek
curl -H "accept: application/json" -H 'content-type: application/json' -H 'Authorization: Bearer i37YKbgCnJSXe2nvIrHA1fE8bLIE4RqROu4l1A- OTzHZXSmZ3CX'
https://[VASE_SPOLECNOST].iquant.eu/storeSpecificProductDataImport/json?debug=true -d
'[{"productId":"500001","Store_ID":"1","Sales Price":"1.23"},{"productId":"500001","Store_ID":"2","Sales Price":"2.34"}]'
Tento příklad znázorňuje aktualizaci ceny jednoho produktu ve dvou pobočkách po předchozím získání TOKENu přihlášením.
- Odpověď
{"token":"i37YKbgCnJSXe2nvIrHA1fE8bLIE4RqROu4l1AOTzHZXSmZ3CX","status":"SUCCESS","Total Lines":2,"Ignored Products":0, "Unknwon Store IDs":0,"Warnings":["There is a mapping with empty REST Element for attribute: Club Price"]}
Tato odpověď znamená úspěšný průběh importu s jedním varováním. Detaily a statistiky pak lze najít v Quantu.