Skip to content
Shopify / Plus

Shopify Scripts stopped working: how to rebuild them with Functions

Shopify Scripts stopped running on 30 June 2026. Rebuild each one as a Function: discounts, cart transform, validation, delivery or payment rules.

Tanuj Rajput

Web developer & one-operator studio

·10 min read
Shopify Scripts stopped working: how to rebuild them with Functions

The short answer

  • Shopify Scripts could no longer be edited or published from 15 April 2026 and stopped running entirely on 30 June 2026.
  • Shopify maps line item scripts to the Discount, Cart Transform and Cart and Checkout Validation Function APIs, shipping scripts to Delivery Customization plus Discount, and payment scripts to Payment Customization.
  • The Scripts customizations report under Apps, then Script Editor lists the scripts a store was running, grouped into Payment gateways, Shipping and Product discounts, and exports to CSV.
  • Any plan can use public App Store apps that contain Functions, but only Shopify Plus stores can use custom apps that contain Function APIs.
  • A store can activate up to 25 discount, 25 delivery customization, 25 payment customization and 25 validation functions, and one cart transform function per app.
  • Functions run within 11 million instructions for carts up to 200 lines, and Shopify recommends Rust to avoid failures on large carts.

Free, no pitch

Already holding a quote? I’ll tell you if it’s fair.

Send me the scope, timeline and price you were given. I’ll read it against the numbers on this page and tell you what looks right, what’s missing, and which line items usually turn into change requests later. If the quote is good, I’ll say so — even when it isn’t mine.

Shopify Scripts stopped running on 30 June 2026, after editing and publishing were switched off on 15 April. Every line item, shipping and payment script was deactivated. To rebuild them, open the Scripts customizations report under Apps, then Script Editor, list what you still need, and recreate each rule with the matching Shopify Function: Discount, Cart Transform or Cart and Checkout Validation for line item scripts, Delivery Customization for shipping scripts, and Payment Customization for payment scripts.

If your tiered discounts quietly stopped applying in July, or COD started showing on orders where you'd hidden it, this is why. The good news is that most Scripts have a direct Function replacement, and many have an app that does it without custom code.

What happened to Shopify Scripts?

Shopify retired Scripts in two steps in 2026. From 15 April, Scripts could no longer be edited or published. On 30 June, all Scripts stopped executing. Shopify announced both dates in its developer changelog and its merchant changelog, and pointed everyone to Shopify Functions.

Scripts were small programs written in a limited version of Ruby in the Script Editor app, available to Shopify Plus stores. There were three types:

Script typeWhat it didWhen it ran
Line item scriptsChanged prices and gave discounts on cart itemsWhenever items were added, removed or changed
Shipping scriptsChanged shipping methods and discounted shipping ratesWhen the buyer reached shipping options
Payment scriptsRenamed, hid and reordered payment methodsWhen the buyer reached payment methods

Functions do the same jobs differently. Instead of Ruby running in the Script Editor, a Function is compiled to WebAssembly, deployed inside an app, and called by Shopify at a fixed point in checkout.

What broke on 30 June?

Anything a script was doing simply stopped, with no error message for buyers. The store kept working. It just stopped applying your rules.

What you might noticeScript that stoppedFunction to rebuild it with
Tiered or volume discounts not applyingLine item scriptDiscount
"Buy X get Y" variations or member pricing goneLine item scriptDiscount
Bundles showing wrong price or as loose itemsLine item scriptCart Transform
Order limits or quantity caps not enforcedLine item scriptCart and Checkout Validation
Hidden shipping rates showing again, original names backShipping scriptDelivery Customization
Free or discounted shipping rule goneShipping scriptDiscount (shipping)
COD or another method showing on orders where it was hiddenPayment scriptPayment Customization
Payment methods back in default orderPayment scriptPayment Customization

If you haven't checked since June, place a few test orders that used to trigger each rule. Then compare July to September discount totals and payment method mix with the same months last year. A sudden jump in COD share on high-value orders is a common sign that a payment script went with the deadline.

Which Shopify Function replaces each Script?

Shopify's migration guide gives a direct mapping. One script type can split across several Functions, because Scripts did several jobs in one place.

Shopify Script typeFunction APIUse case
Line item scriptsDiscountDiscounts on products or the whole cart
Line item scriptsCart TransformBundle, merge or change cart lines
Line item scriptsCart and Checkout ValidationValidate cart contents and block checkout on conditions
Shipping scriptsDelivery Customization and DiscountHide, rename or reorder delivery methods, and discount them
Payment scriptsPayment CustomizationHide, rename or reorder payment methods

