Shopify's checkout is the most important page in e-commerce. It is also the most locked-down. Here is what is actually possible in 2025 — post the checkout.liquid deprecation — and what you need to build a fully custom, high-converting Shopify Plus checkout.
What Changed: checkout.liquid Is Dead
Shopify deprecated checkout.liquid for new stores in 2024. Existing customisations using checkout.liquid continue to work, but Shopify has frozen further development. The migration deadline to the new extensibility platform is actively being communicated. If you are building anything new, you must use Checkout Extensibility.
The New Stack: Checkout Extensibility
| Tool | What It Does | Access |
|---|---|---|
| Checkout UI Extensions | Add UI components (banners, fields, buttons) at specific checkout steps | Shopify Plus |
| Shopify Functions | Replace core checkout logic (discounts, shipping, payment, delivery) | Shopify Plus + Basic |
| Web Pixels | Run tracking scripts (GA4, Meta Pixel) in a sandboxed iframe | All plans |
| Post-Purchase Extensions | Show upsell/cross-sell offers after payment but before order confirmation | Shopify Plus |
| Thank You & Order Status Extensions | Customise the thank you page and order status page | Shopify Plus |
Checkout UI Extensions: What You Can Build
- Custom input fields for delivery instructions, gift messages, or custom attributes
- Upsell product recommendations at cart or information step
- Loyalty points display ("You will earn 250 points with this order")
- Countdown timers for limited-time offers
- Trust badges and social proof elements
- Custom banner messages for specific customer segments or cart contents
Shopify Functions: Real Checkout Logic
Shopify Functions let you write custom WebAssembly functions (in Rust or JavaScript) that run inside Shopify's infrastructure to change core checkout behaviour. This is where you implement things that used to require Scripts or checkout.liquid hacks.
- Custom discount logic: "Buy 3 get 1 free" with complex eligibility rules
- Custom shipping rates: show rates based on postal code lookup or custom carrier API
- Payment customisation: hide "Pay Later" options for B2B customers
- Delivery customisation: restrict same-day delivery to specific postcodes
- Cart transforms: bundle products, add free gifts, modify line item attributes
Shopify Functions are written in JavaScript (compiled to Wasm) or Rust. JavaScript Functions have a 5ms execution time limit. For complex logic, use Rust — it compiles to faster Wasm.
Braintree Direct Integration
Shopify Plus allows replacing Shopify Payments with a direct Braintree integration for merchants who need it (lower rates at high volume, or specific payment methods). This requires working with Shopify's partner team to enable the integration — it is not self-serve. The checkout still renders in Shopify's infrastructure; only the payment vault and token exchange changes.
Shopify Plus checkout in 2025 is more powerful than checkout.liquid ever was — but requires a different mental model. You are no longer editing HTML templates; you are building extensions and functions within Shopify's sandboxed infrastructure. The upside is reliability, security, and Shopify maintaining the checkout UX. If you need help migrating from checkout.liquid or building complex Functions, our Shopify Plus team has completed 15+ checkout migrations.