How to Migrate from Shopify Scripts to Shopify Functions (5 Steps) - 2026

Neetika M
March 31, 2026
Share article
Most Powerful Discount & Free Gift App
Most Powerful Discount & Free Gift App
Most Powerful Discount & Free Gift App
Most Powerful Discount & Free Gift App
Summary
  • This blog covers what Shopify Scripts are, why Shopify is deprecating them, and the two critical deadlines every merchant needs to act on: the April 15, 2026 freeze (no new Scripts or edits after this date) and the June 30, 2026 full shutdown (Scripts stop executing permanently, with no rollback).
  • This blog covers the two paths to migrate from Shopify Scripts to Shopify Functions: using a Functions-native app like Kite, Fly: Bundles & Cross Sell, or Easy Bundle Builder for standard discount and bundle logic with no code required, or building a custom Shopify Function for highly store-specific logic that no app covers.
  • This blog covers a step-by-step migration process: how to audit your active Scripts using Shopify's Customizations Report, how to match each Script type to its Functions replacement, how to build or configure your replacement, how to test in parallel without disrupting live customers, and how to cut over safely before the deadline.
  • This blog covers the discount stacking behavior change that catches Shopify Plus merchants off guard (Functions run in isolation, unlike Scripts which had full cart control), the runtime data restrictions that affect Scripts pulling from external sources, and how to handle performance considerations for large carts and broad collection logic.

Shopify is evolving, and so should your store. With Shopify's decision to deprecate Scripts in favor of Shopify Functions, merchants have an opportunity to upgrade their store's discount offerings and checkout experience, improve scalability, and future-proof their Shopify store.

Whether you're a Shopify Plus merchant, a freelancer/developer who has set up Scripts for your clients, or a Shopify Agency that manages Plus stores, migrating from Shopify Scripts to Functions is mandatory.

This guide will walk you through the why, what, and how of this transition, ensuring your store remains functional and optimized.

What Were Shopify Scripts?

Shopify Scripts consisted of lightweight Ruby snippets executed server-side during checkout on Plus plans. They analyzed inputs such as cart items, buyer attributes (like tags or location), available shipping rates, and payment methods, then modified outputs like item pricing, delivery choices, or gateway visibility. Housed in the Script Editor app, they enabled brands to deliver highly targeted checkout experiences without relying on third-party servers or complex integrations. Shopify Scripts have long been the backbone of custom checkout experiences for Shopify Plus merchants. Since you are now migrating from Shopify Scripts to Functions, lets first read into what scripts actually helped you do.

The image contains three Script template tabs: "Line items," "Shipping rates," and "Payment gateways," each with a list of options for customizing scripts.
Script template selection options

What Are Shopify Functions?

Shopify Functions are the replacement for Scripts. These arecompiled WebAssembly modules that run directly on Shopify's infrastructure. Instead of mutating a shared cart object in Ruby, a Function receives a snapshot of cart or checkout state and returns a set of operations. Faster, more predictable, and available on all Shopify plans (not just Shopify Plus). The key shift: Functions execute in under 5ms with no cold starts, and they work across all Shopify plans when used via a Shopify Functions compatible Shopify app.

Functions cover every customization type Shopify Scripts handled, plus new capabilities. Here's what the Shopify Scripts to Function migration gets you: 

Types of Shopify Functions

Function Type What It Does
Discount Functions API Percentage, fixed, BOGO, tiered, volume discounts — replaces line item scripts
Cart Transform API Expand or merge cart line items (bundles) — no Script equivalent existed for this
Cart & Checkout Validation API Block checkout with custom error messages based on cart conditions
Delivery Customization API Hide, rename, reorder shipping methods — replaces shipping scripts
Payment Customization API Hide, rename, reorder payment gateways — replaces payment scripts
Order Routing Location Rules Control which location fulfills an order — net new capability

With Shopify Functions, you gain flexibility, scalability, and compatibility with Shopify’s latest development tools.

PRO TIP: Instead of migrating from Shopify Scripts to Functions via Code, use apps already built on the powerful Shopify Scripts platform such as Kite Discount & Free Gift.

Why Is Shopify Deprecating Scripts?

Scripts were built for a different era of Shopify Ruby-based, Plus-exclusive, and difficult to scale. As Shopify's infrastructure modernized around GraphQL APIs and WebAssembly, Scripts became the bottleneck they were never designed to outlast.

The Shopify Scripts to Functions migration gives every merchant (not just Shopify Plus) access to powerful checkout customization, while giving Shopify a single, performant execution layer to maintain.

