Plugin pro dopravu přes Zásilkovnu / Packetu ve VirtueMart. Umožňuje zákazníkům vybrat výdejní místo nebo Z-Box přímo v košíku, e-shopu exportovat zásilky do Packety (jednotlivě i hromadné) a tisknout štítky.
| Požadavek | Verze |
|---|---|
| Joomla | 4.x, 5.x |
| VirtueMart | 4.x |
| PHP | 8.0+ |
| MySQL | 5.7+ / MariaDB 10.3+ |
| Checkout | VirtueMart nebo One Page Checkout od RuposTelu (com_onepage 2.0.x) |
| Aktuální verze | 1.4.11 |
- Požadavky
- Instalace
- Aktivace pluginu
- Globální konfigurace
- Vytvoření metody dopravy
- Typ doručení
- Doručení na adresu (HD)
- Widget pro výběr výdejního místa
- Cena dopravy
- Export zásilek do Packety
- Hromadný export a štítky
- Tisk štítků
- Čísla a stavy zásilek v přehledu objednávek
- Dobírka (COD)
- Měny a zaokrouhlování
- Odinstalace
- Řešení problémů
1. Požadavky
- Joomla 4.x nebo 5.x (VirtueMart zatím Joomlu 6 nepodporuje)
- VirtueMart 4.x
- PHP 8.0 nebo novější
- MySQL 5.7+ / MariaDB 10.3+
- Aktivní účet u Zásilkovny / Packety s přístupem k API
Checkout: Plugin funguje ve standardním checkoutu VirtueMartu i v One Page Checkoutu od RuposTelu (
com_onepage) – od verze 1.4.0 bez dalšího nastavování. Viz One Page Checkout v sekci 8.
Údaje z Packety, které budete potřebovat
| Údaj | Kde ho najdete | K čemu slouží |
|---|---|---|
| API klíč (Widget) | Klientská sekce Packety > Nastavení > API | Zobrazení widgetu pro výběr výdejního místa na frontendu |
| API heslo | Klientská sekce Packety > Nastavení > API | Export zásilek a tisk štítků (backend) |
| Označení odesílatele | Klientská sekce Packety > Informace o uživateli > Odesílatele | Identifikace odesílatele v zásilce (povinné) |
| Carrier ID (jen pro HD) | Feed dopravců – viz sekce 7 | ID dopravce pro doručení na adresu |
2. Instalace
- Stáhněte instalační ZIP soubor
plg_vmshipment_semazasilkovna-X.Y.Z.zip. - Přihlaste se do administrace Joomla.
- Přejděte do System > Install > Extensions.
- Nahrajte ZIP soubor.
- Po úspěšné instalaci se zobrazí hláška o nainstalování pluginu.
Upgrade: Stejný postup jako instalace. Joomla použije
method="upgrade"a zachová všechna existující data.
DŮLEŽITÉ po každé aktualizaci: Otevřete ve VirtueMart kteroukoli metodu dopravy založenou na tomto pluginu a uložte ji (stačí Save & Close, nic neměnit). VirtueMart přidává nové sloupce do své tabulky zásilek až při uložení metody dopravy – instalace balíčku to neudělá. Bez tohoto kroku spadnou funkce, které nový sloupec používají (např. storno zásilky přidané ve verzi 1.4.2).
Součástí balíčku je i systémový plugin plg_system_semazasilkovna, který se nainstaluje a povolí automaticky. Zajišťuje tlačítka pro hromadný export v přehledu objednávek VirtueMart (viz sekce 11).
3. Aktivace pluginu
Po instalaci je nutné plugin dopravy ručně povolit:
- Přejděte do Extensions > Plugins (nebo System > Manage > Plugins).
- Vyhledejte
semazasilkovnaneboZasilkovna. - Klikněte na název pluginu SemaShipping Packeta - Zásilkovna pro VirtueMart (skupina
vmshipment) a nastavte Status = Enabled. - Uložte.
Systémový plugin
plg_system_semazasilkovnase povoluje sám při instalaci – ručně ho zapínat nemusíte.
Plugin sám o sobě nic nezobrazuje – až po vytvoření metody dopravy ve VirtueMart (viz sekce 5).
4. Globální konfigurace
V nastavení pluginu (Extensions > Plugins > klik na název) vyplňte globální parametry, které platí pro všechny metody dopravy založené na tomto pluginu:
| Parametr | Popis |
|---|---|
| API klíč (Widget) | Veřejný API klíč pro Packeta Widget v6 (16 znaků). Zobrazuje se na frontendu – není tajný. |
| API heslo | Tajné API heslo pro volání REST API (export zásilek, štítky). NIKDY se nezobrazuje na frontendu. |
| Označení odesílatele | Název odesílatele přesně tak, jak je uveden v klientské sekci Packety (Informace o uživateli > Odesílatele). Packeta ho při exportu vyžaduje – při neshodě vrací chybu. |
| Výchozí váha (kg) | Náhradní váha zásilky v kg, pokud není uvedena u produktu. Výchozí: 1 kg. |
| ID plateb = dobírka | Čárkou oddělená ID platebních metod VirtueMart, které jsou dobírkou. Při exportu se u nich automaticky nastaví dobírková částka (viz sekce 14). |
| Format štítků | Format PDF štítků pro tisk: A6 on A4, A7 on A4, A6 on A6, A7 on A7. |
| Stav objednávek pro export | Kódy stavů objednávek VirtueMart, ze kterých se bere seznam objednávek pro hromadný export. Lze zadat více stavů oddělených čárkou (např. E,Q). Výchozí: C (potvrzeno) – viz upozornění pod tabulkou. |
| Stav objednávky po exportu | Kód stavu VirtueMart, do kterého se objednávka přepne, jakmile zásilka dostane Packeta ID (např. S = odesláno). Prázdné = stav neměnit. Platí pro jednotlivý i hromadný export. Zda se o změně pošle e-mail zákazníkovi, řídí nastavení VirtueMartu (Konfigurace > Objednávky > stavy, o kterých se informuje zákazník). |
Důležité: Bez vyplněného API klíče a API hesla nebude plugin funkční. API klíč je nutný pro widget na frontendu, API heslo pro export zásilek a tisk štítků v administraci.
Výchozí stav
Cskoro nikdy nesedí. Kódy stavů si každý e-shop upravuje. Podívejte se do VirtueMart > Objednávky > Stavy objednávek a vyberte ten stav (nebo stavy), ve kterém u vás objednávky čekají na expedici – častoE(Vyřizuje se) neboQ(Čeká na vyřízení). StavCznamená "Zaplaceno"; dobírkové objednávky se do něj nikdy nedostanou, takže při výchozím nastavení by hromadný export nenašel nic.Při prázdném nebo chybně vyplněném parametru plugin záměrně neexportuje nic – raději nic než omylem všechno včetně storen.
5. Vytvoření metody dopravy
Plugin se ve VirtueMart používá jako základ pro metody dopravy. Jednu instalaci pluginu můžete použít pro libovolný počet metod – např. jednu pro výdejní místa v ČR a další pro doručení na adresu v každé zahraniční zemi.
Postup
- V administraci VirtueMart přejděte do Shop > Shipment Methods.
- Klikněte na New.
- Vyplňte:
- Shipment Name: Název zobrazený zákazníkovi (např. "Zásilkovna – výdejní místo")
- Published: Yes
- Shipment Description: Volitelný popis
- Shipment Method: Zvolte SemaShipping Packeta - Zásilkovna pro VirtueMart
VirtueMart v tomto rozbalovači zobrazuje u některých instalací místo názvu holý jazykový klíč
PLG_VMSHIPMENT_SEMAZASILKOVNA. Je to kosmetická vlastnost VirtueMartu (nenačítá jazykové soubory pluginu do tohoto seznamu) – vyberte tuto položku, je to správný plugin. V Extensions > Plugins se název zobrazuje správně.
- Přejděte na záložku Configuration (per-method nastavení).
- Nastavte parametry popsané v následujících sekcích.
- Uložte.
6. Typ doručení
Každá metoda dopravy má parametr Typ doručení (radio):
Výdejní místa + Z-Boxy (pickup)
- Na frontendu se zobrazí widget pro výběr výdejního místa.
- Zákazník musí vybrat bod před odesláním objednávky.
- Podporuje interní body Zásilkovny i externí (Z-Boxy, Alzaboxy apod.).
- Podrobnosti viz sekce 8.
Doručení na adresu (hd)
- Na frontendu se zobrazí jen radio button s cenou – bez widgetu.
- Adresa se přebírá z objednávky (dodací adresa, při jejím chybění fakturační).
- Vyžaduje vyplnění HD Carrier ID – viz sekce 7.
Parametry související s typem doručení
| Parametr | Popis |
|---|---|
| Země pro widget | ISO kód země pro filtrování bodu ve widgetu (např. cz, sk). Výchozí: cz. Platí jen pro typ pickup. |
| Filtr dopravců (widget) | Čárkou oddělená ID dopravců pro filtrování widgetu. Prázdné = vše. Platí jen pro typ pickup. |
| HD Carrier ID | ID dopravce Packety pro doručení na adresu. Platí jen pro typ hd. |
7. Doručení na adresu (HD)
Doručení na adresu funguje bez widgetu – zásilka se odesílá na dodací adresu z objednávky. Každá metoda dopravy ale nese jedno HD Carrier ID, které platí pro jednu zemi a jednoho dopravce.
Pravidlo: jedna země = jedna metoda dopravy. Pro doručení do pěti zemí vytvořte pět metod, každou s vlastním Carrier ID a vlastním omezením země.
Postup pro jednu zemi
- Vytvořte novou metodu dopravy podle sekce 5.
- Typ doručení = Doručení na adresu (hd).
- HD Carrier ID = ID dopravce pro danou zemi (viz tabulka níže).
- Země = pouze ta jedna země, do které metoda doručuje.
- Nastavte cenu, daň a případně váhový rozsah (viz sekce 9).
- Uložte.
Doporučená Carrier ID pro nejčastější země
| Země | Carrier ID | Dopravce | Měna | Vlastní číslo popisné | Dobírka |
|---|---|---|---|---|---|
| Česká republika | 106 | CZ Zásilkovna domů HD | CZK | ne | ano |
| Slovensko | 131 | SK Packeta Home HD | EUR | ne | ano |
| Maďarsko | 4159 | HU Doručení na adresu HD | HUF | ne | ano |
| Německo | 13613 | DE Home Delivery HD | EUR | ano | ano |
| Polsko | 1406 | PL DPD HD | PLN | ne | ano |
| Rakousko | 80 | AT Rakouská pošta HD | EUR | ne | ano |
Další dostupné varianty (pokud vám vyhovují lépe podmínky konkrétního dopravce):
| Země | Carrier ID | Dopravce | Vlastní číslo popisné | Dobírka |
|---|---|---|---|---|
| Maďarsko | 763 | HU Maďarská pošta HD | ano | ano |
| Maďarsko | 3828 | HU Express One HD | ne | ano |
| Německo | 6373 | DE Hermes HD | ano | ano |
| Polsko | 272 | PL Polská pošta 48 HD | ne | ano |
| Polsko | 3603 | PL InPost HD | ne | ano |
| Polsko | 4162 | PL Doručení na adresu HD | ano | ano |
| Rakousko | 6830 | AT DPD HD | ano | ne |
Všichni uvedení dopravci mají limit 30 kg na zásilku.
Pozor na sloupec "Vlastní číslo popisné": dopravci s hodnotou "ano" (
separateHouseNumber) vyžadují číslo popisné v samostatném polí. Viz Číslo popisné níže.
Jak si Carrier ID ověřit nebo najít další
Seznam dopravců se mění – ID si před nasazením ověřte ve svém účtu. Feed dopravců pro doručení na adresu stáhněte z:
https://www.zasilkovna.cz/api/v4/<API_HESLO>/branch.json?address-delivery
<API_HESLO> nahraďte svým tajným API heslem (stejným, jaké máte v globální konfiguraci pluginu – ne 16znakovým API klíčem widgetu).
Odpověď je JSON s objektem carriers. U každého dopravce jsou důležitá tato pole:
| Pole | Význam |
|---|---|
id | Hodnota pro parametr HD Carrier ID |
country | ISO kód země (cz, sk, hu, de, pl, at ...) |
pickupPoints | false = doručení na adresu (HD), true = výdejní místo / box |
apiAllowed | Musí být true, jinak dopravce nelze použít přes API |
currency | Měna, ve které dopravce přijímá dobírku |
separateHouseNumber | true = vyžaduje číslo popisné v samostatném polí |
disallowsCod | true = dopravce nepodporuje dobírku |
maxWeight | Maximální váha zásilky v kg |
Stejný feed najdete i v klientské sekci Packety pod položkou Feed dopravců.
Číslo popisné
Někteří zahraniční dopravci (separateHouseNumber: true) vyžadují číslo popisné oddělené od ulice. Plugin ho čte z uživatelského pole objednávky s názvem house_number, které VirtueMart standardně nemá.
Pokud používáte dopravce s tímto požadavkem:
- Přejděte do VirtueMart > Shop > User Fields.
- Vytvořte nové pole s názvem (Name) přesně
house_number. - Nastavte ho jako povinné a zobrazené v dodací i fakturační adrese.
- Uložte.
Bez tohoto pole vrátí Packeta při exportu chybu
PacketAttributesFault.
Měna a dobírka
Každý HD dopravce přijímá dobírku v jedné pevné měně (sloupec Měna v tabulkách výše). Pokud objednávku vystavíte v jiné měně, Packeta dobírku odmítne.
- Buď pro danou zemi nastavte ve VirtueMart odpovídající měnu,
- nebo u této metody dopravy dobírku nenabízejte.
Viz také sekce 15.
8. Widget pro výběr výdejního místa
U metod s typem doručení Výdejní místa + Z-Boxy se na frontendu zobrazí tlačítko "Vybrat výdejní místo", které otevře interaktivní mapu Packeta Widget v6.
Jak to funguje
- Zákazník v košíku zvolí metodu dopravy se Zásilkovnou.
- Klikne na tlačítko "Vybrat výdejní místo".
- Otevře se widget s mapou a seznamem bodu.
- Po výběru bodu se jeho název zobrazí pod tlačítkem.
- Výběr se uloží a přežije změnu platební metody, aktualizaci košíku i přechod mezi kroky objednávky.
Session persistence
Vybraný bod se ukládá do PHP session. Díky tomu:
- Výběr přežije změnu platební metody nebo jiného nastavení košíku.
- Při AJAX přenačtení stránky se bod automaticky obnoví.
- Session se vyčistí až po úspěšném odeslání objednávky.
Filtrování bodu
- Země: Parametr "Země pro widget" omezí body na konkrétní zemi (např.
czpro ČR,skpro Slovensko). - Dopravci: Parametr "Filtr dopravců" umožní zobrazit jen určité typy bodu (např. jen Z-Boxy, jen Alzaboxy). ID dopravců výdejních míst získáte ze stejného feedu jako u HD, jen s hodnotou
pickupPoints: true– viz sekce 7.
Validace: Pokud zákazník nevybere výdejní místo a pokusí se dokončit objednávku, zobrazí se hláška "Prosím vyberte výdejní místo Zásilkovny."
One Page Checkout
Od verze 1.4.0 plugin podporuje i One Page Checkout od RuposTelu (com_onepage). Nastavovat nemusíte nic navíc – plugin sám pozná, že běží v OPC, a přizpůsobí se:
- Widget i vybraný bod se vykreslí správně i při AJAX přepočtu košíku (OPC překresluje dopravu po každé změně).
- Hláška "Prosím vyberte výdejní místo Zásilkovny" se v OPC zobrazí u dopravy. Bez toho by checkout jen tiše nereagoval.
- Vybraný bod je součástí klíče, pod kterým si OPC cachuje HTML dopravy – dva zákazníci se stejným košíkem nikdy nedostanou cizí výdejní místo.
Ověřené sestavy
| Joomla | VirtueMart | One Page Checkout |
|---|---|---|
| 4.4.14 | 4.4.6 | 2.0.460 |
| 4.4.14 | 4.6.4 | 2.0.460 |
Na obou proběhla kompletní objednávka přes OPC s výběrem výdejního místa, včetně exportu zásilky do Packety a jejího storna.
Podmínka: Musí být povolené systémové pluginy One Page Checkoutu (zejména
plg_system_opc). Při vypnutém OPC pluginu pro VirtueMart se potvrzená objednávka neuloží vůbec – to je první věc, kterou při hlášce "objednávka bez výdejního místa" ověřit.
9. Cena dopravy
Každá metoda dopravy má vlastní cenové nastavení:
| Parametr | Popis |
|---|---|
| Cena dopravy | Základní cena dopravy bez DPH – viz upozornění níže. |
| Poplatek za balení | Příplatek za balení / manipulaci (přičítá se k ceně dopravy), rovněž bez DPH. |
| Daňové pravidlo | Daňové pravidlo VirtueMart pro cenu dopravy (DPH). Přičítá se k ceně dopravy. |
| Doprava zdarma od | Částka objednávky, od které je doprava zdarma. Prázdné = doprava zdarma nikdy. |
Cena se zadává BEZ DPH
Do pole Cena dopravy patří částka bez daně. DPH přičte VirtueMart podle zvoleného Daňového pravidla. Zadáte-li rovnou částku, kterou má zákazník zaplatit, naúčtujete mu ji navýšenou o DPH.
Převodní tabulka pro sazbu 21 %:
| Zákazník zaplatí | Do pole Cena dopravy |
|---|---|
| 79 Kč | 65.289256 |
| 119 Kč | 98.347107 |
| 129 Kč | 106.611570 |
Obecné: cena bez DPH = cena s DPH / 1.21.
Cenu vyplňte hned při zakládání metody dopravy. První uložení drží, ale pozdější změny pole Cena dopravy se u existující metody nemusí projevit (VirtueMart u této položky přepočítává měny a při ukládání sáhne po uložené hodnotě). Pokud potřebujete cenu změnit a změna se neprojeví, metodu dopravy smažte a založte znovu se správnou cenou.
Omezení zobrazení metody
Země a Blokované země najdete na první záložce metody dopravy ("Informace o způsobu dopravy"), ne v záložce Configuration mezi ostatními parametry pluginu. Používají se jádrová pole VirtueMartu – omezení funguje stejně, jen se nastavuje jinde. Pokud pole v konfiguraci pluginu hledáte marně, je to tím.
| Parametr | Popis |
|---|---|
| Země | Povolené země pro tuto metodu dopravy (první záložka). U HD metod zde nastavte právě jednu zemi odpovídající Carrier ID. |
| Blokované země | Země, pro které tato metoda NENÍ dostupná (první záložka). |
| Minimální váha | Minimální váha objednávky pro zobrazení této metody. |
| Maximální váha | Maximální váha objednávky pro zobrazení této metody. Doporučujeme nastavit podle limitu dopravce (maxWeight z feedu, zpravidla 30 kg). |
| Jednotka váhy | Jednotka váhy (KG nebo LB). |
10. Export zásilek do Packety
Po přijetí objednávky s dopravou přes Zásilkovnu můžete zásilku exportovat do systému Packety přímo z administrace VirtueMart.
Postup
- Přejděte do VirtueMart > Orders.
- Otevřete detail objednávky.
- V sekci dopravy uvidíte informace o vybraném bode (nebo adrese u HD).
- Klikněte na tlačítko "Vytvořit zásilku v Packetě".
- Plugin odešle data do Packeta API a zobrazí potvrzení s číslem zásilky.
Co se exportuje
- Výdejní místo: ID bodu, jméno příjemce, e-mail, telefon, váha, hodnota.
- Externí bod (Z-Box): ID dopravce + ID bodu, plus údaje příjemce.
- Doručení na adresu: ID dopravce + kompletní adresa (ulice, číslo popisné, město, PSČ).
- Dobírka: Pokud je platební metoda dobírka, nastaví se dobírková částka.
Automatická změna stavu objednávky po exportu
Pokud v globální konfiguraci vyplníte parametr Stav objednávky po exportu, přepne plugin objednávku do tohoto stavu, jakmile zásilka dostane od Packety své ID. Platí pro jednotlivý i hromadný export.
- Prázdné pole = stav se nemění (výchozí chování, aktualizace pluginu vám nic nepřepne).
- Objednávka, která už v cílovém stavu je, se přeskočí – zákazník nedostane druhou notifikaci.
- Neznámý kód stavu plugin nenastaví a upozorní na to.
- Zda o změně stavu odejde e-mail zákazníkovi, rozhoduje VirtueMart, ne plugin: Konfigurace > Objednávky > "Stavy objednávky, o kterých se informuje zákazník".
- Nezdařená změna stavu nezruší export – zásilka v Packetě už existuje a její číslo je uložené.
Storno zásilky
Od verze 1.4.2 lze zásilku stornovat přímo z detailu objednávky:
- U exportované objednávky klikněte na červené tlačítko "Stornovat zásilku".
- Potvrďte dotaz – akce je nevratná.
- Plugin pošle požadavek do Packety a zobrazí výsledek.
Co se stane po stornu:
- Číslo zásilky se nesmaže. Zůstává u objednávky dohledatelné, jen se k němu doplní datum storna.
- Místo štítku se u objednávky zobrazí odznak Stornováno <datum> a tlačítko "Vytvořit zásilku znovu".
- "Vytvořit zásilku znovu" uvolní pole zásilky a založí u Packety novou.
Stornovat lze jen dokud zásilka nebyla fyzicky předána dopravci. Později Packeta vrátí chybu
CancelNotAllowedFaulta plugin ji zobrazí – žádné tiché "hotovo".
Pozor po aktualizaci z verze starší než 1.4.2: storno používá nový sloupec v tabulce zásilek, který vznikne až při uložení kterékoli metody dopravy – viz sekce 2.
Bezpečnost
- Každý export je chráněný CSRF tokenem.
- API heslo se nikdy nezobrazuje na frontendu.
- Všechny API požadavky a odpovědi se logují do tabulky
#__sema_zasilkovna_log(API heslo je v logu maskované). - Zásilku nelze exportovat dvakrát – pokud už byla exportována, zobrazí se hláška "Zásilka již byla exportována."
11. Hromadný export a štítky
Pro odbavení více objednávek najednou slouží tlačítka přímo v přehledu objednávek VirtueMart. Zajišťuje je systémový plugin plg_system_semazasilkovna, který se instaluje automaticky spolu s pluginem dopravy.
Postup
- Přejděte do VirtueMart > Orders.
- V horní liště (vedle tlačítka "Aktualizovat objednávky") uvidíte tlačítko "Zásilkovna"; rozbalí se pod nim nabídka s položkami Export do Zásilkovny, Stáhnout štítky (PDF), Zkontrolovat stavy a Nápověda.
- Kliknutím odešle plugin do Packety všechny dosud neexportované objednávky ve stavech nastavených v parametru Stav objednávek pro export. Stavů může být více, oddělených čárkou (např.
E,Q) – viz sekce 4. - Výsledek se zobrazí v proužku pod listou – pro každou objednávku úspěch s číslem zásilky, nebo chybová hláška.
- Položka "Stáhnout štítky (PDF)" stáhne štítky ke vsem zasilkam, které jsou v Zasilkovne založené a nejsou stornované – bez ohledu na stav objednávky. Nejdřív se zeptá, od kterého pole na archu se má tisknout, aby sel dotisknout načatý arch.
Co je dobré vědět
- Objednávka, která už byla exportována, se přeskočí – opakovaný export nic nezdvojí. Pokud není co exportovat, zobrazí se "Žádné neexportované objednávky".
- Chyba u jedné objednávky nezastaví zpracování ostatních. Nepodařené objednávky vyřešíte jednotlivě z detailu objednávky.
- Hromadné štítky pokrývají výdejní místa i doručení na adresu. Packeta má ale na každý druh vlastní metodu a do jednoho PDF je nesloučí, takže když je v dávce obojí, stáhnou se dva soubory: první rovnou, druhý tlačítkem, které se objeví ve výpisu výsledků. Zvolená pozice na archu platí pro první soubor, druhý začíná na novém archu.
- Počet polí na archu se řídí formátem štítků v konfiguraci:
A6 on A4má 4 pole,A7 on A4osm,A6 on A6aA7 on A7po jednom (tam se na pozici neptáme a stahuje se rovnou). - Pokud máte vyplněný parametr Stav objednávky po exportu, přepne se každá úspěšně exportovaná objednávka do tohoto stavu – viz sekce 10.
- Nevidíte-li žádné objednávky k exportu, zkontrolujte nejdřív Stav objednávek pro export. Výchozí
Cu většiny e-shopů neodpovídá žádné objednávce. - Stránka hromadného exportu má nahoře rozbalovač stavu. Máte-li v konfiguraci více stavů oddělených čárkou, nabídne se celá kombinace jako první položka (např. "Vyřizuje se + Čeká na vyřízení") a je předvybrána. Výběr jednotlivého stavu pod ni filtr zúží jen na něj; ke kombinaci se vrátíte zpětným výběrem první položky.
- Export i stahování štítků je přístupné jen uživatelům s oprávněním do administrace a je chráněno CSRF tokenem.
12. Tisk štítků
Po úspěšném exportu zásilky můžete stáhnout PDF štítek:
- V detailu objednávky klikněte na "Stáhnout štítek (PDF)".
- Prohlížeč stáhne PDF soubor se štítkem.
Hromadné stažení štítků pro více objednávek najednou viz sekce 11.
Formáty štítků
Format se nastavuje v globálním nastavení pluginu:
| Format | Popis |
|---|---|
| A6 on A4 | Štítek A6 na papíru A4 (výchozí) |
| A7 on A4 | Štítek A7 na papíru A4 |
| A6 on A6 | Štítek A6 na papíru A6 (prima tiskárny) |
| A7 on A7 | Štítek A7 na papíru A7 (prima tiskárny) |
Typy štítků
Plugin automaticky vybere správný typ štítků podle druhů doručení:
- Interní body Zásilkovny: Standardní štítek Zásilkovny (
packetLabelPdf). - Externí body (Z-Box) a HD: Kurýrní štítek (
packetCourierLabelPdf) – plugin si nejdříve vyžádá trackovací číslo od Packety.
13. Čísla a stavy zásilek v přehledu objednávek
Od verze 1.6.0 vypisuje plugin přímo v přehledu objednávek VirtueMart číslo zásilky pod číslem objednávky a pod nim stav zásilky. Detail objednávky už tedy nemusíte otvírat jen kvůli tomu, abyste zjistili, jestli je zásilka založena a kde je.
Odznak s číslem zásilky
- Objeví se u každé objednávky, která má v Packetě založenou zásilku – bez ohledu na stav objednávky.
- Stornovaná zásilka má číslo přeškrtnuté a v bublinové nápovědě je vysvětlení.
- Odznak se načítá spolu s přehledem objednávek a nevyžaduje žádné nastavení.
Zkontrolovat stavy
Stav zásilky se nenačítá sám při každém zobrazení přehledu – znamenalo by to jeden dotaz do Packety na každou zásilku a stránka by se otvírala pomalu. Vyžádáte si ho ručně:
- Přejděte do VirtueMart > Orders.
- V nabídce pod tlačítkem "Zásilkovna" zvolte "Zkontrolovat stavy".
- Plugin se zeptá Packety na stav založených nestornovaných zásilek a uloží ho k objednávce.
Co je dobré vědět
- Packeta nemá hromadnou obdobu dotazu na stav, takže jde o jeden dotaz na každou zásilku. Plugin proto zpracuje nejvýše 40 zásilek na jedno kliknutí a vypíše "Zbývá N zásilek – klikněte na Zkontrolovat stavy znovu." Klikněte tolikrát, kolikrát je potřeba.
- Přednost dostávají zásilky, na jejichž stav se nejdéle nikdo neptal, takže opakovaným klikáním projdete celý seznam.
- Stavy se překládají do češtiny, slovenštiny, angličtiny, němčiny a polštiny. Stav, který plugin nezná, se vypíše tak, jak přišel z Packety – nikdy nezůstane prázdno.
- Zjištěný stav "stornovaná" se k zásilce jen doplní, nikdy neruší. Čerstvě stornovaná zásilka se první minuty vrací z různých replik Packety nejednotně, takže by se příznak jinak sám odmazal.
- Není-li co kontrolovat, plugin napíše "Není co kontrolovat – žádná založená nestornovaná zásilka."
- Výpis stavu je přístupný jen uživatelům s oprávněním do administrace a je chráněný CSRF tokenem, stejně jako export a štítky.
14. Dobírka (COD)
Plugin podporuje automatickou detekci dobírky:
- V globálním nastavení pluginu vyplňte parametr "ID plateb = dobírka".
- Zadejte čárkou oddělená ID platebních metod VirtueMart, které jsou dobírkou.
- Při exportu zásilky plugin automaticky zkontroluje, zda objednávka používá dobírku, a nastaví správnou částku.
Jak zjistit ID platební metody
- Přejděte do VirtueMart > Payment Methods.
- Otevřete platební metodu dobírky.
- ID je viditelné v URL (parametr
virtuemart_paymentmethod_id).
Omezení u zahraničních dopravců
- Dobírka musí být ve měně dopravce – viz sekce 7 a sekce 15.
- Někteří dopravci dobírku nepodporují vůbec (
disallowsCod: true, např. AT DPD HD). U takové metody dobírkovou platbu nenabízejte.
15. Měny a zaokrouhlování
Plugin posílá do Packety menu objednávky (pole currency) spolu s hodnotou zásilky a případnou dobírkou.
- CZK a HUF nemají setinnou jednotku – Packeta u nich odmítá desetinná místa a vrací chybu
PacketAttributesFault. Plugin proto hodnotu i dobírku u těchto měn automaticky zaokrouhlí na celé číslo. - EUR, PLN a další se odesílají s desetinnými místy beze změny.
- Měna objednávky by měla odpovídat měně dopravce (sloupec Měna v tabulkách v sekci 7), jinak Packeta dobírku odmítne.
16. Odinstalace
Postup
- Extensions > Manage > Extensions
- Vyhledejte
semazasilkovna. - Odinstalujte plugin dopravy SemaShipping Packeta - Zásilkovna pro VirtueMart.
Co se smaže
- Plugin dopravy (PHP, JS, CSS, jazykové soubory)
- Systémový plugin
plg_system_semazasilkovna(odstraní se automaticky) - Tabulka
#__virtuemart_shipment_plg_semazasilkovna(data o zásilkách v objednávkách)
Co ZŮSTANE zachováno
- Tabulka
#__sema_zasilkovna_log(auditní záznamy o API voláních)
Proč se log nemaže? Záznamy o exportovaných zásilkách slouží jako audit trail. Automatické smazání při odinstalaci by mohlo způsobit ztrátu důležitých informaci. Pokud tabulku chcete odstranit, proveďte to ručně:
DROP TABLE IF EXISTS `#__sema_zasilkovna_log`;(nahraďte
#__vaším skutečným prefixem tabulek)
17. Řešení problémů
Widget se nezobrazuje
- Ověřte, že plugin je povolený.
- Ověřte, že metoda dopravy má typ doručení Výdejní místa + Z-Boxy (ne HD).
- Zkontrolujte, že je vyplněný API klíč (Widget) v globálním nastavení pluginu.
- Zkontrolujte konzoli prohlížeče (F12) na JavaScript chyby.
- Ověřte, že stránku neblokuje Content Security Policy (CSP) pro doménu
widget.packeta.com.
Zákazník nemůže dokončit objednávku
- U metody typu "Výdejní místa" zákazník MUSÍ vybrat bod. Hláška "Prosím vyberte výdejní místo Zásilkovny" se zobrazuje správně.
- U metody typu "Doručení na adresu" se žádná validace bodu neprovádí – pokud zákazník nemůže dokončit objednávku, problém je jinde.
Chyba při exportu zásilky
- Ověřte, že je vyplněné API heslo v globálním nastavení pluginu.
- Ověřte, že Označení odesílatele přesně odpovídá názvu odesílatele v klientské sekci Packety.
- Zkontrolujte hlášení chyby – plugin zobrazuje přesnou odpověď Packeta API.
- Zkontrolujte log v tabulce
#__sema_zasilkovna_logpro detaily požadavku a odpovědi.
Chyba PacketAttributesFault
Nejčastější příčiny:
- Chybí číslo popisné u dopravce s
separateHouseNumber: true– viz Číslo popisné. - Desetinná místa v CZK nebo HUF – řeší zaokrouhlení v sekci 15.
- Nesouhlasí Označení odesílatele s klientskou sekci Packety.
- Chybí telefon nebo e-mail u dopravce s
requiresPhone/requiresEmail. - Přetečení limitu váhy dopravce (
maxWeight, zpravidla 30 kg).
Metoda dopravy pro doručení na adresu neposílá správného dopravce
- Ověřte, že HD Carrier ID odpovídá zemi nastavené v parametru Země.
- Ověřte, že dopravce má ve feedu
apiAllowed: true– např. "Packeta večerní doručení Bratislava HD" (ID 132) přes API použít nelze. - Ověřte, že Typ doručení je nastaven na hd (ne pickup).
Štítek se nestáhne
- Ověřte, že zásilka byla úspěšně exportována (musí existovat číslo zásilky).
- Zkontrolujte, že format štítků v nastavení pluginu je platný.
- Pro externí body a HD: plugin potřebuje získat trackovací číslo od Packety. Pokud selže, zkontrolujte API log.
- U hromadného stahování: externí body a HD nejsou součástí hromadného PDF, stáhněte je jednotlivě.
Hromadný export hlásí "Unexpected response" nebo chybu 500
Toto je opravené ve verzi 1.4.3. Příčinou byl konflikt při načítání pluginu dopravy (Joomla naimportuje celou skupinu vmshipment a jádrový plugin VirtueMartu weight_countries spadne, pokud se načte dříve než náš plugin – chyba Class "vmPSPlugin" not found).
- Aktualizujte plugin na 1.4.3 nebo novější.
- Ověřte, že systémový plugin
plg_system_semazasilkovnaje povolený – opravu zajišťuje právě on. - Projev chyby závisí na pořadí pluginů, takže se může objevit i na webu, kde předtím vše fungovalo.
Hromadný export nenajde žádné objednávky
- Zkontrolujte parametr Stav objednávek pro export. Výchozí
C(Zaplaceno) u většiny e-shopů neobsahuje nic – dobírkové objednávky se do něj nedostanou nikdy. - Správný kód najdete ve VirtueMart > Objednávky > Stavy objednávek.
- Více stavů oddělte čárkou (
E,Q). Prázdná nebo chybná hodnota záměrně neexportuje nic.
Kontrola stavu hlásí, že tabulka nemá sloupce pro stav
Hláška "Tabulka metody dopravy nemá sloupce pro stav zásilky" znamená, že web byl aktualizovan na 1.6.0, ale VirtueMart si ještě nedoplnil nové sloupce. Otevřete a uložte kterékoli metodu dopravy Zásilkovny – VirtueMart je při uložení doplní. Je to tataz situace jako u storna, viz sekce 2.
Storno zásilky končí chybou o neexistujícím sloupci
Aktualizace pluginu nová pole v tabulce zásilek nevytvoří. Otevřete kteroukoli metodu dopravy ve VirtueMart a uložte ji – VirtueMart tím sjednotí schema tabulky. Viz sekce 2.
Zásilku nelze stornovat (CancelNotAllowedFault)
Packeta storno odmítá, jakmile byla zásilka fyzicky předána dopravci. V takovém případě řešte situaci přímo v klientské sekci Packety.
Stav objednávky se po exportu nemění
- Ověřte, že je vyplněný parametr Stav objednávky po exportu (prázdné = stav se záměrně nemění).
- Ověřte, že zadaný kód odpovídá existujícímu stavu ve VirtueMart > Objednávky > Stavy objednávek.
- Objednávka, která už v cílovém stavu je, se přeskakuje.
- Chybí-li zákazníkovi e-mail o změně stavu, jde o nastavení VirtueMartu (Konfigurace > Objednávky), ne pluginu.
Widget se v One Page Checkoutu otevírá dvakrát nebo bod mizí
- Aktualizujte plugin na 1.4.0 nebo novější – starší verze One Page Checkout nepodporovaly.
- Ověřte, že jsou povolené systémové pluginy OPC (zejména
plg_system_opc). - Vyčistěte cache Joomly i OPC.
Tlačítka hromadného exportu se nezobrazují
- Ověřte, že systémový plugin
plg_system_semazasilkovnaje nainstalovaný a povolený (Extensions > Plugins, skupinasystem). - Ověřte, že jste na stránce VirtueMart > Orders (tlačítka se jinde nezobrazují).
- Zkontrolujte konzoli prohlížeče na JavaScript chyby.
Dobírka se nenastavuje
- Ověřte, že ID platební metody dobírky je správně zadané v parametru "ID plateb = dobírka".
- ID musí být číslo odpovídající
virtuemart_paymentmethod_idv URL platební metody. - Více ID oddělujte čárkou bez mezer (např.
3,7). - Ověřte, že dopravce dobírku vůbec podporuje (
disallowsCod: false).
Metoda dopravy se nezobrazuje
- Ověřte nastavení zemí (povolené / blokované).
- Ověřte váhové omezení (min/max váha).
- Ověřte, že metoda je Published ve VirtueMart.
- Ověřte, že plugin je Enabled.
Kontrolní seznam pro spuštění
- Plugin nainstalován a povolen
- API klíč (Widget) vyplněn
- API heslo vyplněno
- Označení odesílatele vyplněno a shoduje se s klientskou sekci Packety
- Metoda dopravy vytvořena ve VirtueMart a publikovaná
- Typ doručení zvolen (pickup nebo hd)
- Země pro widget nastavena (pokud pickup)
- HD Carrier ID vyplněno a ověřeno ve feedu dopravců (pokud hd)
- Pro HD: v parametru Země je nastavena právě jedna země
- Pole
house_numbervytvořeno (pokud dopravce vyžaduje vlastní číslo popisné) - Měna objednávek odpovídá měně dopravce
- ID dobírkových plateb vyplněno (pokud používáte dobírku)
- Format štítků zvolen
- Stav objednávek pro export nastaven podle skutečných stavů e-shopu (ne výchozí
C) - Stav objednávky po exportu nastaven (nebo vědomě ponechán prázdný)
- Cena dopravy zadána BEZ DPH a ověřena v košíku
- Po aktualizaci otevřena a uložena kterákoli metoda dopravy
- Testovací objednávka provedena a zásilka úspěšně exportována
- Štítek stažen a vytištěn
- Hromadný export otestován v přehledu objednávek
- Storno zásilky otestováno na testovací objednávce
- Zkontrolovat stavy spusteno a stav se v přehledu objednávek vypsal
- Při použití One Page Checkoutu ověřen výběr bodu přímo v OPC