Shopify checkout extensibility explained (2026): what the checkout.liquid deprecation means for your apps
If you are shopping for a Shopify upsell app and a listing mentions "checkout extensibility," "checkout UI extensions," or a "checkout.liquid deadline," this is the explainer. In plain terms: Shopify retired the old way that apps and developers customized the checkout (a template file called checkout.liquid, available only on Shopify Plus) and replaced it with a new, sandboxed system called checkout extensibility. The change is not cosmetic. It came with hard deadlines, and the last one, in January 2026, actively strips old customizations that were never rebuilt. For a store owner the practical takeaway is a single buying question you can ask any checkout-stage or thank-you-page app: is this app's checkout surface built on checkout UI extensions? If it is not, it either already broke or lost its customization. Below is what checkout.liquid was, what replaced it, why Shopify forced the move, the real dates (with one honestly flagged as reported), and exactly which apps this does and does not affect. This is an education-first guide, not a hands-on lab test.
August 28, 2025 (passed, verified): the deadline to upgrade the Thank you and Order status pages, including additional scripts and script-tag apps.
January 2026 (current, verified): automatic upgrades begin; any customization still using additional scripts, script-tag apps, or checkout.liquid on the Thank you and Order status pages is lost.
The buying question: for any checkout-stage or thank-you-page app, ask "is its checkout surface a checkout UI extension?" If not, it is a migration casualty.
What checkout.liquid was
For years, Shopify's checkout was a locked, standardized page on every plan except one. Shopify Plus, the enterprise tier, was the exception: Plus merchants got a theme file called checkout.liquid that let developers hand-edit the checkout's HTML, CSS, and scripts, plus an "additional scripts" box for injecting tracking and third-party code into the checkout and the order-status page. That is how Plus stores built custom checkout layouts, trust badges, in-checkout upsells, and analytics. Everyone below Plus never had checkout.liquid at all; their checkout was already fixed. So when you read that "checkout.liquid was deprecated," it only ever directly affected Plus stores and the apps that plugged into that Plus-only surface. The catch is that many popular apps used the "additional scripts" and script-tag mechanism, and those touched far more than just Plus.
The freedom had a cost. Because checkout.liquid was raw, editable code sitting inside the most sensitive page in commerce, every custom checkout was a fork. It could break on Shopify updates, it could leak customer data through poorly written scripts, and it made the checkout impossible for Shopify to improve safely across millions of stores. That tension is the whole reason for the change.
What replaced it: checkout extensibility
The replacement is an umbrella Shopify calls checkout extensibility. Instead of editing a template, developers now add functionality through a set of governed building blocks. The main ones are:
- Checkout UI extensions - small, sandboxed components that render approved UI at defined slots in the checkout, built with Shopify's components and APIs rather than free-form code (shopify.dev checkout UI extensions). This is the surface an in-checkout upsell app now lives on.
- Checkout branding and the checkout editor - a settings-driven way to restyle checkout without touching code, available to merchants directly in admin (Shopify checkout extensibility manual).
- Shopify Functions - server-side logic for discounts, shipping, and payment customization that used to live in scripts.
- Web pixels - a sandboxed way for apps and stores to subscribe to customer events (page views, purchases) for analytics and marketing, replacing the raw tracking scripts that used to sit in the additional-scripts box (Web Pixels API and the merchant-side custom pixels feature).
The mental shift is from "edit the checkout page" to "attach approved components and logic to the checkout." Apps build against a stable API (see Shopify's build a checkout app docs) instead of forking a template, which is why the new system survives Shopify's updates automatically.
Why Shopify forced the change
There are three honest reasons, and none of them is arbitrary.
Security and data protection. Custom scripts running inside checkout could read anything on the page, including personally identifiable information. Sandboxing checkout UI extensions and moving tracking into web pixels means third-party code no longer gets raw access to the payment page. That is why, after the 2025 deadline, Shopify made additional scripts read-only and cut off PII access through them.
Upgrade safety. With hand-edited checkout.liquid, Shopify could not roll out checkout improvements without risking breakage on thousands of custom forks. Governed extensions let Shopify ship faster checkout, one-page checkout, accelerated payment methods, and accessibility fixes to every store at once without asking each merchant to re-test a bespoke template.
Consistency and performance. A single, componentized checkout is faster and more reliable than a field of custom templates, and it lets features like Shop Pay and web pixels behave predictably everywhere. In short, Shopify traded developer freedom for platform-wide safety and speed, and used deadlines to force the migration through.
checkout.liquid gave Plus stores freedom by letting them edit the checkout as raw code. Checkout extensibility takes that freedom back in exchange for a checkout Shopify can secure and upgrade for everyone at once.The trade at the heart of the change
The real deadlines (and the one to double-check)
This is where merchants get confused, because three different dates get quoted interchangeably. They are not the same deadline; they cover different parts of the checkout. Here is the timeline, straight from Shopify's checkout upgrade guide, with the one reported date flagged.
August 13, 2024 - the in-checkout steps (reported). This is the date commonly cited for when checkout.liquid stopped working for the information, shipping, and payment steps of checkout, the Plus-specific customizable pages. It is consistent with Shopify's staged rollout and widely repeated, but we flag it as reported rather than quote it as a hard primary-source fact; re-confirm the exact day on shopify.dev or the Shopify changelog before you rely on it. It only affected Plus stores that had customized those steps.
August 28, 2025 - Thank you and Order status pages (passed, verified). This was the deadline to replace customizations on the Thank you and Order status pages, including anything using additional scripts or apps with script tags. Shopify's upgrade guide states this date directly. After it passed, additional scripts became read-only and PII stopped being accessible through them. This one is verified.
January 2026 - automatic upgrades (current, verified). This is the consequential one. From January 2026 Shopify began automatically upgrading stores that had not migrated, and per Shopify's guide, "all customizations using additional scripts, apps with script tags, or checkout.liquid on the Thank you and Order status pages will be lost" in that process. If a store or an app it relied on had not moved to extensions, the customization does not just stop being editable, it is removed. This is verified and it is why the topic matters right now.
What it means surface by surface
The cleanest way to see the impact is to map each customizable surface to its old method, its new method, the deadline, and which kind of app it hits. Post-purchase and product-page tools are affected very differently.
| Surface | Old method | New method | Deadline | Apps affected |
|---|---|---|---|---|
| In-checkout steps (info / shipping / payment) | checkout.liquid (Plus only) | Checkout UI extensions | Aug 13, 2024 (reported) | In-checkout upsell apps (Plus): Rebuy, AfterSell, Zipify, Candy Rack |
| Thank you page | Additional scripts / script-tag apps | Checkout UI extensions + web pixels | Aug 28, 2025 (passed) | Post-purchase & thank-you apps: ReConvert, AfterSell, CartHook |
| Order status page | Additional scripts / script-tag apps | Checkout UI extensions + web pixels | Aug 28, 2025 (passed) | Tracking, review-request, post-purchase apps |
| Checkout branding / styling | checkout.liquid CSS (Plus) | Checkout editor + branding API | Migrated with the above | Theme / checkout-styling apps |
| Cart page & drawer | Theme / app blocks (never checkout) | Unchanged | Not affected | UpCart, In Cart Upsell, Rebuy Smart Cart |
| Product page / bundles | Theme app extensions (never checkout) | Unchanged | Not affected | Frequently Bought Together, Selleasy, Wide Bundles, Also Bought |
Read the last two rows carefully, because they carry the most misunderstood point: cart-drawer, product-page, and bundle apps never touched the checkout surface at all. They render in your theme, before or around the cart, not inside Shopify's checkout. The deprecation does not affect them. So if a "best upsell app" listicle warns you that the checkout deadline threatens a Frequently Bought Together widget, it is wrong; that widget was never on checkout.liquid. The deadline only ever bit apps that injected into the checkout, thank-you, or order-status pages.
What it means for choosing an app
Practically, the migration sorts checkout-relevant apps into two groups: the ones that rebuilt on checkout UI extensions and survived, and the ones that did not and lost their customization. Every serious upsell app in the category now advertises checkout-extensibility compatibility, which means, as a buyer, compatibility is table stakes rather than a differentiator. What still varies is where the app places its offer:
- Native in-checkout upsell (an offer inside the checkout steps) remains a Shopify Plus feature and requires a checkout UI extension. Rebuy, AfterSell, Zipify OCU, and Candy Rack offer this on Plus.
- Post-purchase / thank-you-page upsell works on any plan through a post-purchase extension, and this is where most one-click upsell value actually sits (ReConvert, AfterSell, Zipify).
- Cart-drawer and product-page upsell were never on the checkout surface, so extensibility is irrelevant to them (UpCart, Selleasy, Frequently Bought Together).
The clearest migration-casualty example is CartHook, a post-purchase pioneer whose App Store rating has slid to about 3.9 on a thin review base. A declining rating on an app that lived squarely on the checkout and thank-you surface is exactly the tell of a tool that struggled through this transition, and it is why we treat rating trajectory on checkout-stage apps as a signal, not noise. Contrast it with the apps that carry the Built for Shopify mark and clean, current extension support. For how these apps stack up by placement, see our best Shopify upsell apps ranking and the focused best checkout upsell app roundup; for the placement model itself, the upsell placement guide is the companion piece.
The one pass-or-fail question: for any app that puts an offer at checkout, on the thank-you page, or on the order-status page, ask "is this app's checkout surface a checkout UI extension?" If the answer is yes, it survived the migration and will keep its customization. If the answer is no, or the vendor cannot answer plainly, it is a casualty of the January 2026 auto-upgrade and you should assume its checkout customization is gone. Cart-drawer, product-page, and bundle apps are exempt from the question entirely, because they never lived on the checkout.
Do I have to do anything as a merchant?
If you are on a standard (non-Plus) plan and you only use cart, product-page, or post-purchase apps from the App Store, the honest answer is: probably nothing, as long as those apps are current. You never had checkout.liquid, and any reputable post-purchase app has already moved to the post-purchase extension. If you are on Shopify Plus and your store ever customized checkout, the Thank you page, or the Order status page, through additional scripts or a developer's checkout.liquid, then the migration applies to you directly, and Shopify's admin generates an upgrade guide that inventories your customizations and maps each to its replacement. The one universal action for everyone: before installing any new checkout-stage app, ask the pass-or-fail question above.
Frequently asked questions
Is checkout.liquid gone for good? Yes. It is deprecated and being removed; the January 2026 auto-upgrades actively strip remaining checkout.liquid, additional-scripts, and script-tag customizations from the Thank you and Order status pages. Checkout UI extensions are the supported path forward.
Does the deprecation affect my product-page or cart upsell app? No. Those apps render in your theme, not inside Shopify's checkout, so they were never on checkout.liquid and are unaffected. The change only ever hit apps that injected into the checkout, thank-you, or order-status pages.
Do I need Shopify Plus to run a checkout upsell? For an upsell inside the checkout steps themselves, yes, that native in-checkout placement is a Plus feature and requires a checkout UI extension. Post-purchase one-click upsells on the thank-you page and cart-drawer upsells work on any plan.
What is the difference between checkout extensibility and checkout UI extensions? Checkout extensibility is the umbrella system (UI extensions, checkout branding, Shopify Functions, web pixels). Checkout UI extensions are the specific building block that renders app UI at defined slots in the checkout. When a listing says "built on checkout extensibility," the UI-extension part is what makes an app's checkout offer valid.
Is the August 13, 2024 date reliable? It is widely reported as the point when checkout.liquid stopped working for the in-checkout steps, and it fits Shopify's staged rollout, but we treat it as reported rather than a confirmed primary-source fact. The August 28, 2025 and January 2026 dates are verified against Shopify's checkout upgrade guide.
Bottom line
Shopify replaced a Plus-only, edit-the-code checkout (checkout.liquid) with a governed, sandboxed system (checkout extensibility and checkout UI extensions) for real reasons: security, upgrade safety, and consistency. The deadlines are not theoretical; the August 28, 2025 cutoff for the Thank you and Order status pages has passed, and the January 2026 auto-upgrade removes anything that was never migrated. For a store owner the whole thing collapses into one buying question, "is this app's checkout surface a checkout UI extension?" Ask it of any checkout-stage or thank-you-page app, treat a declining rating on a checkout-era app like CartHook as a migration-casualty signal, and remember that your cart and product-page apps were never in scope. Get the checkout question right and the rest of the upsell decision, covered in our upsell app ranking, is about placement and price, not survival.