WooCommerce
WooCommerce – Eingang via REST-API-Webhook (JSON). Benötigtes Addon:
connector_woocommerce.
Überblick
Orderport empfängt Bestellungen aus WooCommerce-Shops über den eingebauten Webhook-Mechanismus. Beim Order-Create-Event sendet WooCommerce die komplette Bestellung als JSON an Orderport. Orderport normalisiert die WooCommerce-spezifische Struktur und übergibt sie an Ihr Zielformat.
Die Integration unterstützt nur den Eingang. Bestellungen von Orderport zurück in WooCommerce zu schreiben, ist nicht Bestandteil dieser Integration.
Kompatibilität
Unterstützte Versionen
| Bereich | Version |
|---|---|
| WooCommerce | 6.x und neuer (REST API v3) |
| WordPress | 6.0+ |
| Event | order.created (und optional order.updated) |
| Signatur | HMAC-SHA256 über Base64-codiertes Secret |
Bekannte Einschränkungen
- Kein Rückweg. Updates, Stornos oder Fulfillment-Statusänderungen werden nicht in WooCommerce zurückgeschrieben.
order.updated-Webhooks werden zwar akzeptiert, aber wieorder.createdverarbeitet – Orderport erkennt die Bestellung per Bestellnummer als Duplikat und weist sie ab.- Coupons, Fee-Lines, Shipping-Lines landen nicht im Standard-Mapping. Bei Bedarf manuell im Feldmapping ergänzen.
- Produktvarianten tauchen als eigene Positionen auf, werden aber nicht separat als Variante markiert.
- Meta-Felder der Bestellung (
meta_data) werden nicht standardmäßig extrahiert.
Authentifizierung
WooCommerce signiert jeden Webhook-Body mit HMAC-SHA256 im Header X-WC-Webhook-Signature. Orderport prüft die Signatur vor der Verarbeitung.
- Auth-Typ in Orderport:
HMAC-SHA256 - Header-Name:
X-WC-Webhook-Signature - Secret: wird in WooCommerce beim Anlegen des Webhooks angegeben und muss identisch in Orderport hinterlegt werden
Einrichten in Orderport
Pipeline anlegen
- Pipelines → Neue Pipeline
- Eingabeformat: WooCommerce, Ausgabeformat nach Ihrem Ziel (openTrans oder JSON)
- Auto-Mapping vorschlagen lassen und ggf. anpassen
- Transport wählen
Credential anlegen
Auf der Pipeline-Detailseite Credentials → Hinzufügen:
- Typ: HMAC-SHA256
- Header-Name:
X-WC-Webhook-Signature - Secret: selbst setzen (mindestens 8 Zeichen); denselben Wert in WooCommerce eintragen
Einrichten im Shop
Webhook konfigurieren
- WooCommerce → Einstellungen → Erweitert → Webhooks → Webhook hinzufügen
- Name: z. B. "Orderport"
- Status: Aktiv
- Thema: Bestellung erstellt (
order.created) - Auslieferungs-URL: Webhook-URL aus Orderport
- Geheimnis: identisch mit dem in Orderport hinterlegten HMAC-Secret
- API-Version: REST API v3
Technische Details
Eingangs-Payload (Auszug)
{
"id": 1234,
"number": "1234",
"date_created": "2024-03-15T14:30:00",
"status": "processing",
"currency": "EUR",
"total": "1500.00",
"total_tax": "239.50",
"billing": {
"first_name": "Max",
"last_name": "Mustermann",
"company": "Muster GmbH",
"address_1": "Hauptstr. 1",
"city": "München",
"postcode": "80331",
"country": "DE",
"email": "bestellung@muster.de"
},
"shipping": {
"first_name": "Max",
"last_name": "Mustermann",
"address_1": "Industriestr. 42",
"city": "München",
"postcode": "80331",
"country": "DE"
},
"line_items": [
{ "sku": "WIDGET-001", "name": "Premium Widget Blau", "quantity": 10, "price": 150.00, "total": "1500.00" }
]
}
Verfügbare Quellfelder
| Pfad | Bedeutung |
|---|---|
order.number |
Bestellnummer |
order.date |
Bestelldatum |
order.status |
WooCommerce-Status (pending, processing, completed, cancelled, …) |
order.currency |
Währungscode |
order.total |
Gesamtbetrag |
order.total_tax |
Steuer gesamt |
billing.first_name / last_name / company / email |
Rechnungsadressdaten |
billing.address / city / postcode / country |
Rechnungsadresse |
shipping.first_name / last_name / company / address / city / postcode / country |
Lieferadresse |
lines[].sku / name / quantity / price / total |
Positionen |
Signaturprüfung
Orderport berechnet base64(HMAC-SHA256(raw_body, secret)) und vergleicht zeitkonstant mit X-WC-Webhook-Signature. Bei Fehlschlag: HTTP 401.
Endpoint
Webhook-URL je Pipeline: https://orderport.app/api/v1/webhook/{token}.
Fehlerbehebung
| Symptom | Ursache | Lösung |
|---|---|---|
| Webhook antwortet in WooCommerce mit „Failed delivery" | URL tippfehler oder Pipeline inaktiv | URL in der Pipeline-Detailseite kopieren; Pipeline aktivieren |
| Signaturprüfung schlägt fehl | WordPress fügt versteckte Leerzeichen oder BOM in den Body ein | Plugin wp-super-cache oder ähnliches deaktivieren oder nur für Admin-Routen ausschließen |
| Bestellstatus fehlt im Ziel | order.status wird nicht gemappt |
Im Feldmapping ein Direct-Mapping ergänzen |
| Mehrere Webhooks für dieselbe Bestellung | WooCommerce sendet sowohl order.created als auch order.updated |
Nur order.created einrichten, oder auf Orderports Duplikatserkennung vertrauen |