Plugin

WooCommerce – Slovenská Pošta – BalíkoBOX, Balík na Poštu

Pozrieť Plugin

Pokladňa

Ako funguje integrácia

Keď zákazník vyberie spôsob dopravy Balík na Poštu alebo BalikoBOX na stránke pokladne, plugin vloží pod zvolený spôsob dopravy výber odberného miesta. Zákazník musí odberné miesto vybrať, inak nie je možné objednávku dokončiť.

Plugin podporuje klasický WooCommerce shortcode checkout aj moderný WooCommerce Blocks checkout.


Režimy výberu

Plugin podporuje dve implementácie výberu odberného miesta:

  • Pošta Widget (predvolený) — Oficiálny widget Slovenskej pošty načítaný zo serverov Slovenskej pošty. Nevyžaduje lokálnu databázu odberných miest.
  • Vstavaná mapa — Mapový dialóg postavený na OpenLayers napájaný lokálnou databázou odberných miest. Podporuje vlastné ikony na mape, geolokáciu a varovania o hmotnosti priamo v dialógu.

Aktívny režim určuje nastavenie Use Pošta Widget v WP-Admin > Slovenská Pošta > Pickup Points. Pozri Výber odberného miesta pre úplný popis oboch režimov.


Priebeh klasickej pokladne

Výber odberného miesta v pokladni

  1. Zákazník príde na stránku pokladne a vidí dostupné spôsoby dopravy.
  2. Po výbere Balíka na Poštu alebo BalikoBOXu sa pod spôsobom dopravy zobrazí tlačidlo „Vybrať odberné miesto".
  3. Ak je v nastaveniach povolené Skryť polia doručovacej adresy, formulár doručovacej adresy sa automaticky skryje.
  4. Zákazník klikne na tlačidlo a otvorí výber odberného miesta (Pošta Widget alebo vstavaná mapa podľa nastavení).
  5. Zákazník vyberie odberné miesto a potvrdí výber.
  6. Namiesto tlačidla sa zobrazí názov vybraného odberného miesta a tlačidlo „Zmeniť".
  7. Zákazník dokončí objednávku štandardným spôsobom.

Validácia objednávky

Pri odoslaní objednávky plugin overuje výber odberného miesta na strane servera:

  • Výber je povinný: Ak žiadne odberné miesto nebolo vybrané a je aktívna metóda dopravy Slovenskej pošty, objednávka je zamietnutá s chybovou správou vyzývajúcou zákazníka na výber odberného miesta.
  • Odberné miesto existuje: Plugin overuje, či vybrané ID odberného miesta existuje v databáze.
  • Zhoda so službou: Vybrané odberné miesto musí ponúkať službu zodpovedajúcu zvolenému spôsobu dopravy (BNP alebo BBOX).
  • Limit hmotnosti: Ak je Bypass Weight Limit v nastaveniach vypnutý, plugin kontroluje, či hmotnosť košíka nepresahuje maximálnu prijateľnú hmotnosť odberného miesta.

Ukladanie do session

Vybrané odberné miesto je uložené v session WooCommerce pod kľúčom wcsp_selected_pickup_point. Session dáta obsahujú:

  • id — ID v databáze
  • ref_id — referenčné ID Slovenskej pošty
  • name — zobrazovaný názov
  • street, number, city, zip, country — úplná adresa
  • service_codeBNP alebo BBOX

Pri vytvorení objednávky sa tieto session dáta prenesú do meta objednávky. Session sa po vytvorení objednávky vymaže.


Prepis doručovacej adresy

Ak je v nastaveniach povolená možnosť Replace Shipping Address:

  • Meno, priezvisko a firma doručovacej adresy objednávky sú prepísané názvom odberného miesta.
  • Polia doručovacej adresy (ulica, mesto, PSČ, krajina) sú nahradené adresou odberného miesta.

Tým sa zabezpečí, že ak váš systém správy objednávok alebo generátor štítkov číta doručovaciu adresu WooCommerce, zobrazí sa mu poloha odberného miesta namiesto domácej adresy zákazníka.


Viditeľnosť polí doručovacej adresy

Plugin dynamicky zobrazuje alebo skrýva formulár doručovacej adresy podľa zvoleného spôsobu dopravy:

  • Keď je vybraná metóda Slovenskej pošty → polia adresy sú skryté (ak je povolené v nastaveniach).
  • Keď je vybraná iná ako slovensko-poštová metóda → polia adresy sa zobrazia štandardne.
  • Prepínanie medzi metódami aktualizuje viditeľnosť polí bez obnovenia stránky.

Súvisiace stránky

Výber odberného miesta

Výber odberného miesta sa zobrazí zákazníkovi v pokladni, keď vyberie spôsob dopravy Balík na Poštu alebo BalikoBOX. Plugin podporuje dve implementácie výberu.


