Angemeldete Kunden in Ihrer Storefront
Erlauben Sie nur angemeldeten Kunden, einen Webhook über Ihre Shop-Domain aufzurufen, und erhalten Sie die signierte Kunden-ID in Shopify Flow.
Rufen Sie einen Webhook von Ihrer eigenen Storefront aus auf und erfahren Sie, welcher Kunde ihn gesendet hat. Ein Großhandelsbestellformular, eine Schaltfläche zum Nachbestellen auf einer B2B-Kontoseite oder ein Anfrageformular für angemeldete Kunden können einen Shopify Flow-Workflow auslösen, und der Workflow erhält die ID des angemeldeten Kunden. Shopify signiert diese ID, sodass sich niemand als ein anderer Kunde ausgeben kann.
Dies baut auf der App-Proxy-URL auf; siehe CORS, die Proxy-URL der App und Browser-Aufrufe.
Richten Sie es ein
- Öffnen Sie den Webhook und wechseln Sie zu den erweiterten Einstellungen.
- Aktivieren Sie unter „URL-Einstellungen“ die Option „App-Proxy-URL verwenden“. Die Webhook-URL befindet sich nun auf der Domain Ihres Shops, zum Beispiel
https://your-store.com/apps/webhooks/abc123. - Wählen Sie unter „Wer kann diesen Webhook aufrufen?“ eine der drei Optionen aus:
| Option | URL des App-Proxys | Direkte App-URL |
|---|---|---|
| Jeder, der über die URL verfügt | Funktioniert für alle | Werke |
| Ausschließlich über die Domain Ihres Shops | Gilt für alle, auch für Gäste | Abgelehnt mit Fehlercode 403 |
| Nur Kunden, die in Ihrem Shop angemeldet sind | Funktioniert für angemeldete Kunden; Gäste erhalten den Fehlercode 401 | Abgelehnt mit Fehlercode 403 |
- Speichern. Die Einstellung gilt für die nächste Anfrage.

Was die App überprüft
Jede Anfrage, die über die Proxy-URL der App erfolgt, enthält eine Signatur von Shopify. Die App überprüft in folgender Reihenfolge:
- Die Signatur. Eine Anfrage ohne gültige Shopify-Signatur wird mit dem Statuscode 401 abgelehnt. Niemand kann diese fälschen, da Shopify sie anhand des Geheimschlüssels Ihrer App erstellt.
- Ihr Shop. Eine für einen anderen Shop unterzeichnete Anfrage wird mit dem Fehlercode 403 abgelehnt.
- Der angemeldete Kunde. Wenn in Ihrem Shop ausschließlich angemeldete Kunden zugelassen sind, wird eine Anfrage ohne angemeldeten Kunden mit dem Status 401 (
customer_login_required) abgelehnt. Die Kunden-ID stammt aus der Signatur, niemals aus dem Request-Body. - Die direkte URL. Unabhängig davon, welche Einschränkung gilt, gibt die direkte App-URL den Fehlercode 403 (
proxy_required) zurück, sodass niemand diese Überprüfungen umgehen kann.
Eine abgelehnte Anfrage gelangt niemals zu Shopify Flow und wird nicht auf Ihren Plan angerechnet.
Was Shopify Flow empfängt
Der Webhook-Trigger und der Sync-Webhook-Trigger verfügen über das Feld „customerId“: die numerische ID des angemeldeten Kunden, zum Beispiel 7350001. Bei Gästen und bei allen Anfragen, die nicht über die App-Proxy-URL eingegangen sind, ist dieses Feld leer. Ihre zugeordneten Felder werden wie gewohnt übermittelt; siehe Zuordnung der Payload-Daten und Flow-Variablen.
Rufen Sie von Ihrer Storefront aus an
Die Anfrage muss von einer Seite Ihres Shops ausgehen, während der Kunde angemeldet ist, damit sie über die Domain Ihres Shops läuft. Kopieren Sie die Webhook-URL aus der App: Bei Shopify können Sie den Proxy-Pfad ändern, sodass sich Ihrer vom Beispiel unterscheiden kann. Dieser Codeausschnitt in einem Theme-Abschnitt übermittelt den Standort des Unternehmens, für den der B2B-Kunde einkauft:
<script>
fetch('/apps/webhooks/abc123', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
companyLocationId: 'gid://shopify/CompanyLocation/{{ customer.current_location.id }}'
})
})
</script>Ordnen Sie Feld 1 der companyLocationId zu, damit der Workflow den Standort als fieldOne erhält.
Den Kunden in Shopify Flow einchecken
Shopify Flow kann alle Informationen zum Kunden abrufen, daher gehört die Überprüfung in den Workflow:
- Trigger: Webhook-Trigger aus Workflow Webhooks. Falls Sie über mehrere Webhooks verfügen, fügen Sie eine Bedingung hinzu: Die Webhook-ID entspricht der in der App angezeigten ID.
- Rufen Sie Kundendaten mit der Abfrage
id:{{customerId}}ab. Shopify Flow lädt die Daten des angemeldeten Kunden, einschließlich Tags und Rollen des Unternehmens. - Bedingung: Der Kunde verfügt über das Tag
wholesale, und eines seiner Unternehmenskontaktprofile weist eine Rollenzuweisung auf, deren Unternehmensstandort-ID mitfieldOneübereinstimmt und deren RolleOrdering onlyoderLocation adminlautet. - Dann: Führen Sie die entsprechenden Aktionen aus, beispielsweise das Anlegen eines Bestellentwurfs für diesen Standort. Andernfalls: Brechen Sie den Vorgang ab oder senden Sie eine Antwort an die Storefront mit einem Synchrone Reaktion, damit die Seite dem Kunden den Grund dafür mitteilen kann.
Gut zu wissen
- Die Proxy-URL der App setzt voraus, dass Ihre Storefront erreichbar ist. Bei einem passwortgeschützten Shop antwortet sie erst, nachdem das Passwort für die Storefront eingegeben wurde.
- Da die Besucher die 401-Fehlermeldung erhalten, zeigen Sie auf dieser Seite bitte einen Link zur Anmeldung an.
- In der Historie wird die Kunden-ID jeder Anfrage angezeigt, und bei einer Wiederholung wird diese erneut gesendet.
- Wenn ein Kunde die Löschung seiner Daten beantragt, werden die von ihm übermittelten Verlaufseinträge gelöscht.
