Triggers voor de winkelpagina

Alle andere triggers in deze app worden geactiveerd door iets wat in je admin is gebeurd: een bestelling is betaald, een product is bijgewerkt, een metafield is gewijzigd. Shopify geeft ons hiervan een melding, waarna je workflow wordt gestart.

Storefront-triggers worden geactiveerd door een actie van een klant. Er is een productpagina bekeken, een artikel is aan het winkelmandje toegevoegd, een zoekopdracht leverde geen resultaten op, of een kortingscode is bij het afrekenen geweigerd. Shopify verstuurt hiervoor geen webhooks, dus verzamelt de app deze gegevens via een Web Pixel die op je webwinkel draait.

Dat verschil is belangrijk om in gedachten te houden, want het verklaart het grootste deel van wat hierna volgt: wat de app wel en niet kan zien, en waarom deze triggers veel vaker kunnen voorkomen dan je gewend bent.

De Storefront-pixel

Zodra je eerste winkeltrigger is ingeschakeld, installeert de app automatisch een webpixel in je winkel. Je hoeft geen thema aan te passen en er is geen code die je hoeft in te voeren.

De pixel abonneert zich alleen op de gebeurtenissen die nodig zijn voor de triggers die je hebt ingeschakeld. Als je alleen Storefront Search inschakelt en verder niets, worden productweergaven nooit verzonden, nooit ontvangen en nooit geteld. Als je alle Storefront-triggers weer uitschakelt, blijft de pixel wel geïnstalleerd, maar inactief: hij abonneert zich op geen enkele gebeurtenis en verzendt niets.

Toestemming van de klant

De pixel houdt rekening met de privacyinstellingen voor klanten van je winkel. Er is toestemming voor analyse vereist, en Shopify voert de pixel alleen uit voor een klant die die toestemming heeft gegeven. Zonder die toestemming wordt er niets verzameld in de browser, komt er niets bij ons binnen, wordt er geen tegoed gebruikt en wordt er geen workflow uitgevoerd.

Dit geldt ook bij het afrekenen, dus voor de triggers ‘Afrekenfout weergegeven’ en ‘Kortingscode bij afrekenen geweigerd’ is dezelfde toestemming nodig als voor de triggers in de winkel.

Het betekent ook dat ‘storefront’-triggers in regio’s waar toestemming op basis van ‘opt-in’ geldt, per definitie te weinig meldingen genereren. Dat is het beoogde gedrag, en geen fout die moet worden omzeild.

Pass consent from your own banner to Shopifyjavascript
window.Shopify.loadFeatures(
  [{ name: "consent-tracking-api", version: "0.1" }],
  (error) => {
    if (error) return;
    // Call this when the shopper makes a choice in your banner.
    // Pass what they actually chose - storefront triggers need analytics.
    window.Shopify.customerPrivacy.setTrackingConsent(
      { analytics: true, marketing: false, preferences: false },
      () => {},
    );
  },
);

Shopify

Wanneer je een storefront-trigger test, moet je eerst de cookiebanner accepteren en een browser zonder advertentieblokkering gebruiken. Een privévenster wordt altijd zonder toestemming geopend, waardoor een trigger die in je normale browser werkt, daar niet lijkt te werken. Om te controleren of de pixel zelf is geïnstalleerd, open je Instellingen > Klantgebeurtenissen in je Shopify-beheerdersgedeelte.

De triggers

Trigger Begint wanneer
Bekeken product in de winkel Een klant opent een productpagina
Collectie ‘Storefront’ bekeken Een klant opent een verzamelpagina
Winkelpagina: winkelwagen bekeken Een klant opent de winkelwagenpagina
Product uit de etalage toegevoegd aan het winkelmandje Er is een artikel aan het winkelmandje toegevoegd
Product uit de winkel verwijderd uit het winkelmandje Er is een artikel uit het winkelmandje verwijderd
Het afrekenen in de winkel is gestart Een klant begint met afrekenen
Zoeken in de webwinkel Een zoekopdracht levert ten minste één resultaat op
De zoekopdracht in de webshop leverde geen resultaten op Een zoekopdracht levert geen resultaten op
Bekeken variant is niet op voorraad Een klant bekijkt een productpagina waarop de getoonde variant niet meer op voorraad is
Er wordt een afrekenfout weergegeven Bij het afrekenen krijgt de klant een foutmelding te zien
Kortingscode bij het afrekenen geweigerd Een kortingscode wordt bij het afrekenen geweigerd
B2B-inkoper op bezoek geweest Een aangemelde B2B-inkoper bezoekt de webshop
Een aangemelde klant heeft de website bezocht Een aangemelde klant bezoekt de winkel
Aangepaste trigger voor de winkelpagina Je eigen evenement, gepubliceerd vanuit je thema