Limits worth knowing before you plan, from Shopify's Function API reference:

  • Up to 25 each of discount, delivery customization, payment customization and validation functions can be active on a store.
  • One cart transform function per app, though cart transforms from different apps all run.
  • Cart Transform's update operation (overriding a line's price, title or image) is limited to Plus and development stores.
  • One Discount Function can apply product, order and shipping savings in a single discount, so one Function can sometimes replace a line item script and a shipping script together.
  • Payment Customization can't rename methods with logos as names, such as Shop Pay, Apple Pay and Google Pay. On non-Plus stores, hiding a method hides it everywhere rather than in specific placements.
  • Functions are deterministic. No random numbers, no clock, no printing to logs for debugging. Data has to come from the input query, metafields or cart attributes.

Shopify also recommends Rust as the most performant language for Functions, to avoid failures on large carts. Functions run within 11 million instructions for carts up to 200 lines, and a Ruby script ported line for line into JavaScript can hit that.

How do you use the Scripts customizations report?

The report is your migration checklist. Shopify generates it automatically from the Scripts your store was running, and it's still in the admin after the deadline.

  1. In your Shopify admin, go to Apps, then Script Editor.
  2. Click Replace Shopify Scripts in the "Replace your Shopify Scripts" banner.
  3. Review each section. Depending on your scripts, you'll see Payment gateways, Shipping and Product discounts.
  4. Click each script name under Auto detected to see what it did.
  5. Choose which customizations to keep, then pick how to recreate each one: an existing app or a custom Function.
  6. Export the report as a CSV and use it as your tracker, with one row per rule, an owner and a test status.

Be ruthless at step 5. Scripts tend to pile up over years of promotions, and some rules on the list will belong to campaigns that ended long ago. Every rule you drop is one less thing to build, test and maintain.

Should you use an app or a custom Function?

Use an app when one already does exactly what your script did and your team wants to change it without a developer. Build a custom Function when the logic is specific to your business or would need several apps stacked together.

Functions-based appCustom Function
PlanAny plan (public App Store apps)Shopify Plus only (custom apps)
Setup timeHoursDays to weeks
Monthly costApp subscriptionNone after the build
Who edits rulesYour team, in the app's settingsA developer, unless you build settings into it
FitCommon rules: tiers, BOGO, hide COD, rename ratesLogic unique to your catalogue, customers or ops
MaintenanceApp vendorYou or your developer

Since Scripts were a Plus feature, most stores reading this are on Plus and can use both routes. Shopify's own help pages point Plus stores to Checkout Blocks, Shopify's app for no-code checkout customization, which on Plus covers custom order and shipping discounts with conditional rules, payment and delivery method customizations, and order value limits enforced at checkout. Check it before you buy a third-party app or brief a developer.

For custom Functions, Shopify's Help Center notes that custom apps created in the Shopify admin don't support App Bridge, so Functions-based custom apps should be created through the Dev Dashboard. Your developer will know this, but it's worth knowing if someone quotes you a "quick" admin-created app.

If you're not sure which route fits your old scripts, send me your customizations report and I'll sort them into app, custom Function and drop.

How much work is a Scripts migration?

The work scales with the number of rules you keep and how custom they are. These are my rough planning ranges per rule, including testing, not a quote.

Rule from your old ScriptsUsual routeRough effort
Hide or reorder payment methods (for example, COD)App or Checkout BlocksHalf a day to a day
Rename or hide shipping ratesApp or Checkout BlocksHalf a day to a day
Simple tiered or volume discountApp or Checkout BlocksA day
Discount with exclusions, customer tags or metafieldsCustom Discount Function1 to 2 weeks
Bundle pricing and presentationBundles app or custom Cart TransformA few days to 2 weeks
Order limits, B2B minimums, region blocksCustom Validation FunctionA few days to a week

For a custom build, a Functions engagement covering one or two Functions on an existing Plus store sits at ₹1,50,000 to ₹4,00,000 in my Functions pricing. App-only migrations cost a fraction of that in setup time, plus the app's monthly fee.

How do you test Functions before going live?