Shopify Scripts vs. Shopify Functions

Shopify Scripts Shopify Functions
Language Ruby (mruby subset) Any language → WebAssembly (JS, Rust most common)
Execution Server-side, interpreted, variable speed Compiled WASM, consistent sub-5ms, no cold starts
Available to Shopify Plus only All plans (public app) / Plus only (custom app)
External data at runtime Limited Not allowed — data must be pre-synced to metafields
Discount stacking Full control within one script Each Function runs in isolation; one product discount per line item
Deployment Script Editor in Shopify Admin Deployed as part of a Shopify app (public or private)
Network calls Supported Not supported — stateless input/output only
Scalability Degrades under high traffic Built for high-volume, no performance ceiling

Replacement Shopify Functions for Every Shopify Script

Legacy Script Function Replacement Shopify function Core Modifications
Line item/pricing Discount Functions Item/order/shipping adjustments, bundles
Shipping management Delivery Functions Rate visibility, ordering, conditions
Payment handling Payment Functions Gateway show/hide/reordering
Cart adjustments Cart Transform Functions Line merges/splits, pre-checkout tweaks
Rule enforcement Functions + workflow apps Blocks and compliance checks

Key Dates to Remember (Shopify Scripts to Functions Migration):

Date What Happens
April 15, 2026 Scripts freeze — no new Scripts can be published, existing ones can no longer be edited
June 30, 2026 Full shutdown — all Scripts stop executing permanently. No rollback.

The April 15 2026 freeze is the more urgent deadline. After that date, if something breaks in a live Script, you cannot fix it, you can only replace it with a Function.

If you do nothing: your Scripts don't migrate automatically. They simply stop running on June 30, 2026. Any discount logic, shipping rule, or payment customization built on Scripts will silently break at checkout.

Two Ways to Migrate from Shopify Scripts to Shopify Functions

When it comes to migrating from Shopify Scripts to Shopify Functions, you have two paths. Which one is right for you depends on the complexity of your Scripts.

Path 1: Use a Shopify App Built on  Shopify Functions (Recommended)

If your Scripts handle discounts, free gifts, BOGO offers, tiered pricing, bundles, shipping rules, or payment customizations there's almost certainly an app that already does this natively on Shopify Functions. No code, no developer, no deployment pipeline.

This is the right path if:

  • Your Scripts run standard promotional logic (volume discounts, BOGO, free gift with purchase, bundle pricing)
  • You want to be migrated before the April 15, 2026 freeze without a development project
  • You want to add capabilities your Scripts never had — like a progress bar, cart-level upsells, or campaign scheduling

For line item scripts i.e. discounts, free gifts, BOGO, tiered pricing:

Kite: Discounts & Free Gifts is built entirely on Shopify Functions and replaces line item Scripts with a no-code setup. You get every promotional type your Script was handling plus campaign scheduling, customer tag targeting, and a native progress bar without writing a single line of code. No hacks.

For bundle and quantity break scripts:

Fly: Bundles & Cross Sell and Easy Bundle Builder handle quantity breaks, mix-and-match bundles, and subscription-compatible bundles; all on Shopify Functions.

The migration path with an app looks like this:

  1. Audit your Scripts (Step 1- as outlined below)
  2. Install the relevant app
  3. Recreate your Script's logic inside the app's no-code interface
  4. Test against your live Script in parallel
  5. Unpublish the Script once verified

Path 2: Build a Custom Shopify Function

If your Scripts contain highly store-specific logic — custom stacking rules, external data dependencies, or conditions no app can replicate — you'll need to build a custom Function. This requires a developer and familiarity with Shopify CLI, JavaScript or Rust, and WebAssembly.

This is the right path if:

  • Your Script logic is proprietary and covers edge cases no app handles
  • You have an in-house developer or agency relationship
  • You need full control over the execution logic

Custom Functions are deployed as private Shopify apps and require a Shopify Plus plan.

Not sure which path you're on? Run the Scripts Customizations Report in your Shopify Admin (Settings → Apps → Script Editor). Shopify maps each of your Scripts to a suggested replacement — it's the fastest way to know whether an app covers your use case before you plan a build.

How to Migrate from Shopify Scripts to Functions (Step-by-Step Guide) 

Step 1: Audit All Your Active Scripts

Before you migrate from Shopify Scripts to Shopify Functions, you need to know exactly what you're migrating.

Go to Shopify Admin → Settings → Apps and Sales Channels → Script Editor and run the Scripts Customizations Report. This tool lists every active Script on your store — its type, what it does, and Shopify's suggested replacement app for each one. Export it as a CSV.

