REST API Import základních entit V1

Tento zdroj slouží k importu základních entit jako poboček, kategorie nebo plánovaných náhrad v Quantu. Vstupním i výstupním formátem je JSON.

Pro vytvoření a nastavení importu použijte sekci Automatické úlohy. Po vytvoření bude v seznamu úloh ID, které předáte v URL požadavku.

Automatická úloha

  • Nastavení

Před použitím API je nutno upravit tyto atributy v záložce Nastavení:

  • Zaškrtněte atribut Zapnuto pro povolení úlohy.
  • V atributu Uživatelé s povoleným přístupem pro API zvolte jednoho nebo více uživatelů s rolí Robot, kteří budou mít oprávnění úlohu spouštět.
  • V atributu Základní entita pro import vyberte jakou entitu požadujete importovat.
  • V atributu Párovací atribut vyberte atribut podle, kterého se mají propojit stávající hodnoty s novými.
  • V atributu Mapování atributů zvolte atributy pro import a volitelně upravte jejich JSON klíče.
  • Dále doporučujeme vyplnit Emaily k notifikacím, kde zadáte jednu či více e-mailových adres, na které budou zasílány e-maily s chybovými stavy.
  • Atributy 
Atribut
Popis
Typ
Zapnuto
Určuje, zda je daná automatické úloha aktivní a mohou přes ní být posílána data.
ano/ne
Nadpis
Vlastní název automatické úlohy.
text
Popis
Vlastní popis funkce automatické úlohy.
formátovaný text
Poznámky
Poznámky.
dlouhý text
Emaily k notifikacím

Jedna nebo více e-mailových adres, na které budou zasílány e-maily s chybovými stavy.

seznam řetězců
Uživatelé s povoleným přístupem pro API
Uživatelé s rolí Robot, kteří jsou oprávněni úlohu spouštět.
seznam uživatelů
Základní entita pro import
Určuje pro jakou entitu se má import provést.
výběr
Párovací atribut
Určuje podle jakého atributu se mají nové hodnoty párovat se stávajícími.
výběr
Párovací atribut produktu
Určuje podle jakého atributu se mají nové hodnoty produktu párovat se stávajícími.
výběr
Mapování atributů
Atribut entity v Quantu, pomocí kterého se budou párovat položky z importu.
komplexní typ
Vytvořit nové položky
Je-li zapnutý, import vytvoří nové položky pro neexistující ID párovacího atributu.
ano/ne
Ignorovat smazané položky
Standardně když import nenajde živou položku k danému ID, tak hledá mezi smazanými položkami. Pokud najde smazanou položku, tak ji oživí. Zapnutím této volby se smazané položky místo oživení ignorují.
ano/ne
Zpoždění v sekundách před opakováním
Počet sekund, jak dlouho má klient čekat, než znovu zkusí provést import v případě dlouhé kolony požadavků na server.
celé číslo
Jednotka rozměru
Měrná jednotka jako cm, mm atd.
výběr
Formát dat
Formát zápisu data, např. 31.12.19
výběr
Formát datumu a času
Formát zápisu data a času, např. 31.12.19 23:59:59
výběr
Oddělovač položek seznamu
Znak oddělující jednotlivé položky v seznamu.
výběr


Nastavení
  • Požadavek

/v1/import/basic-entities/{id_ulohy}

Parametr
Hodnota
URL
?debug přidaný do URL zobrazí v odpovědi i varování. Bez toho se vypisují pouze chyby.
Hlavička
Accept: application/json
Hlavička
Content-type: application/json
Hlavička

Authorization: Bearer  <TOKEN>

TOKEN se získává pomocí /authenticate (viz. Přihlášení).

Metoda
POST

Obsahem požadavku je pole JSON objektů obsahující klíče definované v nastavení Mapování atributů

Je důležité, aby požadavek odpovídal standardům pro JSON formát. Kompletní definici těchto standardů najdete zde. Hodnoty číselných atributů prosím posílejte bez uvozovek viz příklad.

  • Odpověď
Klíč
Hodnota
Status
Řetězec popisující výsledný stav importu.
  • SUCCESS = bezchybný průběh importu
  • PARTIAL_SUCCESS = import proběhl, ale vygeneroval jedno nebo více varování
  • FAILURE = při importu nastala jedna nebo více chyb
Warnings
Je volitelný, tzn. je zahrnut pouze, pokud je v URL parametr ?debug a import vygeneroval alespoň jedno varování.
Seznam řetězců s varováními.
Errors
Volitelný - je zahrnut pouze, pokud import vygeneroval alespoň jednu chybu.
Seznam řetězců s chybami.
Total Lines
Volitelný - je zahrnut pouze, pokud import neskončil se stavem "FAILURE"
Počet záznamů na vstupu.
Duplicated
Volitelný - je zahrnut pouze, pokud import neskončil se stavem "FAILURE"
Počet záznamů, které byly přeskočeny, protože tento produkt již byl importován ve stejném požadavku.
Empty IDs
Volitelný - je zahrnut pouze, pokud import neskončil se stavem "FAILURE"
Počet záznamů, které byly přeskočeny, protože k nim nebylo nalezeno párovací ID požadavku.
Ignored
Standardně, když import nenajde živou položku k danému ID, tak hledá mezi smazanými položkami. Pokud najde smazanou položku, tak ho oživí. Zapnutím této volby se smazané položky místo oživení ignorují.

 

  • Stavové kódy
Stav
Význam
200 OK
Import proběhl úspěšně s výsledným stavem "SUCCESS" nebo "PARTIAL_SUCCESS". Odpověď může obsahovat varování nebo nezávažné chyby.
400 Bad Request
Chybné nastavení úlohy nebo chybný požadavek.
401 Unauthorized
Autorizační token je neplatný, nebo uživatel, který je tokenem přihlášen, nemá oprávnění spouštět tuto úlohu.
404 Not Found
Nebyla nalezena úloha s ID daným v URL.
500 Internal Server Error

Během importu nastala kritická chyba na straně serveru.

503 Service Unavailable

Import již běží. Zkuste to spustit znova za počet sekund udávaných v hlavičce Retry-After.


  • Nejnovější logy

V Quantu vedle nastavení úlohy lze prohlížet i nejnovější logy jednotlivých importů, včetně statistik, chyb a varování.

Vybereme-li konkrétní záznam, můžeme zobrazit jeho detaily tlačítkem Stáhnout soubory.

Detaily záznamu 


  • Požadavek

 curl -X POST --location "https://[YOUR_COMPANY].iquant.eu/v1/import/basic-entities/959977?debug" \

    -H "Authorization: Bearer ywJqq25pXO6oaCPqgEAiTioBVwM8Ih2kOwzzd3eWK3R2oDSA5n" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Cache-Control: no-cache" \
-d "[ {"id":"CAT001","name":"Number 1","prodAt":  ["External ID attribute 1","External ID attribute 2"]},
 {"id":"CAT002","name":"Number 2","prodAt":  "External ID attribute 1"},
{"id":"CAT003","name":"Number 3","prodAt": ["External ID attribute 1","External ID attribute 4","External ID attribute 5"]
"}]"
  • Odpověď

{
  "Status": "SUCCESS", 
  "Total Lines": 4,
  "Duplicated": 0,
  "Empty Ids": 1,
  "Ignored": 0
}