Tilpassede utløsere for butikkfronten

Tilpassede utløsere for butikkfronten

Kopier side

Gjør tilpassede hendelser i nettbutikken, som åpnet handlekurv-skuff eller ønskeliste, til utløsere i Shopify Flow med én linje JavaScript.

De innebygde utløserne for nettbutikken dekker hendelsene som Shopify rapporterer. En tilpasset utløser for nettbutikken dekker alt annet som skjer i nettbutikken din: du publiserer en hendelse fra temaet ditt med én linje JavaScript, og den blir en utløser du kan bruke i Shopify Flow.

Det tydeligste eksemplet er handlekurv-skuffen. Shopifys «cart view»-hendelse utløses på /cart-siden, og de fleste moderne temaer navigerer aldri dit - i stedet glir de en skuff ut. Shopify rapporterer ingenting, så ingen app kan se det. Ved å publisere din egen hendelse når skuffen åpnes, fyller du dette hullet.

Andre formål butikkene bruker det til:

  • En oppføring på ønskelisten eller et klikk på Gi meg beskjed - ingen av delene rapporteres av Shopify.
  • En størrelsesguide eller returvilkår som er åpnet, som et tegn på interesse for et produkt.
  • En** endring** i utvalget, som ikke utgjør en ny sidevisning (se Utløsere for butikkfronter).
  • Alt som temaet ditt eller en tredjepartsapp allerede har informasjon om, men som Shopify ikke har.

Slik fungerer det

  1. Opprett utløseren i appen og gi den et hendelsesnavn, for eksempel cart_drawer_opened. Som alle Storefront-utløsere trenger den tilgang til Storefront-atferd, noe som gis én gang på siden «Tillatelser».
  2. Kopier den ene linjen med kode som appen viser deg, og lim den inn i temaet ditt der det skal skje. Hvis du er usikker på hva du skal lime inn eller hvor, kan du bruke Generer utløserkode med AI, som genererer kodebiten for temaet ditt ut fra en beskrivelse på vanlig engelsk.
  3. Skriv inn en transformasjon hvis du ønsker å filtrere eller endre formatet på det som sendes, eller la feltet stå tomt for å videresende alt.
  4. Slå den på, og legg deretter til Custom Storefront Trigger i Shopify Flow, og opprett en forgrening basert på hendelsesnavnet.

Dette kodestykket utgjør hele integrasjonen på temasiden:

Redigeringsverktøyet for tilpassede butikkfrontutløsere, med navn, hendelsesnavn og kodebiten som skal legges til i temaet
En tilpasset utløser for butikkfronten: Navnet på hendelsen er det temaet ditt publiserer, og redigeringsverktøyet gir deg kodebiten du skal kopiere.
Publish the event from your themejavascript
Shopify.analytics.publish("cart_drawer_opened", {
  // anything you want the Flow to receive
  itemCount: 3,
  total: "129.90"
});

Navnet på hendelsen er det som avgjør hvilken retning arbeidsflyten din i Shopify Flow skal ta, så velg et navn som er lett å forstå, og la det være som det er når arbeidsflytene først bruker det.

Navn kan inneholde bokstaver, tall, understreker og bindestreker, må begynne med en bokstav eller et tall, og kan bestå av opptil 64 tegn. Appen omdanner det du skriver til en «slug», slik at Cart drawer opened blir til cart_drawer_opened.

Navnet er internt plassert i et navnerom, slik at det aldri kan komme i konflikt med en Shopify-hendelse eller en tilpasset webhook-utløser med samme navn.

Filtrering og omforming

Dataene du sender som det andre argumentet, kommer inn i Shopify Flow som utløserens output-verdi. Hvis det er alt du trenger, er du ferdig.

Når du kun ønsker å utløse en hendelse i visse tilfeller, eller sende andre felt enn det temaet publiserer, kan du skrive en transformasjon - det samme JavaScript-modulet som brukes av Tilpassede utløsere. Returner et objekt for å utløse hendelsen, og returner null for å hoppe over den:

Only fire for drawers worth acting onjavascript
export async function transform(payload, topic, shop, ctx) {
  // Anything you published is on `payload`.
  if ((payload.itemCount || 0) < 2) return null;

  return {
    itemCount: payload.itemCount,
    total: payload.total,
    // Present only when the shopper is signed in.
    customerId: payload.customerId,
  };
}

Bruk av det i Shopify Flow

Hver «Custom Storefront Trigger» vises i Shopify Flow som den samme utløseren: Custom Storefront Trigger. Legg den til i en arbeidsflyt, og legg deretter til et vilkår der eventName er lik det navnet du valgte.

Det er dette som gjør at én Shopify Flow-utløser kan utløse alle hendelsene i nettbutikken din. Utløseren har også navnet du ga den i appen, samt utdataene fra transformasjonen din.

Den er bevisst skilt fra Custom Trigger, som ligger til grunn for den webhook-baserte Tilpassede utløsere. Det er en viktig forskjell mellom de to som det er verdt å kjenne til: en webhook-basert tilpasset utløser kjører på våre servere og er pålitelig, mens en butikkhendelse avhenger av at kundens nettleser når frem til oss og av kundens samtykke til analyse.

Hva du ikke bør sende

Det andre argumentet til publish ligger helt under din kontroll, noe som betyr at det er ditt ansvar å sørge for at det ikke inneholder personopplysninger.

Send identifikatorer og opplysninger: produkt- og variant-ID-er, antall, priser og navnet på hendelsen. ID-en til den innloggede kunden legges til automatisk når det finnes en, så du trenger aldri å oppgi den selv.

Ikke send navn, e-postadresser, telefonnumre eller postadresser. Arbeidsflyten din kan hente frem alle disse opplysningene ut fra kunde-ID-en i Shopify Flow, så det gir ingen fordel å legge dem inn i en butikkhendelse, og ved å gjøre det blir en analysehendelse til en hendelse som inneholder personopplysninger.

Trekker det fra datakvoten i abonnementet mitt?

Ja. Alle hendelser som når oss, teller med, inkludert de som transformasjonen din hopper over ved å returnere null - det er samme regel som for Tilpassede utløsere. Hendelser som blir utelatt i nettleseren på grunn av manglende samtykke, når aldri frem til oss og teller aldri med.

Siden du selv bestemmer hvor kodebiten skal plasseres, kan du styre omfanget direkte. En hendelse knyttet til åpning av en skuff utløses langt sjeldnere enn en produktvisning.

Kan jeg publisere den samme begivenheten fra flere steder?

Ja. Det er navnet som teller, ikke hvor det publiseres fra. Det er lurt å inkludere informasjon i nyttelasten om hvor det kommer fra, hvis du vil at arbeidsflyten skal kunne skille dem fra hverandre.

Vil det å åpne to skuffer telle som én hendelse?

Nei. Bevisste hendelser skilles ut, fordi to publiseringer vanligvis betyr at det faktisk skjedde to ganger. Dette skiller seg fra de innebygde utløserne, som slår sammen gjentakelser av samme sidevisning.

Kan jeg endre navnet på arrangementet senere?

Det kan du, men arbeidsflyten din i Shopify Flow bruker dette som filter, så hvis du endrer navnet, vil arbeidsflyten stoppe inntil du oppdaterer betingelsen - og du må også oppdatere kodebiten i temaet ditt slik at den samsvarer. Betrakt navnet som fast når en arbeidsflyt først har tatt det i bruk.

Hvordan kan jeg teste det før det blir lagt ut i nettbutikken min?

Triggerens side i appen har en test som kjører transformasjonen din og utløser Shopify Flow-arbeidsflyten din, slik at du kan se den gjennomføres fra start til slutt uten å måtte endre temaet ditt. Testingen bruker ikke kvoten din.

Når kodebiten er lagt inn i temaet ditt, viser siden «Hendelseshistorikk» de faktiske hendelsene etter hvert som de kommer inn.

Fungerer det på betalingssidene?

Når du publiserer fra din egen temakode, gjelder dette butikkfronten. Kasseprosessen genereres av Shopify, og du kan ikke legge til temakode der. Bruk derfor de innebygde utløserne «Checkout Error Shown» og «Checkout Discount Code Rejected» i stedet.

Neste trinn