Aangepaste triggers voor de webshop
Maak eigen webshopgebeurtenissen, zoals een geopende winkelwagenlade of verlanglijst, met één regel JavaScript tot Shopify Flow-trigger.
De ingebouwde storefront-triggers hebben betrekking op de gebeurtenissen die worden gerapporteerd in Shopify. Een aangepaste storefront-trigger omvat al het overige dat zich op uw webshop afspeelt: u publiceert een gebeurtenis vanuit uw thema met één regel JavaScript, en deze wordt een trigger die u kunt gebruiken in Shopify Flow.
Het duidelijkste voorbeeld is de winkelwagenlade. De gebeurtenis ‘cart view’ van Shopify wordt geactiveerd op de pagina /cart, maar de meeste moderne thema’s navigeren nooit naar die pagina - in plaats daarvan schuiven ze een lade open. Shopify rapporteert niets, waardoor geen enkele app dit kan waarnemen. Door uw eigen gebeurtenis te publiceren wanneer de lade opengaat, wordt die leemte opgevuld.
Andere doeleinden waarvoor winkels het gebruiken:
- Een toevoeging aan de verlanglijst of een klik op ‘Houd mij op de hoogte’ - geen van beide wordt door Shopify geregistreerd.
- Een maattabel of retourbeleid dat is geopend, als indicatie met betrekking tot een product.
- Een variant in de picker, die geen nieuwe paginaweergave betreft (zie Triggers voor de winkelpagina).
- Alles wat uw thema of een app van een derde partij al weet, maar Shopify niet.
Hoe het werkt
- Maak de trigger aan in de app en geef deze een gebeurtenisnaam, bijvoorbeeld
cart_drawer_opened. Net als elke webshop-trigger heeft deze de machtiging ‘Storefront Behaviour Access’ nodig, die eenmalig wordt toegekend op de pagina ‘Machtigingen’. - Kopieer het fragment van één regel dat de app u laat zien en plak dit in uw thema op de plek waar dat gebeurt. Als u niet zeker weet wat u moet plakken of waar, dan stelt Triggercode genereren met AI het fragment voor uw thema op aan de hand van een beschrijving in gewoon Engels.
- Schrijf een transformatie als u de verzonden gegevens wilt filteren of aanpassen, of laat het veld leeg om alles door te sturen.
- Schakel deze functie in, voeg vervolgens in Shopify Flow een ‘Aangepaste Webshop-trigger’ toe en maak een vertakking op basis van de naam van de gebeurtenis.
Dit fragment omvat de volledige integratie aan de kant van het thema:

Shopify.analytics.publish("cart_drawer_opened", {
// anything you want the Flow to receive
itemCount: 3,
total: "129.90"
});Een naam voor het evenement kiezen
De naam van het evenement is bepalend voor de vertakking van uw Shopify Flow-workflow; kies daarom een begrijpelijke naam en wijzig deze niet meer zodra workflows er gebruik van maken.
Namen mogen letters, cijfers, onderstrepingstekens en koppeltekens bevatten, moeten beginnen met een letter of een cijfer en mogen maximaal 64 tekens lang zijn. De app zet wat u typt om in een ‘slug’, dus Cart drawer opened wordt cart_drawer_opened.
De naam wordt intern in een naamruimte ondergebracht, zodat er nooit een conflict kan ontstaan met een Shopify-gebeurtenis of met een aangepaste webhook-trigger met dezelfde naam.
Filteren en hervormen
De gegevens die u als tweede argument doorgeeft, komen in Shopify Flow binnen als de output van de trigger. Als dat alles is wat u nodig hebt, bent u klaar.
Wanneer u slechts in bepaalde gevallen een gebeurtenis wilt activeren, of andere velden wilt verzenden dan het gepubliceerde thema, schrijft u een transformatie - dezelfde JavaScript-module die door Aangepaste triggers wordt gebruikt. Geef een object terug om de gebeurtenis te activeren, en geef null terug om deze over te slaan:
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,
};
}Het gebruik ervan in Shopify Flow
Elke aangepaste Storefront-trigger wordt in Shopify Flow weergegeven als dezelfde trigger: Aangepaste Storefront-trigger. Voeg deze toe aan een workflow en voeg vervolgens een voorwaarde toe waarbij eventName gelijk is aan de door u gekozen naam.
Daardoor kan één Shopify Flow-trigger al uw webshop-gebeurtenissen activeren. De trigger bevat tevens de naam die u er in de app aan hebt gegeven, en de uitvoer van uw transformatie.
Dit staat bewust los van de aangepaste trigger, die ten grondslag ligt aan de op webhooks gebaseerde Aangepaste triggers. Er is een belangrijk verschil tussen beide dat het vermelden waard is: een op webhooks gebaseerde aangepaste trigger wordt op onze servers uitgevoerd en is betrouwbaar, terwijl een ‘webshop event’ afhankelijk is van het feit of de browser van een klant ons bereikt en van diens toestemming voor het gebruik van analysegegevens.
Wat u niet moet versturen
Het tweede argument van publish valt volledig onder uw bevoegdheid, wat betekent dat het uw verantwoordelijkheid is om ervoor te zorgen dat er geen persoonsgegevens in voorkomen.
Stuur identificatiegegevens en feiten door: product- en variant-ID’s, hoeveelheden, prijzen en de naam van de gebeurtenis. De ID van de ingelogde klant wordt automatisch toegevoegd indien deze beschikbaar is, zodat u deze nooit zelf hoeft door te geven.
Stuur geen namen, e-mailadressen, telefoonnummers of postadressen. Uw workflow kan al deze gegevens opvragen aan de hand van het klant-ID in Shopify Flow; het heeft dus geen zin om ze in een webshop-gebeurtenis op te nemen, en bovendien verandert u hierdoor een analysegebeurtenis in een gebeurtenis met persoonsgegevens.
Wordt dit in mindering gebracht op mijn bundeltegoed voor abonnementen?
Ja. Elke gebeurtenis die bij ons binnenkomt, telt mee, inclusief de gebeurtenissen die uw transformatie overslaat door null te retourneren - dezelfde regel geldt als bij <a href="/nl/aangepaste-triggers">Aangepaste triggers</a>. Gebeurtenissen die in de browser worden genegeerd vanwege ontbrekende toestemming, bereiken ons nooit en tellen dus ook niet mee.
Omdat u zelf bepaalt waar het fragment wordt weergegeven, kunt u het volume rechtstreeks regelen. Een gebeurtenis waarbij een lade wordt geopend, vindt veel minder vaak plaats dan het bekijken van een product.
Kan ik hetzelfde evenement vanaf meer dan één locatie publiceren?
Ja. Het gaat om de naam, niet om de plaats van publicatie. Het is een goed idee om in de payload informatie mee te geven over de herkomst, indien u wilt dat de workflow deze twee van elkaar kan onderscheiden.
Tellen twee keer het openen van een lade als één gebeurtenis?
Nee. Opzettelijke gebeurtenissen worden apart gehouden, omdat een dubbele publicatie doorgaans betekent dat het daadwerkelijk twee keer heeft plaatsgevonden. Dit verschilt van de ingebouwde triggers, die herhalingen van dezelfde paginaweergave samenvoegen.
Kan ik de naam van het evenement later nog wijzigen?
Dat kan, maar uw Shopify Flow-workflow filtert hierop, dus als u de naam wijzigt, wordt de uitvoering van die workflow onderbroken totdat u de voorwaarde aanpast - en u moet het fragment in uw thema dienovereenkomstig aanpassen. Beschouw de naam als vaststaand zodra een workflow deze gebruikt.
Hoe kan ik het testen voordat het live gaat in mijn webshop?
Op de pagina van de trigger in de app vindt u een test waarmee uw transformatie wordt uitgevoerd en uw Shopify Flow-workflow wordt geactiveerd, zodat u het hele proces van begin tot eind kunt volgen zonder uw thema aan te raken. Het testen verbruikt geen deel van uw toegewezen volume.
Zodra het fragment in uw thema is opgenomen, worden op de pagina ‘Gebeurtenisgeschiedenis’ de daadwerkelijke gebeurtenissen weergegeven zodra deze binnenkomen.
Werkt het op de checkout-pagina’s?
Als u vanuit uw eigen themacode publiceert, geldt dit voor de webshop. Het checkout-proces wordt weergegeven via Shopify en u kunt daar geen themacode aan toevoegen; maak daar in plaats daarvan gebruik van de ingebouwde triggers ‘Checkout Error Shown’ en ‘Checkout Discount Code Rejected’.
Volgende stappen
- Triggers voor de winkelpagina - de ingebouwde triggers voor de webshop en de werking van de pixel.
- Triggercode genereren met AI - laat de AI het themafragment of de transformatie voor u schrijven.
- Aangepaste triggers - hetzelfde principe voor webhook-gebeurtenissen van Shopify, met betrouwbaarheid aan de serverzijde.
- Abonnementen en gebruik - wat als een gebeurtenis wordt beschouwd.
