If your Shopify purchase tracking recently went quiet — no purchase event on the thank-you page, Meta Pixel not firing at checkout, Google Ads conversions missing — this is almost certainly the cause: checkout.liquid and the Additional Scripts field are being retired, and any tracking that lived there is not migrated for you. It just stops.
Here’s the deadline, exactly what breaks, and how to put tracking back the supported way.
The deadline (check your plan)
- Shopify Plus: already past.
checkout.liquidstopped working for the in-checkout pages (Information, Shipping, Payment) on August 13, 2024, and for the Thank-you and Order-status pages — along with Additional Scripts — on August 28, 2025. After that, Additional Scripts became view-only and shopper PII is no longer exposed through Additional Scripts,checkout.liquid, or thecheckout_completedpixel event. - Non-Plus: you have until August 26, 2026 to migrate the Thank-you / Order-status pages. After that date Shopify auto-upgrades unmigrated pages — meaning if you haven’t moved your tracking, it breaks on Shopify’s timeline, not yours.
Whichever plan you’re on, open Shopify’s upgrade guide and confirm your store’s status before assuming you’re fine.
Not to be confused with Shopify Scripts (the Script Editor for discounts/shipping/payment logic), which is a separate migration to Shopify Functions. That’s backend logic, not analytics — different deadline, different fix.
What actually breaks
Raw <script> tags you pasted into checkout.liquid or the Additional Scripts boxes are not auto-registered as Web Pixels. So after the upgrade:
- The purchase event vanishes on the Thank-you / Order-status page — GA4
purchase, MetaPurchase, Google Ads / TikTok conversion tags that lived there simply don’t fire. - Conversions arrive with missing data — no revenue, or no order ID — where the old order-status snippet used to supply full transaction details.
- PII-dependent logic fails silently, because email/name/address are no longer readable in that context by design.
No error is thrown. Your store looks fine; your data quietly flatlines. That’s what makes this one dangerous.
How to re-implement tracking (the supported way)
1. Standard destinations → use the official channel apps.
- GA4: install the Google & YouTube channel and connect your GA4 property. It sends the enhanced-ecommerce set (
view_item,add_to_cart,begin_checkout,purchase, …) without touching checkout code. - Meta Pixel + CAPI: install the official Facebook & Instagram (Meta) channel and enable the Conversions API alongside the browser Pixel. (Verify the exact toggle in the app — Meta’s setup UI changes; confirm the Pixel and CAPI are both on.)
2. Everything custom → Customer Events (Web Pixels).
Anything you can’t get from a channel app — custom GTM, extra platforms, bespoke data layers — gets rebuilt as a custom pixel under Settings → Customer events, subscribing to standard events like checkout_completed:
analytics.subscribe("checkout_completed", (event) => {
// event.data.checkout has order, totalPrice, currencyCode, lineItems…
});
Remember this runs in a sandbox — no DOM, no window, no document.cookie. If your old tags scraped the page, they must be rewritten to read the event payload from the subscribed event instead.
3. Complex / server-side setups → a migration app.
For GTM-based, first-party or server-side tracking with proper matching, apps like Elevar, Stape, Analyzify or TAGGRS provide checkout-extensibility-ready pixels and data layers. If you’re going server-side anyway, this is the moment to do it.
Don’t create a duplicate-purchase problem
Migrating is the classic moment to accidentally double-count: native channel event plus a custom pixel plus CAPI, all firing Purchase. Deduplicate with a shared event_id (Meta) and watch for GA4 showing ~2× your orders. Set dedup up as part of the migration, not after you notice inflated numbers.
Post-migration checklist
| Check | How | Healthy result |
|---|---|---|
| Purchase event fires | Place a test order + GA4 DebugView | One clean purchase with value/currency/items |
| Meta Pixel + CAPI | Events Manager → Test Events | One Purchase, Browser + Server, matching event_id |
| No duplicates | GA4 vs Shopify orders | GA4 not ~2× Shopify |
| Revenue/order ID present | Inspect the event payload | Full transaction data |
| Reconcile | GA4 vs Shopify, closed week | Within ~5–10% |
Migrated and want to be sure nothing’s silently broken? The free Tracking-Health Mini-Audit checks your purchase event, duplicates and reconciliation in ~10 minutes.
FAQ
When is the deadline? Plus already passed it (Thank-you/Order-status + Additional Scripts on August 28, 2025). Non-Plus stores have until August 26, 2026 before Shopify auto-upgrades the pages.
Why did my Pixel/GA4 stop firing at checkout?
Scripts in checkout.liquid/Additional Scripts aren’t migrated for you — they stop running when the page moves to Checkout Extensibility.
How do I add tracking now? Use Customer Events (custom pixels) plus the Google & YouTube and Meta channel apps; use Elevar/Stape/Analyzify/TAGGRS for custom or server-side needs.
Will it cause duplicates?
Yes, if you add CAPI on top of native events without deduplicating by a shared event_id. Set dedup up during the migration.
Related
- GA4 purchase event not firing on Shopify
- Duplicate purchase events in GA4
- Verify your server-side tracking works
Sources
- Shopify — checkout.liquid no longer works for in-checkout pages (changelog)
- Shopify — Upgrade the Thank-you & Order-status pages (Plus guide)
- Shopify — Upgrade the Thank-you & Order-status pages (non-Plus guide)
- Shopify — Customer events / Web Pixels API
- Elevar — Upgrade to Shopify Checkout Extensibility