· · shopify

Shopify checkout extensibility: what changed and how to track it

Shopify checkout extensibility: what changed and how to track it

If you run a Shopify Plus store and your analytics, session replay, or ad pixel suddenly looks incomplete on the checkout page, this post is for you. The short version: Shopify replaced the legacy checkout.liquid model with a new system called checkout extensibility, the hard cutoff for Thank you and Order status customizations passed on August 28, 2025, and any tool that relied on script-tag injection into the checkout had to be rebuilt to keep working. Some did. Some didn’t.

This is the Plus-leaning explainer: what actually changed, why third-party tracking broke for some stores, what replaced the old model, and how to validate your setup so you’re not flying blind on the highest-leverage page in your funnel.

What checkout extensibility is

Shopify’s checkout used to be a regular Liquid template you could edit. Plus merchants in particular leaned on this — checkout.liquid let you add custom HTML, drop in third-party scripts, and tweak almost anything on the Information, Shipping, Payment, Thank you, and Order status pages. Generic CRO tools, ad pixels, and session replay providers piggybacked on this freedom by injecting their tracking script through the checkout template (or through a Shopify “Additional Scripts” box).

Checkout extensibility replaces all of that with a sandboxed, component-based model. Customizations now run inside Shopify’s hosted checkout via three primary surfaces:

  • Checkout UI extensions — small, isolated apps that render at defined extension points in the flow (line items, payment, summary, Thank you). They run in a sandbox and never touch the underlying DOM.
  • Web Pixels API — Shopify’s first-party pixel framework. Analytics and ad tools subscribe to standard checkout events (cart viewed, checkout started, payment info submitted, checkout completed) instead of injecting raw JavaScript onto the page.
  • Customer Privacy API — the consent layer. The pixel and any extension respect a single source of truth for what a visitor has and hasn’t agreed to.

The trade-off is real: you lose the freedom to do anything you want, and you gain a checkout that’s faster, more secure, and harder to break with a bad app install. From a tracking perspective, it means tools must be re-architected. The old “drop a script tag in the box” pattern doesn’t work anymore.

The migration: what actually happened

Here are the dates that matter, sourced from Shopify’s own docs and the migration guides their agency partners published in the run-up:

  • 2024: checkout.liquid for the Information, Shipping, and Payment steps becomes unsupported. New Plus stores stop getting access to the legacy template by default. Existing customizations on those steps must be migrated to Checkout UI extensions.
  • August 28, 2025: Hard cutoff for checkout.liquid, additional scripts, and script-tag apps on the Thank you and Order status pages for Shopify Plus stores. Plus stores that hadn’t migrated by this date had their customizations stop working.
  • Late 2025 → 2026: Shopify begins rolling automatic upgrades for Plus stores still on legacy. Each store gets a ~30-day notice and a scheduled upgrade window. Anything custom that lived in additional scripts, script-tag apps, or checkout.liquid on Thank you / Order status is lost when the upgrade fires.
  • June 30, 2026: Shopify Scripts (the older Plus-only line-item, shipping, and payment scripting product) sunsets. Plus merchants migrate logic to Shopify Functions.
  • August 26, 2026: The non-Plus deadline. Stores on every plan lose Additional Scripts, Thank you page script boxes, and Order Status page scripts.

If you’re a Plus merchant reading this in mid-2026, the August 2025 cutoff is in your rearview mirror. You’re either on checkout extensibility, or you’ve already gotten an automatic-upgrade email, or you’re about to.

What this means for tracking

The old model — third-party tool gives you a <script> tag, you paste it into “Additional Scripts” or into checkout.liquid — is dead. After the cutoff, that script does not run on the checkout page. Period.

The new model is more constrained, and that’s the point. Tracking on the checkout now happens through three sanctioned channels:

  • Web Pixels for analytics and ad-platform pixels. The tool registers a Shopify-native pixel that subscribes to checkout events. Most major analytics and ad platforms (GA4, Meta, TikTok, Klaviyo, etc.) ship official Web Pixel app extensions.
  • Checkout UI extensions for any tool that needs to render UI inside the checkout flow.
  • The Customer Privacy API as the consent gate. If a visitor declined tracking, the pixel doesn’t fire — you don’t have to wire that up; it’s automatic.

Session replay sits in a slightly different bucket. Most session replay tools were never running on the checkout page even in the old model — the checkout was always partially walled off. What did break for some session replay tools was anything that depended on third-party JavaScript reaching across to the checkout iframe to read DOM, listen for events, or follow the visitor onto Thank you. Tools that relied on that pattern needed a rebuild. Tools that were already on Shopify-native primitives kept working.

What broke for whom

Three populations got bitten by the migration:

  1. Plus stores running heavily-customized checkout.liquid. Custom HTML blocks, free-shipping notices, trust badges, custom Thank-you-page upsells — anything baked into the template directly. These stores got the deepest migration burden. Most worked through agency partners or in-house dev.
  2. Plus stores with old script-tag analytics, A/B testing, or ad pixels. If your analytics tool said “paste this script into Additional Scripts” five years ago and you never thought about it again, the migration probably broke it silently. The pixel stopped firing on the Thank you page; conversion attribution went sideways; nobody noticed for a few weeks.
  3. Smaller analytics and CRO tools that didn’t migrate. Some tools never built a Web Pixel app extension. Their checkout coverage on Plus is now incomplete. If your replay tool only shows you the cart but not the checkout flow that follows it, this is probably why.

If you’re on a tool from category three, you have a real problem: the checkout is the last 30% of the funnel, and you can’t see it. That’s not “good enough” for any merchant whose AOV moves the needle.

Why Replays still works on Plus checkouts

This isn’t a bait-and-switch — it’s a structural point. Propel Replays ships as a Shopify theme app embed, not as a third-party script-tag injection. The implications matter:

  • Theme app embed = native Shopify primitive. Shopify injects the tracking script at the bottom of every storefront page after the rest of the theme has loaded. There’s no checkout.liquid edit, no Additional Scripts box, no GTM tag. We never relied on the legacy injection model in the first place.
  • Web Pixel for checkout events. Where checkout-side data is needed, Replays uses Shopify’s sanctioned Web Pixels API. The pixel fires on the standard events Shopify publishes — and respects the Customer Privacy API automatically.
  • Customer Privacy API native. Whatever consent banner you run on your storefront, Replays already honors. We don’t ask you to wire anything up. If a visitor declines, we don’t record.
  • Form fields masked by default. Payment fields never captured. This is true everywhere on the site, including anywhere we’re allowed to record near the checkout.

So when the August 2025 cutoff passed, nothing changed for Replays customers. The architecture was already aligned with where Shopify was going. There’s a longer write-up of how the recording layer works on the session recording feature page, and the security and privacy posture (DPA, processing details) lives on /dpa.

For Plus operators, this is the kind of “boring” infrastructure decision that pays off years later. We’ve covered the broader fit on the Plus page — but the checkout migration is a tidy concrete example of what “Shopify-native by construction” actually buys you.

What this means for Plus merchants who haven’t migrated

If you’re reading this and you genuinely don’t know whether your store is on checkout extensibility — first, that’s not unusual; second, here’s a fast triage:

  1. Check Shopify admin → Settings → Checkout. If you see a “Customize” button that opens the checkout editor (Liquid block-based UI), you’re on extensibility. If you still see legacy checkout.liquid code references, you have migration work or a pending automatic upgrade.
  2. Check your apps list for anything labeled “Web Pixel” or “Checkout extension.” Your analytics, ad pixels, and any checkout-side feature should be installed as proper app extensions. If your “Klaviyo” or “Meta pixel” install is just a script in Additional Scripts, you need to swap it for the official app extension before the auto-upgrade hits.
  3. Open your checkout in an incognito tab and place a $0.01 test order. Confirm the order completes, the Thank you page renders the way you expect, and your analytics tool registers the conversion. We’ll go deeper on the test plan in a moment.
  4. Search your inbox for “checkout upgrade” from shopify.com. If Shopify has scheduled an automatic upgrade, the notice is in there.

If your store has even one custom checkout.liquid block you don’t want to lose, get to the agency partner or developer who built it before the auto-upgrade window closes.

The new failure modes

Even after a clean migration, the new model surfaces failure modes that didn’t exist before. The ones we see most often:

  • Thank-you-page customizations that don’t carry over. Trust badges, post-purchase upsells, social-share blocks, custom “what happens next” copy — these were typically checkout.liquid edits in the old world. They have to be rebuilt as Checkout UI extensions or theme blocks. Stores that auto-upgraded without a replacement plan ended up with a stripped-down Thank you page.
  • Apps that didn’t migrate are silently scoped out. A merchant assumes their old “post-purchase upsell” or “review request” app is still firing because the dashboard shows historical data. The app’s checkout-side hooks stopped working at the cutoff. Nothing alerts the merchant.
  • Conversion-tracking double-counts and gaps. During the migration window, some stores end up with both an old script-tag pixel that’s no longer firing and a new Web Pixel that is — or vice versa. Conversions get under-counted, ROAS looks wrong, the team spends a week chasing a problem that isn’t a problem.
  • Custom checkout flows that quietly broke. B2B logic, locale-specific tax handling, gift-card edge cases, Markets storefront customizations. If any of these were wired through checkout.liquid, they have to be rebuilt with Checkout UI extensions, Shopify Functions, or both.

The pattern is the same in all of them: the checkout looks fine on the surface, the customer can place an order, but something measurable in the funnel quietly stops working. That’s where session replay earns its keep — it’s how you actually see what a real visitor experienced, end to end.

How to validate your setup

Here’s the test plan we recommend after any migration or auto-upgrade event. It takes 20 minutes and catches 90% of the issues.

  1. Place a test order on staging or as a real $0.01 order on production. Use a UTM-tagged link so attribution can be verified. Use mobile, not desktop — that’s where most of your traffic is.
  2. Confirm the session was captured in Replays. Open the Replays dashboard, filter to your test customer (by email, IP, or device timestamp), and confirm the session is there. It should include cart → checkout entry → checkout completion at minimum.
  3. Confirm the order is attributed to the correct UTM in Shopify Analytics. Order should show up under the right channel in Shopify’s reports.
  4. Confirm any web pixels you depend on registered the conversion. GA4: purchase event with the right transaction ID and revenue. Meta: Purchase event with the matching event_id for deduplication. Klaviyo: order placed event in the customer’s profile.
  5. Watch the replay end-to-end. Open the replay you just captured and play it through. Specifically watch for: form fields masked correctly (they should be), no JavaScript errors in the console, page renders correctly across the Information → Shipping → Payment → Thank you flow.
  6. Look for “ghost” scripts. Open dev tools on the live checkout, look at Network → JS, and see if any script you no longer want is still being loaded. Old GTM containers, deprecated pixels, leftover A/B testing snippets — they sometimes survive a migration as zombies. Remove them.

If any of those six steps surfaces something off, fix it before the next paid traffic push. The compounding cost of a broken pixel on a Plus store is real money per day.

Watch the first 50 sessions

If you’ve just been through an auto-upgrade or migration, the right move isn’t to start A/B testing — it’s to watch the new checkout. Filter Replays to mobile + reached-checkout, watch ten end-to-end at 1.5x or 2x, and note any moment where the customer hesitates, scrolls back, or rage-clicks. The Thank you page is the most common source post-migration: the upsell that used to live there is gone, the “what happens next” copy is missing, and the customer is briefly disoriented. Repeat with desktop, then with logged-in returning customers — Shopify pre-fills more fields for them, and sometimes that breaks too.

For mobile-specific friction, the mobile checkout friction post walks through the five places it tends to break. If the issue is upstream — at the cart — the cart abandonment post covers diagnosis there.

The honest takeaway

The migration was a good move by Shopify. The old checkout.liquid model was flexible and dangerous in equal measure — every poorly-written third-party script that touched checkout was a security risk, a Lighthouse hit, or both. Checkout extensibility is the right architecture for a hosted commerce platform.

It also raised the floor for what tools you can run on your highest-leverage page. Tools that built on Shopify primitives — theme app embeds, Web Pixels, Customer Privacy API, Checkout UI extensions — kept working. Tools that built on script-tag injection had to scramble, and some didn’t make it.

For Plus merchants who are evaluating their tracking stack right now: the question isn’t “did this tool support checkout.liquid?” — that question is dead. The question is “is this tool architected on top of Shopify’s first-party primitives, or is it duct-taped on with a script tag?” The answer determines whether the next platform change breaks your tracking or not.

Replays is built the first way, by design. If you want to put that to work on your Plus store, install free on Shopify (free up to 750 pageviews/month, no checkout migration required), or talk to us about Plus and we’ll size the rollout properly.


Sources: Shopify Developer Documentation, checkout.liquid; Shopify Help Center, Plus Upgrade Guide for Thank you and Order status pages; Shopify Developer Documentation, Checkout UI Extensions. Migration deadlines independently corroborated by agency partner migration guides published 2024–2025.

Frequently asked questions

What is checkout extensibility?
Shopify's replacement for the legacy checkout.liquid model. Customizations now run inside Shopify's hosted checkout via three primary surfaces: Checkout UI extensions (sandboxed apps that render at defined points), the Web Pixels API (first-party pixel framework for analytics and ad tools), and the Customer Privacy API (consent layer). The trade-off is less freedom and a faster, more secure checkout.
When did the old checkout.liquid model stop working?
August 28, 2025 was the hard cutoff for checkout.liquid, additional scripts, and script-tag apps on the Thank you and Order status pages for Shopify Plus stores. Plus stores that hadn't migrated by that date had their customizations stop working. The non-Plus deadline is August 26, 2026.
Why did some analytics tools quietly break after the migration?
Tools that asked you to paste a script tag into Additional Scripts or checkout.liquid stopped firing on the checkout page after the cutoff. The pixel went silent on the Thank you page, conversion attribution went sideways, and nobody noticed for a few weeks. Tools that built on Shopify primitives — theme app embeds, Web Pixels, Customer Privacy API — kept working.
Does Propel Replays still work on Shopify Plus checkouts after the migration?
Yes. Replays ships as a Shopify theme app embed, not a third-party script-tag injection — Shopify injects the tracking script at the bottom of every storefront page after the rest of the theme has loaded. Where checkout-side data is needed, Replays uses Shopify's sanctioned Web Pixels API. Nothing changed for Replays customers when the August 2025 cutoff passed.
How do I confirm my checkout tracking is set up correctly?
Place a test order on staging or as a real $0.01 order on production using a UTM-tagged link. Confirm the session captured in Replays, the order attributed to the right channel in Shopify Analytics, the web pixels you depend on registered the conversion (GA4 purchase event, Meta Purchase event, Klaviyo order placed), and the replay plays end-to-end with masked form fields and no console errors.
#shopify-plus #checkout #tracking #shopify

See what your customers actually do.

Install Propel Replays on your Shopify store in under a minute. Free up to 750 pageviews a month.

Install free on Shopify