For each Script, document:

  • Script type — line item, shipping, or payment
  • Business logic — what conditions trigger it, what it does to the cart
  • Source — did you write it, or did a third-party app create it behind the scenes?
  • Status — is it actively used, or is it a leftover that can be deleted?

Then categorize each Script into one of three paths:

Path When to use it
Delete Script is unused or redundant
Replace with an app Standard discount, shipping, or payment logic — covered by an existing Functions-native app
Build a custom Function Highly store-specific logic that no app replicates
Note on third-party apps: Some apps programmatically created Scripts on your store without you writing any code. Those Scripts stop working on June 30, 2026 regardless. Contact those vendors now to confirm they've rebuilt on Functions if they haven't, find an alternative before April 15.

Step 2: Audit All Your Active Scripts

Once you've audited, match each Script to its Functions-native replacement. The table below maps script type to the right tool:

Script Type What It Did Shopify Functions API Recommended App
Line item — discounts BOGO, tiered pricing, free gifts, volume breaks Discount Functions API Kite: Discounts & Free Gifts
Line item — bundles Merge or expand cart line items into bundles Cart Transform API Fly: Bundles & Cross Sell / Easy Bundle Builder
Line item — checkout validation Block checkout based on cart conditions Cart & Checkout Validation API Custom Function or Checkout Wiz
Shipping scripts Hide, rename, reorder shipping rates Delivery Customization API Shipzy (formerly Shipfy) / Intuitive Shipping
Payment scripts Hide, rename, reorder payment gateways Payment Customization API HidePay / PayMix
If your Scripts contain complex stacking logic i.e. multiple discounts applying to the same line item; read the stacking section before choosing a path. That behavior works differently in Functions and requires a deliberate decision. You need not worry about this when using an app like Kite Discount & Free Gift as discount stacking is built into the solution.

Step 3: Build or Configure Your Function

If you're using an app: Install it, configure it to replicate your Script's logic, and test it against your documented Script behavior before touching anything live.

If you're building a custom Function (share this with your developer) :

npm install -g @shopify/cli
shopify app init my-functions-app
shopify app generate extension --type discount

Key things to design for:

  • No runtime network calls — if your Script pulled from an external pricing source or loyalty platform, that data must now be pre-synced to Shopify metafields. The Function reads from metafields, not from an external API.
  • Define your input query — in src/run.graphql, specify exactly what cart data your Function needs. Functions only receive what you ask for.
  • Test locally firstshopify app function run --input ./tests/mock-cart.json
USE AN APP INSTEAD: Remember, configuring your own Shopify function can be intitmidating. Instead use an that already uses Shopify Functions.

Step 4: Test in Staging — Run Scripts and Functions in Parallel

Don't cut over cold. The safest approach is to run your new Function alongside the existing Script for 2+ weeks before going live.

How to do it without disrupting live customers:

  1. Deploy your Function with a condition for example, only apply it to customers tagged functions-test
  2. Tag a small group of internal or test customers with that tag
  3. Route them through checkout and verify the Function produces identical results to the Script
  4. Test edge cases: empty cart, 50+ line items, stacked promotions, international orders, discount codes applied simultaneously

One caveat: Scripts and Functions don't always coexist cleanly. There are documented cases where an active Discount Function causes Scripts to fail with a nil conversion error. If you see unexpected Script failures during this window, that's why isolate by script type and test each replacement independently.

Code snippet for a Shopify function that handles cart operations, including merging and expanding cart items.
Code snippet from Shopify function

Step 5: Go Live, Unpublish Your Scripts, and Monitor

Once parallel testing is solid:

  1. Remove the test condition from your Function; deploy the final version with shopify app deploy
  2. Manually unpublish each Script in the Script Editor; do this one by one, not all at once
  3. Verify each Script shows as inactive before unpublishing the next
  4. Monitor for 7+ days post-cutover: conversion rate, AOV, checkout error rate, cart abandonment

Do this before June 30, 2026. Don't wait for the shutdown to do it for you. Scripts disabled by Shopify on June 30 cannot be re-enabled. There is no rollback.

Benefits of Migrating to Shopify Functions

1. Improved Discounts Experience

  1. Dynamic Discounting: Implement advanced discount logic that adjusts discounts based on factors like items, weight, customer loyalty, cart value, or purchase history.
  2. Automated Promotions: Set up functions to automatically apply the best possible promotion based on the customer’s cart composition and past behavior.
  3. Real-time Price Adjustments: Functions can calculate discounts in real-time, providing immediate feedback to customers about available savings, enhancing their shopping experience.
