Shopify
Shopify – Eingang via Order-Webhook (JSON). Benötigtes Addon:
connector_shopify.
Überblick
Shopify sendet bei neu aufgegebenen Bestellungen einen Webhook an Orderport. Orderport normalisiert die Shopify-spezifische JSON-Struktur und wandelt sie in Ihr Zielformat (openTrans oder JSON) – damit Sie Shopify-Bestellungen in Ihr ERP, Ihre Warenwirtschaft oder an ein B2B-Netzwerk weitergeben können.
Die Integration unterstützt nur den Eingang. Bestellungen aus anderen Quellen in Shopify zurückzuschreiben, ist nicht möglich.
Kompatibilität
Unterstützte Versionen
| Bereich | Version |
|---|---|
| Shopify Admin API | 2024-01 und neuer (Webhook-Schema stabil) |
| Event | orders/create (Order creation) |
| Content-Type | application/json |
| Signatur | HMAC-SHA256 (Shopify-Standard) |
Bekannte Einschränkungen
- Kein Rückweg. Bestell-Änderungen, Fulfillment- oder Zahlstatus-Updates aus anderen Quellen schreibt Orderport nicht nach Shopify zurück.
- Nur Order-Creation-Events. Spätere Events (
orders/updated,orders/paid,orders/fulfilled) werden aktuell nicht ausgewertet – richten Sie nurorders/createein. - Abonnements, Entwürfe und Draft-Orders werden nicht unterstützt, nur abgeschlossene Bestellungen.
- Line-Item-Properties (Custom-Felder) werden nicht ausgewertet. Falls Sie Custom-Attribute benötigen, bitte melden.
- Mehrere Locations/Fulfillment-Splits werden auf eine einzelne Lieferadresse reduziert.
Authentifizierung
Shopify signiert jeden Webhook-Body mit HMAC-SHA256 im Header X-Shopify-Hmac-Sha256. Orderport prüft die Signatur bei jeder eingehenden Anfrage.
- Auth-Typ in Orderport:
HMAC-SHA256 - Header-Name:
X-Shopify-Hmac-Sha256 - Shared Secret: wird bei der Credential-Anlage einmalig angezeigt und muss identisch in Shopify eingetragen werden.
Einrichten in Orderport
Pipeline anlegen
- Pipelines → Neue Pipeline
- Eingabeformat: Shopify, Ausgabeformat: openTrans oder JSON
- Mapping-Vorschläge werden automatisch generiert
- Transport wählen: HTTP, REST API, E-Mail oder FTP/SFTP je nach Zielsystem
Credential anlegen
Auf der Pipeline-Detailseite Credentials → Hinzufügen:
- Typ: HMAC-SHA256
- Header-Name:
X-Shopify-Hmac-Sha256 - Secret: wird automatisch generiert (Format
ot_hmac_…) – einmalig anzeigen und in Shopify eintragen
Mapping
Standard-Mapping deckt Bestellnummer, Datum, Währung, Summen, Steuer, Kundenname, Lieferadresse und Positionen ab. Anpassungen (z. B. Bestellname #1001 vs. Order-Number 1001) lassen sich im Mapping-Editor vornehmen.
Einrichten im Shop
Webhook konfigurieren
- Settings → Notifications → Webhooks → Create webhook
- Event: Order creation
- Format: JSON
- URL: Webhook-URL aus Orderport (
https://orderport.app/api/v1/webhook/{token}) - Webhook API version: 2024-01 oder neuer
- Shopify legt das Secret automatisch an; tragen Sie es in Orderport als HMAC-Secret ein
Hinweis: Shopify erzeugt das Secret und zeigt es im Admin-Bereich unter Settings → Notifications an. Das Secret ist pro Shop gleich – wenn Sie mehrere Pipelines haben, sollten Sie in Orderport dennoch pro Pipeline eine eigene Credential mit dem gleichen Secret anlegen.
Technische Details
Eingangs-Payload (Auszug)
{
"order_number": 1001,
"name": "#1001",
"created_at": "2024-03-15T14:30:00+01:00",
"currency": "EUR",
"total_price": "1500.00",
"subtotal_price": "1260.50",
"total_tax": "239.50",
"financial_status": "paid",
"customer": {
"email": "bestellung@muster.de",
"first_name": "Max",
"last_name": "Mustermann"
},
"shipping_address": {
"address1": "Industriestr. 42",
"city": "München",
"zip": "80331",
"country_code": "DE"
},
"line_items": [
{ "sku": "WIDGET-001", "title": "Premium Widget Blau", "quantity": 10, "price": "150.00" }
]
}
Verfügbare Quellfelder
| Pfad | Bedeutung |
|---|---|
order.number |
Bestellnummer numerisch |
order.name |
Bestellname (z. B. #1001) |
order.date |
created_at als ISO 8601 |
order.currency |
Währungscode |
order.total_price |
Gesamtbetrag inkl. Steuer |
order.subtotal_price |
Zwischensumme vor Steuer |
order.total_tax |
Steuer gesamt |
order.financial_status |
Zahlstatus (paid, pending, …) |
customer.email / first_name / last_name / company |
Kundendaten |
shipping.address1 / city / zip / country_code |
Lieferadresse |
billing.address1 / city / zip / country_code |
Rechnungsadresse |
lines[].sku / title / quantity / price |
Positionen |
Signaturprüfung
Orderport berechnet HMAC-SHA256(raw_body, secret) und vergleicht das Base64-Ergebnis zeitkonstant mit dem Header X-Shopify-Hmac-Sha256. Bei Fehlschlag: HTTP 401 und Audit-Log-Eintrag inbound.cxml_auth_failed.
Endpoint
Webhook-URL je Pipeline: https://orderport.app/api/v1/webhook/{token}.
Fehlerbehebung
| Symptom | Ursache | Lösung |
|---|---|---|
| 401 Unauthorized bei jedem Webhook | Secret in Orderport stimmt nicht mit Shopify überein | HMAC-Secret in Orderport neu anlegen und in Shopify eintragen |
| Währung wird nicht übernommen | order.currency fehlt in Payload (ältere API-Version) |
API-Version auf 2024-01 oder neuer heben |
| Kundenfirma leer | Shopify sendet customer.company nur, wenn im Shop hinterlegt |
Im Shopify-Adminfeld sicherstellen, dass Firma erfasst wird; Fallback via Static-Mapping möglich |
| Duplicate-Fehler bei Retry aus Shopify | Shopify sendet denselben Webhook bis zu 19-mal bei Fehlschlag | Orderport erkennt Duplikate automatisch anhand order_number – zweitem Webhook antwortet der Server mit 409 / Duplicate-Status |
Nächste Schritte
- Feldmapping – Felder anpassen
- Zugangsdaten – HMAC im Detail
- Duplikatserkennung – wie Retries behandelt werden