Quick answer
Shopify Scripts stopped executing on June 30, 2026. If an old Ruby Script used to change line-item prices, hide shipping rates, or rearrange payment methods, that logic is not running anymore. Recover the intended behavior with a compatible app or a Shopify Function, then test the checkout result rather than assuming that an installed app or a configured discount proves the rule works.
On this page
What changed, in plain English
Shopify Scripts were Ruby programs managed through the Script Editor app, primarily on Shopify Plus. They could alter discounts, shipping, and payment choices while a buyer checked out. Shopify stopped allowing edits or new publications on April 15, 2026, and deactivated remaining Scripts on June 30, 2026. The old code can remain useful as a specification, but it is not an executable checkout customization.
Shopify Functions is the supported server-side extension model. Functions are packaged in apps and use distinct APIs for distinct jobs. A discount Function is not interchangeable with a delivery or payment customization. Checkout UI extensions, meanwhile, are for supported checkout interface surfaces; they do not replace the pricing engine.
How to restore the missing behavior
1. Inventory the actual rules
In Shopify admin, open Apps → Script Editor and look for the Replace Shopify Scripts banner and customizations report. Shopify says this report lists previously active customizations, often grouped under product discounts, shipping, and payment gateways, and can be exported as CSV. Save the original Ruby source for reference.
For each rule, write down its trigger and outcome: customer eligibility, product/SKU selection, quantity thresholds, discount math, shipping country, payment gateway, exclusions, and the message a buyer should see. Include which checkout surfaces and sales channels matter. This is a better specification than a literal line-by-line Ruby translation.
2. Map the behavior to the correct replacement
| Old Script behavior | Likely replacement | What to verify |
|---|---|---|
| Discount a product, line, or order | Discount Function or a Functions-powered discount app | Eligibility, combinations, fixed vs. percentage math, currency conversion |
| Discount shipping cost | Shipping discount Function or compatible app | Eligible delivery options and actual discounted rates |
| Hide, rename, or reorder shipping methods | Delivery Customization Function | Rates shown for every destination and fulfillment case |
| Hide, rename, or reorder payment methods | Payment Customization Function | Wallets, accelerated checkouts, payment country, B2B eligibility |
| Validate a cart or checkout condition | Cart and Checkout Validation Function, where supported | Server-side enforcement, not only a disabled button |
Do not assume every Ruby construct has a one-to-one Function operation. Review the current Function API’s input fields, supported operations, availability, and plan restrictions before promising parity. For complex bundles or price transformations, check whether the behavior belongs in Cart Transform rather than a discount.
3. Choose an app or build a custom Function
For a common volume discount or shipping rule, a supported app can be the fastest path. For proprietary eligibility logic or unusual combinations, use a custom app created in the Shopify Dev Dashboard with the required Function extension. Shopify notes that admin-created custom apps do not support the App Bridge setup required for custom Functions-based apps; build and connect the app through the supported developer workflow.
Keep configuration such as eligible collections, customer groups, and percentages out of hard-coded deployment-only constants when staff need to edit them. Use app-owned configuration/metafields where supported, and ensure the Function reads only the data available to its target. A Function does not ordinarily fetch arbitrary network data during checkout.
4. Test the business rules, not just the deployment
Build a test matrix before activation. For discounts: eligible and ineligible items, one and multiple quantities, discount combinations, subscriptions, and presentment currency. For shipping: domestic and international addresses, multiple fulfillment locations, and free-shipping thresholds. For payment: card, wallets, manual methods, and B2B customer contexts. Check both the amount displayed and the final order values.
Use a development/test environment and controlled test orders where possible. Compare outcomes with the documented old behavior, not with an assumption that the old Script still runs. Then watch real order data after release for missing discounts, unexpected rates, and checkout failures.
Common misunderstanding
“Checkout Extensibility replaced Shopify Scripts, so adding a checkout block will restore my discounts.” No. Checkout Extensibility and the Shopify Scripts sunset are related modernization efforts, but they are different technical problems. Checkout UI extensions display or collect supported UI information. Shopify Functions (or compatible apps built on them) execute the supported backend pricing, delivery, and payment logic.
“The Script Editor app is still installed, so the Script must still work.” Installation and execution are different things. Shopify explicitly states that previously published Scripts were deactivated after June 30, 2026.
How to test this
- Find one historically Script-controlled rule and record its expected result.
- Reproduce the qualifying cart and a nearly identical non-qualifying cart.
- Test the checkout in the relevant market, currency, customer context, and shipping destination.
- Confirm the correct discount, shipping methods, or payment methods appear before placing the order.
- Place a controlled test order; compare totals and order-level discount details.
- Repeat for edge cases and review app/Function logs or diagnostics if available.
Sources and further reading
- Shopify Help Center — Transitioning from Shopify Scripts to Shopify Functions (confirms the June 30, 2026 cutoff and report).
- Shopify developer changelog — April 9, 2026 announcement.
- Shopify developer docs — Discounts and discount classes.
- Shopify developer docs — APIs for apps and Function execution model.