Režimy výberu

Pošta Widget (predvolený)

Keď je povolený Use Pošta Widget (predvolené nastavenie), použije sa oficiálny widget Slovenskej pošty. Widget sa načíta zo serverov Slovenskej pošty a vloží sa do stránky pokladne.

  • Nezávisí od lokálnej databázy odberných miest.
  • Vzhľad a správanie vyhľadávania widgetu kontroluje Slovenská pošta.
  • Nastavenia mapy (predvolený stred, priblíženie, vlastné ikony) nakonfigurované v plugine sa na widget nevzťahujú.
  • Vybrané odberné miesto sa ukladá do session WooCommerce rovnako ako v režime vstavanej mapy.

Na prepnutie na vstavanou mapu vypnite Use Pošta Widget v WP-Admin > Slovenská Pošta > Pickup Points.

Vstavaná mapa

Keď je Pošta Widget vypnutý, plugin zobrazí vlastný mapový dialóg postavený na OpenLayers. Všetky dáta odberných miest sú načítané z lokálnej WordPress databázy cez AJAX — počas pokladne sa nerobí žiadna požiadavka na externé služby. Tento režim používa konfiguráciu Nastavení mapy a vyžaduje aktuálnu lokálnu databázu odberných miest.

Zvyšok tejto stránky popisuje režim vstavanej mapy.



Rozloženie dialógu

Dialóg je rozdelený na dva panely:

┌─────────────────────────────────────────────────────────────┐
│  [ Search pickup points...          ] [🔍]  [📍 My Location] │
├───────────────────────┬─────────────────────────────────────┤
│                       │                                     │
│  Results List         │           Map                       │
│                       │                                     │
│  ● Pošta Bratislava   │   [OpenLayers map with pins]        │
│  ● Pošta Košice       │                                     │
│  ● BalikoBOX - Aupark │                                     │
│                       │   ┌──────────────────────────────┐  │
│                       │   │ Selected: Pošta Bratislava 1 │  │
│                       │   │ Obchodná 15, 811 06, BA      │  │
│                       │   │ Mon-Fri: 8:00-18:00          │  │
│                       │   │ [✓ Confirm Selection]        │  │
│                       │   └──────────────────────────────┘  │
└───────────────────────┴─────────────────────────────────────┘

Ľavý panel: Vyhľadávacie pole s indikátorom načítavania, tlačidlo geolokácie „Moja poloha" a zoznam výsledkov.

Pravý panel: Mapa OpenLayers so zhlukovanými markermi odberných miest a panel s podrobnosťami o vybranom odbernom mieste (adresa, otváracie hodiny a tlačidlo potvrdenia).


Otvorenie dialógu

Dialóg sa otvorí po kliknutí zákazníka na tlačidlo „Vyberte odberné miesto" vložené pod zvolený spôsob dopravy.

Po otvorení:

  • Mapa sa inicializuje s nakonfigurovaným predvoleným stredom a priblížením.
  • Všetky odberné miesta pre aktívnu službu (BNP alebo BBOX) sú vyznačené na mape ako zhlukované markery.
  • Ak je v nastaveniach povolená Auto-geolokácia, prehliadač automaticky požiada o polohu zákazníka. Ak je povolenie udelené, mapa sa vystredí na polohu zákazníka a zobrazia sa blízke odberné miesta.

Vyhľadávanie

Textové vyhľadávanie:

  • Zákazník zadá hľadaný výraz (minimálne 2 znaky) do vyhľadávacieho poľa.
  • Výsledky sa načítajú z lokálnej databázy cez AJAX, pričom sa vyhľadáva podľa: názvu odberného miesta, mesta a PSČ.
  • Maximálny počet vrátených výsledkov je 40.
  • Pri každom výsledku sa zobrazuje názov odberného miesta, adresa a — ak hmotnosť košíka presahuje limit daného miesta — varovný odznak o hmotnosti.

