Webhooks -- Konfigurationsanleitung (Backend)
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. |
Vollständig (mit gefilterten Zusatzinformationen) | Wie Standard, zusätzlich die von dir ausgewählten Zusatzinformationen pro Position (z.B. Material, Format, Zolltarif-Nummer). Welche Felder mitgesendet werden, legst du selbst fest -- siehe Abschnitt „Zusatzinformationen auswählen". |
Zusatzinformationen auswählen (nur bei Detailgrad „Vollständig")
Sowohl an der Bestellung als auch an jeder Bestellposition können zahlreiche Zusatzinformationen hinterlegt sein -- viele davon sind rein intern (z.B. Zahlungsdaten, Server- und Dateipfade oder interne Verarbeitungskennungen) oder personenbezogen (z.B. Kundendaten auf Bestellebene). Damit keine internen oder personenbezogenen Daten ungewollt nach außen gelangen, werden nur die von dir ausdrücklich ausgewählten Felder mitgesendet. Ist nichts ausgewählt, enthält die Payload keine Zusatzinformationen.
Felder, die du selbst im Backend pflegst -- etwa eine eigene interne Artikelbezeichnung, eine SAP-Nummer oder ein Lagerort -- stehen dir dagegen zur Auswahl zur Verfügung, auch wenn sie auf den ersten Blick intern wirken.
Die Auswahl erfolgt in zwei getrennten Bereichen: Bestellebene (Felder, die zur ganzen Bestellung gehören) und Positionsebene (Felder je Artikel/Position). Beide werden unabhängig voneinander gepflegt -- ein Feld, das du auf der Bestellebene auswählst, wird nicht automatisch auf der Positionsebene gesendet und umgekehrt.
So wählst du die Felder aus:
Setze den Detailgrad auf Vollständig -- daraufhin erscheinen die beiden Bereiche Bestellebene und Positionsebene
Bei einem neuen Endpunkt ist die Positionsebene bereits mit einigen technischen Standardfeldern (Liefer- und Versandinformationen wie Lieferzeit, Lieferdatum, Sendungsverfolgung) vorausgefüllt. Du kannst sie übernehmen, ergänzen oder entfernen. Die Bestellebene startet leer. Artikelspezifische Felder wie Material oder Format sind bewusst nicht vorausgefüllt -- sie heißen je Shop unterschiedlich und werden über den Picker hinzugefügt
Klicke im jeweiligen Bereich auf Feld hinzufügen, um Felder für diese Ebene auszuwählen. Es öffnet sich eine Liste der auf dieser Ebene tatsächlich in deinem Shop verwendeten Feldnamen -- jeweils mit einem Beispielwert, damit erkennbar ist, was sich dahinter verbirgt
Nutze das Suchfeld, um die Liste einzugrenzen, oder trage über Eigenes Feld hinzufügen einen Feldnamen von Hand ein
Mit Alle wählen übernimmst du alle aktuell in deinem Shop verfügbaren Felder dieser Ebene auf einmal. Wichtig: Das ist eine Momentaufnahme -- Felder, die später neu in deinem Shop auftauchen, werden nicht automatisch ergänzt, sondern müssen bewusst hinzugefügt werden
Mit Leeren entfernst du alle ausgewählten Felder der Ebene auf einmal, einzelne Felder entfernst du über das × an der jeweiligen Markierung
Klicke Speichern
Nicht sendbare Felder: Bestimmte interne Felder sind aus Sicherheitsgründen dauerhaft gesperrt und können nicht ausgewählt werden -- sie erscheinen weder in der Auswahlliste, noch werden sie gesendet, selbst wenn sie von Hand eingetragen werden. Beim Speichern wird ein solcher Eintrag mit einer Fehlermeldung abgewiesen.
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.createdPositionsfreigaben --
approval.line_item.requested,approval.line_item.step_approved,approval.line_item.step_rejected,approval.line_item.step_reverted,approval.line_item.completed,approval.line_item.reset,approval.line_item.print_data_changed,approval.line_item.options_changed,approval.line_item.comment_added,approval.line_item.correction_requested,approval.line_item.approver_changed-- die Freigabe-Anforderung (requested) wird für alle positionsbezogenen Freigaben ausgelöst, die übrigen Ereignisse derzeit nur vom lokalen Bestellworkflow (Hinweis steht direkt unter dem Gruppen-Titel). Wenn das Eskalationsstufen-Add-On aktiviert ist, erscheinen zusätzlichapproval.line_item.escalatedundapproval.line_item.reminder_sentin der Auswahl; mit dem Artikelwechsel-Add-On kommtapproval.line_item.article_changedhinzu und (mit dem Workflow-Auswahl-Add-On)approval.line_item.workflow_changed; mit dem Add-On „Zuständige Person im Freigabeportal" erscheintapproval.line_item.assignee_changedBenachrichtigungen --
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.
Freigabe-Events (approval.line_item.*) stehen im Test-Dropdown bewusst nicht zur Verfügung: Ein aussagekräftiger Testinhalt würde eine Position mitten in einem laufenden Freigabe-Workflow voraussetzen, und künstlich erzeugte Freigabedaten könnten im Zielsystem als echte Daten interpretiert werden. Zum Testen dieser Events einen echten Freigabe-Durchlauf mit einer Testbestellung durchführen und die Zustellung im Empfänger-Testprotokoll prüfen.
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 der Deaktivierungs-Status werden automatisch zurückgesetzt
Log-Bereinigung
Alte Zustellungsprotokolle werden automatisiert durch einen geplanten Cronjob entfernt. Die Aufbewahrungsdauer kann bei Bedarf vom Hosting-Team angepasst werden.
Endpunkt löschen
Klicke auf das Papierkorb-Symbol am Endpunkt
Bestätige die Löschung
Alle zugehörigen Zustellungsprotokolle werden ebenfalls gelöscht.
Häufige Fragen
Antworten auf häufige Fragen findest du auf der separaten Seite Webhooks -- FAQ.