Webhooks -- Konfigurationsanleitung (Backend)
Voraussetzungen
Das Modul Webhooks muss für den Client aktiviert sein (Modulverwaltung)
Die Konfiguration erfolgt unter: Add-Ons > Webhooks
Webhook für einen Shop aktivieren
Navigiere zu Add-Ons > Webhooks
Wähle einen Shop aus dem Dropdown
Setze Webhooks aktiv auf Ja
Klicke Speichern
Endpunkt hinzufügen
Klicke auf Endpunkt hinzufügen (maximal 10 pro Shop)
Fülle die Felder aus:
Pflichtfelder
Feld | Beschreibung |
|---|---|
URL | Die HTTPS-URL des Zielsystems. Muss mit |
Optionale Felder
Feld | Beschreibung | Standard |
|---|---|---|
Bezeichnung | Frei wählbarer Name (z.B. "ERP-System", "Lagerverwaltung") | leer |
Aktiv | Endpunkt ein-/ausschalten | Ja |
Detailgrad | Wie ausführlich die Daten sein sollen (siehe unten) | Standard |
Authentifizierung | Zusätzliche Absicherung des Aufrufs (siehe unten) | Keine |
Events | Welche Ereignisse an diesen Endpunkt gesendet werden | keins |
Detailgrad (Payload Level)
Option | Beschreibung |
|---|---|
Minimal (nur IDs + Status) | Sendet nur Bestell-ID, Bestellnummer und Status. Das Zielsystem muss die restlichen Daten selbst abrufen. Geeignet für Systeme die nur eine Benachrichtigung brauchen. |
Standard (Kernfelder) | Sendet die wichtigsten Bestelldaten: Preise, Adressen, Versand, Zahlung, Positionsdetails. Ohne schwere Daten wie Personalisierung oder Downloads. Empfohlen für die meisten Integrationen. |
Authentifizierung
Option | Beschreibung | Verwendung |
|---|---|---|
Keine | Nur die HMAC-Signatur zur Verifikation | Standard |
Basic Auth | Benutzername + Passwort im | Wenn das Zielsystem Basic Auth erwartet |
Bearer Token | Token im | Für OAuth-Tokens oder API-Tokens |
Custom Header (API Key) | Frei wählbarer Header-Name und Wert | z.B. |
Die HMAC-Signatur wird immer mitgesendet, unabhängig von der gewählten Authentifizierung. Zugangsdaten werden verschlüsselt in der Datenbank gespeichert.
Events auswählen
Events sind nach Kategorien gruppiert:
Bestellungen --
order.createdBestellpositionen --
order.line_item.createdEntwurfsbestellungen --
draft_order.createdBenachrichtigungen --
notification.webhook_disabled
Jede Gruppe hat eine Wildcard-Checkbox (z.B. order.*), die alle Events der Gruppe abonniert -- auch zukünftige Events die später hinzugefügt werden.
Events mit einem roten \* sind noch nicht vollständig implementiert und werden nur in bestimmten Szenarien ausgelöst. Dazu gehören aktuell:
order.cancelled,order.packed,order.shippedorder.line_item.shipped,order.line_item.cancelled
Endpunkt testen (Ping)
Klicke auf das Papierflieger-Symbol am Endpunkt
Es wird ein Test-Ping mit Dummy-Daten gesendet
Das Ergebnis zeigt HTTP-Status, Antwortzeit und ggf. Fehlermeldung
Der Test-Ping sendet das Event webhook.test mit Beispieldaten. Er prüft ob die URL erreichbar ist und die Authentifizierung funktioniert.
Event manuell auslösen (Test Fire)
Im Bereich Testen kann ein beliebiges Event mit einer echten Bestellung ausgelöst werden:
Wähle ein Event aus dem Dropdown (z.B.
order.created)Gib eine Bestell-ID ein (die im System existiert)
Bei LineItem-Events: Gib zusätzlich eine Bestellpositions-ID ein
Klicke Event auslösen
Das Event durchläuft den gesamten Webhook-Flow (Payload laden, Transformer anwenden, HTTP-Versand via Queue). Die Payload wird mit "_test": true markiert, damit das Zielsystem erkennt, dass es ein manueller Testaufruf ist.
Das Ergebnis ist anschließend in den Delivery Logs sichtbar.
Eingebauter Test-Empfänger
Für Tests ohne externes Zielsystem gibt es einen eingebauten Empfänger:
Im Bereich Testen wird rechts die Test-Empfänger-URL angezeigt
Kopiere diese URL und trage sie als Endpunkt-URL ein
Webhooks die an diese URL gesendet werden, erscheinen direkt im Panel
Jeder empfangene Webhook zeigt Headers und Body (aufklappbar)
Logs können per Refresh-Button aktualisiert und per Papierkorb gelöscht werden
Der Test-Empfänger verifiziert die HMAC-Signatur -- nur Webhooks mit gültigem Secret werden gespeichert.
Secret anzeigen und regenerieren
Klicke auf das Schlüssel-Symbol am Endpunkt
Das Secret wird angezeigt (64 Zeichen, verschlüsselt gespeichert)
Über Regenerate Secret kann ein neues Secret generiert werden
Achtung: Nach dem Regenerieren funktioniert das alte Secret nicht mehr für die Signaturprüfung. Das Zielsystem muss mit dem neuen Secret aktualisiert werden.
Zustellungsprotokolle einsehen
Klicke auf das Listen-Symbol am Endpunkt
Die letzten Zustellversuche werden angezeigt mit:
Event-Name
Status (success, failed, retrying, disabled_by_circuit_breaker)
HTTP-Statuscode der Antwort
Dauer in Millisekunden
Anzahl Versuche
Zeitstempel
Payloads werden komprimiert gespeichert und bei erfolgreicher Zustellung automatisch gelöscht um Speicher zu sparen.
Circuit Breaker
Wenn ein Endpunkt 10 aufeinanderfolgende Fehler hat, wird er automatisch deaktiviert. Der Endpunkt wird mit dem Status "Circuit Breaker" in Gelb angezeigt.
Um den Endpunkt wieder zu aktivieren:
Behebe das Problem im Zielsystem
Bearbeite den Endpunkt und setze Aktiv auf Ja
Speichere -- der Fehlerzähler und
disabled_atwerden automatisch zurückgesetzt
Log-Bereinigung
Alte Delivery Logs können per Artisan-Command gelöscht werden:
bashwide760Löscht alle Logs die älter als 30 Tage sind.
Endpunkt löschen
Klicke auf das Papierkorb-Symbol am Endpunkt
Bestätige die Löschung
Alle zugehörigen Zustellungsprotokolle werden ebenfalls gelöscht.
FAQ
Wie viele Endpunkte kann ich pro Shop anlegen?
Maximal 10.
Kann ich denselben Event an mehrere URLs senden?
Ja, lege mehrere Endpunkte an und abonniere den gleichen Event.
Was passiert wenn das Zielsystem kurz nicht erreichbar ist?
Der Webhook wird bis zu 5x wiederholt: nach 1 Minute, 5 Minuten, 15 Minuten, 1 Stunde und 2 Stunden.
Was ist der Unterschied zwischen order.created und draft_order.created?draft_order.created wird ausgelöst wenn eine Bestellung angelegt wird, aber noch auf Zahlung oder Freigabe wartet. order.created wird ausgelöst wenn die Bestellung vollständig freigegeben und/oder bezahlt ist.
Was bedeutet order.line_item.created?
Die Bestellposition wurde freigegeben und ist bereit -- entweder direkt nach der Bestellung oder nach erfolgreichem Freigabe-Workflow.
Werden Webhooks auch für historische Bestellungen gesendet?
Nein, nur für neue Ereignisse ab dem Zeitpunkt der Konfiguration.
Werden Zugangsdaten sicher gespeichert?
Ja, das Secret und die Auth-Zugangsdaten (Passwörter, Tokens) werden verschlüsselt in der Datenbank gespeichert.
Was bedeuten die Events mit \*?
Diese Events sind teilweise implementiert. Sie werden in bestimmten Code-Pfaden ausgelöst, aber noch nicht an allen relevanten Stellen im System. Die Abdeckung wird schrittweise erweitert.