Shopify Functions development

Shopify Functions development: custom discount, delivery and checkout logic, scoped in writing before you pay.

The rules Shopify’s settings can’t express, built as Functions: tiered and B2B discounts, delivery and payment options that change with the cart, checkout validation and bundles. From the team behind the Gene Juarez and True Glory Hair Shopify Plus stores.

Shopify Plus PartnerShopify Select Partner5.0 on Shopify Partners · Premier Verified on Clutch

Proof

Real builds. Verified numbers.

Every number here is verified with the brand it belongs to.

400+Shopify stores built & scaled$120m+GMV powered by our builds8 wksTypical launch, kickoff to live92%Retainer renewal rate

True Glory HairWigs and hair, USA

A Shopify Plus build, then three years of growth on the same store.

We built the Plus store around a deep wig catalogue, then kept it moving: the brand’s SEO programme implemented every month with every URL kept, and retention on Attentive bringing customers back for their next install.

  • Shopify Plus build
  • SEO implementation
  • Retention on Attentive
Repeat purchase rate
+27%
New SEO collections built
11
Same team on the store
3 yrs

Read the True Glory Hair case study

Gene JuarezSalons and spas, 13 locations, Washington

A custom Shopify Plus theme with Zenoti booking built in.

Every Book Now goes straight to the right Zenoti service or location, the marketing team edits every section without a developer, and server-side tracking reports each booking to GA4, Meta and Google Ads.

“We’re so pleased with the new theme and custom functionality.”

Gene Juarez marketing team
  • Custom Shopify Plus theme
  • Zenoti booking
  • Server-side tracking
Landing page to Zenoti booking
< 1 s
LCP on the homepage
1200 ms
Locations on one editable theme
13

Read the Gene Juarez case study Their review on Shopify

Get a fixed, written quote or book a call

Who this is for

You need a custom Shopify Function if...

  1. Discounts

    Your discounts don’t match how you sell

    Quantity tiers, gifts with conditions, member-only prices or B2B volume breaks that Shopify’s discount settings can’t combine.

  2. Delivery

    Some delivery options shouldn’t show

    Express on oversized items, the wrong rate name for a region, or local pickup offered where the stock isn’t.

  3. Payments

    Payment methods depend on the order

    Cash on delivery above a set order value, net terms only for approved companies, or a different order of methods per market.

  4. Validation

    Bad orders still get through

    PO boxes on freight orders, too many units of a limited drop, B2B orders without a PO number, or restricted products heading to the wrong region.

  5. Bundles

    Bundles live in a spreadsheet

    A set sold as one line that has to expand into its parts for stock and fulfilment, or separate items that should check out as one bundle.

  6. Scripts

    You relied on Shopify Scripts

    Scripts stopped running on 30 June 2026. Any discount, shipping or payment rule they handled has to be rebuilt as a Function or replaced by an app.

What we build

Shopify Functions we build

Each Function does one job, is tested against real carts and ships inside an app on your store. The full range:

  1. Discount Functions

    Product, order and shipping discounts from one Function: tiers, buy X get Y with your own conditions, and codes your rules check.

  2. Delivery customisation

    Rename, reorder or hide delivery options based on what is in the cart, where it is going and who is buying.

  3. Payment customisation

    Rename, reorder or hide payment methods, and set payment terms for B2B buyers at checkout.

  4. Cart and checkout validation

    Server-side checks that stop an order before it is placed, with the message shown on the field that caused it, including billing address and PO number.

  5. Cart Transform for bundles

    Expand a bundle into its components or merge items into one line, with the pricing kept correct.

  6. Pickup and local delivery options

    Local pickup and pickup-point options generated from your own rules instead of a fixed list.

  7. Fulfilment constraints and order routing

    Which items must ship together or from which location, and how locations are ranked for each order.

  8. Checkout UI extensions

    The visible side: fields, notices and offers in checkout and on the Thank you page, built alongside the Function behind them.

  9. Shopify Scripts migration

    Each old Script read, mapped to a Function or an existing app, and the rules that still matter rebuilt.

  10. Monitoring after launch

    Function runs, errors and resource use checked in Shopify’s Dev Dashboard after go-live, and fixed when promotions change.

After Shopify Scripts

Your Scripts stopped running on 30 June 2026.

  • Scripts audit
  • Fixed scope

Shopify stopped Script edits on 15 April 2026 and switched every Script off on 30 June. If your store used Scripts for tiered discounts, free-shipping rules or hidden payment methods, that logic is no longer running. We go through Shopify’s Scripts customizations report with you, map each rule to a Discount, Delivery or Payment Function, or to an app that already does the job, and rebuild the rest.

30 Jun
2026: every Shopify Script switched off
11M
Instruction limit per Function run, carts up to 200 lines
Rust
Shopify’s recommended language for speed

Get a Scripts migration quote

  • ShopifyShopify
  • RustRust
  • JavaScriptJavaScript
  • TypeScriptTypeScript
  • GraphQLGraphQL

Which plan you need

Do you need Shopify Plus for Functions?

  • Public app
  • Custom app
  • Checkout extensions

Not always. Stores on any plan except Starter can use Functions that come inside public apps from the Shopify App Store. A Function written only for your store lives in a custom app, and custom apps with Functions need Shopify Plus, as do checkout UI extensions on the information, shipping and payment steps. We tell you which route fits before anything is built.

