Shopify’s transition away from checkout.liquid is the single most-asked-about platform change of the year. If you’re on Plus and still running a customised checkout.liquid, you’re against a deadline — and the migration path isn’t a one-line edit. Here’s what’s changed, what’s replaced what, and what to do this week.
What Shopify retired
The old checkout.liquid model let agencies and Plus merchants edit the checkout markup directly — a dream for customisation, a nightmare for security and platform stability. Shopify retired direct edits in favour of Checkout Extensibility: a model where merchants extend checkout with app blocks and branding APIs instead of editing markup.
If your store still uses checkout.liquid, Shopify has been issuing a hard deadline for migration. Past that, your customisations stop rendering.
What replaced it
Three things, depending on what you were doing in checkout.liquid:
- Branding API — for visual customisation (colours, fonts, corner radius). Configured in the admin or via API. Replaces ~80% of what most merchants used
checkout.liquidfor. - Checkout UI Extensions — small React-based components that render at defined extension points (above the contact form, in the order summary, etc.). Replaces custom UI: trust badges, gift messages, custom fields.
- Shopify Functions — server-side logic for discounts, shipping rules, and payment methods. Replaces script editor logic.
The migration path
For a typical Plus store with moderate customisation:
- Audit — list every block of
checkout.liquidthat does anything custom. Tag each as branding, UI, or logic. - Move branding to the Branding API. Most teams underestimate how much they can do here.
- Rebuild custom UI as Checkout UI Extensions. This is the biggest lift — extensions are React, not Liquid, and need to be deployed via Shopify CLI.
- Move logic to Shopify Functions. Discount and shipping logic that lived in scripts needs porting.
- Test the upgraded checkout in a draft order before flipping the switch. The new checkout has small UX differences that will surprise your team.
Common gotchas we’ve hit
- Cart attributes don’t auto-pass through. If your old flow stored data in cart attributes and read them in
checkout.liquid, you’ll need a UI Extension to read them. - One Page Checkout vs Three Page. The default has changed. Both work, but they have different extension points — test against the one you’ll actually use.
- Subscription apps. If you use a subscription app, check its Extensibility status before migrating. Some are still catching up.
The honest take
Checkout Extensibility is better long-term: more secure, more stable, faster. But the migration is real work, and “we’ll do it next quarter” is no longer an option for stores on the deadline. If you’re not sure where you stand, audit this week — not next.