Wanneer een shopper op Add to cart klikt, handelt Aftersell de toevoeging meestal zelf af in plaats van dat het thema het doet. Deze pagina legt uit waarom, wat dat betekent voor scripts die je hebt toegevoegd, en hoe je het uitschakelt voor één formulier of voor allemaal.
De meeste winkels hoeven hier nooit iets aan te veranderen. Lees verder als een script van jou is gestopt met afgaan bij add-to-cart, of als een add-to-cart-knop zich vreemd gedraagt.
Aftersell luistert naar de add-to-cart-submit voordat het thema dat doet. Wanneer hij er een herkent:
- Stopt hij het event, zodat niets anders op de pagina die klik afhandelt.
- Stuurt hij de toevoeging zelf naar Shopify.
- Opent hij de Aftersell Cart drawer.
Stap 1 is de belangrijke, en dat is de reden dat deze pagina bestaat.
Zonder dit reageren beide winkelwagens op dezelfde klik. Het thema voegt het artikel toe en opent zijn eigen drawer, Aftersell voegt het toe en opent de onze, en de shopper ziet twee winkelwagens, vaak met het artikel er tweemaal in.
Het event stoppen is de eenvoudigste manier om één toevoeging en één winkelwagen te garanderen.
Het event stoppen stopt het voor iedereen, niet alleen voor het thema. Alle andere code die naar diezelfde add-to-cart luistert stopt met draaien: je analytics, een tracking pixel, een abonnements- of bundelapp, een script dat je zelf hebt toegevoegd.
Het faalt stilzwijgend. Er verschijnt niets in de browserconsole, en de toevoeging zelf werkt nog steeds, dus het gebruikelijke symptoom is een getal dat verkeerd is in plaats van iets zichtbaar kapots:
add_to_cart-events die ontbreken in GA4, Meta of TikTok
- Een abonnements- of bundelapp die op de productpagina werkt maar niet via de winkelwagen
- Je eigen
addEventListener op het formulier die nooit afgaat
Als iets hiervan bekend klinkt, is deze pagina de oorzaak en staat de oplossing hieronder.
Wanneer Aftersell niet onderschept
Interceptie staat niet altijd aan. Aftersell laat add-to-cart met rust wanneer:
- Hij de winkelwagen van je thema herkent. Op thema’s waarmee Aftersell weet te werken, maakt hij de eigen winkelwagen van het thema inert in plaats van het event te blokkeren, en laat hij het thema de toevoeging vervolgens normaal uitvoeren. Je scripts draaien zoals altijd. Zie Which themes hieronder.
- Het formulier geen lijnitem toevoegt. Een formulier zonder variant-
id en zonder items[] wordt met rust gelaten.
- Je jezelf hebt afgemeld via een van de methoden hieronder.
Wanneer Aftersell de toevoeging niet uitvoert, kijkt hij nog steeds naar het cart-verzoek en opent hij de drawer als hij er een ziet. Zie Before you choose: what changes.
Welke thema’s Aftersell herkent
Aftersell matcht op hoe een thema is gebouwd, niet op de naam, dus een custom thema dat is geforkt van een van deze wordt normaal gesproken ook herkend, inclusief private builds die Aftersell nog nooit heeft gezien.
Het omgekeerde gebeurt ook: een sterk aangepaste build kan zover afdrijven van zijn ouder dat Aftersell hem niet meer herkent, ook al heet het thema nog steeds “Dawn”. Op deze lijst staan maakt herkenning waarschijnlijk, niet zeker.
Kies de smalste die je probleem oplost. Elke rij geeft meer op dan de vorige.
Voordat je kiest: wat er verandert
Afmelden geeft de toevoeging terug aan je thema, wat twee vragen oproept die het waard zijn om te beantwoorden voordat je een rij kiest: of je winkelwagen nog opent, en of de winkelwagen van het thema er naast opduikt.
Opent je winkelwagen nog steeds?
Meestal wel, zonder werk van jouw kant. Wie de toevoeging ook uitvoert, Aftersell kijkt naar het verzoek dat naar Shopify gaat en opent de drawer als hij er een ziet, volgens je normale instelling Open cart when an item is added. Je hoeft zelf niets aan te roepen.
Drie situaties breken dat, en alle drie hebben een oplossing:
De toevoeging gaat naar iets anders dan de cart-endpoints van Shopify. Aftersell kijkt naar /cart/add, /cart/change, /cart/update en /cart/clear op je eigen domein. Een app die toevoegt via zijn eigen endpoint en de winkelwagen daarna synchroniseert, is hiervoor niet zichtbaar. Open de winkelwagen zelf zodra de toevoeging van die app klaar is:
Er verstrijken meer dan zo’n drie seconden tussen de klik en het verzoek. Aftersell behandelt een toevoeging die kort na een echte klik of toetsaanslag komt als door de shopper gedreven. Buiten dat venster wordt het beschouwd als een achtergrondtoevoeging, die de drawer niet opent tenzij je je opt-in geeft:
Je cart-instelling zegt van niet. Als Open cart when an item is added uitstaat, of je hebt open_on_add_to_cart: 'never' ingesteld, opent niets de drawer. Dat werkt zoals geconfigureerd.
Opent de winkelwagen van het thema ook?
Dit is het risico dat de opt-outs met zich meebrengen, en het antwoord hangt af van je thema.
De winkelwagen van het thema inert maken is los van interceptie en gebeurt bij het laden van de pagina, wat je ook doet, dus geen van de opt-outs hier zet dat weer aan. Op een thema uit de herkende lijst blijft de eigen winkelwagen van het thema stil en ziet de shopper één winkelwagen, de jouwe.
Op een thema dat Aftersell niet herkent, is er niets dat de winkelwagen van het thema tegenhoudt. Afmelden betekent dat het thema de toevoeging precies zo afhandelt als altijd, inclusief het openen van zijn eigen drawer of het doorsturen naar /cart, terwijl Aftersell zijn drawer opent op basis van het verzoek dat hij zag. Dat zijn twee winkelwagens, en dat is de reden dat interceptie überhaupt bestaat.
Als dat gebeurt, heb je drie keuzes: laat interceptie voor dat formulier aan staan, gebruik een smallere opt-out die de veroorzakende formulieren niet omvat, of stop de eigen winkelwagen van het thema zelf in je themacode.
Zet een opt-out eerst aan in een test- of ongepubliceerd thema. Als de eigen winkelwagen van het thema opduikt waar dat voorheen niet zo was, is jouw thema er geen dat Aftersell herkent, en wil je interceptie voor die formulieren aan houden.
Dit geldt alleen voor add-to-cart. Het cart icon Aftersell laten omzeilen met de class aftersell-cart-wont-open-cart is iets anders: een klik op het cart icon stuurt geen verzoek, dus er is niets voor Aftersell om naar te kijken, en de drawer opent niet. Zie hieronder.
De voorkeursoptie. Registreer een regel die true teruggeeft voor de formulieren die je met rust wilt laten:
Zet het in Cart settings → Custom script → Initialization. Regels zijn additief: de jouwe draait naast alle andere, en elke regel die true teruggeeft slaat dat formulier over. Volledige details in Hooks.
Als je liever geen regel schrijft, voeg dan de class aftersell-cart-skip-atc toe in je thema:
Voor een formulier-submit moet de class op het form-element zelf staan. Een omliggende div werkt niet. Voor een knop die aan de winkelwagen toevoegt zonder een formulier-submit, kan de class op de knop staan of op een element eromheen.
Hele winkel: interceptie uitschakelen
De botte optie. Add-to-cart gedraagt zich precies zoals je thema oorspronkelijk deed, op elk formulier:
Deze wordt eenmalig, wanneer de winkelwagen laadt gelezen. Hij werkt alleen vanuit het Initialization-script van je winkelwagen. Later instellen, binnen ready() of vanuit een event-handler, doet niets en faalt stilzwijgend.
Grijp hier alleen naar wanneer de per-formulier-opties niet passen, bijvoorbeeld wanneer de formulieren die je moet uitzonderen door een andere app zijn aangemaakt en je ze niet betrouwbaar kunt identificeren.
Het cart icon in je header wordt afgehandeld door zijn eigen interceptor, met zijn eigen opt-out. Add-to-cart-interceptie uitschakelen verandert niets aan wat het cart icon doet, en omgekeerd geldt hetzelfde.
Op het cart icon klikken opent de Aftersell drawer in plaats van naar /cart te gaan. Om één icoon of knop met rust te laten, voeg je de class aftersell-cart-wont-open-cart eraan toe, of aan een element eromheen:
Dat besturingselement doet dan wat je thema het laat doen, meestal naar de winkelwagenpagina gaan. Aftersell is helemaal uit beeld, dus de drawer opent niet. Anders dan bij add-to-cart is er geen verzoek om naar te kijken, dus als je wilt dat je winkelwagen opent vanuit dat besturingselement, moet je dat zeggen:
Hetzelfde silencing-probleem geldt hier: omdat Aftersell de klik stopt, zien je analytics en pixels ook geen klikken op het cart icon. Als dat alles is wat je moet oplossen, houd de drawer en stop het silencen:
Je listeners draaien, de drawer opent nog steeds, en de klik navigeert nog steeds niet naar /cart. Volledige details in Configure.
Om te veranderen welke elementen de winkelwagen openen in plaats van ze uit te schakelen, gebruik je Cart settings → Advanced → Cart icon selector in plaats van je thema te bewerken.
Waar je verder kunt kijken