# Shopify + Brew

Löse Brew-Automatisierungen über Shopify-Events zu Kunden, Bestellungen, Checkouts und Fulfillments aus. Damit laufen Flows für Begrüßung, Belege, abgebrochene Checkouts und Versandbenachrichtigungen.

Kanonische URL: https://brew.new/de/browse/integrations/shopify

- Datenrichtung: Eingehende Daten
- Verbindung: Webhook-Secret
- Trigger für Commerce-Events

## Verfügbare Funktionen

- **Event-Trigger**: Löse Brew-Automatisierungen über Shopify-Events zu Kunden, Bestellungen, Checkouts und Fulfillments aus. Damit laufen Flows für Begrüßung, Belege, abgebrochene Checkouts und Versandbenachrichtigungen.

## Mach aus Shop-Events nützliche E-Mails

Verbinde Shopify, um markenkonforme E-Mails auszulösen, wenn sich ein Kunde registriert, eine Bestellung bezahlt, ein Checkout angelegt oder ein Fulfillment verschickt wird. Brew unterstützt 13 Webhook-Topics von Shopify zu Kunden, Bestellungen, Checkouts und Fulfillments.

Für die Einrichtung nutzt du Webhooks, die du im Shopify-Adminbereich anlegst. Eine Shopify-App, eine Client-ID oder OAuth brauchst du nicht. Für Bestellungen, Zahlungen und Fulfillment bleibt Shopify zuständig. Brew erstellt und versendet die E-Mails.


## Was du damit bauen kannst

- Willkommens-E-Mails für Kunden: Das Event customers/create wird ausgelöst, wenn in Shopify ein Kundendatensatz angelegt wird.
- Bestellbestätigungen und Belege: Das Event orders/create wird ausgelöst, wenn eine Bestellung aufgegeben wird, orders/paid, wenn die Zahlung erfasst ist. Beide enthalten orderNumber, totalPrice, currency und financialStatus. Wähle pro Nachricht nur eines davon, damit nichts doppelt rausgeht.
- Hinweise zu Stornierungen: Das Event orders/cancelled wird ausgelöst, wenn eine Bestellung storniert wird, und enthält Bestellnummer und Zahlungsstatus.
- Versandbenachrichtigungen: Das Event fulfillments/create enthält trackingNumber und trackingUrl, sofern das Fulfillment sie hat. Auch orders/fulfilled wird beim Versand einer Bestellung ausgelöst, hat aber keine Tracking-Felder. Wähle also pro Versandbenachrichtigung nur einen Trigger.
- Follow-ups zum Fulfillment: Das Event fulfillments/update wird ausgelöst, wenn sich ein Fulfillment ändert. Das Feld fulfillmentStatus ist der Bearbeitungsstatus des Fulfillments, etwa pending, success oder failure, keine Zustellbestätigung. Für ein Dankeschön oder eine Bitte um eine Bewertung nach der Zustellung löst du erst dann ein eigenes Event in Brew aus, wenn deine Anwendung die Zustellung bestätigt hat.
- Checkout-Erinnerungen: Das Event checkouts/create wird ausgelöst, wenn ein Checkout angelegt wird, und kann abandonedCheckoutUrl enthalten, einen Link, über den der Checkout fortgesetzt wird.
- Stimm deine E-Mails mit den Kundenbenachrichtigungen von Shopify ab, damit Kunden dieselbe Nachricht nicht von Shopify und von Brew bekommen.

## Checkout-Erinnerungen brauchen eine Statusprüfung

Das Event checkouts/create wird ausgelöst, wenn der Checkout angelegt wird, nicht, wenn er abgebrochen wird. Ein Erinnerungs-Flow startet dort und wartet. Eine aufgegebene Bestellung stoppt keine Ausführung, die bereits gestartet ist.

