Shopify
Shopify Functions now that Scripts have gone
Scripts stopped running on 30 June 2026. Functions are the replacement, but they aren't a direct translation: they run under strict limits and answer a narrower question, so review what the business needs, not what the old Ruby did.
By itmarkerz Technologies. Updated 30 October 2026.
What happened
According to Shopify’s changelog, editing and publishing new Scripts ended on 15 April 2026, and all Scripts ceased to execute on 30 June 2026. Shopify names Functions and public apps as the replacements, and its Scripts customisations report points to options for those that were active.
What replaces what
The usual mapping is below. Function APIs are listed in Shopify’s Functions reference, which is the place to check details for your case. Not every old script will have an exact equivalent, so test the behaviour rather than assuming it.
| What the Script did | Function API to look at | Example |
|---|---|---|
| Line-item discounts | Discount | Buy three, cheapest free; tiered wholesale prices |
| Changing cart lines | Cart transform | Bundles shown as a single line, or expanded |
| Hiding or renaming shipping rates | Delivery customization | No express for oversized items |
| Hiding or reordering payment methods | Payment customization | No cash on delivery above a set order value |
| Blocking an order | Cart and checkout validation | Minimum quantity for trade customers |
Functions also cover things Scripts weren’t used for: fulfilment constraints, order routing for choosing locations, and pickup option generators.
The constraints that shape your design
| Constraint | Figure |
|---|---|
| Instructions per run, carts up to 200 lines | 11 million; scales up for larger carts |
| Compiled binary size | 256 kB |
| Runtime linear memory | 10,000 kB |
| Randomness and clock functions | Not available |
| Printing to STDOUT or STDERR for debugging | Not available |
| Calling an outside service with fetch | Limited to custom apps on Enterprise stores |
The practical result is that a Function can’t look things up as it goes. Data it needs has to be available up front, through its input query, and through metafields on products, customers or the Function’s own configuration. So design the configuration first. A good discount Function lets a merchandiser change the tiers in an admin screen, with no redeployment. Code with hard-wired prices means a developer every time the promotion changes.
App first, custom second
- Run the customisations report, and list what each script did in plain business terms.
- Delete anything nobody needs. A list of old promotions usually shrinks a lot.
- Check whether Shopify now does it natively, or if a public app does. These work on any plan.
- Build a custom Function only for what remains, and only if you are on Plus.
- Test real carts: mixed discounts, different markets and large baskets near the limits.
Not sure this is the right place for a change? See theme, app or Function.
Questions
Are our old Scripts still running?
No. Shopify's changelog set June 30, 2026 as the date all Scripts stop executing. If a discount or shipping rule went missing around then, this may be why, and you need a Function or an app to replace it.
Do we need Shopify Plus to use Functions?
To use a custom app with Function APIs, yes. Stores on any plan can use public apps from the Shopify App Store that contain Functions. So first check whether an existing app does what you need.
Do we have to write Functions in Rust?
Functions compile to WebAssembly, so any language that compiles to it can work, but Shopify says Rust is 'recommended and strongly preferred'. The tight instruction limit is the practical reason.
More on Shopify
- Shopify ERP integration: what to sync, in which direction, and what breaksA field-level sync table, current API limits and the failure cases to plan for.
- Moving to Shopify: a migration checklist that protects your URLsThe import order, redirect rules and traps from Shopify's own documentation.
- Theme, app or Function? Where a Shopify change should liveA table for deciding, before anyone quotes you for the wrong kind of work.
Lost a rule when Scripts ended?
Tell us what the old script did and which plan you are on. We will tell you whether an app covers it or a custom Function is needed.
We reply within one business day (IST).