Plus
Needed for custom apps with Functions
All plans
Except Starter, for public apps with Functions

Ask which route fits

  • CheckoutCheckout
  • Admin APIAdmin API
  • UI extensionsUI extensions

The difference

Shopify settings vs a custom Function

What the admin can do on its own, and what changes when the rule is written in code for your store.

AreaShopify settings aloneA custom Function
Discounts✕ Percentage, fixed amount, buy X get Y, free shipping✓ Any condition the cart data supports: tiers, customer tags, product metafields, bundles
Delivery options✕ Rates by zone, weight or price✓ Rates hidden, renamed or reordered by cart, address or customer
Payment methods✕ The same list for every buyer✓ Methods and terms that change by order value, market or company
Order checks✕ Required fields only✓ Your own rules, enforced on Shopify’s side before the order is placed
Bundles✕ Separate products in the cart✓ Bundles expanded or merged by a Cart Transform Function
Data it can use✕ Whatever the settings screen offers✓ Cart, customer, product and metafield data chosen in the input query
Ownership✕ Configured by hand in the admin✓ Code delivered to you, documented, inside your app

Why Aqsa

Why brands bring their checkout rules to us

Senior engineers who have shipped Shopify Plus stores and their checkout tracking, with the scope and price agreed before work starts.

  1. Rules first

    Rules written before code

    Every rule is written down with example carts that should and shouldn’t trigger it, so you sign off on behaviour, not jargon.

  2. Checkout

    Checkout experience

    We build on Shopify Plus checkouts already, including server-side tracking that reports every order to GA4, Meta and Google Ads.

  3. Ownership

    Code you keep

    Functions ship in your own custom app on Plus, documented, with the tests that prove each rule.

How we work

How a Shopify Function gets built

Six steps from the rule you describe to a Function running in your checkout, each ending in something you can check.

STEP 01

Rule mapping

We write every rule in plain language with example carts, and check whether Shopify settings or an existing app already cover it before anything is built.

You get: a rule sheet
01
02
STEP 02

Data and input query

We decide what each Function needs to know (cart lines, customer tags, product metafields) and where that data lives, so the input stays small.

You get: a data plan
STEP 03

Build and unit tests

Rust where speed matters, JavaScript or TypeScript where the logic is simple, with a test for every cart in the rule sheet.

You get: tested code
03
04
STEP 04

Dev store testing

The Function runs on a development store with your products and edge cases, and we read each run’s input and output in Shopify’s logs.

You get: a test report
STEP 05

Release

The Function ships inside the app, its settings are configured in your admin, and we watch the first live orders.

You get: the live Function
05
06
STEP 06

Monitoring

We check runs, errors and resource limits in the Dev Dashboard and adjust the rules as your catalogue and promotions change.

You get: ongoing support

Frequently asked questions.

What are Shopify Functions?

Small programs that Shopify runs inside its own backend to change how discounts, delivery options, payment methods, order validation and bundles behave at checkout. They ship inside an app, run on Shopify’s servers within strict time and memory limits, and took over the jobs Shopify Scripts used to do.

Do I need Shopify Plus to use Shopify Functions?

Not for Functions inside public apps from the Shopify App Store, which stores on any plan except Starter can use. A custom app with Functions built only for your store needs Shopify Plus, and so do checkout UI extensions on the information, shipping and payment steps.

Our Shopify Scripts stopped working. What now?

Shopify stopped Script edits on 15 April 2026 and turned every Script off on 30 June 2026. Each Script’s job, whether line-item discounts, shipping rules or payment rules, now has to be rebuilt as a Discount, Delivery Customization or Payment Customization Function, or handled by an app. Shopify’s Scripts customizations report lists what each one did.

Can a Function call our ERP or another external API?

Usually not. Functions are deterministic and get their data from an input query, so the normal pattern is to sync the data into metafields before the buyer reaches checkout. Network access exists for a few Function APIs, mainly for Shopify for enterprises stores with custom apps, and Shopify has to enable it.

Will a custom Function slow down checkout?

Not if it is built well. Shopify caps each run (for carts of up to 200 lines: 11 million instructions, 128 kB of input and 20 kB of output) and recommends Rust for speed. We keep input queries small and test with large carts before release.

We still have checkout.liquid customisations. Can you move them?

Yes. Stores with checkout.liquid customisations have to upgrade to Shopify Extensions in Checkout, meaning checkout UI extensions and Functions, before they can use Function APIs. We rebuild each customisation in the new model and remove what Shopify now does natively.

How much does Shopify Functions development cost?

It depends on how many rules there are and what data they need. We quote one fixed price in writing after a call. Larger checkout projects follow our Shopify Plus packages, which start at $40,000.

How long does a Function take to build?

Most of the time goes into agreeing the rules and testing edge cases, not writing code. The timeline comes with the written quote, and the Function is tested on a development store before it touches live orders.

Start a project

Request a Functions proposal.

Describe the rules you need. The scope and one fixed price come back in writing before you pay anything.

Shopify Plus experts

Let's talk Shopify, Shopify Plus and the store you actually want.

An accredited Shopify Plus agency that designs, builds, migrates, supports and grows stores for brands that have outgrown templates. Ready when you are: talk to an engineer about the project.

Get in touch