Nach einem Schritt „Warten“ liest eine Bedingung aktuelle Kontaktfelder wie shopify_last_order_status und shopify_last_order_at. Diese Felder beschreiben die letzte Bestellung, die Brew gesehen hat, nicht diesen bestimmten Checkout. Sie können also nicht belegen, dass aus diesem Checkout eine Bestellung geworden ist.

Das Event checkouts/update wird bei jeder Änderung am Checkout ausgelöst, nicht nach einer festen Wartezeit. Für sich allein taugt es deshalb nicht als zeitgesteuerte zweite Erinnerung.

Ein Checkout ohne E-Mail-Adresse startet keine Automatisierung, es sei denn, Brew kennt für dieselbe Shopify-Kunden-ID bereits eine E-Mail-Adresse. Teste vor dem Veröffentlichen einen Checkout, aus dem eine Bestellung wird, und einen, bei dem das nicht passiert.


## Shopify in Brew einrichten

- Öffne „Integrationen“, wähle Shopify und klicke auf „Webhook-URL generieren“.
- Gib deine myshopify.com-Domain ein, etwa acme.myshopify.com, nicht die eigene Domain deines Onlineshops. Brew gleicht sie bei jedem Webhook mit dem Header X-Shopify-Shop-Domain ab.
- Öffne im Shopify-Adminbereich „Einstellungen > Benachrichtigungen“ und scroll nach unten zu „Webhooks“. Shopify sendet ein Topic nur an einen Webhook, der dafür angelegt wurde. Lege also für jedes Event, das du nutzen willst, einen eigenen Webhook an. Stell das Format auf JSON, füge die Brew-URL ein und wähle die neueste API-Version.
- Kopiere das Signing Secret unten im Bereich „Webhooks“. Dasselbe Secret signiert alle Webhooks des Shops. Füge es in Brew ein und klicke auf „Verbinden“.
- Öffne bei jedem angelegten Webhook das Menü und wähle „Test senden“. Mit dem ersten Test wechselt der Status in Brew von „Wartet auf Test-Event“ zu „Verbunden“, und jeder Test markiert sein Event als empfangen. Ein Test verifiziert nur den Webhook. Brew legt keinen Kontakt an und startet keine Automatisierung.
- Beim Verbinden legt Brew Trigger für alle 13 Topics an. Einen Schalter zum Aktivieren oder Deaktivieren einzelner Events gibt es nicht, aber ein Topic ohne Webhook in Shopify wird nie ausgelöst.
- Erstelle eine Automatisierung, wähle ihr Shopify-Event und sende einen Test, solange sie noch den Status „Entwurf“ hat. Nur Automatisierungen mit dem Status „Live“ werden ausgeführt, wenn ein passendes Event eintrifft.

## Unterstützte Shopify-Events

Brew unterstützt diese 13 Webhook-Topics:

- customers/create
- customers/update
- customers/delete
- customers/enable
- customers/disable
- orders/create
- orders/paid
- orders/cancelled
- orders/fulfilled
- checkouts/create
- checkouts/update
- fulfillments/create
- fulfillments/update

## Kontaktsynchronisierung und Personalisierung

Jedes verifizierte Event mit einer echten E-Mail-Adresse legt einen Brew-Kontakt an oder aktualisiert ihn – zugeordnet über die E-Mail-Adresse und unabhängig davon, ob eine Automatisierung das Event nutzt. Wenn die Daten vorhanden sind, setzt Brew Vor- und Nachname, shopify_customer_id und shopify_shop_domain.

Bestell-Events aktualisieren shopify_last_order_number, shopify_last_order_total, shopify_last_order_currency und shopify_last_order_at. Die Events orders/create, orders/paid und orders/cancelled setzen zusätzlich shopify_last_order_status, orders/fulfilled setzt shopify_last_fulfillment_status. Fulfillment-Events aktualisieren shopify_last_tracking_number, shopify_last_tracking_url und shopify_last_fulfillment_status. Checkout-Events aktualisieren shopify_last_checkout_url.

