Shopify Scripts stopped executing on 30 June 2026. Not deprecated, not warned about at runtime, stopped. If your store ran a Script that applied a trade discount, hid a payment method, or renamed a shipping rate, that logic has been absent from your checkout for about a month.
The reason this is worth a diagnostic rather than a migration guide is that nothing broke loudly. Checkout still works. Orders still complete. The discount just isn't applied any more, and the customer paid full price without either of you noticing.
Two dates, not one
Most coverage only mentions the June date. There were two, and the first one matters for a reason people underestimate:
| Date | What changed |
|---|---|
| 15 April 2026 | Editing and publishing Scripts became impossible. Every Script in production froze as-is. |
| 30 June 2026 | Scripts ceased to execute entirely. |
The April date is the one that catches teams out. For those ten weeks, Scripts were still running but could not be fixed. If a bug surfaced in that window, the only options were to delete the Script or live with it. Some teams deleted, and the deletion is now indistinguishable from the June shutdown when you're reading back through order history.
The five-minute check
Start in the admin, because Shopify generated a report specifically for this.
1. Look for the Scripts customizations report. In your admin, go to Settings → Checkout and look for the customizations report, or open the Script Editor app if it's still installed. The report lists every Script that was active on the store, what it did, and Shopify's suggested replacement path. It can be exported as CSV.
One important caveat: the report only appears if the store had active Scripts. If you don't see it, that means either there were never any Scripts, or they were already removed, and those two situations look identical from the admin. If you inherited the store, assume the second until you've proved the first.
2. Compare order data across the cutover. This is the check that actually finds silent breakage. Pull orders from a fortnight either side of 30 June and compare:
- Average discount value per order. A step change on 1 July means a discount Script died.
- Orders from your trade or wholesale customer segment, specifically. Tiered pricing was the single most common Script use case, and those customers are the least likely to complain; they’ll just quietly notice the price went up.
- Shipping method distribution. If a Script was hiding express shipping for certain postcodes or heavy carts, those options are visible again now.
- Payment method distribution. Same logic: hidden or reordered payment methods are back to default.
3. Check what your team stopped talking about. Search your helpdesk for tickets mentioning pricing, discount codes not applying, or unexpected shipping options, filtered to July. Silent failures usually surface as a slow trickle of confused customers rather than an incident.
What Scripts actually did, and where it went
Scripts covered three surfaces. Each has a Functions equivalent, but the mapping is not one-to-one:
| Script type | Replacement |
|---|---|
| Line item scripts (discounts, tiered pricing) | Discount Functions: product, order and shipping discount types |
| Shipping scripts (hide/rename/reorder rates) | Delivery Customization Function |
| Payment scripts (hide/rename/reorder methods) | Payment Customization Function |
The awkward cases are Scripts that did several of these at once, or that depended on reading cart state in ways Functions handle differently. A Script that walked the whole cart applying conditional logic often becomes two or three separate Functions, because Functions are scoped to a single extension point by design.
If you find something broken
The honest answer is that there is no fast fix. Scripts cannot be re-enabled, and the migration path is a rebuild on Functions rather than a port: Functions are compiled WebAssembly, not Ruby, and the execution model is different enough that the old logic is a specification rather than a starting point.
What you can do quickly is stop the bleeding: if a trade discount has been missing for a month, a manual discount code for affected accounts buys time while the Function gets built. That's worth doing on the same day you find it.
The rebuild itself is covered in the next article, with code.
Dates and behaviour in this article were verified against Shopify's developer changelog and Help Centre on 30 July 2026. Shopify's platform documentation moves quickly; check the current docs before acting on anything time-sensitive.