Brugerdefinerede udløsere for butiksfronten
De indbyggede udløsere til webshoppen dækker de begivenheder, som Shopify rapporterer. En brugerdefineret udløser til webshoppen dækker alt andet, der sker på din webshop: Du offentliggør en begivenhed fra dit tema med én linje JavaScript, og den bliver til en udløser, som du kan bruge i Shopify Flow.
Det tydeligste eksempel er indkøbskurvens udtræk. Begivenheden »Shopify« udløses på siden /cart, og de fleste moderne temaer navigerer aldrig derhen - i stedet åbner de udtrækket med en glidende bevægelse. Shopify rapporterer intet, så ingen app kan se det. Ved at udløse din egen begivenhed, når udtrækket åbnes, lukker du det hul.
Andre formål, som butikkerne bruger det til:
- En tilføjelse til ønskelisten eller et klik på »Giv mig besked« - ingen af delene registreres af Shopify.
- En størrelsesguide eller returpolitik, der er åbnet, som en indikation om et produkt.
- En ændring i pickeren, som ikke udgør en ny sidevisning (se Udløsere for butiksfacader).
- Alt, hvad dit tema eller en tredjepartsapp allerede ved, men som Shopify ikke ved.
Sådan fungerer det
- Opret triggere i appen, og giv den et navn, f.eks. »
cart_drawer_opened«. Som alle Storefront-triggere kræver den adgang til »Storefront Behaviour«, som tildeles én gang på siden »Tilladelser«. - Kopier den enkeltlinjede kodestump, som appen viser dig, og indsæt den i dit tema på det sted, hvor det skal ske. Hvis du er i tvivl om, hvad du skal indsætte, eller hvor det skal indsættes, kan du på Generer triggerkode med AI få genereret kodestumpen til dit tema ud fra en beskrivelse på almindeligt engelsk.
- Skriv en transformation, hvis du vil filtrere eller omforme det, der sendes, eller lad feltet stå tomt for at videresende alt.
- Tænd for den, tilføj derefter »Custom Storefront Trigger« i Flow, og opret en forgrening baseret på begivenhedsnavnet.
Dette kodestykke udgør hele integrationen på temasiden:

