§
§ · shopify checkout extensibility

Checkout extensibility, rewired.

Checkout UI Extensions, Functions, and Web Pixels on Shopify Plus. Migrate off checkout.liquid before the sunset. Upsell, custom fields, loyalty, compliance, all on the new extension surfaces.

§ 01 · the deprecation timeline

checkout.liquid is already gone. Here is what replaces it.

Shopify deprecated the checkout.liquid template for Plus merchants through 2024. Information, Shipping, and Payment page customizations ended August 2024; Thank You and Order Status followed. If you are still on checkout.liquid in 2026, your checkout is losing features every quarter and blocking new Shopify releases. Every customization you had maps to a new surface. This page is the map.

§ checkout.liquid deprecation timeline · published by Shopify · enforced across all Plus accounts
Date What ended Replacement
2023Shopify Scripts deprecation announcedMigration path to Shopify Functions published. Functions docs shipped.
Aug 2024Information, Shipping, Payment checkout.liquid endedCheckout UI Extensions on the Purchase surface.
2024Thank You page checkout.liquid deprecationCheckout UI Extensions on the Thank You surface.
2024Order Status page checkout.liquid deprecationCheckout UI Extensions on the Order Status surface.
OngoingShopify Scripts fully sunsetShopify Functions mandatory for discounts, delivery, payment customization.
NowNew Shopify checkout features Plus-onlyDeploy only to merchants on the new extensibility surfaces.

The deprecation is not a warning; it is a line that has already been crossed. Plus merchants still on checkout.liquid are running a checkout that Shopify no longer ships features into. Every quarter that passes, the feature gap widens. The audit in § 10 produces a concrete migration plan within two weeks.

§ 02 · what extensions replace

Every checkout.liquid pattern has a new home.

In three years of checkout.liquid work across Plus merchants, we inventoried the patterns that actually existed in production. Every one maps to a named replacement surface. Below is the translation table.

§ pattern translation table · legacy checkout.liquid → new extensibility surface
Legacy pattern New surface Gain
Custom cart line-item note fieldCheckout UI Extension @ cart-line-itemsKeyed per line rather than cart-level.
Compliance wording before paymentCheckout UI Extension @ paymentRenders server-side, indexed in checkout analytics.
Country- or product-specific discountShopify Function (discount)Sub-millisecond evaluation, free within limits.
Shipping method re-orderShopify Function (delivery customization)Native in checkout, no JS flash on render.
Hide cash-on-delivery above a cart totalShopify Function (payment customization)Deterministic, no race conditions.
Post-purchase upsellCheckout UI Extension @ Thank YouBetter mobile performance, one-click accept.
Review collection widgetCheckout UI Extension @ Thank YouHigher submission rate than email follow-up.
Pixel firing on purchaseWeb Pixel + Meta CAPIServer-side, survives iOS privacy changes.
Custom order-status tracking viewCheckout UI Extension @ Order StatusEmbeds carrier tracking cleanly.
Subscription management linkCustomer Account UI ExtensionShopify-native, no redirect to app.
§ 03 · the deprecation clock

Old checkout torn away. New surfaces underneath.

Fig. 01 · the deprecation clock · old surface out, four new surfaces in
§ 04 · the four surfaces

Purchase. Thank You. Order Status. Customer Account.

Every Checkout UI Extension targets one of four surfaces. Each has a fixed set of named render targets, a distinct access context, and a distinct engagement profile. A well-planned checkout build puts the right feature on the right surface; put a review widget on the Purchase surface and your conversion drops.

01

Purchase

Information, Shipping, Payment, Review steps.

  • Custom fields (VAT, gift notes)
  • Compliance copy
  • Loyalty points preview
  • Product bundles visible
02

Thank You

Post-purchase confirmation page.

  • One-click upsell
  • Review collection
  • Referral invite
  • Welcome-to-loyalty
03

Order Status

Tracking page customers return to.

  • Carrier tracking embed
  • Reorder prompt
  • Edit order (address, items)
  • Support contact
04

Customer Account

Logged-in account area.

  • Subscription manager
  • Loyalty balance
  • Past orders list
  • Saved address book
§ 05 · functions vs scripts

Scripts out. Functions in.

