Shopify Webhooks sicher bauen: Events, Datenschutz und zuverlässige Verarbeitung
Eine Shopify-App sollte nicht ständig die API abfragen, nur um auf eine Änderung zu warten. Für Ereignisse wie eine neue Bestellung oder geänderte Produktdaten sind Webhooks häufig die passendere Lösung. Shopify beschreibt sie als Weg, App-Daten mit Ereignissen im Shop synchron zu halten oder nach einem Event weitere Verarbeitung anzustoßen.
Webhooks sind aber kein einfacher HTTP-Aufruf, den du ungeprüft ausführst. Eine robuste Umsetzung muss Zustellung verifizieren, wiederholte Nachrichten verkraften und mit ausbleibenden oder verspäteten Ereignissen umgehen. Die Schritte unten folgen der offiziellen Shopify-Webhooks-Dokumentation.
Schritt 1: Nur benötigte Topics auswählen
Lege für jeden App-Ablauf fest, auf welche Änderung die App wirklich reagieren muss. Ein Inventar-Tool kann zum Beispiel ein Topic für Produkt- oder Bestandsänderungen benötigen; eine unnötig breite Liste erzeugt zusätzliche Datenverarbeitung und mehr Wartungsaufwand.
Prüfe in der Webhooks-Referenz, welche Scopes für ein Topic erforderlich sind. Datenschutz-Topics für Apps im Shopify App Store sind keine optionalen Produkt-Extras: Shopify verlangt, dass veröffentlichte Apps die verpflichtenden Anfragen zum Datenabruf und zur Löschung verarbeiten.
Schritt 2: Subscription in der App-Konfiguration festlegen
Bei einer CLI-App können Webhook-Subscriptions in shopify.app.toml konfiguriert werden. Ein vereinfachtes Beispiel für ein Topic:
[webhooks]
api_version = "2026-07"
[[webhooks.subscriptions]]
topics = ["products/update"]
uri = "/webhooks/products-update"
Verwende in einem echten Projekt die API-Version, die deine App unterstützt, und kontrolliere die aktuelle CLI-Konfiguration. Das Beispiel zeigt das Muster, ersetzt aber nicht die vollständige Topic- und Scope-Prüfung in der Shopify-Webhook-Konfiguration.
Schritt 3: Zustellung verifizieren, bevor du Daten verarbeitest
Jede HTTPS-Zustellung muss mit Shopifys dokumentiertem Verfahren verifiziert werden. Prüfe die HMAC-Signatur gemäß der offiziellen Anleitung zur Verifikation von Webhook-Zustellungen. Verarbeite keine Nutzlast, deren Signatur ungültig ist. Shopify nennt für ungültige HMAC-Header bei verpflichtenden Datenschutz-Webhooks ausdrücklich eine 401 Unauthorized-Antwort.
Nutze die Authentifizierungs- und Webhook-Helpers deines Shopify-App-Templates, sofern es einen passenden Handler bereitstellt. Das Template nimmt dir die Validierung ab; deine Anwendung bleibt trotzdem für die anschließende fachliche Verarbeitung zuständig. Schreibe außerdem keine kompletten Kunden- oder Bestellpayloads ungeschützt in Logs.
Schritt 4: Verarbeitung wiederholbar und robust machen
Webhook-Zustellungen können erneut eintreffen. Speichere deshalb eine geeignete Event- oder Webhook-ID und mache die Verarbeitung idempotent: Derselbe Eingang darf nicht ungewollt dieselbe Aktion mehrfach ausführen. Bei längeren Abläufen kann ein dauerhafter Queue-Eintrag helfen. Bestätige eine Nachricht nicht als erfolgreich, bevor sie entweder sicher verarbeitet oder zuverlässig zur späteren Verarbeitung gespeichert wurde.
Verlasse dich auch nicht auf eine feste Reihenfolge. Shopify weist darauf hin, dass Ereignisse zu derselben Ressource in einer anderen Reihenfolge eintreffen können. Nutze Zeitstempel aus Headern oder Payload, wenn sie für die fachliche Reihenfolge benötigt werden.
Schritt 5: Regelmäßige Abgleiche einplanen
Shopify empfiehlt, nicht ausschließlich auf Webhooks zu vertrauen: Zustellungen können verpasst oder von einem fehlerhaften Handler nicht verarbeitet werden. Ergänze für wichtige Daten einen Reconciliation-Job, der in sinnvollen Abständen den aktuellen Stand mit Shopify abgleicht. GraphQL-Abfragen mit updated_at-Filtern können dabei helfen, seit dem letzten erfolgreichen Abgleich geänderte Ressourcen zu finden.
Ein manueller „Jetzt synchronisieren“-Ablauf im App-Admin kann zusätzlich helfen, wenn ein Händler einen Fehler bemerkt oder eine erneute Prüfung anstoßen möchte.
Schritt 6: Datenschutz-Webhooks für öffentliche Apps umsetzen
Apps, die über den Shopify App Store verteilt werden, müssen laut Shopify auf diese Compliance-Topics vorbereitet sein:
customers/data_request: gespeicherte Kundendaten zu einer Anfrage bereitstellen,customers/redact: Kundendaten löschen, soweit keine rechtliche Aufbewahrungspflicht entgegensteht,shop/redact: Shopdaten nach der entsprechenden Anfrage löschen.
Registriere die Topics vor dem Einreichen der App und implementiere dazu passende Endpunkte. Shopify verlangt eine erfolgreiche Bestätigung mit einem Status aus dem 200-Bereich und die Bearbeitung innerhalb der vorgegebenen Frist; für Redaktionsanfragen nennt die Dokumentation bis zu 30 Tage. Prüfe die Details, Ausnahmen und Antwortanforderungen in der aktuellen Privacy-Law-Compliance-Dokumentation. Das ist technische Shopify-Anleitung und keine Rechtsberatung.
Schritt 7: Ende-zu-Ende im Development Store testen
Teste jeden Topic-Ablauf mit einer echten Aktion im Development Store. Prüfe mindestens:
- Ist die Subscription für den richtigen Shop aktiv?
- Wird eine gültige Zustellung angenommen und eine ungültige Signatur abgewiesen?
- Führt eine wiederholte Zustellung nicht zu doppelten Aktionen?
- Bleibt der Shopzustand nach verspäteten Events korrekt?
- Kann ein Reconciliation-Job fehlende Änderungen nachziehen?
- Sind Datenschutz-Anfragen und Löschabläufe testbar dokumentiert?
Offizielle Shopify-Quellen
- Über Shopify Webhooks
- Webhooks abonnieren
- Zustellungen verifizieren
- Webhook-Subscriptions erstellen und testen
- Privacy-Law-Compliance und Pflicht-Topics
Prüfe Topic-Namen, API-Version und Compliance-Vorgaben vor dem App-Release erneut in der offiziellen Dokumentation.