Automatický tisk přepravních štítků odstraňuje jednu z nejopakovanějších činností v expedici: otevřít objednávku, přepsat adresu do portálu dopravce, vybrat službu, stáhnout soubor a ručně zvolit tiskárnu. Při několika zásilkách týdně je tento postup snesitelný. S rostoucím objemem ale spotřebovává čas, vytváří chyby a komplikuje práci více expedičních míst.
Spolehlivá automatizace neznamená, že se každý nový nákup okamžitě vytiskne. Nejdřív musí být jasné, kdy je objednávka připravena k expedici, zda obsahuje platnou adresu, který dopravce a služba se mají použít, kolik balíků vznikne a na které tiskárně má štítek skončit. Teprve potom systém vytvoří zásilku, uloží její identifikátor, získá dokument a zařadí ho do tiskové fronty.
Tři operace, které je nutné oddělit
1. Vytvoření zásilky u dopravce
E-shop nebo integrační služba odešle dopravci adresu, kontakt, hmotnost, rozměry, dobírku, výdejní místo a požadované doplňkové služby. Dopravce vytvoří záznam a vrátí vlastní identifikátor nebo sledovací číslo.
2. Získání přepravního štítku
Po úspěšném vytvoření zásilky systém požádá o štítek v podporovaném formátu. Některá API vracejí dokument přímo, jiná jako text k dekódování nebo samostatný odkaz. Packeta například dokumentuje metody pro PDF i ZPL štítky; DHL podle konkrétní služby nabízí PDF, ZPL nebo obrazové formáty.
3. Fyzický tisk
Soubor se odešle na konkrétní lokální tiskárnu. Tato část probíhá ve skladu, zatímco e-shop a API dopravce běží na serveru. Výpadek tiskárny tedy nesmí znamenat nové vytvoření zásilky. Systém má znovu vytisknout už existující dokument nebo jej znovu načíst podle uloženého ID.