Geolokácia („Moja poloha"):

  • Kliknutím na tlačidlo Moja poloha sa spustí Geolocation API prehliadača.
  • Ak je povolenie udelené, plugin nájde najbližšie odberné miesta pomocou Haversineovho vzorca vzdialenosti.
  • Vráti sa maximálne 50 najbližších výsledkov zoradených podľa vzdialenosti.
  • Pri každom odbernom mieste v zozname výsledkov sa zobrazí vzdialenosť.

Interakcia s mapou

  • Markery: Všetky odberné miesta pre aktuálnu službu sú zobrazené na mape. Pri oddialení sa blízke markery zhlukujú do jedného kruhu s počtom. Kliknutím na zhluk sa priblíži a markery sa oddelia.
  • Výber z mapy: Kliknutím na marker sa zvýrazní zodpovedajúce odberné miesto v zozname výsledkov a v paneli vpravo sa zobrazia jeho podrobnosti.
  • Výber zo zoznamu: Kliknutím na výsledok v zozname sa mapa priblíži a vystredí na dané odberné miesto a zobrazia sa jeho podrobnosti.
  • Vybraný marker: Vybrané odberné miesto používa odlišnú ikonu (konfigurovateľnú v Nastaveniach mapy).

Panel podrobností odberného miesta

Po výbere odberného miesta (zo zoznamu alebo z mapy) sa v pravom paneli zobrazí:

  • Názov odberného miesta.
  • Úplná adresa (ulica, číslo, mesto, PSČ).
  • Tabuľka otváracích hodín naformátovaná z uložených XML dát.
  • Tlačidlo Potvrdiť výber.

Varovania o hmotnosti

Ak celková hmotnosť košíka presahuje maximálnu prijateľnú hmotnosť odberného miesta, zobrazí sa vizuálne varovanie:

  • V zozname výsledkov sa vedľa názvu odberného miesta zobrazí varovný odznak.
  • V paneli podrobností sa zobrazí varovná správa.

Ak je „Bypass Weight Limit" vypnutý (predvolené):

  • Odberné miesta, ktoré nemôžu prijať hmotnosť košíka, sú v zozname zobrazené sivou farbou a nie je možné ich vybrať.

Ak je „Bypass Weight Limit" zapnutý:

  • Varovania o hmotnosti sa zobrazujú, ale nebránia výberu. Zákazník môže potvrdiť odberné miesto aj pri prekročení hmotnostného limitu.

Potvrdenie výberu

Kliknutím na Potvrdiť výber v paneli podrobností:

  1. Sa ID vybraného odberného miesta odošle na server cez AJAX (wcsp_save_selected_pp).
  2. Server overí výber (existencia, zhoda so službou, hmotnostný limit ak nie je obídený).
  3. Dáta odberného miesta sa uložia do session WooCommerce.
  4. Dialóg sa zatvorí.
  5. Pod spôsobom dopravy sa zobrazí názov odberného miesta s tlačidlom „Zmeniť".

Výber pretrváva v session po celú dobu pokladne. Ak zákazník zmení spôsob dopravy na iný ako Slovenská pošta a späť, predchádzajúci výber sa vymaže.


Zmena výberu

Ak zákazník klikne na „Zmeniť" po potvrdení výberu:

  1. Dialóg výberu sa znova otvorí.
  2. Predchádzajúce vybrané odberné miesto je zvýraznené v zozname výsledkov aj na mape.
  3. Zákazník môže vyhľadávať, prechádzať a vybrať iné odberné miesto.

Filtrovanie podľa služby

Dialóg automaticky filtruje odberné miesta podľa zvoleného spôsobu dopravy:

  • Balík na Poštu: Zobrazuje pobočky pošty. Ak je na inštancii dopravy povolené Exclude BalikoBOX Locations, sú z tohto zoznamu skryté aj BalikoBOX skrinky.
  • BalikoBOX: Zobrazuje iba polohy BalikoBOX skriniek.

Prepínanie medzi spôsobmi dopravy v pokladni automaticky resetuje aktuálny výber a znova filtruje výsledky.

Block Checkout

Podpora WooCommerce Blocks Checkout

Plugin podporuje klasický WooCommerce shortcode checkout ([woocommerce_checkout]) aj moderný WooCommerce Blocks checkout predstavený vo WooCommerce 8.3+.


Správanie

Dialóg výberu odberného miesta funguje rovnako v oboch typoch pokladne. Keď je vybraná metóda Slovenskej pošty, zobrazí sa tlačidlo „Vybrať odberné miesto" a polia doručovacej adresy sa automaticky skryjú.


Známe obmedzenia

  • Plugin nie je zaregistrovaný ako natívne rozšírenie WooCommerce Blocks a nezobrazuje sa v bočnom paneli editora blokov.
  • Vlastné blokové témy, ktoré výrazne menia štruktúru bloku WooCommerce Checkout, môžu vyžadovať otestovanie.

Overenie funkčnosti Block Checkoutu

Postup overenia integrácie:

  1. Aktivujte Blocks checkout na svojom webe (cez WooCommerce > Nastavenia > Rozšírené > Stránka pokladne, alebo pomocou bloku Checkout v editore stránok).
  2. Pridajte produkt do košíka a pokračujte do pokladne.
  3. Overte, že sa metódy dopravy Slovenskej pošty zobrazia v kroku dopravy.
  4. Vyberte metódu a overte, že sa zobrazí tlačidlo „Vybrať odberné miesto".
  5. Otvorte výber, vyberte odberné miesto a potvrďte.
  6. Overte, že polia doručovacej adresy sú skryté (ak je nakonfigurované) a zobrazuje sa názov vybraného odberného miesta.
  7. Dokončite objednávku a overte, že odberné miesto je uložené v objednávke.