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

  1. Event tritt ein → Shopware sendet Webhook
  2. App prüft die Signatur
  3. App verarbeitet (eigene Logik, Fremd-API)
  4. 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.