Shopify Checkout Extensibility Migration: What SA Stores Need to Do Before the Deadline

· A de Villiers

Person typing on a laptop in the Shopify admin, representing a Shopify checkout extensibility migration

Shopify is changing how checkout works. If your store uses customized checkout pages, Shopify Scripts, or checkout.liquid modifications, those will stop working.

This is not a maybe. Shopify has announced the sunset of checkout.liquid and the legacy Shopify Scripts engine. The replacement is called Checkout Extensibility. If you are on Shopify Plus and you have any custom checkout logic, you need to migrate.

Here is what is actually changing, what you need to do, and what happens if you do nothing.

What Is Actually Changing

Shopify's checkout has historically worked in two ways for Plus merchants.

checkout.liquid. This was a Liquid template file that let you completely customize the checkout HTML. You could change the layout, add fields, inject scripts, rearrange elements, and modify the checkout appearance however you wanted.

Shopify Scripts. These were small programs (written in Ruby) that ran during checkout to apply custom discount logic, payment method filtering, and shipping rate modifications. If you had complex discount rules like "buy 3 get 1 free only for wholesale customers on orders over R2,000," that was probably a Shopify Script.

Both of these are being replaced by Checkout Extensibility.

Why Shopify is doing this. checkout.liquid gave merchants complete freedom, which also meant they could break the checkout, create security vulnerabilities, slow it down with injected scripts, and make it incompatible with Shopify's own improvements (like Shop Pay, one-page checkout, and accelerated checkout buttons). Shopify wants a checkout that is fast, secure, and consistent while still allowing customization.

What Replaces Them

Checkout Extensibility is a set of controlled extension points. Instead of editing the entire checkout template, you add specific functionality at specific points in the checkout flow.

Checkout UI Extensions. These are custom components (built with React) that appear at defined positions in the checkout: before the shipping address, after the payment method, in the order summary, and so on. You can add custom fields, display information, show verification steps, or render custom UI. But you cannot arbitrarily rearrange the checkout layout.

Shopify Functions. These replace Scripts. They run custom logic for discounts, payment customization, and delivery customization. They execute on Shopify's infrastructure (written in Rust via WebAssembly), which makes them fast and scalable. But they have a different programming model than Scripts, so existing Scripts need to be rewritten, not just copied.

Web Pixels. These replace injected tracking scripts. Instead of inserting raw JavaScript into the checkout, you use Shopify's Customer Events API to track events in a sandboxed environment. This means your tracking cannot interfere with checkout performance or security.

Post-purchase extensions. Custom pages that appear after the purchase is complete. Upsells, surveys, custom confirmation information.

What You Need to Do

1. Audit Your Current Checkout

Before migrating anything, document exactly what your current checkout does that is custom.

  • Do you have a modified checkout.liquid file? What does it change?
  • Do you use Shopify Scripts? What do they do? (List each script and its purpose)
  • Do you inject third-party scripts into checkout? (Analytics, tracking, chat widgets)
  • Do you have custom fields at checkout? (Delivery instructions, PO numbers, verification steps)
  • Do you apply custom discount logic beyond what Shopify's native discounts support?

2. Map Each Customization to the New System

For each custom element, determine which Checkout Extensibility feature replaces it.

CurrentReplacement
checkout.liquid layout changesCheckout UI Extensions (limited to defined insertion points)
Custom checkout fieldsCheckout UI Extensions with metafields
Shopify Scripts (discounts)Shopify Functions (discount function)
Shopify Scripts (payment filtering)Shopify Functions (payment customization)
Shopify Scripts (shipping rules)Shopify Functions (delivery customization)
Injected tracking scriptsWeb Pixels / Customer Events API
Post-purchase upsell scriptsPost-purchase extensions

Some customizations translate directly. Others require rethinking the approach because the new system is more structured (and more limited in certain ways).

3. Identify What Cannot Migrate Directly

Not everything you could do with checkout.liquid has a direct equivalent in Checkout Extensibility.

If your checkout.liquid modifications involved:

  • Completely rearranging the checkout page layout
  • Adding full-page interstitials or redirects during checkout
  • Running arbitrary JavaScript that modifies DOM elements
  • Deeply custom styling that goes beyond Shopify's theming system

You may need to accept a different approach or find workarounds within the extension framework. Shopify's position is that the tradeoff (less flexibility in exchange for better performance, security, and compatibility) is worth it. Whether that is true for your specific store depends on what your customizations do.

4. Plan the Development Work

This is not a configuration change. It is development work. Checkout UI Extensions are built with React. Shopify Functions are written in Rust (compiled to WebAssembly) or JavaScript. This requires a developer who understands Shopify's app development framework, not just someone who edits Liquid templates.

The migration scope depends on how customized your checkout currently is. A store with one Script and a few checkout.liquid tweaks might need a week of development. A store with complex Scripts, custom fields, verification flows, and injected tracking could need four to eight weeks.

5. Test Thoroughly

Checkout is where the money moves. Errors here cost real revenue. Test the migrated checkout on a development store first with real payment test transactions. Test every discount scenario, every edge case in your pricing logic, and every tracking pixel.

What Happens If You Do Nothing

When Shopify completes the sunset, checkout.liquid will stop rendering your customizations. Scripts will stop executing. Your checkout will revert to Shopify's default. Any custom discount logic, custom fields, or custom verification steps will disappear.

For some stores, this is just a visual change. For others, it breaks core business logic. If your wholesale pricing runs on Scripts, or your checkout includes a required verification step, or your analytics depend on injected checkout scripts, "doing nothing" is not an option.

What This Means for SA Merchants

South African Shopify Plus stores face two additional challenges.

Finding developers with Checkout Extensibility experience. Most Shopify developers in SA work with themes and Liquid. Checkout Extensibility requires React and Shopify Functions (Rust/WebAssembly/JavaScript). This is a smaller pool of developers.

SA-specific checkout customizations. If your checkout has custom logic for South African payment gateways, SARS-related calculations, ZAR-specific pricing rules, or regional shipping logic, those need to be rebuilt in the new framework. Off-the-shelf migration guides do not cover this.

A Real Example

I built a customer verification flow for OW2 on Shopify's checkout extensibility framework. The project required verifying customer eligibility during the checkout process using Checkout UI Extensions. This is the kind of custom checkout logic that previously required checkout.liquid modifications and now runs natively within Shopify's extension framework.

The Short Version

Shopify is sunsetting checkout.liquid and Scripts. The replacement is Checkout Extensibility. This is not optional for Plus merchants with custom checkout logic. Audit what you have now, map each customization to the new framework, and plan the development work. If you wait until the deadline, you will be competing with every other Plus merchant for developer availability.

If your store needs to migrate and you want someone who has already built on the new checkout framework, get in touch.

Have a project in mind?

Let's discuss how I can help.