Inhaltsverzeichnis
- Wähle die Topics, die dich unterbrechen dürfen
- Schritt 1 — Kanal anlegen
- Schritt 2 — Webhook in Shopify hinzufügen
- Schritt 3 — Nur die Felder in die Vorlage, die du wirklich liest
- Schritt 4 — Mit einer Bedingung nach Topic routen
- Weck mich nur bei großen Bestellungen
- Was das nicht leistet
- Häufige Fragen
- Brauche ich dafür eine Shopify-App?
- Kann mein Lager die Bestellungen sehen, ohne meinen Shopify-Adminbereich zu sehen?
- Sollten Kundennamen in der Mitteilung stehen?
- Bekomme ich einen Anruf bei einer Rückbuchung?
- Fazit
- Verwandte Inhalte
Shopifys eigene Bestell-E-Mails kommen an, wann deine Mail-App synchronisieren möchte, landen in einem Ordner, den du gefiltert hast, und sehen identisch aus, ob die Bestellung 12 € oder 1.200 € war. Wenn du den Shop selbst führst, ist das die falsche Form von Signal.
Ein Webhook löst das. Shopify schickt jede Bestellung per POST an eine URL deiner Wahl, und Echobell macht daraus eine Mitteilung, deren Lautstärke du bestimmst.
Wähle die Topics, die dich unterbrechen dürfen
Shopify nennt Webhook-Ereignistypen Topics. Diese vier decken die meisten Ein-Personen-Shops ab:
| Topic | Was es bedeutet | Dringlichkeit |
|---|---|---|
orders/create | Eine Bestellung wurde aufgegeben. | Normal |
orders/paid | Die Zahlung ist durch. Nimm dieses, wenn dich nur tatsächlich eingegangenes Geld interessiert. | Normal |
orders/cancelled | Eine Kundin hat storniert. Gut zu wissen, bevor du packst. | Zeitkritisch |
refunds/create | Eine Erstattung wurde ausgelöst. | Zeitkritisch |
Abonniere orders/create oder orders/paid, nicht beides — es sei denn, du willst wirklich zwei Mitteilungen pro Verkauf. Für die meisten Shops ist orders/paid das ehrlichere.
Schritt 1 — Kanal anlegen
Lege in Echobell einen Kanal an, etwa „Shopify-Bestellungen", kopiere seine Webhook-URL und schalte Nur POST ein. Shopify sendet immer per POST.
Wenn du für Stornierungen und Erstattungen einen eigenen, lauteren Kanal willst, lege ihn gleich mit an und stell ihn auf zeitkritisch.
Schritt 2 — Webhook in Shopify hinzufügen
Gehe im Shopify-Adminbereich auf Einstellungen → Benachrichtigungen → Webhooks → Webhook erstellen. Wähle das Topic, setze das Format auf JSON und füge deine Kanal-URL ein.
Shopify schickt beim Speichern einen Test-Payload. Wenn dein Handy brummt, funktioniert der Weg.
Schritt 3 — Nur die Felder in die Vorlage, die du wirklich liest
Shopify-Bestell-Payloads sind lang — über hundert Felder pro Bestellung. Du brauchst nur wenige:
Titel
Bestellung #{{order_number}} · {{total_price}} {{currency}}
Text
{{customer.first_name}} {{customer.last_name}}
{{line_items[0].title}}
line_items ist ein Array, also ist line_items[0] der erste Posten. Echobell-Vorlagen können auf Indizes zugreifen, aber es gibt keine Schleife: Eine Bestellung mit drei Posten zeigt den ersten und sonst nichts. Wenn das zählt, setz die Anzahl daneben:
{{line_items[0].title}} · {{line_items.length}} Positionen insgesamt
Anders als Stripe sendet Shopify total_price als Dezimal-String — "49.00", nicht 4900 — es liest sich also ohne Rechnerei korrekt.
Schritt 4 — Mit einer Bedingung nach Topic routen
Wenn du mehrere Topics auf einen Kanal richtest, sagt Shopify dir im Header, welches welches ist:
header["x-shopify-topic"] == "orders/paid"
Das ist der sauberste Weg, Verhalten zu trennen, ohne im Adminbereich je Kanal einen Webhook anzulegen.
Weck mich nur bei großen Bestellungen
Das Muster, das die meisten Shopbetreiber tatsächlich wollen: Alle Bestellungen gehen in einen leisen Kanal, und nur die über einer Schwelle in einen lauten.
Lege einen zweiten Kanal an, stell ihn auf zeitkritisch, richte einen weiteren orders/paid-Webhook darauf und gib ihm eine Bedingung:
total_price > 500
Ein normaler Tag ist damit ein Hintergrundrauschen, und eine 900-€-Bestellung etwas, das du spürst.
Was das nicht leistet
Keine HMAC-Prüfung. Shopify signiert jeden Webhook mit einem X-Shopify-Hmac-Sha256-Header. Echobell prüft ihn nicht, deine Kanal-URL ist also das Einzige, was Fremde draußen hält. Halte sie geheim, lass Nur POST an, und wenn eine gefälschte Bestellmeldung echten Schaden anrichten würde, setze deinen eigenen Endpunkt davor, prüfe dort den HMAC und lass ihn Echobell aufrufen.
Shopify kann denselben Webhook zweimal zustellen. Es wiederholt bei Fehlern, und Wiederholungen werden nicht dedupliziert. Behandle die Mitteilung als Anstoß, die Bestellung anzusehen, nicht als Bestellzähler. Dein Shopify-Adminbereich ist die Wahrheit.
Inventar-Topics werden schnell laut. inventory_levels/update feuert bei jeder Bestandsbewegung, auch bei deinen eigenen Änderungen. Willst du Meldungen bei niedrigem Bestand, filtere hart — sonst bereust du es vor dem Mittagessen.
Häufige Fragen
Brauche ich dafür eine Shopify-App?
Nein. Webhooks unter Einstellungen → Benachrichtigungen sind im Adminbereich eingebaut und brauchen weder App noch Partner-Account noch Code.
Kann mein Lager die Bestellungen sehen, ohne meinen Shopify-Adminbereich zu sehen?
Ja. Teile den Kanal mit ihnen. Sie bekommen die Mitteilungen und sonst nichts — keinen Adminzugang und keine Kundendaten über das hinaus, was deine Vorlage enthält.
Sollten Kundennamen in der Mitteilung stehen?
Das ist deine Entscheidung, und sie sollte bewusst fallen. Alles in der Vorlage erscheint auf einem gesperrten Bildschirm. Bestellnummer und Summe reichen meist zum Handeln.
Bekomme ich einen Anruf bei einer Rückbuchung?
Streitfälle in Shopify Payments kommen über das Topic disputes/create bei Shops, die Shopify Payments nutzen. Richte das auf einen Anrufkanal — es ist das einzige Bestellereignis mit einer Frist daran.
Fazit
Ein Webhook, eine Vorlage, und eine Bedingung, wenn du die laute Variante willst. Das dauert etwa fünf Minuten und ersetzt das Neuladen der Bestellseite.
Lade Echobell für iPhone oder hole es bei Google Play, gib dann eine Testbestellung auf und sieh zu, wie sie vor der Bestätigungsmail ankommt.