Zum Inhalt springen

InPost Integration (Paketautomaten)

Das InPost Modul integriert WooCommerce mit der ShipX API. Erstelle Etiketten, lass Kunden einen Paketautomaten auf der Karte auswaehlen und verfolge Sendungen direkt aus dem Admin-Panel.

Gehe zu WooCommerce > Einstellungen > Polski PRO > InPost.

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

Das Token wird im Header Authorization: Bearer {token} uebertragen. Es muss die Berechtigung zum Erstellen von Sendungen und Etiketten haben.

Nach der Konfiguration der API erstelle eine neue Versandmethode:

  1. Gehe zu WooCommerce > Einstellungen > Versand > Versandzonen
  2. Bearbeite die Zone “Polen”
  3. Klicke auf “Versandmethode hinzufuegen”
  4. Waehle “InPost Paketautomat” oder “InPost Kurier”
Einstellung der MethodeStandardwertBeschreibung
Titel der Methode”InPost Paketautomat”Name, der dem Kunden angezeigt wird
Kosten0Versandkosten (0 = kostenlos)
Kostenloser Versand ab""Bestellbetrag, ab dem der Versand kostenlos ist
Standard-PaketgroesseAGroesse: A, B, C
VersicherungNeinVersicherung zur Sendung hinzufuegen

Nach der Auswahl von “InPost Paketautomat” an der Kasse wird ein interaktives Karten-Widget angezeigt.

Das Widget bietet:

  • Karte mit Pins der Paketautomaten
  • Suche nach Stadt - gib den Stadtnamen ein, um die Karte zu zentrieren
  • Suche nach Koordinaten - automatische Geolokalisierung (mit Zustimmung des Nutzers)
  • Suche nach Postleitzahl - finde die naechstgelegenen Paketautomaten
  • Liste der Paketautomaten - sortiert vom naechstgelegenen aus
  • Punktdetails - Adresse, Oeffnungszeiten, verfuegbare Fachgroessen

Das Widget sendet eine Anfrage an den ShipX API Endpoint:

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

Die Ergebnisse werden 24 Stunden lang in WordPress Transients zwischengespeichert.

Wenn der Kunde der Geolokalisierung zustimmt:

GET /v1/points?type=parcel_locker&relative_point={lat},{lng}&per_page=10
/**
* Filtert die Liste der InPost Abholpunkte.
*
* @param array $points Array der Abholpunkte aus der API
* @param string $city Gesuchte Stadt
* @param array $coords Koordinaten [lat, lng] oder leeres Array
*/
apply_filters('polski_pro/inpost/points', array $points, string $city, array $coords): array;

Beispiel - Ausschluss voruebergehend nicht verfuegbarer Punkte:

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

Im Panel InPost auf der Bestellseite:

  1. Etikett erstellen - erstellt die Sendung in der ShipX API und generiert ein PDF-Etikett
  2. Etikett herunterladen - laedt das erstellte Etikett herunter
  3. Etikett drucken - oeffnet die Druckvorschau

Markiere mehrere Bestellungen in der Liste und waehle “InPost Etiketten erstellen”. Die Etiketten werden im Hintergrund erstellt. Nach Abschluss lade die ZIP-Datei herunter.

Das Etikett wird erstellt auf Basis von:

FeldQuelleBeschreibung
AbsenderShop-EinstellungenAdresse und Firmendaten aus WooCommerce
EmpfaengerBestelldatenVorname, Nachname, Telefon, E-Mail
AbholpunktKundenauswahlID des an der Kasse gewaehlten Paketautomaten
PaketgroesseEinstellung der MethodeOder Ueberschreibung in der Bestellung
NachnahmebetragCOD-BestellungNur bei Nachnahmebestellungen
/**
* Filtert die Sendungsdaten vor dem Senden an die ShipX API.
*
* @param array $shipment_data Sendungsdaten
* @param \WC_Order $order WooCommerce Bestellung
*/
apply_filters('polski_pro/inpost/shipment_data', array $shipment_data, \WC_Order $order): array;

Beispiel - Hinzufuegen 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 des Etiketts prueft das Modul den Sendungsstatus alle 2 Stunden (WP-Cron). Die Status werden auf WooCommerce-Status abgebildet:

InPost StatusWooCommerce StatusBeschreibung
createdprocessingSendung erstellt
dispatched_by_senderprocessingVom Absender aufgegeben
collected_from_sendershippedVom Absender abgeholt
out_for_deliveryshippedIn Zustellung
ready_to_pickupshippedAbholbereit im Paketautomaten
deliveredcompletedZugestellt / abgeholt

Der Kunde erhaelt eine E-Mail mit einem Tracking-Link auf der InPost Seite. Der Link wird hinzugefuegt zu:

  • der E-Mail “Bestellung in Bearbeitung”
  • der Seite “Mein Konto > Bestellungen > Details”
  • den Bestellnotizen (fuer den Kunden sichtbar)
/**
* Aktion, die nach der Aktualisierung des Sendungsstatus ausgeloest wird.
*
* @param int $order_id Bestell-ID
* @param string $tracking_number Sendungsnummer
* @param string $old_status Vorheriger InPost Status
* @param string $new_status Neuer InPost Status
*/
do_action('polski_pro/inpost/status_updated', int $order_id, string $tracking_number, string $old_status, string $new_status);

Beispiel - SMS-Benachrichtigung bei 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(
'Dein Paket %s wartet im Paketautomaten. Der Abholcode steht in der E-Mail.',
$tracking_number
));
}
}, 10, 4);
GroesseAbmessungen (cm)Max. Gewicht
A8 x 38 x 6425 kg
B19 x 38 x 6425 kg
C41 x 38 x 6425 kg

Die Paketgroesse kann global, pro Versandmethode oder manuell in der Bestellung ueberschrieben werden.

Die Karte der Paketautomaten laedt nicht Pruefe, ob das API-Token korrekt und aktiv ist. Pruefe die Browser-Konsole auf CORS- oder JavaScript-Fehler. Stelle sicher, dass das Skript polski-pro-inpost-map.js geladen ist.

Fehler bei der Etikettenerstellung “Unauthorized” Das API-Token ist abgelaufen oder hat keine Berechtigung zum Erstellen von Sendungen. Erstelle ein neues Token im InPost Manager Panel.

Der Sendungsstatus aktualisiert sich nicht Pruefe, ob WP-Cron korrekt funktioniert. Manuell ausfuehren: wp cron event run polski_pro_inpost_tracking.

Diese Seite dient ausschliesslich Informationszwecken und stellt keine Rechtsberatung dar. Konsultiere vor der Umsetzung einen Anwalt. Polski for WooCommerce ist Open-Source-Software (GPLv2), die ohne Gewaehrleistung bereitgestellt wird.