Shopify Checkout Extensibility: What You Can (and Can't) Do
A practical guide to Checkout Extensibility — UI Extensions, Functions, and what's possible without Shopify Plus.
- 01Checkout Extensibility vs the old checkout.liquid
- 02What UI Extensions can do
- 03Combining Extensions with Functions
- 04What still requires Plus
Checkout Extensibility vs the old checkout.liquid
`checkout.liquid` (Shopify Plus only) was a full Liquid template override for the checkout. It's being deprecated in 2025. Checkout Extensibility is the replacement — and it's available to all Shopify plans for UI Extensions, with some features requiring Plus.
The key difference: Extensibility is additive. You add blocks to defined positions in the checkout (before/after the contact form, order summary, payment, etc.) — you don't replace the checkout layout. This is more constrained than `checkout.liquid` but significantly more stable (Shopify can update the checkout without breaking your customizations).
What UI Extensions can do
Checkout UI Extensions let you add: custom fields (text, checkbox, dropdown) captured as checkout attributes, banner messages based on cart contents, upsell/cross-sell product blocks, delivery date pickers, gift message fields, loyalty points display, custom payment method descriptions, and post-purchase survey or upsell pages.
They're built as React-like components using Shopify's UI Extension component library. They run in a sandboxed iframe and can read checkout data (line items, totals, customer) but can only write back via the Extension API (update checkout attributes, apply discount codes).
Combining Extensions with Functions
The most powerful checkout customizations combine UI Extensions (to collect input) with Functions (to apply logic). Example: a delivery date picker Extension lets the customer choose a delivery date → stores it as a checkout attribute → a Fulfillment Constraint Function uses that attribute to filter available shipping rates.
Another example: a B2B purchase order field Extension captures the PO number → a Shipping Rate Function can filter rates based on B2B company data (available via metafields). The Extension provides the UI; the Function provides the logic that runs in Shopify's infrastructure.
What still requires Plus
Some checkout customisation still requires Shopify Plus: custom checkout branding beyond what Checkout Editor allows, some Function APIs (cart transforms in certain configurations), B2B checkout features (payment terms, company account recognition), and the ability to remove/reorder standard checkout fields.
For non-Plus stores: UI Extensions for adding fields and blocks work fine. For fundamental checkout flow changes — removing fields, custom checkout step logic, B2B payment terms — Plus is still required.
Need help implementing this?
I build what I write about. If you need this implemented on your Shopify store, get in touch.
Discuss your projectReady to build this on your store?
Let's scope it.
I reply personally within 24 hours.