Custom builds for Shopify Plus
Checkout rules your business designed, written as Shopify Functions and checkout extensions.
Your pricing team knows exactly how the rule should work. The discount app has a dropdown. We write the rule as code that runs inside Shopify checkout, at Shopify speed, and show the buyer what is happening.
Checkout extensions and Shopify Functions on Shopify Plus, the facts
Scope, building blocks and timelines for this kind of build. Updated 2026-09-02.
| What it is | Custom logic running inside Shopify checkout: discount Functions, payment and delivery customisation Functions, cart and checkout validation Functions, plus checkout UI extensions for banners, fields, balances and messages. |
|---|---|
| Typical rules | Program caps and allowed products, tiered or negotiated pricing by company or tag, stacking rules between codes and programs, deposits and partial payment, gating payment methods by buyer, delivery options by jobsite or location. |
| Built on | Shopify Functions (discount, payment customisation, delivery customisation, cart and checkout validation), checkout UI extensions, POS UI extensions, metafields as the rule store. |
| Where it runs | Web checkout, draft orders where applicable, and Shopify POS for validation and messages. |
| Performance | Runs on Shopify's infrastructure within Shopify's limits. No external call at checkout time. |
| Timeline | A single Function with its UI is typically 2 to 3 weeks. As part of a program build it is scoped inside that build. |
| Who it is for | Shopify Plus merchants over $2M a year whose pricing, program or payment logic has outgrown what apps expose. |
| Last updated | 2026-09-02 |
When you need this
You know you need custom checkout logic when the sentence describing your rule has more than one "except". A discount app can do "10 percent off collection X for tagged customers". It cannot do "the employee's remaining quarterly allowance, applied only to safety products, not stackable with codes, except on orders shipping to a registered jobsite, where a separate delivery option appears". That second sentence is a Function.
The other trigger is the buyer's experience. Rules that fail silently create support tickets and abandoned carts. A cart that would break a rule should say so, in words the buyer understands, before they reach the payment step. That is the UI extension half of the build.
What we build with Functions
Discount Functions
Order, product and shipping discounts computed from your rule, with the inputs it needs: customer tags, company, metafields, cart contents, quantities, destination. Negotiated pricing per company. Tier breaks that are not simple quantity breaks. Program allowances applied as a discount when native store credit is not the right mechanism.
Validation Functions
Stop the cart when it breaks a rule and say why. Allowed products for a program. Caps and remaining budgets. Minimums and maximums per company. "Approval required" thresholds that hold an order as a draft instead of completing it. These run at web checkout and at Shopify POS, which matters for multi-store retailers running programs at the register.
Payment customisation Functions
Show or hide payment methods by buyer: invoice on terms for approved companies only, card only for everyone else, deposits or partial payment where your terms allow it. Rename or reorder methods so the right one is obvious.
Delivery customisation Functions
Delivery options by destination type, company or program: jobsite delivery for contractors, store pickup only for certain products, hide rates that should never be offered to a given buyer.
What we build with checkout UI extensions
- A program or store credit balance shown at the top of checkout, with what this order will use and what remains.
- Eligibility messages next to line items: covered, not covered, needs approval.
- Fields your process needs: PO number, cost centre, jobsite, employee ID, with validation.
- Banners and acknowledgements the buyer must read or tick, per company or per program.
- Post-purchase and thank you page content: what was applied, next steps, who to contact.
How a Function build runs
We write the rule down in plain language first, with worked examples: this cart, this buyer, this outcome. You confirm the examples. Then the Function is built and tested against those exact examples on your store, plus the edge cases we add from experience (empty carts, mixed carts, currency, draft orders, POS). The UI extension is built alongside so the message the buyer sees is reviewed with the rule, not after it. Go-live is a version bump; rollback is the previous version.
Related
We also publish App Store apps built on the same extension points, including members-only pricing and payment terms tooling, so the mechanics of Functions in production on real stores are familiar ground. If your need is a standard rule, one of those may be the answer and we will say so.
Other custom builds
- Store credit and voucher programs: Company-funded credit, allowance programs and rewards paid in native Shopify store credit, with pools, rosters, expiry and a reconciliation report.
- Corporate accounts and invoicing: Company accounts where staff buy under one program and the company gets one invoice, built on Shopify B2B companies, payment terms and draft orders.
- Programs that work at POS and online: One balance, one set of rules, redeemed the same way in eight stores and on the website. Shopify POS extensions and native store credit at the register.
- Integrations, automation and reporting: Klaviyo, Shopify Flow, accounting and ERP hooks, plus the reports your finance team needs to invoice and reconcile a program.
Or read the overview: custom Shopify Plus development for merchants over $2M a year.
Checkout extensions and Shopify Functions: common questions
What is the difference between a Shopify Function and a checkout UI extension?
A Shopify Function is logic that runs inside checkout with no user interface: discount, payment method, delivery option and cart validation rules. A checkout UI extension is something the buyer sees in checkout, such as a banner, a field, a balance or an eligibility message. Most custom checkout builds use both: the Function enforces the rule, the extension explains it.
Why can't a discount app do this?
Discount apps expose a fixed set of rules through a settings screen. If your rule is 'stackable with the corporate program but not with a code, capped at the employee's remaining allowance, safety products only, except when the order ships to a jobsite', no settings screen expresses that. A Function written for your rule does, and it runs at checkout speed.
Does this require Shopify Plus?
Checkout UI extensions and most Functions work on any plan. Customising the checkout itself beyond extensions, B2B, and native store credit require Plus. Our custom builds are for Plus merchants over $2M a year regardless, because that is where custom checkout logic pays for itself.
Will it slow down checkout?
Functions run on Shopify's infrastructure in milliseconds and are limited by Shopify to keep checkout fast. They are the mechanism Shopify itself recommends for custom logic precisely because they do not call out to an external server at checkout time.
Can it block checkout entirely for some buyers?
Yes. A cart validation Function can stop checkout with a message: this product is not covered by your program, your remaining cap is $40, this company requires approval for orders over $500. The message is shown at web checkout and at Shopify POS.
What happens when Shopify changes checkout?
Functions and UI extensions are Shopify's supported extension points, versioned with the API. When Shopify deprecates an API version we update the Function on the managed or hosted plans. On a self-hosted handover, the runbook lists what to check each quarter.
Tell us what you need built
We reply within one business day. If it is a fit, the next step is a 30 minute scoping call. If it is not, we will say so and point you at the right tool.