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:

  • chybějící nebo prázdné „Odpovídající atribut“ v záznamu
  • nepodařilo se najít odpovídající aktivní produkt a atribut „Vytvořit nové produkty“ je deaktivován nebo existuje odpovídající odstraněný produkt a je povolen atribut „Ignorovat odstraněné produkty“
čí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í.

Sledování průběhů importů

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.

Stáhnout soubory

 

  • 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.