Customer qualified options
Customer Qualifier Options
cart qualifier options
Cart Qualifier Options

2. Improved Checkout Experience

  1. Speed Optimization: Functions help streamline the checkout process by executing logic on the server side, reducing the load on the client side and accelerating page load times.
  2. Custom Checkout Flows: Merchants can tailor the checkout experience to different customer segments. For example, repeat customers might see a faster checkout option.
  3. Integrated Payment Solutions: Easily integrate diverse payment gateways and methods that can adapt dynamically based on the customer’s location and preferences.

3. Recommended Apps

4. Native Checkout & Discounts Experience

Functions empower merchants to create faster, smoother checkout processes. For example, you can implement advanced discount applications that calculate dynamically based on customer behavior or cart value, delivering a superior user experience.

5. Scalability and Flexibility

Unlike Scripts, Functions can handle high-traffic scenarios without compromising performance. They also integrate effortlessly with Shopify’s GraphQL APIs, enabling complex customizations with ease.


Extra Information: What Were the Different Types of Shopify Scripts?

1. Line Item Scripts (Pricing and Discounts)

These targeted cart contents, extending far beyond basic discounts to sophisticated pricing adjustments.
Common examples:

  • Progressive discounts by quantity or value (e.g., 10% off 2 items, 20% off 4+).
  • Bundle deals or "buy more, save more" promotions (e.g., shirt + pants at a set price).
  • Tag-driven pricing (e.g., reduced rates for wholesale accounts or loyalty members).
  • Dynamic freebies, where gifts are added and only specific quantities discounted (via line manipulation).

In essence, these acted as the intelligent core for promotional pricing on stores needing flexibility beyond Shopify's standard tools.

2. Shipping Scripts (Delivery Customization)

These managed shipping visibility, labeling, and occasionally pricing based on order context.
Typical scenarios:

  • Conditional method display (e.g., express only for fragile goods or orders over $200).
  • Group-specific options (e.g., flat rates for retail vs. varied tiers for business buyers).
  • Geo-fencing rules (e.g., no international for certain items, local pickup in key areas, threshold-based free delivery).
  • Intelligent defaults, like auto-selecting optimal rates per cart composition.

This transformed rigid shipping setups into responsive, customer-centric offers.

3. Payment Scripts (Gateway Control)

These influenced which payments appeared and their sequence, often tied to business or risk factors.
Key uses:

  • Restrict methods by value or zone (e.g., no cash on delivery for large orders).
  • Exclusive access (e.g., net-30 terms just for approved B2B tags).
  • Prioritization to favor high-margin or preferred options (e.g., cards first, then digital wallets).

They provided strategic oversight of the payment stage.

4. Cart Validation and Safeguards

Not a formal category but widely applied, these enforced rules to prevent issues.
Examples:

  • Block incompatible mixes (e.g., age-restricted items without verification).
  • Mandate minimums before proceeding.
  • Halt restricted shipments (e.g., hazardous goods to off-limits areas).

These served as operational safety nets alongside revenue tools.

Shopify Developer Resources

No items found.

Rushy Scarcity Countdown Timer

Free to install
Built for Shopify

Hurrify customers to buy within a given timeframe with a sales countdown timer & improve conversions

Another popular Shopify checkout app is Checkout Promotions. The app comes with the ability to leverage a collection of highly robust visibility rules that help show customers one-click post purchase upsell promotions after an order payment has been made. Some of its key features include:

Features

AI recommended and manual recommendations for upselling.

Complete branding control.

Checkout Upsell for increasing AOV.

AI recommended and manual recommendations for upselling.

Pricing

Development

Free

Monthly Plan

$99/ month

Plus Plan

$99/ month

Plus Plan

$99/ month

FAQs

1. What is the deadline for migrating Shopify Scripts?
2. Can Shopify Scripts and Functions coexist during migration?
3. Do I need a developer to migrate Scripts to Functions?
4. Are Shopify Functions exclusive to Shopify Plus?
5. What are the costs involved in transitioning to Shopify Functions?
6. What should I test before switching to Shopify Functions?
Neetika M

Neetika M

Neetika is the founder of Skai Lama. Passionate about building SaaS, Product Development, and Marketing, she talks about eCommerce Growth, Product Bundling, Gifting, Retention, and Shopify.

The Only Discount & Free Gift App you Need on Shopify

bfcm 2025 guide
Access Now