Skip to content

InPost integration (Paczkomaty)

Das InPost-Modul integriert WooCommerce mit der ShipX API. Erstellen Sie Etiketten, lassen Sie Kunden einen Paczkomat auf der Karte auswählen und verfolgen Sie Sendungen aus dem Adminbereich.

Gehen Sie zu WooCommerce > Einstellungen > Polski PRO > InPost.

EinstellungBeschreibung
API-TokenAutorisierungstoken aus dem InPost Manager Panel
Organisations-IDKennung der Organisation im InPost-System
Sandbox-ModusVerwendet die Testumgebung der ShipX API

Das API-Token wird bei jeder ShipX-API-Anfrage im Header Authorization: Bearer {token} übergeben. Das Token sollte über Berechtigungen zum Erstellen von Sendungen und Generieren von Etiketten verfügen.

Erstellen Sie nach der Konfiguration der API eine neue Versandmethode:

  1. Gehen Sie zu WooCommerce > Einstellungen > Versand > Versandzonen
  2. Bearbeiten Sie die Zone “Polen”
  3. Klicken Sie auf “Versandmethode hinzufügen”
  4. Wählen Sie “InPost Paczkomat” oder “InPost Kurier”
Methoden-EinstellungStandardwertBeschreibung
Methodentitel”InPost Paczkomat”Dem Kunden angezeigter Name
Kosten0Versandkosten (0 = kostenlos)
Kostenloser Versand ab""Bestellbetrag, ab dem der Versand kostenlos ist
Standard-PaketgrößeAGröße: A, B, C
VersicherungNeinVersicherung zur Sendung hinzufügen

Auf der Kassenseite wird nach der Auswahl der Versandmethode “InPost Paczkomat” ein interaktives Karten-Widget angezeigt, mit dem der Kunde einen Paczkomat auswählen kann.

Das Widget bietet:

  • Karte mit Paczkomat-Markierungen
  • Städtesuche - geben Sie einen Städtenamen ein, um die Karte zu zentrieren
  • Koordinatensuche - automatische Geolokalisierung (mit Zustimmung des Nutzers)
  • Postleitzahlensuche - die nächstgelegenen Paczkomaty finden
  • Paczkomat-Liste - sortiert vom nächstgelegenen
  • Punktdetails - Adresse, Öffnungszeiten, verfügbare Fachgrößen

Das Widget sendet eine Anfrage an den ShipX-API-Endpunkt:

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

Die Ergebnisse werden 24 Stunden lang in WordPress-Transients zwischengespeichert, um die Anzahl der API-Anfragen zu minimieren.

Wenn der Kunde der Geolokalisierung zustimmt:

GET /v1/points?type=parcel_locker&relative_point={lat},{lng}&per_page=10
/**
* Filtruje listę punktów odbioru InPost.
*
* @param array $points Tablica punktów odbioru z API
* @param string $city Wyszukiwane miasto
* @param array $coords Współrzędne [lat, lng] lub pusta tablica
*/
apply_filters('polski_pro/inpost/points', array $points, string $city, array $coords): array;

Beispiel - Ausschluss vorübergehend nicht verfügbarer Punkte:

add_filter('polski_pro/inpost/points', function (array $points, string $city, array $coords): array {
$excluded_points = ['KRA123', 'WAW456']; // Tymczasowo wyłączone
return array_filter($points, function (array $point) use ($excluded_points): bool {
return ! in_array($point['name'], $excluded_points, true);
});
}, 10, 3);

Auf der Bestellbearbeitungsseite bietet das Panel InPost die folgenden Optionen:

  1. Etikett generieren - erstellt eine Sendung in der ShipX API und generiert ein PDF-Etikett
  2. Etikett herunterladen - lädt das generierte Etikett herunter
  3. Etikett drucken - öffnet eine Druckvorschau

