Shopify Scripts stopped running on June 30, 2026. Any scripts still published were deactivated, and nothing was migrated automatically. Discounts, shipping rules and payment rules move to their own Shopify Function APIs. Quantity limits and checkout rules move to Cart and Checkout Validation, and they behave differently. A script usually lowered the quantity in the cart without telling the customer. A validation Function blocks checkout and shows a message instead. It also runs on express checkouts, works on any plan when it comes from an App Store app, and can enforce rules that Scripts never could: store hours, daily order caps and per-customer limits across orders.
Last verified: September 28, 2026, against Shopify's help center, changelog and developer documentation. Sources are at the end.
Disclosure: OrderRules is a checkout validation app, one of the options below. Where Shopify's native tools do the job, we say so.
The timeline
| Date | What happened |
|---|---|
| Feb 2023 | Shopify announces Scripts will end on August 13, 2024 |
| Later | The date moves to August 28, 2025, then to June 30, 2026 |
| Feb 4, 2025 | The customizations report launches, with June 30, 2026 as the deadline |
| Apr 15, 2026 | Scripts can no longer be edited or published |
| Jun 30, 2026 | All Scripts stop running |
Shopify's help center now reads: "Any Scripts that were still published on your store have been deactivated and no longer work." Checkout carried on without them. Whatever a script did simply stopped applying: a discount, a hidden shipping rate, or a quantity cap. If you didn't replace a quantity script, orders over your old limit can go through today.
What replaces each kind of script
Scripts came in three types: line item, shipping and payment. Each maps to a Function API or to a native feature.
| What the script did | Replacement | Notes |
|---|---|---|
| Line item discounts, tiered or BOGO pricing, pricing by customer tag | Native discounts, a discount app (Discount Function API), or B2B catalogs with volume pricing | Up to 25 discount Functions per store |
| Bundles or line price overrides | Cart Transform Function API | Price overrides (lineUpdate) are Plus only |
| Hiding, renaming or reordering shipping rates | Delivery Customization Function API | Up to 25 per store |
| Hiding, renaming or reordering payment methods (for example, no cash on delivery over $500) | Payment Customization Function API | Up to 25 per store |
| Capping quantities, minimums, multiples | Cart and Checkout Validation Function API | Blocks checkout with a message; up to 25 per store |
| Minimum or maximum order value | Checkout Blocks order value limits (native) | All plans since April 13, 2026 |
| Minimum, maximum and increment for B2B buyers | B2B catalog quantity rules (native) | All plans since April 2, 2026; B2B company buyers only |
To see what you had, open Apps β Script Editor and look for the customizations report. It covers payment, shipping and product discount scripts, with recommended apps and Function tutorials for each. It doesn't convert code. A quantity-capping script will appear as a product discount (line item) script, and the report won't necessarily point you to validation, so check those scripts by hand.
Quantity limits: the behaviour changed
This is the part most migration guides skip.
Scripts couldn't block checkout. The Script API had no way to reject a cart; the only "reject" was for discount codes. Stores that capped quantities used a workaround in a line item script: they forced the quantity down, or split the line and dropped the extra units. The customer reached checkout with fewer items than they chose, often with no explanation. These were community workarounds, not documented features.
Functions can't change quantities. Cart Transform can expand, merge or re-present lines, but it can't reduce them. The Function-era tool for limits is Cart and Checkout Validation. It checks the cart and, when a rule is broken, blocks checkout and shows a message, for example "You can buy up to 2 of this item."
What that means when you migrate:
- Write the message. A customer who hits a limit now sees your wording at checkout. Say what to change: "Remove 1 to continue", not "Error".
- Show the limit earlier. Put the limit on the product page and in the cart, so the checkout message is rarely a surprise. Validation apps usually ship a theme block for this. OrderRules shows limits on product pages and can adjust quantity inputs to valid multiples.
- Express checkouts are covered. Shopify states that validation includes express checkouts: Shop Pay, PayPal, Google Pay and Apple Pay. Theme-only quantity limits don't hold there, because buy-now buttons skip the cart.
Rules Scripts could never enforce
Scripts ran in a sandbox. They had no web requests, no database, and, in Shopify's words, they couldn't "involve random or time-based calculations". They saw the current cart, plus a customer's tags, order count and total spent. So three common rules were never possible in Scripts:
| Rule | Why Scripts couldn't | With a validation app |
|---|---|---|
| Close checkout outside store hours, or stop same-day orders after a cut-off | No time-based logic | Checked at checkout against your schedule |
| Cap orders per day or per week for the store or a product | No record of today's orders | The app counts orders and blocks checkout at the cap |
| Limit one customer across orders ("2 per customer, ever") | No per-product purchase history | The app records each customer's purchases and checks them at checkout |
If you gave up on one of these because Scripts couldn't do it, it's worth another look.
Plans: Plus is no longer required
Scripts were Shopify Plus only. Functions are different:
- Public App Store apps with Functions work on any plan, including Basic.
- Custom apps with Functions still need Plus.
- Checkout Blocks order value limits and B2B quantity rules are on all plans since April 2026.
So a store that moved off Plus, or never had it, can enforce checkout rules that once needed Plus.
Where validation doesn't run
Validation Functions cover the online store checkout, express checkouts, the cart, B2B checkouts and draft orders. Shopify lists these as not supported:
- POS
- Subscription renewals (recurring orders)
- Order edits, in the admin or at checkout
- Orders created through the Create Order API
- Pre-order and try-before-you-buy purchase options
If a rule has to hold in one of these places, plan something else, such as staff procedures at POS. In OrderRules, POS orders and subscription renewals still count toward limits even though they aren't blocked. The full list is on our compatibility and known limitations page.
A migration checklist for quantity and checkout rules
- List your scripts. Open the customizations report, and your Script Editor code if you kept a copy. Note every line item script that touched quantity.
- Write each rule in one sentence. For example, "Max 2 of this hoodie per order", "Wholesale buyers order in 12s", or "No orders over $2,000 without approval". It's easier to choose a replacement for a sentence than for Ruby code.
- Take the native options first.
- Order value limits β Checkout Blocks.
- B2B minimums and multiples β B2B catalog quantity rules.
- One huge cart of a stocked item β the add-to-cart limit (Settings β Checkout; inventory-tracked products only).
- Choose an app for the rest. Minimums and multiples for regular shoppers, caps per day or week, per-customer limits across orders, and store hours all need a validation app.
- Rewrite messages as instructions, and show limits on product pages.
- Test every path. Test normal checkout, Shop Pay, a buy-now button and a draft order. Then write down what won't be checked: POS, subscription renewals and order edits.
For a rule-by-rule view of what Shopify now does natively, see Shopify's native order limits vs apps.
Where OrderRules fits
OrderRules is a public App Store app built on Shopify's checkout validation, so it works on any plan. It covers the quantity and checkout rules that Scripts handled badly or couldn't handle:
- Minimum order quantity and step quantity per product or variant, for every shopper. See the minimum order quantity guide.
- Daily, weekly and monthly caps for the store, a product or a collection.
- Per-customer limits across orders by orders, units, spend or weight. Customers must log in; see per-customer purchase limits.
- Store hours and holiday closures that close checkout.
It doesn't set order value minimums (use Checkout Blocks). It has no per-order maximum for a single product; for that, use Shopify's add-to-cart limit or a per-customer daily limit. For how validation works under the hood, see Shopify checkout validation explained.
Sources
- Shopify changelog: Scripts can no longer be edited or published (Mar 12, 2026) Β· Customizations report (Feb 4, 2025)
- Shopify.dev changelog: Shopify Scripts will be deprecated on June 30, 2026
- Shopify Help Center: Script Editor Β· Limitations Β· Transitioning to Functions
- Shopify.dev: Cart and Checkout Validation Function API Β· Cart Transform Β· Shopify Functions availability
- Shopify changelog: Checkout Blocks order value limits on all plans (Apr 13, 2026) Β· B2B features on non-Plus plans (Apr 2, 2026)
- Shopify Community: Shopify Scripts deprecation announcement (Feb 2023)