On 30 June 2026, every Shopify Script stopped running. A Script was a small piece of code, written inside Shopify, that controlled discounts and shipping rules. Stores that had bought their discount logic as a Script had to rebuild it. Stores that had written that logic into a custom app (software built just for that store) kept running. One date settled a years-old argument about building against buying, and it did not settle it the way either camp expected.
The short answer. Ask which layer the work belongs on, not whether to build or buy. Shopify’s own platform handles some of it for free. Apps handle the parts that are the same for every store. You build only what is specific to how your business makes money. Everything left over gets wired together.
Autonomous Technologies builds and runs the systems behind Shopify stores. We work for founders and operators who are accountable for the store after launch. The wrong call here costs you a quarter of engineering time, or an app bill that grows every year. That is why this sits inside our integrations work, which means connecting your store to your other software. Every platform claim below links to the vendor’s own documentation, checked 21 September 2026.
Who this is for. You run a Shopify or Shopify Plus store. You are deciding whether to install another app, pay a developer, or wait. Who this is not for. Anyone choosing a platform for the first time. Anyone who wants a scoring spreadsheet. The decision below is about ownership and running cost, not a weighted matrix.
Four layers, not two choices
The old framing was build against buy. On Shopify there are four layers, and picking the wrong one is the expensive mistake.
The platform layer is what Shopify already does. Payments, checkout, tax, accounts, fulfilment records. You do not build these and you do not buy them twice.
The app layer covers work that is the same for thousands of stores. Reviews, email, loyalty, help desk. You rent these. You accept the vendor’s roadmap in exchange for speed.
The custom layer is logic specific to how your business makes money. Your pricing rules. Your wholesale terms. Your routing between warehouses. Nobody sells this, because nobody else needs it.
The wiring layer joins the other three. It moves an order into your accounting system. It tells a warehouse to pick. It is where most stores quietly lose their weekends.
Put every open request on one of those four layers before you price it. Half the build-against-buy arguments we hear are two people describing different layers.
Buying means renting a roadmap, and Shopify put a date on that
Shopify Scripts was the platform’s own customisation tool. Merchants used it for years to write the rules for discounts and shipping. Then Shopify retired it.
The changelog, Shopify’s public list of product updates, is blunt about the two dates. From 15 April 2026, “editing and publishing new Shopify Scripts will no longer be possible”. From 30 June 2026, “all Shopify Scripts will cease to execute entirely”.
Checkout moved on the same principle. Shopify states that “as of August 28, 2025, the additional scripts section in the Checkout settings is view-only”. Non-Plus stores (those not on Shopify’s top-tier Plus plan) have until 26 August 2026 to upgrade their Thank you and Order status pages, the screens a customer sees after paying, per Shopify’s checkout upgrade guide.
| Vendor change | Date it took effect | What a store had to do |
|---|---|---|
| Additional scripts box made view-only | 28 August 2025 | Move tracking to a pixel. |
| Shopify Scripts editing stopped | 15 April 2026 | Freeze all discount logic. |
| Shopify Scripts execution stopped | 30 June 2026 | Rebuild on Functions or an app. |
| Thank you page upgrade, non-Plus | 26 August 2026 | Re-do post-purchase customisation. |
| Custom pixel maintenance | Ongoing since install | Own the code, with no vendor. |
That is not an argument against buying. Buying is usually right. It is an argument for knowing that the roadmap is not yours, and for keeping a list of what would break if a vendor gave you ninety days.
Building commodity software is how a small team loses a quarter
The opposite failure is quieter and more common. A team decides to build an internal tool rather than pay a licence.
It works for a month. Then it needs error handling, which means a plan for when something fails. Then retries. Then an audit log, a record of who changed what, because someone changed a price and nobody knows who. Six months later your best developer maintains an internal copy of a tool you could have rented, and nobody enjoys using it.
Code is a liability, not an asset. Every line has to be patched, secured and explained to whoever arrives next. That bill does not appear in the original estimate. Neither does compliance. Building your own authentication, meaning the login system, looks cheap. Then a customer asks for a SOC 2 report, an independent audit showing you protect data properly. Now you are paying an auditor on a schedule you did not plan.
The same trap has a newer shape. If what sets you apart is a thin layer on top of someone else’s AI model, reached through an API (a way for one program to ask another for something), you do not have a product. You have a feature the model’s maker can ship themselves. Rent the reasoning. Own your data and the logic that finds the right information to feed the model.
Shopify’s native layer is the one most stores forget to check first
Before you price an app or a build, check whether the platform already does it.
Shopify Functions “allow developers to customize the backend logic that powers parts of Shopify”. In plain terms, a Function is a small piece of custom code that runs inside Shopify’s own checkout. Functions run inside key purchase flows. Discounts, cart contents, delivery options, payment method availability, fulfilment routing and checkout validation (checks that block bad orders) all have Function APIs, meaning ready-made places for developers to plug code in. This is where Scripts logic went.
Shopify Flow is the automation tool Shopify gives you. It is free on Basic, Grow, Advanced and Plus. A workflow is a trigger (something happens), a condition (a check) and an action (what Flow then does). The limits matter to this decision. The Send HTTP Request action, which lets Flow send data to another system, is restricted to Grow, Advanced and Plus. Custom app tasks from partners, meaning extra steps built by outside developers, are Plus only. Usage limits follow the API rate limits on your plan, the caps on how often programs can call Shopify.
So the honest order of questions is short. Can Flow do it? Can a Function do it? Is there an app whose vendor will maintain it? Only then do you write code.
The wiring layer is where ownership actually gets decided
Between a rigid app and a custom service sits the wiring. This is the middle path, and it is where we do most of our work.
Take a common job. An order comes in, a credit check runs, the customer record updates, and a warehouse gets told to pick. The heavy version is a custom service. It brings a hosting bill, key management (keeping passwords and access keys safe), a logging system (a record of what the service did) and an on-call alert that can wake someone at 03:00. The lighter version is a Flow workflow for the Shopify-side steps. For the parts Flow cannot reach, add a self-hosted workflow runner such as n8n, a tool you run on your own server that chains steps together.
You own the logic. You rent the plumbing. When a vendor changes an endpoint, the address your system uses to reach theirs, you edit one node, a single step in the workflow. You do not have to rebuild and republish a whole service.
Built carefully, that layer just keeps running. One platform we built needed no backend work (changes to its behind-the-scenes code) for 18 months, then for 10 more, between October 2023 and July 2026, while the site stayed live. We wrote up how it was built. The detail for order systems sits in the guide to linking Shopify with an ERP system. An ERP, short for enterprise resource planning, is the back-office software that tracks orders, stock and accounts.
What breaks, and who owns it
The objection we hear is that this is theory, and the store needs the feature this month. Fair. The failures below are what that urgency costs six months later.
| What breaks | The figure to check | Who owns it |
|---|---|---|
| App vendor sets a sunset date | 90 days of notice, or fewer | You, from a written list. |
| Custom pixel or app left unmaintained | 0 vendor updates since install | Your developer, named. |
| Logic split across 3 apps and a theme | 1 discount rule in 4 places | Your operations owner. |
| Flow action blocked by plan | Send HTTP Request, Grow and above | Whoever owns the plan. |
| Internal tool with no second maintainer | 1 person who understands it | You, before they leave. |
The last row is the one that ends companies’ quarters. A tool one person understands is not owned by the business. It is on loan from that person.
Decide with three questions, then write the answer down
First, would a competitor gain anything by copying it? If yes, it is probably core, and you build it. If no, rent it.
Second, what happens if the vendor leaves? Write the recovery path in two sentences. If you cannot, the dependency is larger than you thought.
Third, who maintains this in eighteen months? Name a person, not a team. If the honest answer is nobody, buy the version with a support contract, even if building looks cheaper today.
Your next step is a one-page list of every app and every piece of custom code in the store, with an owner’s name beside each line. Most stores cannot complete that page, and the gaps are the answer.
Common questions
Should I replace an app with custom code to save the monthly fee?
Rarely, on fee alone. A rented app comes with a vendor who patches it. Custom code moves that job to you, and it never comes off the list. Replace an app when its behaviour is wrong for your business, not when the invoice annoys you.
What happened to Shopify Scripts?
Shopify retired it in two steps. Editing and publishing new Scripts stopped on 15 April 2026. All Scripts stopped executing on 30 June 2026. The replacement is Shopify Functions, which customise backend logic in flows such as discounts, delivery, payments and checkout validation.
Is Shopify Flow enough, or do I need a real integration?
Flow covers a lot, and it is free on Basic, Grow, Advanced and Plus. Check the limits first. The Send HTTP Request action needs Grow or above, custom partner app tasks need Plus, and usage follows your plan’s API rate limits. Past those lines you need a proper integration.
How do I know if something is core to my business?
Ask whether a competitor copying it would take anything from you. Pricing rules, wholesale terms and routing logic usually qualify. Reviews, email sending and help desk software usually do not. Build the first group. Rent the second.
We already built an internal tool. Should we scrap it?
Only if nobody can name its maintainer. A working tool with one named owner and a second person who has read the code is fine. A working tool with neither is an outage waiting for a holiday. Replace that one with something that carries a support contract.
Sources, all checked 21 September 2026. Shopify: the Shopify Scripts deprecation changelog, the Shopify Functions API, Shopify Flow, the checkout upgrade guide and customer events.