Kdy automatizace začíná dávat smysl
Přínos roste s počtem zásilek, opakovatelností procesu a cenou chyby. Nejde jen o ušetřené minuty. Správně navržený tok snižuje počet zásilek poslaných špatnou službou, chybně zadané dobírky a situace, kdy se objednávka omylem vytiskne dvakrát.
Vyplatí se zejména tehdy, když:
- e-shop expeduje pravidelně a ruční přepis už tvoří významnou část směny,
- používá několik dopravců nebo více podacích účtů,
- má jasná pravidla výběru služby a balení,
- objednávky vznikají z více kanálů, ale expedice má být jednotná,
- pracuje z více skladů nebo tiskových stanovišť,
- potřebuje dohledat, kdo a kdy zásilku vytvořil a vytiskl.
Pokud každá zásilka vyžaduje individuální posouzení a parametry nejsou v objednávce, nejdřív standardizujte sběr dat. Automatizace neodhadne bezpečně hmotnost, rozměr ani režim přepravy, když tyto údaje firma nikde neeviduje.
Kdy má zásilka vzniknout
Spouštěč musí odpovídat provozu. Vytvořit zásilku ihned po přijetí objednávky může být předčasné, pokud se čeká na platbu, kompletaci, kontrolu podkladů nebo výrobu. Naopak ruční tlačítko u každé hotové objednávky zachovává zbytečný krok, pokud systém umí připravenost určit sám.
Možné spouštěče
- Zaplaceno a skladem: vhodné pro běžné skladové zboží.
- Vlastní stav „připraveno k expedici“: sklad nebo výroba výslovně potvrdí dokončení.
- Dokončené vychystání: štítek vznikne po naskenování všech položek.
- Uzavření expediční dávky: zásilky se vytvoří hromadně v určený čas.
- Ruční schválení výjimky: pro zahraničí, nadrozměr nebo neúplná data.
Událost může do integrační vrstvy přijít webhookem WooCommerce nebo interní změnou stavu. WooCommerce webhooky umějí reagovat na vytvoření a aktualizaci objednávek a podepisují payload sdíleným tajemstvím. Příjemce má podpis ověřit, událost uložit a delší práci provést na pozadí.
Jaká data dopravce potřebuje
Konkrétní povinná pole se liší podle dopravce, země a služby. Integrační model by měl alespoň rozlišit:
- odesílatele a podací místo,
- jméno nebo firmu příjemce,
- ulici, číslo, město, PSČ a zemi,
- telefon a e-mail pro avizaci,
- výdejní místo nebo box, pokud byl zvolen,
- hmotnost a případně rozměry každého balíku,
- produkt nebo službu dopravce,
- dobírkovou částku, měnu a variabilní údaj,
- pojištění, deklarovanou hodnotu a další služby,
- interní referenci objednávky.
Neodesílejte všechny údaje z objednávky jen proto, že jsou dostupné. Dopravce potřebuje data k doručení, nikoli poznámky obchodníka nebo kompletní fakturační historii.
Validace adresy před vytvořením zásilky
Formátově vyplněná adresa nemusí být doručitelná. Před automatickým vytvořením alespoň ověřte povinná pole, podporovanou zemi, PSČ, délku textů a přítomnost výdejního místa. Telefon normalizujte do mezinárodního formátu, ale původní hodnotu zachovejte pro případ ruční kontroly.
Automaticky opravovat jen bezpečné věci
Lze odstranit nadbytečné mezery, sjednotit kód země nebo normalizovat telefon. Není bezpečné bez potvrzení měnit číslo domu, obec nebo výdejní místo na základě přibližné shody. Nejednoznačný případ zařaďte do stavu „vyžaduje kontrolu“ a ukažte konkrétní problém.
Pokud dopravce nabízí validační službu, využijte ji jako další kontrolu. I úspěšná technická validace ale nemusí dokazovat, že zákazník uvedl správnou osobu nebo skutečně zamýšlené místo.
Mapování dopravy na službu dopravce
Název „Doručení domů“ v pokladně nestačí. Integrace potřebuje stabilní interní kód a mapu na účet, produkt dopravce, podací místo, formát štítku a tiskárnu. Textový název může administrátor změnit a překlad se liší podle jazyka.
Pravidlo může zohlednit
- zvolenou metodu dopravy,
- zemi a PSČ příjemce,
- výdejní místo nebo doručení na adresu,
- hmotnost, rozměry a počet balíků,
- dobírku a její podporovanou měnu,
- obsah s omezením přepravy,
- sklad, ze kterého objednávka odchází,
- smluvní účet a svoz dopravce.
Pravidla verzujte. Když se změní služba dopravce, musí být možné zjistit, podle jakého mapování vznikla starší zásilka. Aktivní mapování testujte na typických i hraničních objednávkách.
Jeden balík, více balíků a více dopravců
Objednávka není automaticky jedna zásilka. Velké nebo neslučitelné položky mohou vytvořit několik balíků a každý potřebuje vlastní identifikátor a štítek. Některé položky mohou odcházet z různých skladů nebo přímo od dodavatele.
Datový model proto obsahuje vztah objednávka → zásilky → balíky → štítky. U každé zásilky evidujte dopravce, službu, tracking, stav, obsah a odesílající sklad. Objednávku označte jako kompletně expedovanou až ve chvíli, kdy jsou zpracované všechny její expediční části.
Hmotnost a rozměry
Produktová hmotnost nemusí odpovídat přepravní hmotnosti. Připočtěte obalový materiál a zohledněte skutečný způsob balení. Pokud systém neumí spolehlivě určit počet balíků, může sklad zásilku před tiskem zvážit a hodnotu potvrdit.
Automatické rozdělování podle součtu hmotností je pouze aproximace. Dva rozměrné lehké produkty mohou překročit rozměrový limit, i když jsou hluboko pod váhovým limitem.
PDF, PNG, ZPL a jazyk tiskárny
PDF je univerzální pro náhled a tisk na běžných tiskárnách. Pro termální tisk však může operační systém dokument škálovat, přidat okraje nebo převést obraz s horší ostrostí čárového kódu. Nastavení musí používat správný fyzický rozměr a měřítko 100 %.
Obrazový formát
PNG nebo jiný rastrový obraz se snadno zobrazuje, ale kvalita závisí na rozlišení a převodu. Nepřepočítávejte štítek na náhodný počet pixelů bez vztahu k DPI tiskárny.
ZPL a další příkazy pro termální tisk
ZPL je příkazový jazyk podporovaný vybranými termálními tiskárnami. Data se mohou odeslat přímo bez vykreslování PDF, což bývá rychlé a přesné. Tiskárna ale musí daný jazyk a rozlišení podporovat. Jiní výrobci nebo modely mohou používat EPL, CPCL či vlastní varianty.
Formát se volí podle konkrétního API a tiskového zařízení. Například Packeta zveřejňuje metody pro PDF a ZPL. DHL u různých produktových API uvádí PDF, ZPL nebo obrazové formáty. Nelze předpokládat, že jeden formát poskytuje každý dopravce ve všech zemích a službách.
Proč server obvykle nemůže tisknout přímo
E-shop na hostingu nevidí USB tiskárnu ve skladu a z bezpečnostních důvodů k ní nemá mít otevřený veřejný přístup. Mezi serverem a tiskárnou proto bývá lokální tiskový agent nebo řízená cloudová tisková služba.
Typický model
- server uloží tiskovou úlohu s dokumentem, cílovou tiskárnou a metadaty,
- lokální agent se autentizuje a načte úlohy pro své pracoviště,
- pošle data do operačního systému nebo přímo na tiskárnu,
- vrátí informaci, zda byla úloha přijata nebo skončila chybou,
- obsluha případně potvrdí skutečné vytištění skenem.
Agent se má připojovat směrem ven přes šifrované spojení. Nevystavujte tiskárnu nebo lokální službu bez ochrany do internetu. Každé pracoviště má vlastní identitu a smí číst jen své fronty.
Tisková fronta a její stavy
Fronta oddělí vytvoření štítku od dostupnosti konkrétní tiskárny. Úloha může mít stavy:
- čeká: dokument je připravený,
- převzato agentem: lokální služba úlohu zpracovává,
- odesláno tiskárně: operační systém tisk přijal,
- potvrzeno: obsluha nebo zařízení výsledek ověřilo,
- chyba: neplatný formát, nedostupná tiskárna nebo jiný problém,
- zrušeno: úloha už nemá být vytištěna.
„Odesláno tiskárně“ nemusí znamenat, že papír skutečně vyjel a je čitelný. Podle důležitosti procesu lze potvrzení provést skenem čárového kódu nebo spárováním štítku s balíkem.
Bezpečný opakovaný tisk

