Importér
Jednoduchý a rychlý způsob automatizovaného objednávání přepravy.
Jednoduchý a rychlý způsob automatizovaného objednávání přepravy.
Importér, nebo též importovací
API
či importovací služba, je rozhraní, skrze které lze automatizovaně
vytvářet objednávky přepravy v našem systému.
Jednoduše. Náš systém vystavuje webovou službu, která umí přijmout data potřebná k vytvoření objednávky přepravy. Pokud nám dáte vědět, že chcete využívat náš importér, tuto možnost pro Vás povolíme a pak stačí jen nakonfigurovat Váš systém tak, aby voláním naší služby automaticky vytvořil objednávku ve chvíli, kdy je to potřeba.
Proces, který vede k automatickému vytvoření v našem systému pak typicky vypadá takto:
Abychom mohli Vaši objednávku úspěšně vytvořit, potřebujeme znát informace nezbytné pro realizaci přepravy. Tyto informace od Vás potřebujeme ve formě parametrů, které nám pošlete při volání importovací služby.
Následující parametry jsou povinné a nesmí tedy chybět při volání importéru. Bez kterékoli z těchto hodnot nemůžeme objednávku vytvořit. Názvy a očekávané formáty jednotlivých parametrů jsou uvedeny v tabulce níže.
Parametr | Očekávaný formát | Očekávaná hodnota (max) |
Popis |
importKey | text | unikátní identifikátor Vašeho importéru | Jedná se o unikátní klíč, který jednoznačně identifikuje Váš importér. Teoreticky je možné používat pod jedním přihlašovacím jménem vícero různých importérů s různými klíči. |
ulice_odkud | text | název ulice vyzvednutí (150 znaků) |
Pozor na překlepy a diakritiku! Například Michalská a Michelská jsou dvě ulice v Praze a každá leží úplně jinde. Také diakritika hraje roli – Šmolíkova a Smolíkova jsou v Praze rozdílné ulice v různých městských částech. |
cislo_domu_odkud | text | číslo domu vyzvednutí (10 znaků) |
Pokud máte ulici a číslo domu dohromady, nevadí, pošlete ho v ulici, ale dejte nám o tom prosím vědět. |
mesto_odkud | text | název obce/města vyzvednutí (150 znaků) |
Pozor na překlepy a diakritiku! To abychom nevyzvedávali z druhého konce republiky nebo dokonce ze Slovenska! Košice vs. Kosice, Bacov vs. Bačov a další... |
psc_odkud | text | 5 čísel | Nevadí nám, pokud použijete mezeru. Důležité je, aby po odstranění whitespace znaků zbylo jen pět číslic. |
kontaktni_osoba_odkud | text | kontaktní osoba (50 znaků) |
Jméno osoby, která bude přítomna na adrese vyzvednutí a kterou může kurýr kontaktovat. |
telefon_odkud | text | telefon (20 znaků) |
Telefon na kontaktní osobu na adrese vyzvednutí. |
ulice_kam | text | název ulice doručení (150 znaků) |
Pozor na překlepy a diakritiku, stejně jako u ulice_odkud |
cislo_domu_kam | text | číslo domu doručení (10 znaků) |
Pokud máte ulici a číslo domu dohromady, nevadí, pošlete ho v ulici, ale dejte nám o tom prosím vědět. |
mesto_kam | text | název obce/města doručení (150 znaků) |
Pozor na překlepy a diakritiku, stejně jako u mesto_odkud |
psc_kam | text | 5 čísel | Nevadí nám, pokud použijete mezeru. Důležité je, aby po odstranění whitespace znaků zbylo jen pět číslic. |
dobirka | celé číslo | 0/1 | Přepínač určující zda kurýr má či nemá požadovat po
adresátovi dobírku:
|
typ_prepravy | celé číslo | číslo, které určuje způsob doručení zásilky | Specifikuje přepravní režim, hodnoty Vám vždy sdělíme na základě domluvy. |
Následující parametry nejsou povinné a v některých případech nemusí být při volání služby zadány. Záleží ovšem na tom co, kam a jak rychle budete chtít přepravovat. Na tom, zda budeme vzhledem k povaze Vámi plánovaných importů potřebovat i některé z těchto nepovinných parametrů se domluvíme v průběhu procesu napojování Vašeho systému.
Parametr | Očekávaný formát | Očekávaná hodnota (max) |
Popis |
firma_odkud | text | název Vaší společnosti (255 znaků) |
|
poznamka_odkud | text | Vaše případná poznámka vztahující se k vyzvednutí (512 znaků) |
|
firma_kam | text | název společnosti adresáta (255 znaků) |
|
kontaktni_osoba_kam | text | jméno kontaktní osoby na adrese doručení (100 znaků) |
|
telefon_kam | text | telefon na kontaktní osobu na adrese doručení (50 znaků) |
|
poznamka_kam | text | Vaše případná poznámka vztahující se k doručení (512 znaků) |
|
vyzvednuti_od | text ve speciálním formátu | datum a čas určující kdy nejdříve je možné zásilku
vyzvednout u odesilatele (datum) |
Pokud nevyplníte, tak datum a čas doplníme automaticky.
Podporované formáty jsou yyyy-MM-dd HH:mm a dd.MM.yyyy
HH:mm
|
vyzvednuti_do | text ve speciálním formátu | datum a čas určující kdy nejpozději je možné zásilku
vyzvednout u odesilatele (datum) |
Pokud nevyplníte, tak datum a čas doplníme automaticky..
Podporované formáty jsou stejné jako u vyzvednuti_od
|
doruceni_od | text ve speciálním formátu | datum a čas určující kdy nejdříve můžeme zásilku doručit
adresátovi (datum) |
Pokud nevyplníte, tak datum a čas doplníme automaticky..
Podporované formáty jsou stejné jako u vyzvednuti_od
|
doruceni_od | text ve speciálním formátu | datum a čas určující dokdy nejpozději musíme zásilku
doručit adresátovi (datum) |
Pokud nevyplníte, tak datum a čas doplníme automaticky..
Podporované formáty jsou stejné jako u vyzvednuti_od
|
dobirka_castka | desetinné číslo | výše dobírkové částky (15 znaků před desetinnou čárkou a 2 znaky za ní) |
Jako oddělovač desetinné části lze použít buď čárku nebo tečku. |
variabilni_symbol | celé číslo | číslo, pod kterým Vám zašleme vybranou dobírku (50 znaků) |
|
velikost | celé číslo | číslo určující velikost zásilky |
|
hmotnost | desetinné číslo | celková hmotnost celé objednávky (v kg) (15 znaků před desetinnou čárkou a 2 znaky za ní) |
Jako oddělovač desetinné části lze použít buď čárku nebo tečku. |
baliky | text ve speciálním formátu | text obsahující zakódované balíky k zásilce (1024 znaků) |
Formát balíků je popsán zde. |
pocet_kusu | celé číslo | číslo sdělující z kolika částí se skládá zásilka (999 kusů) |
|
kod_zasilky | text | Vámi definovaný kód zásilky. (50 znaků) |
Typicky se jedná o Váš identifikátor zásilky. Ten se jednak objeví na faktuře a také Vám tento kód budeme uvádět ve zpětném reportování |
zpet | celé číslo | přepínač určující zda od adresáta pojedeme ještě zpátky k odesílateli (například s jinou zásilkou) |
|
Skrze importér je možné nahrát do našeho systému i kompletní výčet balíků, ze kterých sestává Vaše zásilka. Aby bylo možné tuto informaci jednoduše předat v jednom parametru, používáme pro reprezentaci balíků speciální formát.
U každého balíku vyspecifikujete následující parametry:
Příklad:
Máme-li dva balíky, kde u prvního známe pouze
hmotnost (2 kg) a u druhého všechny parametry (hmotnost
3 kg, rozměry 30 cm x 40 cm x 20 cm), pak je
zapíšeme takto:
U balíků nehledíme na to, který rozměr uvedete jako výšku, šířku a hloubku. Důležité je, abychom měli všechny tři rozměry a mohli si udělat představu o velikosti Vaší zásilky.
Pokud byste chtěli používat vlastní štítky zásilek včetně vlastních čárových kódů (říkáme jim externí identifikátory), tak samozřejmě můžete. Jen nám tuto informaci musíte oznámit při importu zásilky.
Štítek patří na každý balík zásilky, a proto se musí zakomponovat do zakódovaného balíku. K výše uvedeným parametrům tedy přibude ještě jeden.
Příklad:
Máme-li dva balíky jako v předchozím příkladě, ale první má Váš externí identifikátor Q51615645P1 a druhý Q848646556P2, balíky zapíšeme takto:
V současnosti podporujeme několik různých způsobů, jak k nám Vaše data naimportovat.
Ať už pro import použijete kteroukoli z níže popsaných služeb, vytvořená objednávka bude při zadání shodných dat vždy stejná. Použitá služba tedy nemá vliv na výslednou objednávku. Tímto způsobem Vám jen nabízíme možnost vybrat si tu nejvhodnější variantu.
Preferovanou variantou je volání jedné z importovací služeb, která
využívá
HTTP Basic
přihlašování (více o těchto službách zde).
Všechny importovací služby lze nalézt na adrese:
Na této
URL
naslouchají tři služby, dvě z nich lze zavolat metodou
POST
(doporučovaný způsob) a jednu metodou
GET
(alternativní způsob).
Metoda
POST
je pro tuto službu vhodnější, protože služba vytváří
objednávky a podle konvence by tedy měla být volána právě touto
metodou.
Při volání výše uvedené
URL
metodou
POST
je třeba poslat parametry v
BODY
daného requestu. Tělo požadavku pak může obsahovat buď
JSON
nebo
XML
.
Pokud se rozhodnete posílat nám
JSON
, pak tento musí splňovat následující:
Požadavek také musí obsahovat následující hlavičku:
Příklad těla požadavku ve formátu
JSON
:
Pokud byste nám data raději posílali jako
XML
, pak toto
XML
v těle požadavku musí splňovat následující:
importData
Požadavek také musí obsahovat následující hlavičku:
Příklad těla požadavku ve formátu
XML
:
Při volání importovací
URL
metodou
GET
je třeba poslat parametry přímo v
URL
daného requestu. Víme sice, že když
REST
služba něco vytváří, měla by být volána pouze metodou
POST
. To také doporučujeme. Nicméně chápeme, že tento způsob (metodou
GET
) je implementačně jednodušší a snažíme se Vám vyjít maximálně
vstříc. Z toho důvodu podporujeme i tuto alternativní variantu.
Příklad
URL
obsahují identické parametry jako
JSON
a
XML
výše:
Povšimněte si prosím, že hodnoty parametrů v
URL
jsou URL
kódované. To proto, že případné whitespace znaky nejsou validní
součástí
URL
a je potřeba je nahradit.
Alternativní možností je použití služeb, které nevyžadují
HTTP Basic
přihlašování a namísto toho očekávají parametry s uživatelským
jménem a heslem (více o těchto službách zde).
Všechny takové importovací služby lze nalézt na adrese:
Na této
URL
opět naslouchají tři služby, jsou to v podstatě tytéž, které jsme
popsali výše, pouze s tím rozdílem, že nyní očekávají dva dodatečné
přihlašovací
parametry.
Ve výše uvedených příkladech je potřeba nahradit
[ZAKAZNICKE-CISLO]
a
[HESLO]
za Vaše přihlašovací údaje.
Všechny importovací služby vrací stejná data nezávisle na tom jakou
variantu importu používáte. Interně mají všechny importovací služby
na svém výstupu objekt stejného typu, jen jej serializují buď do
formátu
JSON
nebo
XML
, podle Vaší volby. Jediná výjimka nastáva v případě, že používáte
přihlašování pomocí
HTTP Basic
a zadáte nesprávné přihlašovací údaje. V tomto případě vám server vrátí status
401 Unauthorized
.
Z každé naší imporovací služby tedy obdržíte následující sadu parametrů:
Parametr | Vnořený parametr | Formát | Hodnota | Popis |
authentification | success | logická hodnota | true/false | Indikuje úspěch nebo neúspěch přihlášení, tj. správnost přihlašovacích údajů. |
zprava | text | chybová hláška | Případná chybová hláška. | |
importKey | success | logická hodnota | true/false | Indikuje správnost zadaného importovacího klíče. |
zprava | text | chybová hláška | Případná chybová hláška. | |
pairs | success | logická hodnota | true/false | Indikuje správnost zadaných parametrů (tj. key-value pairs ), tedy zda byly zadány všechny potřebné parametry apod. |
zprava | text | chybová hláška | Případná chybová hláška. | |
success | logická hodnota | true/false | Indikuje celkový úspěch/neúspěch importu, tj. obsahuje hodnotu false, pokud některý jiný parametr též značí neúspěch. | |
dataErrors | pole textových hodnot | chybové hlášky | Případné chybové hlášky týkající se hodnot jednotlivých parametrů. | |
ids | pole celých čísel | číslo vytvořené objednávky | Nedojde-li k žádným chybám, obsahuje tento parametr číslo vytvořené objednávky. Ačkoli je název parametru ids, bude parametr obsahovat vždy nejvýše jednu hodnotu. | |
trackingCodes | pole celých čísel | sledovací číslo | Nedojde-li k žádným chybám, obsahuje tento parametr sledovací číslo. Ačkoli je název parametru trackingCodes, bude parametr obsahovat vždy nejvýše jednu hodnotu. | |
trackingURL | text | odkaz ke sledování | Tento parametr obsahuje odkaz ke sledování aktuálního stavu Vaší zásilky. |
Pokud si zvolíte jako výstupní formát
JSON
(což se dělá takto),
pak bude výstup služby při úspěšném importu vypadat takto:
Pokud si zvolíte jako výstupní formát
XML
(což se dělá takto),
pak bude výstup služby při úspěšném importu vypadat následovně: