For a decade, customizing Shopify's checkout meant one thing: edit checkout.liquid and hope your changes survived the next checkout upgrade. That era is fully over, and if you're holding a list of customizations from it, every one of them now has a specific new home. This is the map.
The three dates that matter
Shopify retired the old stack in waves, and the dates are explicit:
| Date | What turned off |
|---|---|
| August 13, 2024 | checkout.liquid on the in-checkout pages (Information, Shipping, Payment) |
| August 28, 2025 | checkout.liquid, script tags, and Additional scripts on the Thank you and Order status pages |
| June 30, 2026 | Shopify Scripts and the Script Editor |
The first two have already happened. Stores that didn't upgrade in time were moved to an uncustomized, out-of-the-box checkout. The third is weeks away as I write this, and we've covered it in depth in the Scripts deadline guide.
Why Shopify pulled the plug
checkout.liquid customizations were mostly DOM surgery: find an element in Shopify's markup, change it, inject something next to it. Shopify's own best-practices doc warned that checkout upgrades could break DOM-dependent code at any time, and they regularly did.
Checkout extensibility flips the model. Customizations are app-based components that render at points Shopify defines and guarantees. Shopify can upgrade checkout under your feet and your customizations keep working. You give up arbitrary control and get upgrade-safety; for the page where the money happens, that's a good trade.
The replacement map
| You had this in the old stack | It goes here now |
|---|---|
UI changes in checkout.liquid (banners, fields, content) | Checkout UI extensions, placed in the checkout editor |
| Styling and branding edits | The branding tools (GraphQL Admin API plus the checkout editor), Plus only |
| Tracking in Additional scripts or ScriptTags | Web pixels |
| Discount, shipping, and payment Scripts | Shopify Functions |
| Thank you and Order status page hacks | UI extensions on those pages, or Checkout Blocks for the no-code version |
The plan reality
Shopify's technologies table draws the lines clearly:
- In-checkout UI extensions (the Information, Shipping, and Payment steps): Shopify Plus only.
- Thank you and Order status page extensions: every plan except Starter, available to Basic and up since May 2024 along with the checkout and accounts editor.
- Web pixels and Shopify Functions: every plan except Starter. The Plus catch with Functions is distribution: a custom app built just for your store needs Plus, while public apps containing Functions work anywhere.
If you're not on Plus, the practical playbook is: customize the post-purchase pages freely, fix your tracking with pixels, and reach for public apps where in-checkout behavior matters.
Start with Shopify's homework, not yours
Before auditing anything by hand: Shopify generates a report in the admin that identifies your existing checkout customizations and maps them to their extensibility replacements. If your store ever ran checkout.liquid, pull that report first. It turns an archaeology project into a checklist.
From there, each item gets one of three treatments: a public app already does it (install it), a UI extension or Function can do it (build or commission it), or it was DOM-dependent decoration that nobody will miss (let it go).
Where this series goes next
We've written the deep dives for most branches of this map: the pixels migration, the Scripts-to-Functions move, and no-code checkout changes with Checkout Blocks. The next post covers rebuilding customizations with checkout UI extensions specifically.
And if your upgrade report is long and your patience is short, we do this for a living.

Comments
Every comment here comes from a verified email. Write yours, confirm from your inbox, and it's live.
Loading comments…