The AddToCart event on Shopify

Updated

When it fires

When a shopper adds a product to the cart, including drawer and AJAX carts that never reload the page.

AddToCart is where theme-installed pixels start failing quietly. Most modern Shopify themes add to cart without a page load, and a pixel that only fires on page load has nothing to trigger on. The event that anchors your entire mid-funnel simply never arrives.

What each ad platform calls AddToCart

The same shopper action goes by a different name on every network, and sending the wrong one means the event is silently discarded rather than rejected with an error.

AddToCart equivalent event names across ad platforms
PlatformEvent name
MetaAddToCart
TikTokAddToCart
SnapchatADD_CART
Pinterestaddtocart
Taboolaadd_to_cart

Parameters AddToCart should carry

content_ids
The product added.
value / currency
Line value. Powers value-based lookalikes.
contents
Array with quantity and item price.

Why AddToCart goes missing on Shopify

  • Drawer and AJAX carts add items with no page navigation, so page-load-bound pixel code never runs.
  • Quick-add buttons on collection pages bypass the product template entirely.
  • Apps that replace the cart form with their own handler detach any listener bound to the original.

AJAX carts are the single biggest cause of missing AddToCart

Almost every Shopify theme sold in the last few years adds to cart without a page reload — a drawer slides in, a count increments, and the URL never changes. Pixel code that runs on page load has, from its own point of view, nothing happen at all.

Quick-add buttons on collection pages make it worse, because they bypass the product template entirely. A store can test AddToCart from a product page, see it fire, and conclude the setup is healthy while the majority of its real add-to-carts — the ones happening from collection grids — are invisible. Testing the collection-page quick-add path is the check that actually exposes this.

Reading the gap between Shopify and Meta

Shopify records cart additions server-side, where nothing can block them. Meta records what reached it through a browser. A gap between the two is normal and expected — roughly ten to thirty percent on a healthy setup, accounted for by ad blockers and privacy settings.

A gap of seventy or eighty percent is a different diagnosis entirely. That is not blocking; that is the event not firing on your theme’s primary cart path. The size of the discrepancy tells you which problem you have, which makes it worth checking the ratio before assuming ad blockers are to blame.

How to verify AddToCart is firing

Add a product from a collection page quick-add button, not just the product page. That is the path that usually exposes a broken AddToCart.

AddToCart questions

Why does Shopify report more add-to-carts than Meta?
Shopify counts server-side and cannot be blocked. Meta counts what reached it through the browser. A gap of 10–30% is normal; a gap of 80% means the event is not firing on your theme’s cart path.
Should AddToCart fire again when quantity increases?
Yes, with the incremental value. Suppressing it undercounts a genuine intent signal.

Go deeper

Getting the Shopify Purchase event right

Why Shopify Purchase events go missing, arrive without a value, or count twice, and how to send AddToCart, InitiateCheckout and Purchase correctly to Meta.

Other pixel events