REST API Import produktů
Tento zdroj slouží k aktualizaci databáze produktů v Quantu. 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. 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 | /productDataImport/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á pomocí /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 jeden produkt v Quantu. |
- 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. Zde vybraný atribut musí mít mapování v atributu Mapování produktových atributů, v opačném případě import končí chybou: HTTP 200 {"token":"<TOKEN>","status":"FAILURE","Errors":["Mapping not found for required attribute: Primary Product ID]} | 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. 2). 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 data | Formát zápisu data, např. 31.12.19 | výběr |
- Mapování produktových atributů
- Mapování atributů
Atribut | Popis | Typ |
Vlastnost produktu | Atribut produktu, který se aktualizuje touto hodnotou. | výběr |
Klíč | Text klíče v JSON objektu. | text |
Ke schválení | Změny se ihned zapíšou do produktů nebo pouze vytvoří v Quantu „Změny ke schválení“, které pak lze schválit nebo odmítnout. | ano/ne |
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 |
- Odpověď
Parametr | Hodnota |
Body | {"token":<TOKEN>,"status":","Total Lines":<LINE_COUNT>,"Ignored Products":<IGNORED>, "Duplicated Products":<DUPLICATED>,"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 nenaimportovalyi kvůli:
| číslo |
Duplicated Products | Počet záznamů, které obsahují hodnotu „Odpovídající atribut“, která již předtím vyskytovala v záznamech. Tyto záznamy se ignorují, aby se předešlo přepisováním změn. | čí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 (viz Obr. 4). 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/productDataImport/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.