What checkout extensibility replaced
For years, Shopify Plus customization meant checkout.liquid: full control over the checkout template for anyone willing to write the code. That era is over. Checkout.liquid is deprecated, and the replacement is checkout extensibility: a system of checkout UI extensions, Functions, and pixels that customizes checkout through apps and configuration instead of template surgery.
The trade is real. You lose pixel-level control of the checkout DOM. You gain upgrades that do not break, a checkout that keeps getting faster underneath you, and customizations that survive platform changes. Whether that trade is good depends on what you were actually using checkout.liquid for.
What is actually possible now
More than most teams assume. Checkout UI extensions let apps render custom content at defined extension points: above or below the order summary, in the shipping step, around payment. Banners, custom fields, delivery instructions, loyalty messaging, upsell offers, all possible without touching checkout code. Shopify Functions customize the logic underneath: discounts, shipping rates, and payment method rules computed by your own code.
Branding customization covers the visual layer: logos, colors, fonts, and background treatments through the checkout editor. Pixels handle the measurement layer, running analytics in a sandboxed environment. For the vast majority of Plus stores, this toolkit covers everything checkout.liquid was doing, minus the hacks.
What you cannot do anymore
Honesty requires the limits. You cannot rearrange the checkout steps themselves or inject arbitrary JavaScript into the checkout DOM. Custom validation logic beyond what Functions support is not available. Deeply bespoke checkout flows, the kind that rebuilt the page around a unique business model, may not fit the extension points.
In practice, few stores needed that depth. Most checkout.liquid usage was banners, fields, and styling, all covered. The stores that genuinely need more are usually the ones with checkout-adjacent complexity: B2B pricing, subscription bundling, or multi-entity tax logic. For those, the answer is usually Functions plus apps, not a return to template control.
The migration playbook
If you are still on checkout.liquid, inventory every customization first. Most teams discover half of theirs are dead: banners for expired promotions, fields nobody reads, scripts from departed apps. Kill the dead ones before migrating anything. Then map each survivor to its extensibility equivalent: UI extension, Function, pixel, or branding setting.
Migrate in the quiet season, test the full matrix, and watch checkout conversion like a hawk for two weeks after. The most common migration failure is not technical. It is discovering that nobody knew what half the customizations did, because they were added years ago by people who left. The inventory is the project. The code is the easy part.
The verdict
Checkout extensibility is less flexible than checkout.liquid and better than checkout.liquid. Less flexible in the ways almost nobody used, better in the ways everyone needs: speed, reliability, and upgrades that do not detonate customizations. If your checkout customization list fits in extensions and Functions, and it almost certainly does, the platform did you a favor by taking the template away.
Frequently asked questions
Can you still customize the Shopify Plus checkout without checkout.liquid?
Yes. Checkout extensibility provides UI extensions for custom content, Shopify Functions for discount and shipping logic, pixels for analytics, and branding settings for visuals. It covers nearly everything stores actually used checkout.liquid for.
What can you not customize in the new checkout?
You cannot rearrange checkout steps or inject arbitrary JavaScript into the checkout DOM. Deeply bespoke flows, like fully rebuilt checkout pages for unusual business models, may not fit the available extension points.
How should a Plus store migrate off checkout.liquid?
Inventory every existing customization first and kill the dead ones. Map each survivor to a UI extension, Function, pixel, or branding setting. Migrate in a quiet period, test the full purchase matrix, and monitor conversion closely for two weeks after.
Do checkout UI extensions slow down the checkout?
They run in a constrained, sandboxed environment designed to protect checkout performance, which is a major improvement over arbitrary checkout.liquid scripts. Poorly built app extensions can still add weight, so audit which apps inject content and measure before and after.