Bekeken variant is niet op voorraad

Deze is het waard om goed door te lezen, want dit is de trigger die zich waarschijnlijk anders gedraagt dan de naam doet vermoeden.

Dit is een signaal dat het product opnieuw moet worden aangevuld: het geeft aan dat een echte klant iets heeft bekeken dat je hem of haar niet kunt verkopen. In combinatie met een Flow-workflow kan het product worden gemarkeerd, kan de inkoopafdeling worden gewaarschuwd of kan de klant op een wachtlijst worden geplaatst.

Dit wordt afgeleid, niet doorgegeven. De browser van de klant heeft geen idee wat je voorraad is, dus stuurt de pixel een standaard productweergave en vergelijkt de app dit met zijn eigen voorraadgegevens.

Er wordt een variant gecontroleerd, niet het hele product

De trigger wordt geactiveerd voor de variant die op de productpagina wordt weergegeven, niet voor het product als geheel. Bij een product met vier varianten die op voorraad zijn en één uitverkochte variant wordt de trigger alleen geactiveerd wanneer de uitverkochte variant wordt weergegeven.

Daarom heet deze trigger ‘Out-of-Stock Variant Viewed’ en daarom geeft de trigger in je workflow zowel de variant als het product waaraan deze behoort door.

Het wisselen van variant nadat de pagina is geladen, wordt niet gedetecteerd

Shopify registreert een productweergave wanneer de klant op de pagina terechtkomt. Als de klant daarna doorklikt naar de variantkiezer, gaat het om een statuswijziging binnen de pagina en niet om een nieuwe paginabezoek, dus Shopify registreert dit niet en de app krijgt hier nooit iets van mee.

In de praktijk: een link die rechtstreeks naar de uitverkochte variant leidt (een URL van het type ?variant=, of een link vanuit een collectie waarin deze variant als optie wordt getoond) werkt wel. Als je op een standaardvariant met voorraad terechtkomt en vervolgens de uitverkochte variant selecteert, werkt dit niet.

Als je dat nodig hebt, kun je vanuit je thema bij een wijziging van de variant je eigen gebeurtenis publiceren met {% doc "custom-storefront-triggers" %}.

'Niet op voorraad' betekent dat de voorraad op alle locaties nul of minder is

De app telt de beschikbare hoeveelheid bij elkaar op voor elke locatie waar deze variant op voorraad is. De trigger wordt geactiveerd wanneer dat totaal nul of lager is.

Twee gevolgen waarmee je rekening moet houden:

  • Locaties die niet aan je webwinkel leveren, tellen ook mee. Voorraad die in een magazijn of een winkel staat die geen verkoopkanaal voor dit product is, zorgt ervoor dat het totaal er goed uitziet, waardoor de trigger niet wordt geactiveerd, ook al kan de klant het product niet kopen.
  • Er wordt geen rekening gehouden met overselling. Een variant die is ingesteld om te blijven verkopen wanneer het artikel niet op voorraad is, kan nog steeds tegen nul worden gekocht, waardoor de trigger wordt geactiveerd terwijl de klant de bestelling in feite wel kan afronden.
Als je deze optie inschakelt, wordt ook ‘Storefront Product Viewed’ ingeschakeld

Dat moet wel. De beslissing over een voorraadtekort wordt genomen op basis van een productweergave, dus de app moet elke productweergave ontvangen om de paar relevante te kunnen vinden.

