TrackParity

HomeGuides › checkout.liquid Is Gone — Migrate Your Shopify Tracking Before It Breaks

checkout.liquid Is Gone — Migrate Your Shopify Tracking Before It Breaks

Independent, evidence-based guidance for Shopify & DTC operators — grounded in primary Google, Meta & Shopify docs and specialist analyses, with sources listed at the end.

← All guides

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.liquid stopped 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 the checkout_completed pixel 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, Meta Purchase, 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

CheckHowHealthy result
Purchase event firesPlace a test order + GA4 DebugViewOne clean purchase with value/currency/items
Meta Pixel + CAPIEvents Manager → Test EventsOne Purchase, Browser + Server, matching event_id
No duplicatesGA4 vs Shopify ordersGA4 not ~2× Shopify
Revenue/order ID presentInspect the event payloadFull transaction data
ReconcileGA4 vs Shopify, closed weekWithin ~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.

Sources

Is your tracking gap normal — or a real bug?

Get the free Tracking-Health Mini-Audit: drop in your Shopify, GA4 & Meta numbers and get a red/yellow/green score in ~10 minutes, plus your top 3 fixes.

We'll email a confirmation link first (GDPR), then send the worksheet — one click away.

No spam. Unsubscribe anytime. We never sell your data. By subscribing you agree to our privacy policy.