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.
![]()
5.0 on Shopify Partners · Premier Verified on Clutch
Proof
Real builds. Verified numbers.
Every number here is verified with the brand it belongs to.

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

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
Who this is for
You need a custom Shopify Function if...
- 01
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.
- 02
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.
- 03
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.
- 04
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.
- 05
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.
- 06
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:
- 01
Discount Functions
Product, order and shipping discounts from one Function: tiers, buy X get Y with your own conditions, and codes your rules check.
- 02
Delivery customisation
Rename, reorder or hide delivery options based on what is in the cart, where it is going and who is buying.
- 03
Payment customisation
Rename, reorder or hide payment methods, and set payment terms for B2B buyers at checkout.
- 04
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.
- 05
Cart Transform for bundles
Expand a bundle into its components or merge items into one line, with the pricing kept correct.
- 06
Pickup and local delivery options
Local pickup and pickup-point options generated from your own rules instead of a fixed list.
- 07
Fulfilment constraints and order routing
Which items must ship together or from which location, and how locations are ranked for each order.
- 08
Checkout UI extensions
The visible side: fields, notices and offers in checkout and on the Thank you page, built alongside the Function behind them.
- 09
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
Shopify
Rust
JavaScript
TypeScript
GraphQL
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
Checkout
Admin API
UI 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.
| Area | Shopify settings alone | A 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.
- 01
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.
- 02
Checkout
Checkout experience
We build on Shopify Plus checkouts already, including server-side tracking that reports every order to GA4, Meta and Google Ads.
- 03
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.
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 sheetData 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 planBuild 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 codeDev 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 reportRelease
The Function ships inside the app, its settings are configured in your admin, and we watch the first live orders.
You get: the live FunctionMonitoring
We check runs, errors and resource limits in the Dev Dashboard and adjust the rules as your catalogue and promotions change.
You get: ongoing supportFrequently 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