Wählen Sie in der Bestellliste mehrere Bestellungen aus und wählen Sie die Massenaktion “InPost-Etiketten generieren”. Die Etiketten werden asynchron generiert - nach Abschluss erscheint eine Benachrichtigung mit einem Link zum Herunterladen der ZIP-Datei.

Das Etikett wird auf Grundlage der folgenden Daten generiert:

FeldQuelleBeschreibung
AbsenderShop-EinstellungenAdress- und Firmendaten aus WooCommerce
EmpfängerBestelldatenVorname, Nachname, Telefon, E-Mail
AbholpunktKundenauswahlAn der Kasse ausgewählte Paczkomat-ID
PaketgrößeMethoden-EinstellungOder Überschreibung in der Bestellung
NachnahmebetragNachnahmebestellungNur für Bestellungen per Nachnahme
/**
* Filtruje dane przesyłki przed wysłaniem do API ShipX.
*
* @param array $shipment_data Dane przesyłki
* @param \WC_Order $order Zamówienie WooCommerce
*/
apply_filters('polski_pro/inpost/shipment_data', array $shipment_data, \WC_Order $order): array;

Beispiel - Hinzufügen einer Bestellreferenz:

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);

Nach der Erstellung eines Etiketts prüft das Modul den Sendungsstatus automatisch alle 2 Stunden (WP-Cron). Die Status werden den WooCommerce-Bestellstatus zugeordnet:

InPost-StatusWooCommerce-StatusBeschreibung
createdprocessingSendung erstellt
dispatched_by_senderprocessingVom Absender versandt
collected_from_sendershippedBeim Absender abgeholt
out_for_deliveryshippedIn Zustellung
ready_to_pickupshippedZur Abholung im Paczkomat bereit
deliveredcompletedZugestellt / abgeholt

Der Kunde erhält eine E-Mail mit einem Tracking-Link zur InPost-Verfolgungsseite. Der Tracking-Link wird hinzugefügt zu:

  • E-Mail “Bestellung in Bearbeitung”
  • Seite “Mein Konto > Bestellungen > Details”
  • Bestellnotizen (für den Kunden sichtbar)
/**
* Akcja wywoływana po aktualizacji statusu przesyłki.
*
* @param int $order_id ID zamówienia
* @param string $tracking_number Numer śledzenia
* @param string $old_status Poprzedni status InPost
* @param string $new_status Nowy status InPost
*/
do_action('polski_pro/inpost/status_updated', int $order_id, string $tracking_number, string $old_status, string $new_status);

Beispiel - SMS-Benachrichtigung über die Abholbereitschaft:

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(
'Twoja paczka %s czeka w Paczkomacie. Kod odbioru w e-mailu.',
$tracking_number
));
}
}, 10, 4);
GrößeAbmessungen (cm)Max. Gewicht
A8 x 38 x 6425 kg
B19 x 38 x 6425 kg
C41 x 38 x 6425 kg

Die Paketgröße kann global, pro Versandmethode oder manuell in der Bestellung überschrieben werden.

Die Paczkomat-Karte lädt nicht Prüfen Sie, ob das API-Token gültig und aktiv ist. Prüfen Sie die Browser-Konsole auf CORS- oder JavaScript-Fehler. Stellen Sie sicher, dass das Skript polski-pro-inpost-map.js geladen wird.

Fehler bei der Etikettenerstellung “Unauthorized” Das API-Token ist abgelaufen oder verfügt nicht über Berechtigungen zum Erstellen von Sendungen. Generieren Sie ein neues Token im InPost Manager Panel.

Der Sendungsstatus wird nicht aktualisiert Prüfen Sie, ob WP-Cron ordnungsgemäß funktioniert. Manuell ausführen: wp cron event run polski_pro_inpost_tracking.

Diese Seite dient ausschließlich zu Informationszwecken und stellt keine Rechtsberatung dar. Konsultieren Sie vor der Umsetzung einen Anwalt. Polski for WooCommerce ist Open-Source-Software (GPLv2), die ohne Gewährleistung bereitgestellt wird.