K čemu modul slouží
- Konec ručního přepínání stavů. Objednávky odeslané kurýrem DPD se samy přepnou na stav odesláno a po doručení na stav doručeno, bez kontroly každého balíku na stránce sledování DPD.
- Aktuální informace pro zákazníka. Změna stavu spustí e-mail přiřazený k tomuto stavu v PrestaShopu (např. o odeslání objednávky), takže zákazník dostane zprávu při první kontrole poté, co DPD balík skutečně převezme nebo doručí.
- Pořádek v objednávkách. Stav doručeno se zobrazí teprve tehdy, když DPD potvrdí doručení všech balíků objednávky – a ne tehdy, když balík čeká na výdejním místě nebo se vrací odesílateli.
- Kontrola problematických zásilek. Vrácení, ztráty a chyby komunikace s DPD se zapisují do historie s číslem objednávky a zásilky.
Kdy objednávka změní stav
Stav odeslání
- DPD má balík. Stav se nastaví, když se v událostech alespoň jedné zásilky objednávky objeví kód ze seznamu „zásilka podána“: převzetí kurýrem, podání na místě DPD Pickup, přijetí na třídírně nebo pobočce, předání k doručení nebo čekání na výdejním místě.
- Počítají se i kódy doručení. Pokud už byl balík doručen a objednávka má stále stav před odesláním, modul nastaví stav odeslání a ve stejném běhu také stav doručení – pokud jsou obě kontroly zapnuté a stav odeslání je mezi stavy kontrolovanými z hlediska doručení (tak je to ve výchozím nastavení).
- Samotná registrace údajů není podání. Událost „zaregistrována data zásilky, zásilka ještě nebyla podána“ (kód 030103) stav nemění.
Stav doručení
- Všechny balíky doručeny. Stav se nastaví, když má každá zásilka objednávky kód ze seznamu „zásilka doručena“: doručení příjemci, doručení na dobírku (COD), doručení s vynesením, vyzvednutí na místě DPD Pickup a ostatní kódy doručení z tabulky událostí DPD.
- Čekání na výdejním místě není doručení. Kód 410135 („připraveno k vyzvednutí v DPD Pickup“) znamená balík čekající na zákazníka a nemění stav na doručeno.
- Vrácení a ztráty jsou blokovány. DPD označuje vrácení odesílateli stejným kódem jako doručení, proto zásilka s kódem ze seznamu „vrácena nebo ztracena“ (vrácení odesílateli, vrácení exportní zásilky, chybějící zásilka na pobočce, likvidace) nikdy nebude označena jako doručená. Stav objednávky se nezmění a do historie se zapíše jeden záznam „Vrácení / ztráta“.
- Přesměrování pod novým číslem. Po události přeadresování (kód 230402) modul kontroluje také nové číslo zásilky uvedené DPD – až do dvou přesměrování.
Objednávky s několika balíky
- Několik čísel v jednom poli. Čísla v poli čísla zásilky mohou být oddělena mezerou, čárkou, středníkem nebo svislou čarou; modul bere také čísla z každého řádku dopravce objednávky.
- Až 10 čísel na objednávku. Číslo má 6 až 32 písmen nebo číslic; na velikosti písmen nezáleží.
Upravitelné seznamy kódů DPD
- Tři seznamy v pokročilém nastavení. „Zásilka podána“ (výchozí 40 kódů), „zásilka doručena“ (20 kódů) a „zásilka vrácena nebo ztracena“ (24 kódů). Výchozí seznamy byly sestaveny z tabulky událostí DPDInfoServices zveřejněné společností DPD Polska v roce 2026.
- Prázdný seznam se vrátí na výchozí. Kódy se zadávají jako čísla oddělená čárkami nebo novými řádky.
Které objednávky se kontrolují
- Vybraní dopravci DPD. Dopravci se ukládají podle stálého identifikátoru (reference), takže úprava dopravce v PrestaShopu, která mu přidělí nové ID, ho z kontroly nevyřadí. Seznam obsahuje dopravce všech obchodů, včetně neaktivních a modulových.
- Vybrané stavy. Pro kontrolu odeslání a doručení vybíráte zvlášť kontrolované stavy a stav, který se má nastavit. Po instalaci jsou obě kontroly vypnuté; výchozím stavem k nastavení je stav odeslané a doručené objednávky a kontrola doručení zahrnuje objednávky ve stavu odesláno. Objednávky, které už mají cílový stav, se přeskočí.
- S číslem zásilky. Číslo pochází z pole čísla sledování zásilky v objednávce, zadaného ručně nebo jiným modulem; v PrestaShopu 1.7 modul čte také starší pole čísla odeslání objednávky.
- Ne starší než vybraný počet dní. Výchozí je 30 dní od vytvoření objednávky; 0 znamená bez omezení, maximum je 3650 dní.
- Fronta bez přeskočení. Nejprve se kontrolují objednávky, které ještě nikdy nebyly zkontrolovány, potom ty kontrolované nejdávněji. Počet objednávek na jedno spuštění nastavíte od 1 do 1000 (výchozí 100) a zbytek čeká na další spuštění.
Automatická kontrola přes cron
- Adresa kontroleru modulu. Záložka Cron uvádí tři adresy: kontrola podání a doručení, pouze podání nebo pouze doručení, s tlačítky pro kopírování a ukázkovým řádkem crontabu (každých 30 minut). Adresu lze přidat do cron úloh na hostingu nebo do modulu PrestaShop „Správce úloh Cron“.
- Funguje na PrestaShopu 9. Cron je kontroler modulu, nikoli samostatný PHP soubor v adresáři modulu, jehož volání PrestaShop 9 blokuje pravidly .htaccess.
- Odpověď v JSON. Obsahuje stav běhu, počet zkontrolovaných objednávek a čísla objednávek označených jako odeslané, doručené a vrácené. HTTP kódy: 200 po kontrole, 403 při chybném tokenu, 409 když probíhá jiná kontrola.
- Režim údržby obchodu. Cron funguje i tehdy, když je obchod vypnutý kvůli údržbě, a není blokován omezeními geolokace.
- Bez paralelních běhů. Zámek v databázi neumožní spustit druhou kontrolu, když první ještě běží.
- Omezená doba běhu. Jeden dotaz na DPD čeká maximálně 20 sekund a běh přestane přijímat nové objednávky po přibližně 50 sekundách a zbytek nechá na další spuštění. Chybný login přeruší běh při prvním odmítnutí ze strany DPD a tři po sobě jdoucí chyby připojení po třetím pokusu.
- Adresy z verze 1.x. Na PrestaShopu 1.7 a 8 dosavadní adresa modules/pddpdcheckorderstate/cron.php stále funguje, protože aktualizace zachová starý klíč jako token. Po dobu 30 dnů od posledního volání staré adresy zobrazuje záložka Cron upozornění s jejím datem. Na PrestaShopu 9 je nutné použít novou adresu.
Administrátorský panel
- Záhlaví se stavem modulu. Připojení k DPD, počet vybraných dopravců, zapnutí kontroly podání a doručení a datum poslední kontroly – s barevnými indikátory.
- Dashboard. Výsledek poslední kontroly (kdo ji spustil, kolik objednávek bylo zkontrolováno, označeno jako odeslané a doručené, kolik bylo vrácení a chyb), počet objednávek čekajících na každou kontrolu, změny stavů za 7 a 30 dní a 10 posledních změn s odkazy na objednávky.
- „Zkontrolovat a aktualizovat objednávky“. Spustí z panelu stejnou kontrolu jako cron, se stejnými limity.
- „Testovat připojení k DPD“. Ověří, zda DPD přijímá uložený login a heslo.
- „Zkontrolovat číslo zásilky“. Zobrazí události DPD jedné zásilky (čas, kód, popis, pobočka) s označením, které kódy modul považuje za podání, doručení, vrácení nebo přesměrování, a výsledek: co by modul s objednávkou udělal. Nic nemění.
- Nastavení v pěti sekcích. Připojení k DPD, Dopravci DPD, Odeslané objednávky, Doručené objednávky a Pokročilé – přepínané záložkami a ukládané jedním tlačítkem. Při chybě ve formuláři se otevře sekce s první chybou a sekce s chybami jsou označené.
- Upozornění na konfiguraci. Když je stav nastavovaný modulem zároveň mezi kontrolovanými stavy, uložení zobrazí upozornění.
Historie a diagnostika
- Každá změna stavu. Datum, objednávka s referenčním číslem a odkazem, číslo zásilky, předchozí a nový stav, kód a popis události DPD, čas události a zdroj: cron, administrátorský panel nebo stará cron adresa.
- Chyby bez zahlcení historie. Chyba stejné objednávky se znovu zapisuje teprve tehdy, když se změní, a chyby celého běhu (např. odmítnutý login, chybějící připojení) maximálně jednou za hodinu.
- Srozumitelné typy chyb. Odmítnuté přihlášení, chyba připojení, chyba služby DPD, neočekávaná odpověď DPD, chybějící konfigurace, neexistující cílový stav, neúspěšná změna stavu a změna stavu bez odeslaného e-mailu zákazníkovi.
- Filtry a pořádek. Filtry: všechny záznamy, změny stavů, chyby; 50 záznamů na stránku. Záznamy starší než 180 dní se automaticky mažou a tlačítko „Vymazat historii“ smaže všechny.
Připojení k DPD Polska
- Služba DPDInfoServices. Modul používá operaci getEventsForWaybillV1 – službu sledování jednotlivých zásilek popsanou v dokumentaci DPD Polska. Nové REST API DPD Services neobsahuje operaci sledování, takže stavy zásilek DPD Polska zpřístupňuje právě přes DPDInfoServices.
- Login a heslo od obchodního zástupce DPD. Údaje pro DPDInfoServices poskytuje obchodní zástupce DPD; obvykle jsou stejné jako pro DPD Services (tisk štítků). Pole kanálu (FID) je volitelné – vyplňuje se pouze tehdy, pokud DPD přidělilo číslo kanálu.
- Testovací prostředí DPD. V nastavení je uvedena adresa testovacího prostředí DPD s veřejným testovacím loginem. Ověřuje přihlášení a správnost dotazu, ale nevrací události zásilek.
- Bez rozšíření SOAP. Modul odesílá dotazy přes cURL a nevyžaduje rozšíření PHP SOAP ani stahování souboru WSDL při každém dotazu.
Bezpečnost a oprávnění
- Heslo DPD se nevrací do prohlížeče. Pole hesla je vždy prázdné a prázdné pole při uložení zachová uložené heslo. Při změně adresy služby na jiný server je nutné heslo zadat znovu.
- Pouze šifrované připojení. Adresa služby musí začínat na https (http je povoleno pouze pro adresu stejného serveru) a certifikát DPD se ověřuje.
- Odolnost vůči neobvyklým odpovědím. Odpovědi s definicí DTD nebo větší než 2 MB jsou odmítnuty.
- Token cronu. Při instalaci 32znakový náhodný token, po aktualizaci z verze 1.x dosavadní klíč; tlačítko „Vygenerovat nový token“ přidělí nový náhodný token a okamžitě zneplatní staré adresy, včetně staré adresy cron.php. V obchodě se SSL dostane volání přes http srozumitelnou chybu místo přesměrování.
- Oprávnění zaměstnanců. Uložení nastavení a spuštění kontroly vyžadují oprávnění „konfigurovat“ modulu a právo úprav na stránce modulů. Zaměstnanec bez těchto práv neuvidí nastavení, login DPD ani cron adresy (PrestaShop 9 mu zobrazí pouze záhlaví modulu s informací o chybějících oprávněních). Každý formulář má vlastní CSRF token modulu a akce se provedou pouze po odeslání formuláře.
Více obchodů (multistore)
- Jeden účet DPD pro všechny obchody. Nastavení jsou společná a kontrola zahrnuje objednávky každého obchodu. Formulář o tom zobrazuje informaci.
- Přístup pro zaměstnance všech obchodů. Protože nastavení i běhy zahrnují všechny obchody, může modul spravovat superadministrátor nebo zaměstnanec přiřazený ke všem obchodům.
Kompatibilita, instalace a aktualizace
- PrestaShop 1.7.0–9.x, PHP 7.0–8.5. Automatické testy zahrnují PrestaShop 1.7.2.4, 1.7.5.2, 1.7.6.7, 1.7.7.2, 1.7.8.5, 1.7.8.10, 8.0.0, 8.1.7, 8.2.6, 9.0.2 a 9.1.5 na PHP 7.0–8.1: logiku kontroly na objednávkách vytvořených v obchodě (s atrapou služby DPD), panel v prohlížeči (Playwright, Chromium) a cron adresu. Syntaxe všech souborů se kontroluje na PHP 7.0–8.5.
- Aktualizace z verze 1.0.x. Přenáší nastavení (včetně uložených v kontextu jednoho obchodu), převádí uložená ID čísla dopravců na reference, zachovává starý cron klíč jako token a odstraňuje soubory staré verze. Aktualizace z 1.0.5 je ověřena testy na PrestaShopu 1.7.2.4, 1.7.8.10, 8.2.6 a 9.0.2.
- Verze 1.0.x na PrestaShopu 9. Stará verze se na PrestaShopu 9 nenačte (používá odstraněnou funkci Tools::encrypt) a samotná přítomnost jejích souborů mimo jiné narušuje vyhledávač panelu. Nahrání verze 2.0.0 místo starých souborů a aktualizace obnoví funkčnost.
- Odinstalace. Odstraní tabulku historie, tabulku stavu kontrol objednávek a všechna nastavení modulu, včetně loginu, hesla DPD a cron tokenu. Stavy a historie objednávek v PrestaShopu zůstávají beze změny.
- Jazyky. Rozhraní modulu v polštině a angličtině.
Důležité hranice fungování
- Modul nevytváří zásilky, štítky ani čísla zásilek – číslo musí být v objednávce uloženo ručně nebo jiným modulem.
- Podporuje výhradně zásilky DPD Polska kontrolované přes DPDInfoServices; je potřeba login a heslo k této službě od DPD.
- Každé číslo zásilky je samostatný dotaz na DPD; velký počet objednávek se zpracovává v dalších spuštěních cronu.
- Při vrácení nebo ztrátě modul nemění stav objednávky – zapisuje událost do historie.
- Modul neposílá vlastní e-maily: zákazník dostane zprávu přiřazenou ke stavu v PrestaShopu, pokud má stav zapnuté odesílání e-mailu. Když se e-mail nepodaří odeslat, stav se přesto změní a historie zapíše upozornění.
- Testovací prostředí DPD nevrací události zásilek, takže změny stavů lze ověřit pouze na produkčním účtu DPD.
- Modul funguje v administrátorském panelu a přes cron – nepřidává do obchodu žádné prvky viditelné pro zákazníka.