Shopify Scripts shipped in 2016 as Ruby code that ran server-side during checkout. Shopify Functions replaced them with WebAssembly code written in Rust, JavaScript, or TypeScript. Four function types matter in production. The migration is mechanical and well-documented; the engineering value is in knowing which Function does what.

Function 01

Discount

Buy-X-get-Y, tiered, loyalty-earned, free shipping over threshold. Replaces every Shopify Scripts discount pattern cleanly.

Function 02

Delivery Customization

Rename, re-order, or hide shipping methods. Conditional on cart contents, customer tags, or destination.

Function 03

Payment Customization

Hide or re-order payment options. Classic case: hide cash-on-delivery above a cart threshold or to high-fraud-risk regions.

Function 04

Cart Transform

Expand parent SKUs into children (bundles), merge duplicates, apply automatic upgrades. The most powerful and least understood Function type.

§ 06 · upsell patterns

Six upsell shapes. Each one measured.

AOV lift 8-15%

Bundle upgrade in cart

Cart transform Function presents a bundled price when 3+ items in one collection sit in cart.

AOV lift 5-10%

Free shipping threshold

Discount Function displays "$X to free shipping" in cart; extension renders progress bar.

AOV lift 10-20%

Post-purchase one-click

Thank You page extension offers a complementary SKU at a Thank-You-only price, one-click accept.

Attach rate 12-25%

Gift wrapping at payment

Purchase surface extension adds a paid gift-wrap line item before payment step.

Attach rate 8-14%

Subscribe-and-save upgrade

Cart line extension offers subscription conversion on one-time items with percent discount.

Referral rate 3-7%

Referral invite Thank You

Thank You extension shows a share-with-friend block with pre-written message.

§ 07 · testing matrix

Checkout changes ship behind flags.

Checkout is the last surface you want to ship with bugs. Every extension release runs through a documented test matrix covering device, region, payment method, and cart composition. Nothing lands on 100% of traffic on day one.

Axis Test coverage before 100% rollout
DeviceiOS Safari, Android Chrome, iPad, desktop Chrome, desktop Firefox, desktop Safari.
RegionAll primary markets tested; language, currency, tax all verified per region.
Payment methodShop Pay, Apple Pay, Google Pay, PayPal, credit card, Shop Pay Installments, BNPL if enabled.
Cart compositionSingle item, multi-item, mixed categories, subscription + one-time, gift card, digital + physical.
Rollout5% traffic for 7 days, 25% for 3 days, 50% for 3 days, 100% if metrics hold.
Kill switchShopify Admin feature flag toggle to full rollback within 60 seconds if a critical metric degrades.
§ 08 · compliance + edge cases

What breaks checkouts on real traffic.

01

BFCM load

Shopify Functions run within strict latency budgets. Under BFCM load, unoptimised Functions return empty, which silently drops discounts. We test every Function under 10× typical throughput before peak week.

02

PCI scope

Checkout extensions run in a sandboxed renderer with no access to card data. Confirmed on every build via Shopify's PCI shared responsibility matrix; no merchant scope expands because of extensions.

03

Tax interactions

Discount Functions and Cart Transform Functions interact with tax calculation. A discount applied after tax versus before tax changes the taxable base; mis-configuration can silently under-report VAT.

04

Subscription checkout

ReCharge and Shopify Subscriptions both have specific rules for what extensions can modify in a subscription cart. We validate the extension set against both before merging.

§ 09 · proof

One Plus merchant. Eight-week migration.

A Big Game Sports-archetype athletic brand on Plus ran four checkout.liquid customizations that had accumulated over three years. The ask: migrate off before the deprecation line, no AOV regression, measurable post-purchase upsell improvement.

+11.2%
AOV on post-purchase upsell
0
checkout conversion regression
8 wk
audit to 100% rollout

What shipped: 4 Checkout UI Extensions (cart-line custom field, compliance copy, shipping upsell, post-purchase bundle), 2 Shopify Functions (free shipping discount, CoD hide over $500), 1 Web Pixel (Meta CAPI server-side), customer account subscription manager. Rollout: 5% for 10 days, 25% for 5 days, 100% on day 45. Zero rollbacks.

§ 10 · engagement shapes

Four shapes.

01

Audit

2 weeks

Inventory of checkout.liquid customizations, replacement map, migration plan.

02 · common

Migration

6-10 weeks

Full off-checkout.liquid migration with feature parity plus measurable lift.

