Preskočiť na obsah

Integrácia InPost (Paczkomaty)

Modul InPost integruje WooCommerce s API ShipX. Generujte štítky, umožnite zákazníkom vybrať Paczkomat na mape a sledujte zásielky z admin panela.

Prejdite do WooCommerce > Nastavenia > Polski PRO > InPost.

NastaveniePopis
API tokenAutorizačný token z panela InPost Manager
ID organizácieIdentifikátor organizácie v systéme InPost
Režim sandboxPoužíva testovacie prostredie ShipX API

Token sa odosiela v hlavičke Authorization: Bearer {token}. Musí mať oprávnenia na vytváranie zásielok a štítkov.

Po nakonfigurovaní API vytvorte novú metódu dopravy:

  1. Prejdite do WooCommerce > Nastavenia > Doprava > Zóny dopravy
  2. Upravte zónu “Poľsko”
  3. Kliknite na “Pridať metódu dopravy”
  4. Vyberte “InPost Paczkomat” alebo “InPost Kuriér”
Nastavenie metódyPredvolená hodnotaPopis
Názov metódy”InPost Paczkomat”Názov zobrazený zákazníkovi
Cena0Cena dopravy (0 = zadarmo)
Doprava zadarmo od""Suma objednávky, od ktorej je doprava zadarmo
Predvolená veľkosť balíkaAVeľkosť: A, B, C
PoistenieNiePridaj poistenie k zásielke

Po výbere “InPost Paczkomat” v pokladni sa zobrazí interaktívny widget mapy.

Widget ponúka:

  • Mapu so značkami Paczkomatov
  • Vyhľadávanie podľa mesta - zadajte názov mesta na vycentrovanie mapy
  • Vyhľadávanie podľa súradníc - automatická geolokalizácia (so súhlasom používateľa)
  • Vyhľadávanie podľa PSČ - nájdite najbližšie Paczkomaty
  • Zoznam Paczkomatov - zoradený od najbližšieho
  • Detaily miesta - adresa, otváracie hodiny, dostupné veľkosti schránok

Widget odosiela požiadavku na endpoint ShipX API:

GET /v1/points?type=parcel_locker&city={city}&per_page=25

Výsledky sa cachujú na 24 hodín v transients WordPressu.

Keď zákazník udelí súhlas s geolokalizáciou:

GET /v1/points?type=parcel_locker&relative_point={lat},{lng}&per_page=10
/**
* Filtruje zoznam odberných miest InPost.
*
* @param array $points Pole odberných miest z API
* @param string $city Hľadané mesto
* @param array $coords Súradnice [lat, lng] alebo prázdne pole
*/
apply_filters('polski_pro/inpost/points', array $points, string $city, array $coords): array;

Príklad - vylúčenie dočasne nedostupných miest:

add_filter('polski_pro/inpost/points', function (array $points, string $city, array $coords): array {
$excluded_points = ['KRA123', 'WAW456']; // Dočasne vypnuté
return array_filter($points, function (array $point) use ($excluded_points): bool {
return ! in_array($point['name'], $excluded_points, true);
});
}, 10, 3);

V paneli InPost na stránke objednávky:

  1. Generovať štítok - vytvorí zásielku v API ShipX a vygeneruje štítok PDF
  2. Stiahnuť štítok - stiahne vygenerovaný štítok
  3. Tlačiť štítok - otvorí náhľad tlače

Označte viacero objednávok v zozname a vyberte “Generovať štítky InPost”. Štítky sa generujú na pozadí. Po dokončení stiahnite súbor ZIP.

Štítok sa generuje na základe:

PoleZdrojPopis
OdosielateľNastavenia obchoduAdresa a firemné údaje z WooCommerce
PríjemcaÚdaje objednávkyMeno, priezvisko, telefón, e-mail
Odberné miestoVýber zákazníkaID Paczkomatu vybraného v pokladni
Veľkosť balíkaNastavenie metódyAlebo prepísanie v objednávke
Suma dobierkyObjednávka CODIba pre objednávky na dobierku
/**
* Filtruje údaje zásielky pred odoslaním do API ShipX.
*
* @param array $shipment_data Údaje zásielky
* @param \WC_Order $order Objednávka WooCommerce
*/
apply_filters('polski_pro/inpost/shipment_data', array $shipment_data, \WC_Order $order): array;

Príklad - pridanie referencie objednávky:

add_filter('polski_pro/inpost/shipment_data', function (array $shipment_data, \WC_Order $order): array {
$shipment_data['reference'] = sprintf('ORDER-%s', $order->get_order_number());
return $shipment_data;
}, 10, 2);

Po vygenerovaní štítku modul kontroluje stav zásielky každé 2 hodiny (WP-Cron). Stavy sa mapujú na stavy WooCommerce:

Stav InPostStav WooCommercePopis
createdprocessingZásielka vytvorená
dispatched_by_senderprocessingPodaná odosielateľom
collected_from_sendershippedPrevzatá od odosielateľa
out_for_deliveryshippedDoručuje sa
ready_to_pickupshippedPripravená na odber v Paczkomate
deliveredcompletedDoručená / prevzatá

Zákazník dostane e-mail s odkazom na sledovanie na stránke InPost. Odkaz sa pridáva do:

  • E-mailu “Objednávka sa spracúva”
  • Stránky “Môj účet > Objednávky > Detaily”
  • Poznámok objednávky (viditeľných pre zákazníka)
/**
* Akcia vyvolaná po aktualizácii stavu zásielky.
*
* @param int $order_id ID objednávky
* @param string $tracking_number Číslo sledovania
* @param string $old_status Predchádzajúci stav InPost
* @param string $new_status Nový stav InPost
*/
do_action('polski_pro/inpost/status_updated', int $order_id, string $tracking_number, string $old_status, string $new_status);

Príklad - SMS notifikácia o pripravenosti na odber:

add_action('polski_pro/inpost/status_updated', function (
int $order_id,
string $tracking_number,
string $old_status,
string $new_status
): void {
if ($new_status === 'ready_to_pickup') {
$order = wc_get_order($order_id);
$phone = $order->get_billing_phone();
send_sms($phone, sprintf(
'Tvoj balík %s čaká v Paczkomate. Kód na odber je v e-maile.',
$tracking_number
));
}
}, 10, 4);
VeľkosťRozmery (cm)Max hmotnosť
A8 x 38 x 6425 kg
B19 x 38 x 6425 kg
C41 x 38 x 6425 kg

Veľkosť balíka je možné nastaviť globálne, na metódu dopravy alebo ručne prepísať v objednávke.

Mapa Paczkomatov sa nenačíta Skontrolujte, či je API token správny a aktívny. Skontrolujte konzolu prehliadača na chyby CORS alebo JavaScript. Uistite sa, že skript polski-pro-inpost-map.js je načítaný.

Chyba generovania štítku “Unauthorized” API token vypršal alebo nemá oprávnenia na vytváranie zásielok. Vygenerujte nový token v paneli InPost Manager.

Stav zásielky sa neaktualizuje Skontrolujte, či WP-Cron funguje správne. Spustite ručne: wp cron event run polski_pro_inpost_tracking.

Táto stránka má výlučne informačný charakter a nepredstavuje právne poradenstvo. Pred nasadením sa poraďte s právnikom. Polski for WooCommerce je open source softvér (GPLv2) poskytovaný bez záruky.