If your store used a Shopify Script for a special discount, a shipping rule or a hidden payment method, the way you build that rule has changed. Shopify's changelog of 9 April 2026 said Scripts could no longer be edited or published from 15 April 2026, and that all existing Scripts would stop running on 30 June 2026. That date has passed. Shopify recommends Functions as the replacement for discounts, shipping and payments.
This article is for owners and managers, not programmers. It explains what a Function is, who can use one, and what to check in your checkout now. I read Shopify's changelog post and its Functions documentation on 11 November 2026. They give no prices and no app names, so I give none either.
What a Function is, in plain words
A Function is a small piece of code that Shopify runs at a set point in your store, such as when a discount is calculated or when delivery options are listed. It receives information about the cart, applies a rule and returns an answer. Shopify's documentation says Functions are compiled to WebAssembly, that the starter templates are in Rust and JavaScript, and that Shopify strongly recommends Rust for performance and to avoid failures with large carts.
Two details matter for non-technical readers. First, Functions are triggered by customers and by Shopify, and they cannot be called by a web address. You cannot paste a link and run one. Second, the rule lives inside an app. As a merchant you install the app, set up its function in your admin and then use it, for example by creating a discount that uses a new discount type the app provides.
Who can use Functions
The documentation draws a clear line between two ways of using them.
- Public apps. Any Shopify plan can use public apps from the Shopify App Store that contain functions. You install the app and configure it.
- Custom apps. A custom app that uses the Function APIs needs Shopify Plus. The page also says some function capabilities are Plus only, and points to a reference page that lists which.
So the first question is not how to write a Function. It is whether an existing public app already does what your Script did. If one does, you may not need custom code at all. Shopify's changelog says the same: some customisations may be handled by public apps. If you are weighing Plus for this reason, see our guide to Shopify Plus or Advanced.
The kinds of rules Functions cover
Shopify's tutorials show the range. The Functions documentation names four examples: a discount function, hiding a payment option, renaming a delivery option and validating the checkout. In everyday terms these are rules like these:
- Give a discount in a way the standard discount settings do not allow.
- Hide a payment method in situations you choose.
- Show a delivery option under a clearer name.
- Stop an order from going through when the cart breaks a rule you set.
These are the same families Shopify recommends Functions for: discounts, shipping and payments. If your old Script did one of these jobs, your replacement will probably be one of them.
What to check now that Scripts have stopped
If you were not told about the change, or you were told and nobody finished the work, treat the following as a short audit.
- List what your Scripts did. Open each Script, or ask your developer, and write the rule in one sentence. Include who it applied to and which products or countries.
- Use Shopify's report. The changelog says Shopify provides a Scripts customisations report that shows what can move to Functions or apps. Ask your developer to run it, and read the changelog post for where to find it. The post also says the Help Center has a guide to the transition.
- Decide for each rule. Does a public app do this? Does it need a custom Function, and if so is your plan Plus? Or is the rule no longer needed?
- Check the live checkout. Add products to the cart as a normal customer and compare the result with what your Script used to do. A discount that no longer applies, a payment method that reappears or a delivery option with the old name are the things to look for.
- Test each market. Rules often differ by country, currency or customer type. Our multi-country checkout test plan shows how to go through them.
- Write down who owns each rule. A rule inside an app is easy to forget until it fails. Record the app or Function name, who set it up and where it is configured.
Questions to ask a developer or an app vendor
- Is there a public app that already covers this rule, and what does it not cover?
- If we need a custom Function, which plan do we need and why?
- Which language will you use? Shopify recommends Rust, so ask what the reason is if the answer is different.
- How will you test it with a large cart and with several currencies?
- What happens to the checkout if the Function fails or the app is removed?
- Who maintains it when Shopify changes an API, and how will we hear about it?
The documentation I read does not describe pricing, usage limits or what happens on failure, so ask these questions of the app vendor or your developer. Do not assume.
A worked example, in plain words
Here is an invented case to show the thinking. A store used a Script to give a lower price when a customer bought three items from one collection, and to hide cash on delivery for orders above a set value. After 30 June the discount no longer applies and the payment method shows for every order.
The owner writes the two rules in one sentence each. For the discount, a search of the App Store turns up a public app with a bundle discount type, so a developer installs it, sets the rule and checks the cart. For the payment rule, no public app fits, so the store needs a custom Function. That needs Plus, so the owner has a plan decision to make, or a different way to meet the same aim, such as showing a note at checkout. The two rules end up in two different places, and the owner records both. The point is that each rule is judged by itself, not moved across as a bundle.
Three outcomes for every old rule
- Replace it with a public app. Lowest effort, and available on any plan, but you depend on the vendor and you accept what the app can do.
- Replace it with a custom Function. The most control, but it needs Plus, a developer and a test plan, and someone must maintain it.
- Retire it. If the campaign is over or the rule saves less than it costs to keep, remove it and say so in your records.
Keep the rule simple
A Script is sometimes written for one campaign and then left in place for years. A Function is a good moment to ask whether the rule is still worth having. Every extra rule adds testing in every market, and complicated stacking of discounts is a common source of confusing prices. Keep the ones that earn money or prevent a real problem. Retire the rest, and tell the team that they are gone.
Our apps and plugins page describes the Shopify app work we do. To talk about a rule you used to have, send a short brief on the contact page.
Sources
- Shopify Scripts will be deprecated on June 30, 2026 (Shopify developer changelog): post of 9 April 2026: no editing or publishing from 15 April 2026, Scripts stop running on 30 June 2026, Functions recommended, Scripts customisations report (checked 11 November 2026)
- Migrating from Shopify Scripts (Shopify developer docs): Functions overview, plan rules, WebAssembly, Rust and JavaScript templates, tutorial examples; page shows no date (checked 11 November 2026)