Nejrizikovější konstrukce je jedno tlačítko „Vytvořit a vytisknout“, které při každém kliknutí znovu volá API dopravce. Pokud první tisk selže nebo obsluha nevidí výsledek, druhý pokus může založit další zásilku, další tracking a někdy i další poplatek.
Bezpečný postup
- podle objednávky a expediční části vyhledejte existující ID zásilky,
- pokud existuje, načtěte uložený štítek nebo ho znovu vyžádejte podle tohoto ID,
- vytvořte pouze novou tiskovou úlohu,
- zaznamenejte důvod dotisku, uživatele, čas a tiskárnu,
- novou zásilku vytvořte jen po výslovném zrušení nebo oddělení dalšího balíku.
API požadavek na vytvoření zásilky doplňte vlastním idempotentním klíčem, pokud ho dopravce podporuje. Když ho nepodporuje, integrační vrstva musí uzamknout operaci a uložit odpověď dřív, než dovolí další pokus. Při timeoutu je situace nejednoznačná: dopravce mohl zásilku vytvořit, i když odpověď nedorazila. Nejdřív ji zkuste dohledat podle vlastní reference, ne slepě založit znovu.
Zrušení zásilky není smazání řádku
Pokud se objednávka změní po vytvoření štítku, může být nutné zásilku stornovat u dopravce a vytvořit novou. Označení štítku jako neplatného jen v e-shopu nestačí. Postup a možnosti storna se liší podle API a fáze přepravy.
Uchovejte původní ID, tracking, důvod a potvrzení storna. Starý štítek musí být zablokovaný proti tisku. Pokud už je nalepený, obsluha potřebuje jasný pokyn k přebalení.
Více skladů a tiskáren
Cílovou tiskárnu neurčujte podle počítače uživatele, pokud tisk spouští automat. Mapujte ji podle skladu, balicího stanoviště, dopravce, rozměru a formátu. Jedna stanice může mít termální tiskárnu štítků a běžnou A4 tiskárnu pro celní dokumenty.
Užitečná pravidla směrování
- sklad Praha → tiskárna Praha štítky,
- sklad Brno → místní tisková fronta,
- formát 100 × 150 mm → termální tiskárna,
- A4 dokumenty → laserová tiskárna,
- konkrétní dopravce → odlišný profil nebo zásobník,
- výpadek primární tiskárny → ručně schválená záložní tiskárna.
Automatické přesměrování při výpadku může být užitečné, ale musí respektovat rozměr média a fyzickou dostupnost štítků. Tisk na zařízení v jiné hale bez upozornění problém jen přesune.
Hromadný tisk a pořadí balení
U větší expedice se štítky tisknou v dávkách. Pořadí musí odpovídat pořadí objednávek na vychystávacím nebo balicím stanovišti. Jinak roste riziko nalepení správného štítku na špatný balík.
Bezpečnější je:
- tisknout štítek až po naskenování obsahu konkrétní objednávky,
- zobrazit na stanici číslo objednávky a příjemce,
- po tisku načíst čárový kód štítku a svázat ho s balíkem,
- u dávky zachovat stabilní řazení a oddělovací listy,
- nepouštět stejnou dávku souběžně na dvou stanicích.
Hromadné PDF je jednoduché, ale obtížněji se v něm řeší jednotlivé chyby a potvrzení. Samostatná úloha pro každý štítek poskytuje lepší dohledatelnost, i když uživatelské rozhraní může nabídnout jednu hromadnou akci.
Dobírka a finanční údaje
Dobírková částka se má odvodit ze skutečně zbývající částky k úhradě, nikoli vždy z celkové ceny objednávky. Zohledněte částečnou platbu, kredit, refundaci nebo změnu objednávky. Měna musí odpovídat možnostem služby dopravce.
Před vytvořením zásilky zobrazte dobírku v kontrolním souhrnu a po vytvoření uložte hodnotu odeslanou dopravci. Pozdější změna ceny objednávky nesmí tiše změnit už vytvořenou zásilku bez řízené opravy.
Zahraniční a celní zásilky
Mezinárodní přeprava může vyžadovat popis zboží, hodnotu, zemi původu, hmotnost položek, celní kódy a další dokumenty. Tyto údaje patří ke katalogu produktů nebo objednávce a musí být dostupné před expedicí.
Chybějící celní data nepřekrývejte univerzálním textem. Objednávku označte k doplnění. Automatický tisk celního dokumentu směrujte na odpovídající tiskárnu a svazujte se stejnou zásilkou jako přepravní štítek.
Co se má uložit k objednávce
- interní ID expediční části,
- dopravce, smluvní účet a kód služby,
- ID zásilky a tracking,
- počet balíků a jejich parametry,
- přesná data odeslaná dopravci nebo jejich auditní otisk,
- formát a verze štítku,
- stav vytvoření a případného storna,
- historie tiskových úloh a dotisků,
- chyby, odpovědi a ruční zásahy,
- odkazy na dokumenty s řízenou dobou uchování.
Binární štítky nemusí být uložené navždy, pokud je lze bezpečně znovu načíst a právní či provozní potřeba to nevyžaduje. ID zásilky, tracking a auditní historie však musí zůstat dohledatelné podle pravidel firmy.
Monitoring a upozornění
Automatizace musí ukázat, kde se proces zastavil. Jediný stav „chyba tisku“ je příliš obecný. Rozlišujte validaci objednávky, odmítnutí dopravcem, timeout, chybějící dokument, nedostupný agent, chybu tiskárny a nepotvrzený výstup.
Sledujte zejména
- objednávky připravené k expedici bez zásilky,
- zásilky bez štítku,
- štítky čekající příliš dlouho ve frontě,
- opakované tisky a jejich důvody,
- počet nejednoznačných timeoutů u API,
- rozdíl mezi vytvořenými a skutečně předanými zásilkami,
- deaktivované nebo nefunkční webhooky,
- stav lokálních tiskových agentů a zásobu média.
Upozornění směrujte podle odpovědnosti. Neplatnou adresu řeší expedice, nefunkční autentizaci dopravce technický správce a chybějící hmotnosti správce katalogu.
Bezpečnost
API klíče dopravců a tiskových služeb ukládejte mimo veřejný kód, omezte jejich oprávnění a pravidelně je rotujte. Komunikace používá HTTPS. Lokální agent se autentizuje samostatným klíčem a neumožňuje libovolný tisk dokumentu z internetu.
Štítek obsahuje osobní údaje. Přístup k náhledu, stažení a historii tisku patří jen oprávněným rolím. URL dokumentu nemá být veřejná a snadno odhadnutelná. Logy nemají bez nutnosti uchovávat celé adresy a telefony.
Testovací scénáře před spuštěním
- běžná zaplacená objednávka na adresu,
- výdejní místo a box,
- dobírka v podporované i nepodporované měně,
- chybějící telefon, PSČ nebo hmotnost,
- více balíků v jedné objednávce,
- objednávka rozdělená mezi sklady,
- zahraniční zásilka s celními daty,
- timeout po odeslání požadavku dopravci,
- opakované doručení stejné události,
- nedostupná tiskárna a pozdější dotisk,
- zaseknutý papír po přijetí úlohy,
- storno zásilky a vytvoření náhradní,
- změna adresy po vytvoření štítku,
- současné zpracování stejné objednávky dvěma pracovníky.
Čárový kód otestujte skutečným skenerem a na tiskárně používané v provozu. Náhled PDF na monitoru neodhalí špatné škálování, nízký kontrast ani nevhodný rozměr média.
Postup zavedení
1. Změřte současný proces
Zjistěte počet zásilek, čas ruční práce, nejčastější chyby, používané dopravce a výjimky. Bez výchozí hodnoty nelze vyhodnotit přínos.
2. Sjednoťte data a pravidla
Doplňte hmotnosti, stabilní kódy dopravy, mapování služeb, podací účty a odpovědnost za neplatnou adresu.
3. Nejdřív automatizujte vytvoření štítku
Umožněte pracovníkovi dokument zkontrolovat a ručně vytisknout. Ověříte API a mapování bez rizika automatického tisku na špatném místě.
4. Přidejte tiskovou frontu
Zaveďte lokálního agenta, identitu pracovišť, potvrzení a bezpečný dotisk. Začněte jedním skladem a jednou tiskárnou.
5. Automatizujte jen ověřené objednávky
Plně automatický tok zapněte pro standardní scénáře. Neobvyklé země, nadrozměr, chybějící data nebo vysoká dobírka mohou dál vyžadovat schválení.
6. Sledujte výsledky
Porovnejte čas na zásilku, chybovost, počet dotisků, neplatných adres a zásahů. Pravidla upravujte podle dat, ne podle jednotlivého dojmu.
Automatizace má urychlit expedici, ne skrýt chybu
Dobře navržený systém vytvoří zásilku právě jednou, uloží její identifikátor, získá správný formát štítku a předá ho správné tiskárně. Když některý krok selže, ukáže přesné místo problému a umožní ho bezpečně zopakovat.
Pokud chcete propojit WooCommerce s dopravci, skladem a lokálními tiskárnami, popište nám svůj expediční proces. Navrhneme automatizaci od připravené objednávky až po potvrzený štítek, včetně více skladů, dopravců a provozních výjimek.