Test every Function on a development store first, then in production behind a customer tag, so real buyers don't see half-finished rules. That's the method Shopify's own migration guide recommends.

  1. Build and test on a dev store with shopify app dev. Recreate the carts that used to trigger each script.
  2. Tag test customers. Add a tag such as TESTER to a few customer accounts in your live store.
  3. Gate the Function on that tag. Query the customer's tags in the Function's input and return no operations for anyone else.
  4. Deploy to production and run test checkouts as the tagged customers.
  5. Remove the tag condition once the results match what the script used to do, and redeploy.
  6. Watch the numbers for two weeks: discount totals, payment method mix, shipping method mix and checkout completion.

My test matrix for each rule:

  • Carts just under and just over every threshold
  • Logged-in customer with and without the relevant tag
  • Combinations with your other discounts and discount codes
  • Every market and currency you sell in
  • Mobile checkout, plus Shop Pay and other accelerated checkouts where you offer them
  • For Indian stores, both prepaid gateway orders and COD orders

What I'd do

If your scripts stopped in June and nobody rebuilt them, I'd start this week with the customizations report. Export it, cross out every rule tied to a dead campaign, and rank the rest by revenue impact. Payment and shipping rules usually come first, because they're quick to rebuild and they protect margin. On an Indian store, a COD rule that hid cash on delivery above a set order value is the one I'd check first.

Then I'd try Checkout Blocks or a well-reviewed Functions app for each simple rule, and only write custom Functions for logic that's genuinely yours. On Bug Beater Chairs, the US furniture brand I work with on retainer, the bundle logic that lifted AOV lives in code the brand owns, with no app fee in the checkout path. That's the kind of rule worth a custom build.

If you want this handled end to end, from report to tested Functions, tell me about your store. My Shopify Plus developer page explains how I scope Plus work, and you can reach me directly on the contact page.

Sources

FAQ

Frequently asked questions

  • Do Shopify Scripts still work in 2026?

    No. Shopify stopped allowing Scripts to be edited or published on 15 April 2026, and all Scripts stopped running on 30 June 2026. Shopify's Help Center says any Scripts still published were deactivated and no longer work. Line item, shipping and payment scripts all stopped, so any discount, shipping rule or payment rule that depended on them has to be rebuilt with Shopify Functions or a Functions-based app.
  • What replaced Shopify Scripts?

    Shopify Functions. Shopify's migration guide maps each script type to a Function API. Line item scripts move to the Discount, Cart Transform or Cart and Checkout Validation APIs. Shipping scripts move to Delivery Customization plus Discount for shipping discounts. Payment scripts move to Payment Customization. You either install an app built on these APIs or have a developer build a custom Function.
  • How do I see which Scripts my store was running?

    Open the Shopify Scripts customizations report. In your Shopify admin, go to Apps, then Script Editor, and click Replace Shopify Scripts in the banner. The report groups customizations into Payment gateways, Shipping and Product discounts, and you can export it as a CSV. Click each script name under Auto detected to review it and pick how to recreate it.
  • Do I need Shopify Plus to use Shopify Functions?

    Not for apps. Stores on any plan can use public apps from the Shopify App Store that contain Functions. Only Shopify Plus stores can use custom apps that contain Function APIs, which is what you need for a Function built only for your store. Some individual capabilities are Plus-only too, such as Cart Transform's update operation and payment terms in Payment Customization.
  • Can a Shopify Function hide Cash on Delivery for some orders?

    Yes. The Payment Customization Function API can hide, rename and reorder payment methods at checkout, and Shopify's own examples use Cash on Delivery. Common rules hide COD above a cart value, for certain products or for certain regions. You can't rename wallets with logos such as Shop Pay, Apple Pay or Google Pay. Test the rule with a tagged test customer before switching it on for everyone.
  • How long does it take to migrate Shopify Scripts to Functions?

    It depends on how many scripts you ran and how custom they were. A single payment or shipping rule recreated with an existing app can be done and tested in a day. A custom discount Function with tiers and exclusions usually takes one to two weeks including testing. Start with the customizations report, drop rules you no longer need, and rebuild the ones that affect revenue first.
  • Should I use an app or a custom Function to replace my Scripts?

    Use an app when an existing one covers your rule and your team wants to edit it without a developer. Shopify's own Checkout Blocks app covers custom discounts and payment and delivery customizations on Plus without code. Build a custom Function when your logic is specific to your business, runs on every order, or would need several apps stacked together to approximate.
Revision history· 1 entry
  1. October 26, 2026

    First published.

Last updated October 26, 2026

shopifyshopify plusshopify functionsshopify scriptscheckout