Webhooks & Admin-API
Events empfangen, Daten schreiben
Sobald eine App auf Ereignisse im Shop reagieren oder mit einem externen System sprechen soll, braucht sie einen eigenen Server – und die beiden zentralen Kanäle: Webhooks (Shop → App) und die Admin-API (App → Shop).
Webhooks: der Shop ruft die App
Im Manifest deklariert die App, auf welche Events sie hören will. Tritt ein Event ein, schickt Shopware einen HTTP-POST an die hinterlegte URL.
<webhooks>
<webhook name="order-placed"
url="https://meine-app.de/event/order-placed"
event="checkout.order.placed"/>
</webhooks>
Typische Auslöser: neue Bestellung, Kundenregistrierung, Produktänderung.
Signaturen prüfen
Jeder Webhook-Aufruf trägt eine Signatur (HMAC), gebildet aus dem beim Handshake ausgetauschten Geheimnis. Die App muss sie prüfen, bevor sie den Inhalt verarbeitet – sonst könnte jeder gefälschte Aufrufe schicken. Ungeprüfte Webhooks sind ein Sicherheitsloch.
Admin-API: die App ruft den Shop
Umgekehrt kann die App über die Admin-API Daten lesen und schreiben – mit den Zugangsdaten aus der Registrierung und im Rahmen der bestätigten Rechte.
POST /api/oauth/token → Access-Token holen
GET /api/product → Produkte lesen
PATCH /api/order/{id} → Bestellung aktualisieren
So schließt sich der Kreis: Ein Webhook meldet „neue Bestellung", die App verarbeitet sie extern und schreibt das Ergebnis per Admin-API zurück.
Rechte als Voraussetzung
Jeder Lese- oder Schreibzugriff braucht das passende Recht in <permissions>. Fehlt es, lehnt die API ab. Auch hier gilt: so wenig wie möglich anfordern.
Typischer Ablauf
- Event tritt ein → Shopware sendet Webhook
- App prüft die Signatur
- App verarbeitet (eigene Logik, Fremd-API)
- App schreibt bei Bedarf per Admin-API zurück
Kurz: Webhooks bringen Events zur App, die Admin-API bringt Ergebnisse zurück in den Shop – immer signaturgeprüft und nur im Rahmen der bestätigten Rechte.