Anpassade utlösare för butiksfronter

Anpassade utlösare för butiksfronter

Kopiera sidan

Gör valfri händelse i webbutiken, som öppnad varukorgsmeny eller tillägg i önskelistan, till en utlösare i Shopify Flow med en rad JavaScript.

De inbyggda utlösarna för webbutiken täcker de händelser som Shopify rapporterar. En anpassad utlösare för webbutiken täcker allt annat som händer i din webbutik: du publicerar en händelse från ditt tema med en rad JavaScript-kod, och den blir en utlösare som du kan använda i Shopify Flow.

Det tydligaste exemplet är varukorgsmenyn. Shopifys händelse för varukorgsvisningen utlöses på sidan /cart, men de flesta moderna teman navigerar aldrig dit - istället öppnar de en meny med en glidande rörelse. Shopify rapporterar ingenting, så ingen app kan se det. Genom att publicera en egen händelse när menyn öppnas kan du fylla den luckan.

Andra användningsområden i butikerna:

  • Ett tillägg till önskelistan eller ett klick på ”Meddela mig” - inget av detta rapporteras av Shopify.
  • En storleksguide eller returpolicy som öppnats, som en indikation på en produkt.
  • En variantändring i urvalsverktyget, som inte innebär en ny sidvisning (se Utlösare för butiksfronter).
  • Allt som ditt tema eller en app från tredje part redan har information om, men som Shopify inte har.

Så här fungerar det

  1. Skapa utlösaren i appen och ge den ett händelsenamn, till exempel cart_drawer_opened. Precis som alla Storefront-utlösare kräver den behörigheten ”Storefront Behaviour Access”, som beviljas en gång på sidan ”Behörigheter”.
  2. Kopiera den enda raden som appen visar och klistra in den i ditt tema där det ska hända. Om du är osäker på vad du ska klistra in eller var, så skriver Skapa triggerkod med AI fram kodsnuttarna för ditt tema utifrån en beskrivning på vanlig engelska.
  3. Skriv en omvandling om du vill filtrera eller omforma det som skickas, eller lämna fältet tomt för att vidarebefordra allt.
  4. **Aktivera funktionen **och lägg sedan till ”Custom Storefront Trigger” i Shopify Flow, och skapa en gren baserad på händelsens namn.

Kodsnuttarna utgör hela integrationen på temasidan:

Redigeraren för anpassade butiksfronter med namn, händelsens namn och kodsnutt som ska läggas till i temat
En anpassad butiksutlösare: händelsens namn är det som ditt tema publicerar, och redigeraren ger dig kodsnuttet som du ska kopiera.
Publish the event from your themejavascript
Shopify.analytics.publish("cart_drawer_opened", {
  // anything you want the Flow to receive
  itemCount: 3,
  total: "129.90"
});

Att ge evenemanget ett namn

Evenemangsnamnet är det som avgör hur ditt Shopify Flow-arbetsflöde förgrenar sig, så välj ett namn som är lätt att förstå och ändra det inte när arbetsflödena väl använder det.

Namn får innehålla bokstäver, siffror, understreck och bindestreck, måste börja med en bokstav eller en siffra och får bestå av upp till 64 tecken. Appen omvandlar det du skriver till en kortare form, så Cart drawer opened blir cart_drawer_opened.

Namnet tillhör ett internt namnområde, vilket innebär att det aldrig kan kollidera med en Shopify-händelse eller med en anpassad webhook-utlösare med samma namn.

Filtrering och omformning

De data du skickar som det andra argumentet kommer in i Shopify Flow som utlösarens output. Om det är allt du behöver är du klar.

Om du endast vill utlösa händelsen i vissa fall, eller skicka andra fält än de som publiceras av temat, skriver du en transform - samma JavaScript-modul som används av Anpassade utlösare. Returnera ett objekt för att utlösa händelsen, returnera null för att hoppa över 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,
  };
}

Använda det i Shopify Flow

Varje anpassad butiksutlösare registreras i Shopify Flow som samma utlösare: Anpassad butiksutlösare. Lägg till den i ett arbetsflöde och lägg sedan till ett villkor där eventName ska vara lika med det namn du valt.

Det är detta som gör att en Shopify Flow-utlösare kan återge alla händelser i din butik. Utlösaren innehåller också det namn du gav den i appen samt utdata från din omvandling.

Den skiljer sig medvetet från ”Custom Trigger”, som ligger till grund för den webhook-baserade Anpassade utlösare. Det finns en viktig skillnad mellan de två som är värd att känna till: en anpassad webhook-trigger körs på våra servrar och är tillförlitlig, medan en händelse i webbutiken är beroende av att kundens webbläsare når oss och av kundens samtycke till analys.

Vad man inte ska skicka

Det andra argumentet till publish ligger helt under din kontroll, vilket innebär att det är ditt ansvar att se till att inga personuppgifter ingår i det.

Skicka identifierare och uppgifter: produkt- och variant-ID:n, antal, priser samt namnet på händelsen. ID:t för den inloggade kunden läggs till automatiskt om det finns ett, så du behöver aldrig skicka det själv.

Skicka inte namn, e-postadresser, telefonnummer eller postadresser. Ditt arbetsflöde kan hämta alla dessa uppgifter utifrån kund-ID:t i Shopify Flow, så det finns ingen fördel med att lägga in dem i en butikshändelse - och om du gör det förvandlas en analyshändelse till en händelse som innehåller personuppgifter.

Räknas det av från mitt abonnemangskvot?

Ja. Varje händelse som når oss räknas, även de som din transformering hoppar över genom att returnera null - samma regel som gäller för Anpassade utlösare. Händelser som avvisas i webbläsaren på grund av saknat samtycke når aldrig oss och räknas aldrig.

Eftersom du själv bestämmer var kodavsnittet ska placeras, kan du styra volymen direkt. En händelse som utlöses när en låda öppnas inträffar betydligt mer sällan än en produktvisning.

Kan jag publicera samma evenemang från flera olika platser?

Ja. Det är namnet som spelar roll, inte varifrån det publiceras. Att skicka med information i datapaketet om varifrån det kommer är en bra idé om du vill att arbetsflödet ska kunna skilja dem åt.

Räknas det som en händelse om två lådor öppnas?

Nej. Avsiktliga händelser behandlas separat, eftersom en dubbel publicering oftast innebär att det verkligen har hänt två gånger. Detta skiljer sig från de inbyggda utlösarna, som slår ihop upprepningar av samma sidvisning.

Kan jag ändra evenemangets namn senare?

Det går, men ditt Shopify Flow-arbetsflöde filtrerar utifrån det, så om du ändrar namnet stoppas det arbetsflödet tills du uppdaterar villkoret - och du måste uppdatera kodsnuttarna i ditt tema så att de stämmer överens. Betrakta namnet som fastställt så snart ett arbetsflöde använder det.

Hur testar jag det innan det publiceras i min webbutik?

På sidan för utlösaren i appen finns ett test som kör din omvandling och aktiverar ditt Shopify Flow-arbetsflöde, så att du kan se hur det fungerar från början till slut utan att behöva ändra i ditt tema. Testningen räknas inte in i din kvot.

När kodsnuttet har lagts in i ditt tema visar sidan ”Händelsehistorik” de faktiska händelserna i takt med att de inträffar.

Fungerar det på utcheckningssidorna?

När du publicerar från din egen temakod omfattar detta din butiksfront. Kassan genereras av Shopify och du kan inte lägga till temakod där, så använd istället de inbyggda utlösarna ”Checkout Error Shown” och ”Checkout Discount Code Rejected” där.

Nästa steg