03

Upsell build

3-5 weeks

Post-purchase upsell, cart bundles, cross-sell on Thank You surface.

04

Retainer

20-40 hrs / mo

Ongoing Functions, extensions, Web Pixels maintenance.

§ 11 · fit check

Who a checkout rebuild actually helps.

✓ right fit
  • Shopify Plus with existing checkout.liquid customizations still live.
  • Running Shopify Scripts that need to migrate to Functions.
  • AOV under $80 with no post-purchase upsell currently shipping.
  • Subscription brand using checkout-liquid-rendered subscription toggles.
  • Multi-market checkout with region-specific compliance requirements.
× wrong fit
  • Shopify Basic or Advanced (non-Plus). Bespoke checkout requires Plus.
  • Already on Checkout UI Extensions with a strong AOV and no feature gap.
  • Zero checkout.liquid code today and no plan to customize the checkout.
  • Under $500K per year where Plus itself is already over-budget.
§ 12 · frequently asked

Seven questions Plus teams ask.

When does checkout.liquid stop working?

Shopify deprecated checkout.liquid for all Plus merchants in 2024, with the Information, Shipping, and Payment step customizations ending in August 2024 and the Thank You plus Order Status page customizations following. Merchants on legacy checkout.liquid have experienced degraded features and are blocked from new checkout features shipped on the new extensibility surfaces. A migration is not optional for any Plus merchant still on checkout.liquid.

What replaces checkout.liquid customizations?

Four extension surfaces replace it: Checkout UI Extensions for visual customization across Purchase, Thank You, Order Status, and Customer Account pages; Shopify Functions for discounts, delivery customization, payment customization, and cart transform; Web Pixels for server-side analytics that survive Safari and iOS privacy changes; and Shopify Apps for any deeper integration. Every checkout.liquid pattern we have migrated maps cleanly to one or two of these four.

Can we keep our existing checkout upsell on the new surfaces?

Yes. Most post-purchase upsells on checkout.liquid map directly to a Thank You page UI Extension, usually with better conversion because the new surface is native to Shopify and renders server-side. In-checkout product recommendations map to a Purchase page extension with product pick logic expressed in a Shopify Function. The migration audit names the exact replacement for every upsell element currently in your checkout.

Do Checkout UI Extensions work on non-Plus Shopify plans?

Limited. Shopify has opened some extension surfaces to all plans for app-distributed extensions, but merchant-owned checkout customization remains primarily a Shopify Plus feature. If you are on Shopify Advanced or lower, your practical path is installing extension-based apps from the Shopify App Store rather than building bespoke extensions. Full bespoke checkout engineering requires Plus.

How long does a checkout.liquid migration take?

A typical migration runs 6 to 10 weeks. Week one is the audit: every current checkout.liquid customization is inventoried and mapped to its replacement surface. Weeks two through five build the extensions and Functions. Weeks six and seven run in parallel with the existing checkout via feature flags. Weeks eight through ten are cutover, AB testing where useful, and post-launch monitoring. Simpler checkouts with only Thank You customizations finish in 3 to 5 weeks.

What are Shopify Functions and where do they fit?

Shopify Functions are server-side Wasm code that Shopify runs inside the checkout pipeline. They replace what used to live in Shopify Scripts plus some checkout.liquid logic. Four function types matter in practice: discounts (buy-X-get-Y, tiered, loyalty-earned), delivery customization (rename, re-order, hide methods), payment customization (hide or re-order payment options), and cart transform (bundles, expanded parent-child items). Functions are free to run up to generous limits and execute in single-digit milliseconds.

Will a checkout migration affect our conversion rate?

Short-term risk is real and we manage it with feature flags and a staged rollout. Long-term, the new surfaces typically lift conversion because they are faster, more mobile-optimized, and better integrated with Shop Pay. Our rollout pattern is: build extensions in parallel with the existing checkout, route 5% of traffic to the new surfaces, measure for 7 to 10 days, then ramp in 20% increments. If the new surface underperforms on any critical metric, we halt and investigate before continuing.

§ 13 · what happens next

Two-week audit. Migration plan. Scoped quote.

Every Plus merchant still on checkout.liquid is running a checkout that Shopify no longer builds features into. The audit produces a concrete migration plan plus a scoped quote. Decide from there.

Book my 30-minute checkout audit call