Die Events customers/delete, customers/disable und customers/enable setzen shopify_account_status auf deleted, disabled oder active. Brew entfernt den Kontakt nicht und meldet ihn auch nicht ab. Filtere also nach diesem Feld, wo es darauf ankommt.

Richte dich bei Merge-Tags nach dem deklarierten Payload-Schema des gewählten Events. Jedes Event enthält email, firstName, lastName, currency, shopDomain und createdAt, sofern vorhanden. Bestell-Events ergänzen orderNumber, totalPrice, financialStatus und fulfillmentStatus, Checkout-Events totalPrice und abandonedCheckoutUrl, Fulfillment-Events trackingNumber, trackingUrl und fulfillmentStatus.

Das Feld totalPrice ist der Betrag, den Shopify in der Währung der Bestellung sendet, etwa 49.95, nicht in Cent. Bestellpositionen sind nicht in den Payloads enthalten, und IDs von Shopify-Objekten sind keine Merge-Tags.

Die Kunden-Webhooks von Shopify enthalten keine Marketing-Einwilligung mehr, Brew bekommt sie also nicht. Halte die Einwilligung separat fest und prüfe sie vor Werbeversänden.


## Unterstützt Brew Rückerstattungen und Warenkorb-Events?

Nein. Shopify hat kein Topic orders/refunded, und sein Webhook für Rückerstattungen enthält keinen Kunden. Das Topic carts/update hat keine Empfängeridentität, daher kann Brew auf dieser Basis keine E-Mail sicher versenden. Lege für diese Topics keine Webhooks an.


## Warum erscheint ein Event, ohne dass eine E-Mail versendet wird?

Ein Event zu empfangen und eine E-Mail zu senden, sind getrennte Schritte. Prüfe, ob eine passende Automatisierung live ist, sieh dir dann ihre Filter und ihren Ausführungsverlauf an und prüfe, ob der Empfänger erreichbar und die Versanddomain bereit ist. Eine Zustellung über „Test senden“ erscheint als Test-Event und startet nie eine Automatisierung. Ein Event ohne E-Mail-Adresse zu einem unbekannten Kunden wird als nicht aufgelöst erfasst.


## Limits und Fehlerbehebung

- Brew kann in Shopify keine Kunden, Bestellungen oder Fulfillments ändern.
- Ein Status 401 mit shop_domain_mismatch bedeutet, dass die in Brew eingegebene Domain nicht zum Shop passt, der den Webhook sendet. Verbinde Shopify mit der kanonischen myshopify.com-Domain neu.
- Wenn du das Signing Secret in Shopify rotierst, verbinde Shopify mit dem neuen Wert neu. Brew verlangt, dass das Secret mindestens 16 Zeichen lang ist.
- Zeigt ein Trigger „Noch keine Events“, lege in Shopify einen Webhook für dieses Topic an und sende daraus einen Test.
- Bestell-Webhooks enthalten den Kundennamen nicht immer. Nutze für firstName einen Fallback im Merge-Tag, etwa eine Standardbegrüßung.
- Prüfe die Einwilligung und den Zweck jeder E-Mail. Die Synchronisierung von Shopify-Kunden erlaubt keine Werbeversände.

## Quellen und Einrichtungsanleitungen

- [Einrichtungsanleitung für Shopify](https://docs.brew.new/integrations/import/shopify)
- [Automatisierung erstellen](https://docs.brew.new/create-emails/build-an-automation)
- [Merge-Tags](https://docs.brew.new/create-emails/merge-tags)
- [Was du mit Brew versenden kannst](https://docs.brew.new/get-started/what-you-can-send)
- [Shopify-Webhooks](https://shopify.dev/docs/apps/build/webhooks)

## Verwandte Seiten

- [Alle Integrationen](https://brew.new/de/browse/integrations.md)
- [Registrieren](https://brew.new/de/sign-up.md)
- Website: https://brew.new
