Sådan opretter du forbindelse mellem Shopify og Shopify Flow

Shopify underskriver sine egne webhooks og app-til-app-opkald med din apps API-hemmelighed. Med denne forudindstilling kan du modtage en Webhook fra en anden Shopify-butik eller fra din egen app og verificere den nøjagtigt som beskrevet i Shopify. Workflow Webhooks omdanner dette opkald til en Shopify Flow-udløser, så din butik kan reagere på det: mærke en kunde, tilføje en ordrekommentar, sende en intern e-mail, opdatere et metafelt - alt, hvad Shopify Flow kan gøre.

Denne vejledning beskriver hele forløbet - Shopify sender, Workflow Webhooks modtager og verificerer, Shopify Flow udfører handlingen - hvor Shopify’s HMAC-signatur kontrolleres ved hver anmodning, så kun Shopify kan igangsætte din arbejdsgang.

Hvad du kan bygge

  • Synkroniser en ordre fra en anden Shopify-butik til denne: tilføj en tag til kunden, tilføj en bemærkning eller start en klargøringsarbejdsgang.
  • Reagér i Shopify Flow på et emne, som »Shopify Flow« ikke selv tilbyder som udløser, ved at abonnere på det fra din egen app.
  • Sørg for, at en grossistbutik og en detailbutik fungerer i takt uden at skulle udvikle en mellemvaretjeneste.

Typiske begivenheder, der skal sendes: orders/create, products/update, customers/create, fulfillments/create.

Før du går i gang

  • Workflow Webhooks installeret på din Shopify-butik.
  • Shopify Flow installeret, som kan hentes gratis fra App Store på Shopify.
  • En konto på Shopify med tilladelse til at oprette webhooks.

Trin 1 - Opret webhook på Workflow Webhooks

  1. Åbn Workflow Webhooks -> Webhooks -> Opret en webhook, og giv den et navn, du kan genkende i Shopify Flow, f.eks. Shopify events.
  2. Vælg HMAC under »Autentificering«.
  3. Under »Signaturudbyder« skal du vælge »Shopify«. Appen udfylder selv overskriften, algoritmen, den signerede Payload og replay-vinduet for dig - der er ikke andet, du skal konfigurere.
  4. Lad feltet »Hemmelighed« være tomt foreløbig, og klik på »Gem«. Kopier den webhook-URL, der vises på siden.

Se Godkendelse for de øvrige godkendelsesmetoder og Kortlægning af payload og strømningsvariabler for at vælge, hvilke felter der skal sendes til Shopify Flow.

Trin 2 - Tilføj slutpunktet i Shopify

Opret webhook-abonnementet i den afsendende butik eller app med den URL, du har kopieret, og underskriv det med appens API-nøgle.

Sådan finder du din »Shopify«-signeringsnøgle

Din apps API-nøgle / signeringsnøglen til webhooken.

Shopify egen dokumentation om webhook-signaturer indeholder den nøjagtige ordlyd og skærmbilleder, der gælder for din konto.

Indsæt den hemmelige nøgle i feltet »Secret« under webhooken på Workflow Webhooks, og gem. Fra det øjeblik bliver hver eneste levering fra Shopify verificeret, inden den når frem til Shopify Flow.

Hvad dette kontrollerer

Hvad Værdi
Signaturhoved X-Shopify-Hmac-Sha256
Hvor underskriften er placeret Hele værdien i overskriften
Hvad der er underskrevet {body}
Underskrift HMAC-SHA256, Base64-kodet
Tidspunkt Bruges ikke af denne afsender
Beskyttelse mod gentagelse Ingen - denne afsender underskriver ikke et tidsstempel, så alle gyldige underskrifter forbliver gyldige
Hemmeligheden Bruges som almindelig tekst. Indsæt den nøjagtigt, som afsenderen viser den

I den signerede payload udgør {body} selve anmodningens brødtekst, byte for byte.

En anmodning, der ikke opfylder et af disse kriterier, afvises med fejlmeddelelsen »401«, registreres i »Historik og fejlfinding« og udløser aldrig en arbejdsgang.

Trin 3 - Opret arbejdsgangen »Shopify Flow«

  1. I »Shopify Flow« skal du oprette en arbejdsgang og vælge udløseren »Workflow Webhooks«.
  2. Tryk på »Optag begivenheder«, og send derefter en testbegivenhed fra Shopify (eller brug »Send test« på Workflow Webhooks), så Shopify Flow kan lære dine datas mønster at kende.
  3. Hver eneste webhook, du ejer, udløser den samme Shopify Flow-udløser, så tilføj en første betingelse baseret på webhook-id’et for at sikre, at denne arbejdsgang kun omfatter Shopify. Id’et vises på webhook-siden.
  4. Tilføj dine handlinger - tag en kunde, tilføj en note, send en intern e-mail, opdater et metafelt.
Shopify Flow
I »Shopify Flow« skal du vælge »Select a trigger«, åbne »Workflow Webhooks« og vælge »Webhook Trigger«.
I Shopify Flow: Webhook-id’et er det samme som ID’et for en bestemt webhook
Det første trin i enhver arbejdsgang: en betingelse baseret på webhook-ID’et, så arbejdsgangen kun udføres for denne webhook.
Den færdige arbejdsgang: Webhook-udløser, en betingelse baseret på webhook-ID’et, og derefter »Send intern e-mail« på »True«-grenen
Den færdige arbejdsgang: udløser, betingelse baseret på webhook-ID’et, og derefter din handling på »True«-grenen.

Trin 4 - Test det fra start til slut

Udløs en reel hændelse i Shopify. Under Workflow Webhooks -> Historik bør du kunne se opkaldet med status »Success«. Hvis signaturen var forkert, får du i stedet en fejlmeddelelse med årsagen, og på Bekræftelse af signerede webhooks finder du en forklaring til signaturtesteren, der viser dig præcis, hvilket trin der mislykkedes.

En anmodning, der blev åbnet i History med dens anmodningsheadere, Payload, status, varighed og identifikatorer
En gennemført begivenhed i History: Status »Success« betyder, at Shopify Flow har godkendt den.
Underskriften stemmer ikke overens▾

I denne rækkefølge: hemmeligheden (den mest almindelige årsag - et ekstra mellemrum eller en nøgle fra det forkerte miljø), om afsenderen bruger en anden endpunkts hemmelighed, og om noget mellem Shopify og appen omskriver brødteksten. Signaturerne dækker de rå bytes, så en proxy, der omformaterer JSON, ødelægger dem. Signaturtesteren på webhook-siden viser den nøjagtige tekst, der blev signeret.

Jeg får en 401-fejl ved hver eneste forespørgsel▾

Kontroller, at webhookens godkendelse er indstillet til HMAC med udbyderen »Shopify« valgt, at den hemmelige nøgle er udfyldt, og at Shopify sender data til URL’en nøjagtigt som angivet i appen, inklusive koden i slutningen.

Der vises intet under »Historik«▾

Anmodningen blev aldrig modtaget. Tjek URL’en igen på Shopify, og se i Shopifys egen leveringslog for at se, hvilket svar den modtog. En 404 betyder, at webhooken er forkert eller slettet, mens en 429 betyder, at du har overskredet dit abonnements grænse for antallet af opkald - se Planer og anvendelse.

Arbejdsgangen kører for de forkerte begivenheder▾

Hver eneste webhook i din butik udløser den samme Shopify Flow-trigger. Tilføj en betingelse baseret på webhook-id’et som det første trin i arbejdsgangen, eller begræns de begivenheder, du sender fra Shopify.

Relateret