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í 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:

  • chybějící nebo prázdné hodnoty „Odpovídající atribut“- u v záznamu
  • nenalezení odpovídajícího živého produktu, smazaného produktu s možností oživení a zakázanému vytváření nových produktů
čí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í.

Záznam průběhu

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.

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