Shopify.analytics.publish("cart_drawer_opened", {
// anything you want the Flow to receive
itemCount: 3,
total: "129.90"
});Navngivning af arrangementet
Begivenhedsnavnet er det, som din Flow-workflow forgrener sig ud fra, så vælg et navn, der er let at forstå, og lad det være, når workflows først bruger det.
Navne må indeholde bogstaver, tal, understregninger og bindestreger, skal begynde med et bogstav eller et tal og må højst bestå af 64 tegn. Appen omdanner det, du skriver, til en slug, så Cart drawer opened bliver til cart_drawer_opened.
Navnet er internt placeret i et navnerum, så det aldrig kan komme i konflikt med en »Shopify«-begivenhed eller en brugerdefineret webhook-trigger med samme navn.
Filtrering og omformning
De data, du sender som det andet argument, modtages i Flow som triggerens »output«. Hvis det er alt, hvad du har brug for, er du færdig.
Hvis du kun vil udløse en begivenhed i visse tilfælde eller sende andre felter end dem, der offentliggøres i temaet, skal du skrive en transform - det samme JavaScript-modul, som bruges af Brugerdefinerede udløsere. Returner et objekt for at udløse begivenheden, og returner null for at springe den over:
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,
};
}Brug af det i Shopify Flow
Alle brugerdefinerede Storefront-udløsere vises i Flow som den samme udløser: Brugerdefineret Storefront-udløser. Føj den til et workflow, og tilføj derefter en betingelse, hvor eventName skal svare til det navn, du har valgt.
Det er netop det, der gør, at én Flow-trigger kan udløse alle dine butiksbegivenheder. Triggeren indeholder også det navn, du har givet den i appen, samt output fra din transformation.
Den er bevidst adskilt fra »Custom Trigger«, som understøtter den webhook-baserede »Brugerdefinerede udløsere«. Der er en vigtig forskel mellem de to, som det er værd at kende til: En »Custom Trigger«-webhook kører på vores servere og er pålidelig, mens en »Storefront Event« afhænger af, at kundens browser sender data til os, samt af kundens samtykke til analyse.
Hvad man ikke bør sende
Det andet argument til publish er helt under din kontrol, hvilket betyder, at det er dit ansvar at sikre, at der ikke indgår personoplysninger i det.
Send identifikatorer og oplysninger: produkt- og variant-id'er, mængder, priser samt navnet på den hændelse, der fandt sted. Den indloggede kundes id tilføjes automatisk, når der er et, så du behøver aldrig selv at angive det.
Send ikke navne, e-mailadresser, telefonnumre eller postadresser. Din arbejdsgang kan hente alle disse oplysninger ud fra kunde-id’et i Flow, så der er ingen fordel ved at indsætte dem i en butiksbegivenhed, og hvis du gør det, bliver en analysebegivenhed til en begivenhed, der indeholder personoplysninger.
Tæller det med i min datapakke?▾
Ja. Alle begivenheder, der når frem til os, tæller med, herunder også dem, som din transform-funktion springer over ved at returnere null - det er den samme regel som ved Brugerdefinerede udløsere. Begivenheder, der frasorteres i browseren på grund af manglende samtykke, når aldrig frem til os og tæller derfor aldrig med.
Da det er dig, der bestemmer, hvor uddraget skal placeres, kan du styre mængden direkte. En begivenhed, der udløses, når en skuffe åbnes, forekommer langt sjældnere end en produktvisning.
Kan jeg oprette den samme begivenhed fra flere forskellige steder?▾
Ja. Det er navnet, der tæller, ikke hvor det er offentliggjort fra. Det er en god idé at medtage en angivelse i datapakken om, hvor det stammer fra, hvis man ønsker, at arbejdsgangen skal kunne skelne mellem dem.
Tæller det som én begivenhed, hvis to skuffer åbnes?▾
Nej. Bevidste hændelser behandles separat, fordi en dobbelt offentliggørelse som regel betyder, at det rent faktisk skete to gange. Dette adskiller sig fra de indbyggede udløsere, som sammenlægger gentagelser af den samme sidevisning.
Kan jeg ændre navnet på begivenheden senere?▾
Det kan du godt, men dit Flow-workflow filtrerer efter det, så hvis du ændrer navnet, stopper det workflowet, indtil du opdaterer betingelsen - og du skal også opdatere kodestykket i dit tema, så det passer. Betragt navnet som fast, når et workflow først bruger det.
Hvordan tester jeg det, før det går live i min webshop?▾
Triggerens side i appen indeholder en test, der kører din transformation og udløser dit Flow-workflow, så du kan se det køre fra start til slut uden at røre ved dit tema. Testen bruger ikke din kvote.
Når kodestykket er indsat i dit tema, viser siden »Begivenhedshistorik« de faktiske begivenheder, efterhånden som de indkommer.
Fungerer det på betalingssiderne?▾
Når du offentliggør fra din egen temakode, dækker dette din butiksforside. Betalingssiden vises via Shopify, og du kan ikke tilføje temakode dertil, så brug i stedet de indbyggede triggere »Checkout Error Shown« og »Checkout Discount Code Rejected« på denne side.
Næste trin
- Udløsere for butiksfacader - de indbyggede udløsere i webshoppen og hvordan pixlen fungerer.
- Generer triggerkode med AI - Lad AI skrive temaudsnittet eller transformationen for dig.
- Brugerdefinerede udløsere - den samme idé for »Shopify«-webhook-begivenheder, med pålidelighed på serversiden.
- Planer og anvendelse - hvad der regnes for en begivenhed.

