On June 30, 2026, Shopify Scripts stop executing. If you run a Plus store and your discount logic, shipping rules, or hidden-payment-method tricks were built on Scripts, they go dark in weeks. Default behavior takes over. Your team will notice immediately.
Shopify Functions is the official replacement. And here's the part most articles bury: Functions don't just replace Scripts for Plus merchants. They unlock checkout customization for every plan. So if you've been on Basic or Advanced for years and watched Plus stores run BOGO bundles you couldn't touch, that gap just closed.
This guide explains Functions in plain English. What they are, what they unlock, what they can't do, and how to use them without writing WebAssembly. No filler, no boilerplate dev-doc copy-paste. If you're auditing your Shopify stack right now and trying to figure out what changes in 2026, this is the piece to read before you spend a dollar on an agency.
Hear what AI support calls sound like for your store. Just paste your Shopify URL and get sample calls in under 20 seconds, no email required. Listen to demo calls for my store.
Shopify Functions in plain English
A Shopify Function is a small piece of custom code that Shopify runs server-side during checkout, cart updates, or fulfillment decisions. It runs inside a sandboxed WebAssembly runtime on Shopify's own infrastructure.
You don't host it. You don't scale it. Shopify does that. Your job (or your developer's job, or your app's job) is to write the rule. Shopify executes it in under 5 milliseconds, every time a customer touches the relevant part of your store.
Functions replace Shopify Scripts. Scripts were Ruby code that only Plus merchants could use. They were slow, prone to timeouts, and only let you customize a narrow slice of checkout. Functions are the rebuild: faster, broader, available to more plans.
Here's the practical shape:
| Property | Shopify Scripts | Shopify Functions |
|---|---|---|
| Language | Ruby | Rust, JavaScript, or anything compiling to Wasm |
| Performance | Slow, timeout-prone | Under 5ms execution |
| Plan availability | Plus only | All plans (public apps); Plus (custom apps) |
| Configuration | Script Editor only | Admin UI via apps, or via app developers |
| Status | Dies June 30, 2026 | Active, the path forward |
Two ways to get a Function running on your store. You install an app from the Shopify App Store that ships a Function, or you hire a developer to build a custom one. Most merchants will take the app path. That's fine. The outcomes are the same.
If you've already built a discount or bundle stack using third-party apps like Yotpo, Klaviyo, or Skio, some of those vendors have already migrated their underlying logic to Functions. You don't have to do anything. Others are still running on the old plumbing. Worth a quick check with each vendor before June.
The Scripts shutdown deadline (and why this matters even if you're not on Plus)
Two dates to know.
April 15, 2026: you can no longer edit or publish new Scripts. Anything already running keeps running, but the door closes on changes.
June 30, 2026: full shutdown. Every Script on every store stops executing. Your checkout reverts to Shopify default behavior. According to the Shopify developer changelog, this deadline has been extended twice. There won't be a third.
If you're on Plus and you have Scripts in production, you need to act now. Open your admin and run the Scripts customizations report. Map each Script to a Function (or to an app that ships a Function). Test in parallel. Cut over before the deadline.
If you're NOT on Plus, the news is different. Scripts never worked for you. Functions do. Custom discount logic, custom shipping rules, hidden payment methods on specific orders. All of it just became available on Basic, Shopify, and Advanced plans through public apps. Shopify has noted that "brands that leverage Shopify Scripts see their average order value increase by 20%." Non-Plus stores were sitting outside that lever for years. Not anymore.
If you also need to keep Shopify Plus features in mind for upgrade planning, the Functions question is one input. But the upgrade decision isn't tied to Functions anymore. You can run sophisticated checkout rules without being on Plus. Check the full Shopify Plus benefits breakdown before making that call.
What Functions can actually do (the seven core APIs)
Functions cover seven main extension points. The official names sound dev-heavy, so here's what each one means for your store.
Custom discounts (Product, Order, and Shipping Discount Functions)
These let you build any discount rule that's more complex than Shopify's stock options. BOGO. Tiered ("spend $100 get 10% off, spend $200 get 15%"). Customer-tag-specific ("VIP customers get free shipping"). Free shipping thresholds.
Example: an apparel brand uses an Order Discount Function to give 15% off when a customer buys three items from the same collection. Native Shopify discounts can't do that. A Function can.
Hide, rename, or reorder payment methods (Payment Customization Function)
You can suppress or rearrange payment options based on what's in the cart, the customer's tags, or the order total.
Example: hide Cash on Delivery for any order over $2,000. Hide PayPal for B2B customers who pay on net terms. Rename "Klarna" to "Pay in 4 with Klarna" for clarity.
Hide, rename, or reorder delivery options (Delivery Customization Function)
Same shape, for shipping methods.
Example: hide overnight shipping for fragile glassware items. Rename "Standard Shipping" to "5-7 business days" so customers see the timeline. Reorder methods so the cheapest one appears first.
Bundle and merge cart line items (Cart Transform Function)
This is where the bundle and subscription apps live. Cart Transform lets a Function expand one bundled SKU into its component line items (so inventory tracks correctly), or merge separate items into a single bundle line.
Example: customer buys a "3-pack starter bundle" SKU. The Function expands it at checkout into three individual products, each pulling from real inventory. According to Skailama's customer data, one brand (Cove) drove $4.4M in bundle revenue using a Cart Transform-based app. Most of the heavy Shopify upsell apps on the App Store now use Cart Transform under the hood.
Block checkout when business rules break (Cart and Checkout Validation Function)
You define rules. The Function blocks checkout if the rules fail. Customer sees an error and has to fix the cart first.
Example: block checkout for B2B customers who haven't hit the minimum order quantity. Block checkout if a restricted-shipping-state customer added a regulated product. Pairs well with a strong returns app so the customer who almost broke a rule doesn't bounce off the cart and complain by phone an hour later.
Route orders to the right warehouse (Location Rule Function)
This decides which fulfillment location handles each line item.
Example: subscription items always ship from your West Coast warehouse. One-time purchases route based on customer ZIP. Saves on shipping cost and improves delivery time. If you're moving from another platform, fold this into your broader Shopify migration timeline so the warehouse logic lands at the same time as the Functions rebuild.
Customize fulfillment constraints
Used for advanced fulfillment logic. Require that both halves of a bundle ship together. Force certain SKUs to a specific carrier. Tie inventory pickup logic to location.
| Outcome you want | Function API |
|---|---|
| Custom discount logic | Product / Order / Shipping Discount |
| Hide a payment method | Payment Customization |
| Hide a delivery option | Delivery Customization |
| Expand or merge cart items | Cart Transform |
| Block checkout | Cart and Checkout Validation |
| Pick the fulfillment warehouse | Location Rule |
| Force a bundle to ship together | Fulfillment Constraints |
What Shopify Functions can't do
This is where merchants get burned. Four hard limits.
No external API calls. Functions are hermetically sandboxed. They cannot reach out to your warehouse system, your ERP, your CRM, or any third-party service during execution. They only see the data Shopify hands them via the GraphQL input query. So a Function cannot, for example, check live stock at your offsite 3PL before allowing checkout.
No persistent state. Every invocation is fresh. The Function cannot "remember" a customer's previous visit, store a counter, or run A/B tests on its own. Same input always produces the same output. Stateless and deterministic.
11 million instructions per invocation. Hit that, the Function fails with a "RunOutOfFuel" error. Developers in the Shopify community forums report Functions silently failing on carts with around 10 bundled products when discount logic gets complex.
5 millisecond execution cap. Forces the logic to stay simple. Rust functions typically land at 3-5ms. JavaScript Functions land at 10-30ms in real-world use, which is past the cap on heavier carts. That's why Shopify recommends Rust for large catalogs.
Why this matters. Anything that needs to "wait, let me ask another system first" is not a Function job. It's a regular app, a webhook, or a Shopify Flow workflow. Use the right tool. Trying to force-fit a Function into a job it can't do is the fastest way to break a Black Friday checkout.
If you've watched a botched Functions deploy take down a checkout during a sale, you know the cost. The phone starts ringing immediately. Customers asking why the discount didn't apply. Your team scrambling to manually issue refunds. A solid Shopify customer service app helps you triage tickets, but if the phone line lights up during a Functions failure, you need AI phone support to absorb the volume while engineering rolls back.
Do you actually need to use Shopify Functions?
Quick filter to save you research time.
Use Functions if you need to customize what happens during checkout. Discounts, shipping rules, payment visibility, validation, cart structure. That's the whole point of Functions.
Use Functions if you're on Plus and you have Shopify Scripts running. You have weeks until shutdown. Migrate now.
Use Functions if you've been on Basic or Advanced and you've wanted custom checkout logic but assumed it was Plus-only. It's not. Install a Function-based app and you're in.
Skip Functions if your customization needs live data from outside Shopify during checkout. Use a regular app with a Storefront API integration or a webhook instead.
Skip Functions if your store doesn't need checkout customization at all. Default Shopify is good. Don't add complexity for its own sake.
Honest take: most Shopify merchants will never write a Function themselves. They'll install an app that ships one. That's the right call. The app handles the Wasm compilation, the deployment, the testing, and the admin UI. You just configure the rule in plain English.
Ready to see what AI phone support looks like alongside your checkout customization stack? Start a free trial. Live in under an hour. Pairs naturally with whatever Shopify helpdesk app you already run.
How to use Shopify Functions without writing code
Three paths in. From easiest to hardest.
Path 1: Public apps that ship Functions
Browse the Shopify App Store for apps in the checkout customization category. Several apps now wrap Functions in a no-code UI.
- FC (Functions Creator Scripts): free, 5.0/5 across 82 reviews, Built for Shopify certified. Covers discounts, payment customization, delivery customization, and validation. Migration mode for Scripts users.
- Sway Functions: free plan (3 functions), Pro at $15/month for unlimited. 4.4/5 rating.
- SupaEasy AI Functions Creator: free for dev-store testing, Premium $49/month, Advanced $99/month adds the AI generator. 5.0/5 across 216 reviews. ShopTank winner at Editions.dev 2025.
Install. Pick the rule template. Set the conditions in the admin. Save. The app deploys the Function for you.
Path 2: AI-assisted Function generation
Newer flow. You describe what you want in plain English ("hide PayPal for orders over $2,000 from B2B customers"). The tool generates the Function. SupaEasy does this. Developers can also use Claude Code with the official Shopify Dev MCP to generate Function scaffolding fast.
This path is good if you have a slightly weird rule that the off-the-shelf apps don't quite cover, but you don't want to hire an agency.
Path 3: Custom Function built by a developer
For non-standard logic. Multi-step validation. Tightly-coupled discount stacking. Anything where you need full control of the Wasm output.
Custom apps with Functions APIs require Shopify Plus. Agencies typically charge $2,000 to $15,000 for a full Functions migration depending on complexity. 34Devs reported a Plus merchant case study where four custom Functions recovered 180,000 EUR in margin.
Real merchant outcomes from the app path:
- Cove: $4.4M in bundle revenue using Easy Bundle Builder (Cart Transform Function)
- Topologie: $2.5M in order value via Kite (discount Functions)
- Evry Jewels: $465K Black Friday revenue using a gift box bundle
- Arbor Made: 16% checkout conversion lift with Checkout Wiz
Numbers are from Skailama's published case studies. The point isn't the exact dollar figure. The point is these are real stores doing real volume, and they're not writing Rust.
How to migrate from Shopify Scripts (if you had them)
A four-step playbook, in order.
Step 1: Open the Scripts customizations report. In your Shopify admin, go to Settings → Checkout → Scripts. The customizations report lists every active Script on your store. This is your migration backlog.
Step 2: For each Script, decide app vs custom. Simple discount logic, free shipping thresholds, payment hiding, delivery hiding: these are app territory. Anything bespoke (multi-step validation, complex order routing, anything tied to your specific business logic) is probably custom dev.
Step 3: Install the app or commission the build. For the app path, pick from the Functions-based apps in the App Store. For custom, find an agency that's done Functions migrations before. Get a fixed-fee quote.
Step 4: Test in parallel using customer tags. Run the new Function alongside the old Script for a small tagged audience. Compare outcomes. When they match, deactivate the Script and roll the Function out site-wide.
If you're also planning a Shopify replatforming or migration, bundle the Functions migration into that project. Don't run two migrations in parallel. A good Shopify migration partner will scope both into one engagement and save you weeks.
Where Shopify Functions fit in the bigger backend-extension picture
Functions are powerful, but they only extend one surface: the checkout and cart pipeline. Your store probably uses several other backend-extension layers without thinking about them.
- Apps and webhooks handle everything outside checkout. Order created? Webhook. Customer signed up? Webhook. App fires.
- Theme app extensions customize the storefront UI, not the backend.
- Shopify Flow handles "when X happens, do Y" workflows. Tag VIPs. Notify support on high-value orders.
- AI phone support layers on top of your order data. Calls come in, the AI handles them, and Shopify is the source of truth for the customer.
This is where Ringly fits in your stack.
Ringly.io is AI phone support for Shopify brands. Instead of hiring and training a phone team, the AI handles inbound calls 24/7: order status, returns, product questions, abandoned cart rescue. Across 50+ brands, the AI resolves 73% of calls autonomously at roughly $0.42 per resolved call. Plans start at $349/mo with a 65% resolution guarantee. Live in under an hour.
Different extension point, same idea. Functions extend what Shopify does at the moment of checkout. Ringly extends what your store does when a customer picks up the phone. Both run in the background, both pull from Shopify, and both let your team focus on the work that actually moves revenue.
If you've already covered the cart side with a Function, see what the phone side looks like for your store.
Frequently asked questions
Do I need Shopify Plus to use Functions?
No, with one exception. Public apps with Functions work on every Shopify plan, including Basic. Custom apps that use Functions APIs require Plus. If you're installing a Functions app from the App Store, you're fine on any plan.
What's the deadline for migrating from Shopify Scripts?
June 30, 2026 is the full shutdown date. April 15, 2026 is the freeze (no new Scripts, no edits). The deadline has been extended twice already. Per Shopify's changelog, this is final.
Can I write Shopify Functions in JavaScript or do I need Rust?
Both work. JavaScript runs through the Javy compiler to Wasm, and it's the faster path for developers who already know JS. Rust is recommended for stores with large carts or complex logic, because it lands closer to the 5ms execution cap.
How fast are Shopify Functions?
Under 5ms per execution. Rust Functions typically run in 3-5ms. JavaScript Functions run in 10-30ms in real-world use, which can fail on heavy carts. That's the main reason Shopify recommends Rust for performance-critical logic.
Can Shopify Functions call my warehouse system or CRM during checkout?
No. Functions are sandboxed. No external API calls are allowed during execution. The Function only sees the data Shopify provides via the GraphQL input query. If you need live external data at checkout, use a regular app or webhook instead.
How much does it cost to migrate from Scripts to Functions?
Free if you use an app from the App Store. Agencies typically charge $2,000 to $15,000 to build custom Functions, depending on how many Scripts you're migrating and how complex they are.
Final thought
If you have Shopify Scripts, you have weeks left. Migrate now or your checkout falls back to default. If you've never had Scripts because you weren't on Plus, Functions just handed you a customization layer you never had access to. Install one of the no-code apps, set up one high-impact rule, see what changes.
The smart play is to layer Functions on top of the other things your store already uses every day. Apps, webhooks, Flow, AI phone support for Shopify. Functions don't replace any of that. They just give you control over the part of the checkout that used to be a black box.
Try Ringly.io free for 14 days. Live in under an hour. The phone side of your store, sorted while you handle the rest.
Article by Ruben Boonzaaijer. Co-founder of Ringly.io. We build AI phone support for Shopify brands so they can scale support without hiring a phone team.





