Skip to content
DM · Daniil Maximkin
Solution

Shopify Checkout Tracking Broken: Diagnosis

·

The short answer

Purchase tracking on Shopify's checkout or thank-you page is uniquely fragile because Shopify, not you, controls that code, and it can change without warning. Common causes: a theme update, an edited or cleared Additional Scripts box, a conflicting app, or Shopify's own migration away from Additional Scripts, which it has announced retiring for non-Plus stores by August 2026. A test order run through GA4 DebugView and Meta Test Events together shows which one you're dealing with.

Symptoms you might be seeing

  • Purchase tracking worked, then stopped, with no error message anywhere
  • Conversion counts in GA4 and ad platforms dropped to near zero on a specific date
  • The break coincided with a theme update, app install, or checkout settings change
  • No announcement or notification flagged the change to you

The symptom

Tracking was working. Then, at some point, it wasn’t — and nothing on the store’s front end announced it. No error message, no broken checkout, no visible sign anything changed. The first clue is usually a conversion count that quietly drops to near zero in GA4 or an ad platform’s dashboard, days or weeks after the actual break happened.

Direct answer

Purchase tracking that lives on Shopify’s checkout or thank-you page is uniquely fragile, because that code is controlled by Shopify, not by you, and can change without a notification reaching the store owner. The common causes are a theme update touching tracking that lived in theme files, an edited or cleared Additional Scripts box, a conflicting app, or Shopify’s own platform-level migration away from Additional Scripts entirely — which Shopify has announced it will retire for non-Plus stores, with a stated deadline of August 2026 (see Shopify’s own checkout extensibility documentation and its order status page customization guidance for the current, authoritative timeline). A real test order run through GA4 DebugView and Meta Test Events simultaneously tells you which of these you’re actually dealing with.

Causes, ranked

  1. Theme update removed the tracking code. If tracking lived in theme files rather than the checkout itself, a theme publish or update can overwrite or drop it — this is avoidable going forward by moving tracking off theme pages entirely.
  2. Additional Scripts box edited or cleared. Someone (a developer, an app, a well-meaning teammate) changed the code in Settings → Checkout → Order status page → Additional scripts, or an app that used to write to it was uninstalled.
  3. App conflicts. A newly installed app added its own Customer Events pixel that overlaps with or breaks an existing one, or an uninstalled app took its tracking code with it.
  4. Shopify’s own platform-level deprecation. No merchant-side change happened at all — Shopify simply stopped executing the legacy Additional Scripts box for non-Plus stores as part of its announced migration, and code that used to run there is now silently dead.

How to diagnose it

  1. In Shopify Admin → Settings → Checkout, scroll to Order status page → Additional scripts, and check whether code is present, and whether Shopify displays any notice about migration status there.
  2. In Settings → Customer events, check whether a Customer Events pixel is present and shows as Connected — this is the modern, supported location for checkout and thank-you-page tracking.
  3. Check Apps for recent installs or uninstalls, and your theme’s publish history, around the date tracking stopped working.
  4. Place a real test order and open GA4 DebugView and Meta Events Manager → Test Events at the same time, watching for the purchase event on both.
  5. View the actual thank-you page for a completed order (not a preview) and check the browser’s network requests to see whether an Additional Scripts-based tag is even rendered, versus checking for Customer Events pixel activity, which runs in a separate sandboxed context.
  6. Confirm your store’s plan — Plus or non-Plus — since checkout customization capability and the exact deprecation timeline differ between them, and a Plus store has typically already been through an earlier phase of this same migration with checkout.liquid.

Decision table

CauseSignal you’ll seeFix
Theme update removed trackingBreak date lines up with a theme publish; the code lived in theme files, not checkoutMove tracking into a Customer Events pixel so future theme changes can’t touch it
Additional Scripts edited or clearedThe code box is empty or different from what it used to containRestore it as a stopgap, but plan a full migration — this box is being retired for non-Plus stores by August 2026
App conflictBreak date lines up with an app install or uninstall; overlapping Customer Events pixels presentAudit all Customer Events pixels for duplication or gaps; keep one authoritative pixel per platform
Shopify’s platform deprecationNo merchant-side change happened around the break date; the code simply stopped executingMigrate to a Customer Events pixel immediately rather than waiting for the deadline

Fix it yourself, or bring in help

Checking whether tracking lives in Additional Scripts or Customer Events, correlating the break date with a theme or app change, and running a DebugView test are within reach for a merchant comfortable in the Shopify admin. Building or migrating a full Customer Events pixel with complete parameter parity — items array, values, transaction IDs, matched across GA4, Meta, and any other ad platform — is development work, and doing it under deadline pressure across multiple platforms at once is where most migrations go wrong. A sound approach is a parallel-run verification: keep the old and new tracking running together (or run the new Customer Events pixel alongside daily order reconciliation against Shopify) for a period, and only fully cut over once the numbers stay stable within an acceptable range for several consecutive days. If you’re not confident scoping that yourself, a tracking audit will map exactly what’s on Additional Scripts today versus what needs to move.

For the GA4-specific version of this diagnosis, see GA4 not tracking purchases. If Meta conversions are also affected, see Meta CAPI deduplication to check whether a migration introduced a duplicate-firing pixel rather than a missing one.

FAQ

Is my store affected if I'm not on Shopify Plus?

Yes — the migration away from checkout.liquid customization applied first to Plus stores, but Shopify has separately announced that the legacy Additional Scripts box on the Thank you and Order status pages is being retired for non-Plus stores too, with August 2026 as the stated deadline. Any tracking code still relying on that box needs to move to a Customer Events pixel before then.

What exactly is checkout extensibility?

It's Shopify's framework for customizing and extending checkout using apps and app blocks instead of directly editing checkout code. For tracking specifically, the relevant piece is Customer Events (the Web Pixels API), which is the supported way to add analytics pixels to checkout and the thank-you/order-status page going forward.

Will Shopify tell me when my store's tracking breaks?

No. Shopify will notify you about platform-level changes like the Additional Scripts deprecation in its own changelog and admin notices, but it won't tell you that your specific tracking setup stopped working — there's no error state for a pixel that silently stops firing. That's why a break can run for weeks before anyone notices in the ad account or GA4.

Can I keep using Additional Scripts until the deadline?

For non-Plus stores, yes, until Shopify's stated cutover — but every day spent on a box scheduled for retirement is a day you're not building the thing you'll need anyway. Migrating early also gives you time to run a proper parallel-run verification instead of doing it under deadline pressure.

Not sure whether your tracking is actually broken?

Start with a Health Check — a fast, read-only diagnosis that tells you what is wrong before you spend anything fixing it. Prefer email? Send your store URL and one sentence about what looks off.