Updated The Checkout Agency

Shopify Scripts are gone. Here is what replaces them

Shopify Scripts stopped running on June 30, 2026. Here is what replaced line item, shipping and payment Scripts, and how to rebuild them as Shopify Functions.

Shopify Scripts are gone. Here is what replaces them

Shopify Scripts ran small pieces of Ruby, written in the Script Editor app, to change what happened at checkout on Shopify Plus: discounting line items, hiding or renaming shipping rates, and filtering payment methods. That era is over. Shopify stopped Scripts from being edited or published on April 15, 2026, and switched them off completely on June 30, 2026. The deadline had been pushed back more than once before, and this time it held.

If your store still depended on a Script on July 1, the logic simply stopped running. Here is what replaced it, how to tell what you lost, and how to rebuild it properly.

What changed on June 30, 2026

Scripts no longer execute, on any store. Shopify’s supported replacement is Shopify Functions: small programs that run on Shopify’s own infrastructure and plug into specific parts of checkout, such as discounts, delivery options and payment methods. Content that used to be injected into the checkout lives in checkout UI extensions instead, and the old checkout.liquid is gone too.

There is no switch to turn Scripts back on. The only way forward is to rebuild the logic on the new stack.

Signs your store lost Script logic

Scripts failed silently, so many stores only noticed when customers did. Common symptoms:

  • Tiered, volume or buy-one-get-one discounts that no longer apply in the cart.
  • Free gifts or automatic add-ons that stopped appearing.
  • Shipping rates you used to hide showing up again, or rates back under their default names.
  • Payment methods reappearing for carts or countries where you had hidden them, such as cash on delivery.
  • Wholesale or tagged-customer pricing that quietly reverted to retail.

If any of those sound familiar, the rule behind it was probably a Script.

What replaces each type of Script

Every Script type has a counterpart in Shopify Functions:

Script typeWhat it typically didShopify Functions replacement
Line item ScriptsTiered and volume discounts, BOGO, free gifts, customer-tag pricingDiscount Function API, plus Cart Transform for bundles
Shipping ScriptsHide, rename or reorder shipping rates; discounted shippingDelivery Customization Function API, with shipping discounts through the Discount Function API
Payment ScriptsHide, rename or reorder payment methodsPayment Customization Function API

The mapping is clean at the level of “what kind of thing does this rule do”. The details are where rebuilds go wrong.

Functions are not Scripts with new syntax

It is tempting to treat the migration as a translation job. It is not, for a few reasons:

  • A different language and runtime. Scripts were Ruby. Functions compile to WebAssembly, usually from Rust or JavaScript, and run inside strict resource limits. Shopify recommends Rust for performance, because a slow Function can fail on a large cart.
  • Functions live inside an app. Each Function ships as part of an app. Stores on any plan except Starter can use public App Store apps that contain Functions, but a custom app with your own Functions requires Shopify Plus.
  • Configuration moves out of code. Scripts often hard-coded thresholds and product lists. A well-built Function reads its settings from metafields, so your team can change a discount tier without a developer.
  • Discounts combine differently. Functions work with Shopify’s native discount classes and combination settings, so a rule that stacked a certain way under Scripts needs its combinations set deliberately.

How to rebuild, step by step

  1. Reconstruct what each Script did. If you kept the Script code, start there. If you did not, work backwards from past orders, discount history and your promotions calendar, and write each rule down in plain language.
  2. Check whether an existing app already does it. Many common patterns, from tiered discounts to hiding payment methods, are covered by public apps built on Functions. We walk through that decision in Shopify Functions vs. apps.
  3. Build custom Functions for the rest. Anything specific to your business, or anything an app gets almost right, is a candidate for a custom Function on Plus.
  4. Test against real carts. Replay the orders that matter: large carts, stacked discounts, international addresses, wholesale customers. Compare the result with what the Script used to produce.
  5. Launch with a rollback plan. Turn Functions on one at a time, watch the first live orders, and keep the previous configuration documented so you can step back if something looks wrong.

For payment rules specifically, our guide to hiding, renaming and reordering payment methods goes deeper.

What about checkout.liquid?

It went the same way. Shopify switched off checkout.liquid for the information, shipping and payment steps in 2024. Thank you and Order status pages were upgraded to checkout extensibility for Plus stores in August 2025 and for every other plan on August 26, 2026, which also removed anything pasted into Additional Scripts. Visible customizations now belong in checkout UI extensions, and tracking in web pixels. If yours never made the move, our checkout extensibility migration service rebuilds them.

Where to go from here

If your checkout lost a rule on June 30, it can come back, and usually faster and more reliable than before. Start with an honest list of what your Scripts did, rebuild on the right Function, and test before you trust it.

If you want a hand, reconstructing and rebuilding Script logic is exactly the work we do, and our Shopify Functions development service can take it from there.

Ready to build a store worth talking about?

Tell us where your store is today and where you want it to go. We reply within two working days with a clear next step.

Talk to us

Email us Start a project