Kunder, der er logget ind på din webshop
Sørg for, at kun indloggede kunder kan kalde en webhook via din butiks domæne, deaktiver den direkte URL, og hent det verificerede kunde-ID i Shopify Flow.
Aktivér en webhook fra din egen webshop, og se, hvilken kunde der har udløst den. En grossistbestillingsformular, en genbestillingsknap på en B2B-kontoside eller en anmodningsformular til loggede kunder kan starte en Shopify Flow-arbejdsgang, og arbejdsgangen modtager ID'et for den kunde, der er logget ind. Shopify signerer dette ID, så ingen kan udgive sig for at være en anden kunde.
Dette bygger videre på app-proxy-URL’en, se CORS, appens proxy-URL og browseranmodninger.
Konfigurer det
- Åbn webhooken, og gå til »Avancerede indstillinger«.
- Under »URL-indstillinger« skal du aktivere »Brug app-proxy-URL«. Webhook-URL’en ligger nu på din butiks domæne, for eksempel
https://your-store.com/apps/webhooks/abc123. - Under »Hvem kan kalde denne webhook« skal du vælge en af de tre muligheder:
| Valgmulighed | App-proxy-URL | Direkte app-URL |
|---|---|---|
| Enhver, der har URL’en | Fungerer for alle | Værker |
| Kun via din butiks domæne | Fungerer for alle, også gæster | Afvist med fejlkode 403 |
| Kun kunder, der er logget ind på din butik | Fungerer for kunder, der er logget ind; gæster får fejl 401 | Afvist med fejlkode 403 |
- Gem. Indstillingen gælder for den næste anmodning.

Hvad appen kontrollerer
Hver anmodning via appens proxy-URL indeholder en signatur fra Shopify. Appen kontrollerer følgende i denne rækkefølge:
- Signaturen. En anmodning uden en gyldig Shopify-signatur afvises med fejlkode 401. Ingen kan forfalske den, da Shopify genererer den ved hjælp af din apps hemmelige nøgle.
- Din butik. En anmodning, der er underskrevet for en anden butik, afvises med fejlkode 403.
- Den indloggede kunde. Når der kun er_ kunder_, der er logget ind på din butik, afvises en anmodning uden en indlogget kunde med fejlkoden 401 (
customer_login_required). Kunde-ID’et stammer fra signaturen, aldrig fra anmodningens brødtekst. - Den direkte URL. Uanset hvilken begrænsning der gælder, returnerer den direkte app-URL en 403-fejl (
proxy_required), så ingen kan omgå disse kontroller.
En afvist anmodning når aldrig frem til Shopify Flow og tæller ikke med i dit abonnement.
Hvad Shopify Flow modtager
Webhook-udløseren og Sync-webhook-udløseren har et felt ved navn customerId: det numeriske ID for den indloggede kunde, f.eks. 7350001. Feltet er tomt for gæster og for alle anmodninger, der ikke er kommet via app-proxy-URL’en. Dine tilknyttede felter modtages som sædvanligt; se Kortlægning af payload og strømningsvariabler.
Ring fra din webshop
Anmodningen skal komme fra en side i din butik, mens kunden er logget ind, så den går via din butiks domæne. Kopier webhook-URL’en fra appen: Shopify giver dig mulighed for at ændre proxy-stien, så din kan afvige fra eksemplet. Dette kodestykke i en tema-sektion sender den virksomhedsadresse, som B2B-kunden køber til:
<script>
fetch('/apps/webhooks/abc123', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
companyLocationId: 'gid://shopify/CompanyLocation/{{ customer.current_location.id }}'
})
})
</script>Knyt felt 1 til companyLocationId, så arbejdsgangen modtager lokationen som fieldOne.
Tjek kunder ind i Shopify Flow
Shopify Flow kan hente alle oplysninger om kunden, så kontrollen hører hjemme i arbejdsgangen:
- Udløser: Webhook-udløser fra Workflow Webhooks. Hvis du har flere webhooks, skal du tilføje en betingelse: Webhook-ID’et skal svare til det ID, der vises i appen.
- Hent kundedata med forespørgslen
id:{{customerId}}. Shopify Flow indlæser den indloggede kunde, herunder tags og roller i virksomheden. - Betingelse: Kunderne har mærket
wholesale, og en af virksomhedens kontaktprofiler har en rolletildeling, hvor virksomhedens placerings-ID er lig medfieldOne, og hvor rollen erOrdering onlyellerLocation admin. - I så fald: Udfør dine handlinger, f.eks. opret en ordrekladde for den pågældende lokation. Ellers: Stop, eller svar til webshoppen med et Synkron respons, så siden kan forklare kunden hvorfor.
Godt at vide
- Appens proxy-URL kræver, at din webshop er tilgængelig. På en adgangskodebeskyttet webshop svarer den først, når webshops adgangskode er indtastet.
- Gæsterne får svar 401, så vis et link til login på den side.
- Historikken viser kunde-ID’et for hver anmodning, og en gentagelse sender det igen.
- Når en kunde anmoder om, at vedkommendes data slettes, slettes de historikposter, som vedkommende har indsendt.