Dat betekent dat elke productweergave meetelt voor je limiet, niet alleen de producten die niet op voorraad zijn. Bij een winkel met veel bezoekers is dit de duurste trigger in de app, en de kosten worden bepaald door je bezoekersaantal, niet door hoe vaak je producten uitverkocht raken.

We leggen de afhankelijkheid nadrukkelijk bloot in plaats van deze te verbergen, zodat het cijfer op je verbruikspagina nooit een verrassing is.

De voorraad moet eerst zijn gesynchroniseerd

De app vergelijkt de gegevens met haar eigen voorraadgegevens. Als een variant nog nooit is gesynchroniseerd, kent de app de voorraadstand niet en geeft ze geen melding in plaats van een gok te doen - het zou erger zijn om een niet-gesynchroniseerde variant als uitverkocht te melden dan helemaal niets te melden.

De voorraad wordt automatisch gesynchroniseerd zodra je de trigger inschakelt. Je kunt deze op elk moment opnieuw uitvoeren via de pagina ‘Triggers’.

Zoekopdrachten

Met ‘Search’ krijg je twee triggers, en bij één zoekopdracht wordt precies één daarvan geactiveerd:

  • De Storefront-zoekfunctie leverde geen resultaten op wanneer de zoekopdracht niets opleverde. Dit is wat de meeste winkels willen: het is een lijst met artikelen waarvan klanten verwachtten dat je ze zou verkopen.
  • Zoekresultaten weergeven wanneer de zoekopdracht iets heeft opgeleverd.

Omdat ze elkaar uitsluiten, kun je ze gerust allebei inschakelen zonder dat er dubbeltellingen ontstaan. Storefront Search geeft het eerste resultaat ook door als productreferentie, zodat een workflow kan reageren op wat de klant hoogstwaarschijnlijk heeft gezien.

Bezoektriggers

B2B-inkoper bezocht en aangemelde klant bezocht: deze meldingen verschijnen wanneer een aangemelde klant op uw webshop is. Ze bieden de mogelijkheid om te reageren op een terugkerende klant - hernieuwde betrokkenheid, meldingen voor accountmanagers, een aantekening in het dossier.

Een klant die tien pagina’s bekijkt, telt als één bezoek, niet als tien afzonderlijke gebeurtenissen. De app voegt herhalingen samen tot een bezoekvenster dat je per trigger kunt instellen via het instellingenpictogram naast de schakelaar. Binnen dat venster telt een klant één keer mee.

  • Het aantal ‘Bezoeken van B2B-inkopers’ wordt per bedrijf samengevat, dus twee inkopers van hetzelfde bedrijf in één venster tellen als één bezoek.
  • Het aantal bezoeken van aangemelde klanten wordt per klant samengevat.

Stel de waarde op nul om bij elke paginaweergave een gebeurtenis te registreren. Bij een webwinkel met ingelogde bezoekers levert dat heel veel gebeurtenissen op, dus begin met een hoge waarde en verlaag deze als je een fijnere indeling nodig hebt.

Afreken-triggers

De melding ‘Checkout-fout weergegeven’ wordt geactiveerd telkens wanneer het afrekenproces een foutmelding aan een klant toont: een adres dat niet geldig is, een betaling die is geweigerd, of een veld waarin de ingevoerde gegevens niet worden geaccepteerd. Zo kun je vaststellen dat het afrekenproces mislukt, zonder te hoeven wachten op een supportticket.

De melding ‘Kortingscode bij afrekenen geweigerd’ beperkt zich tot één situatie: de kortingscode is bij het afrekenen geweigerd. Meestal gaat het hierbij om een verlopen actie, een code die vaker is gebruikt dan toegestaan, of een code uit een e-mail die nooit is geactiveerd - allemaal zaken die je snel moet weten.

Shopify geeft apps niet door welke code is ingevoerd, dus bevat de trigger het afwijzingsbericht vShopify (in de taal van de klant), maar niet de code zelf. Als je op ‘Toepassen’ klikt terwijl het veld leeg is, verschijnt hetzelfde bericht, waardoor de twee niet van elkaar te onderscheiden zijn. Gebruik dit om een stijging in het aantal afgewezen codes te signaleren, niet om een specifieke campagne te identificeren.

Volgende stappen