Shopify Checkout Extensions: What You Can Do Now
No7 Engineering Team
Growth Architecture Unit

If you've been putting off the move to Checkout Extensibility, the deadline is approaching. Shopify is retiring the old checkout.liquid approach, and honestly, the new system is better once you understand what it can do.
What Changed
The old way: edit checkout.liquid directly, hope Shopify doesn't break your customisations with an update. The new way: build extensions using a defined API that Shopify maintains and upgrades.
It's more structured, which means less flexibility in some ways but more stability and better performance overall.
What You Can Actually Build
UI Extensions
Add custom elements to the checkout at predefined points—product information, shipping options, payment selection, order summary, and thank you page.
We've built things like:
- Delivery date pickers that sync with warehouse schedules
- Gift message fields with character limits and formatting
- Loyalty point displays and redemption interfaces
- Trust badges and security reassurances at the payment step
- Upsell and cross-sell widgets based on cart contents
Shopify Functions
This is where it gets interesting. Functions let you run custom logic that affects how the checkout behaves:
Function Types:
- local_offerDiscount Functions: Custom discount logic beyond what Shopify's built-in discounts can handle.
- local_shippingDelivery Customisation: Hide, rename, or reorder shipping options based on cart contents or customer data.
- credit_cardPayment Customisation: Show or hide payment methods based on order value, customer type, or location.
- shopping_cartCart Transform: Automatically add, remove, or modify cart items (great for bundles and gifts-with-purchase).
What You Can't Do
There are limitations. You can't completely redesign the checkout layout. You can't inject arbitrary JavaScript. The styling options are more constrained than they were with checkout.liquid.
For most stores, this isn't a problem. For brands with very specific checkout requirements, it might mean compromising on some features or getting creative with the available options.
Getting Started
If you're on Shopify Plus and haven't migrated yet, now's the time. The core functionality is stable, the documentation is solid, and waiting just means more pressure when the deadline hits.
Migration Pitfalls We See on Every Project
Most of the work in migrating off checkout.liquid is not coding — it is auditing what was there. Customisations tend to accumulate silently over years, and nobody remembers why half of them exist. Before touching code we do a full inventory:
- Every script tag injected via Additional Scripts.
- Every pixel and tag manager rule firing on the checkout pages.
- Every third-party app that previously wrote to the old checkout.
- Every A/B test variant still in rotation.
The inventory almost always reveals customisations that are either redundant or unused. Ship those removals first so the extension build isn't compensating for dead weight.
Testing Strategy That Catches Real Issues
Extensions have a slower feedback loop than the old inline approach. The test matrix we run before shipping:
Pre-Ship Checklist
- Guest + logged-in flows — different code paths, different bugs.
- Cart transforms + discount stacking — the interaction between Functions is where unexpected behaviour lives.
- Multiple shipping addresses, multi-currency — especially for Markets-enabled stores.
- Subscription add-ons — extensions interact differently with Shopify-native vs app-based subscriptions.
- Payment method filters — test with every gateway you have enabled, not just the common ones.
- Mobile at 3G throttling — extensions run remotely and can add perceptible latency on poor connections.
When Custom Infrastructure Is Still Required
Checkout Extensibility covers the majority of customisation needs we encounter, but there are genuine cases where it is not enough. Unusual pricing logic driven by external pricing engines, bespoke gift card systems with non-Shopify balance sources, or B2B quote-to-order workflows typically still need a custom app layered on top of extensions rather than extensions alone. We cover that cost envelope in our custom Shopify app cost breakdown.