Home>Checkout, Payments & Conversion>Scripts to Functions>Who Builds Custom Shopify Functions?

Who actually builds custom Shopify Functions? Do we need an in-house developer or can an agency do it?

Shopify Functions can be built by an agency or an in-house developer, and the build is the small part. Functions compile to WebAssembly, with Rust recommended over JavaScript to stay inside an 11 million instruction limit (shopify.dev, September 2026). Pick on who owns the rule a year from now, not on who writes the Rust.

What the work actually is

Shopify Functions "allow developers to customize the backend logic of Shopify" by injecting WebAssembly modules at defined targets (per shopify.dev, September 2026). Shopify supports "any language that compiles to WebAssembly (Wasm), such as Rust, Zig, or TinyGo," ships templates and client libraries for Rust and JavaScript, and is direct about the trade: "Languages that compile directly to WebAssembly, such as Rust, perform better than dynamic languages, such as JavaScript," and a JavaScript author should "expect to run into instruction limits sooner" (per shopify.dev, September 2026).

That matters for staffing because it moves the skill requirement off the standard Shopify stack. A team that is fluent in Liquid, theme development and Admin API work is not automatically a team that ships Rust into a checkout path.

One plan rule that decides a lot of this

"Only stores on a Shopify Plus plan can use custom apps that contain Shopify Function APIs." Stores on any plan can use public apps distributed through the Shopify App Store (per shopify.dev, September 2026).

Read that carefully, because it inverts the usual assumption. If you are not on Plus, a custom Function is not available to you as a custom app, and the answer to "in-house or agency" is neither: it is an App Store app, or a no-code Function builder, both of which work on your plan today.

The limits the code has to live inside

Shopify publishes these, and they are the honest measure of how hard a given Function is (per shopify.dev, September 2026).

LimitValue
Compiled binary size256 kB
Runtime linear memory10,000 kB
Runtime stack memory512 kB
Execution instruction count (up to 200 line items)11 million instructions
Function input128 kB
Function output20 kB
Input query size3,000 bytes, excluding comments
Metafield values returnedValues over 10,000 bytes are not returned
List-type field arguments100 elements maximum
Maximum input query cost30
Logs written1 kB, truncated

A discount that reads three product tags and applies a percentage is not near any of these. A discount that walks a 200-line cart comparing every line against a metafield-driven table is, and that is the difference between a week and a quarter.

The part that decides in-house versus agency: what happens after launch

Shopify stores function run data and makes it "available through the Dev Dashboard," with input, output and logs per run. Logs "are truncated after 1 kB." Shopify documents twelve function error types, from RuntimeError and InstructionCountLimitExceededError through InvalidOutputError, OutputTooLargeError and InvalidVariableValueError (per shopify.dev, September 2026).

What Shopify does not ship is a merchant-facing alert. Nothing pages anybody when a discount Function starts failing mid-sale. That is why our own decision record scores checkout-function production observability CUSTOMIZE, at $12,000 to $40,000 in year zero and $5,000 to $12,000 a year after, roughly $27,000 to $76,000 over three years (Deploi decision record, illustrative, September 2026).

So the real staffing question is not "who writes it." It is: who changes the discount tiers when merchandising changes them, and who finds out when the Function silently stops applying them.

The four honest answers

1. Build in-house when the rules change often and someone already owns checkout.

If your discount logic changes more than three or four times a year, an agency retainer becomes a queue and the queue becomes the reason marketing stops asking. A developer who owns the store's checkout path, has the Rust or Wasm capability or the appetite to learn it, and sits close to merchandising is the cheapest long-run answer by a wide margin. This is a real answer and it is the right one more often than an agency page will tell you.

2. Use an agency when the work is bounded and dated.

A Scripts migration with a cutover date, a single Function for one campaign structure, a build where the specification is stable. Agencies are good at bounded scope and bad at being your on-call.

3. Use an agency to build and an in-house owner to operate.

The pattern that fails least. The agency ships the Function, the observability and the runbook; a named person inside the business owns the numbers, the deploy and the alert. Without the named person this pattern degrades into option 2 with a longer invoice.

4. Buy instead, and staff nobody.

Covered in depth in the sibling pages. A no-code Function builder works on any plan, and the App Store carries a whole collection of Functions-based discount apps.

When NOT to hire for this at all

  • When you are not on Plus and the requirement fits a public app. Custom apps with Functions are Plus-only. Buying is not a compromise here; it is the supported path.
  • When the rule has not been written down. A Function is a specification problem with a compile step. Unwritten rules produce rewritten Functions.
  • When nobody will own the alerting. A pricing Function that fails quietly charges every affected cart wrongly for as long as nobody is watching, and that loss compounds.
  • When the change is seasonal. Building a Function for one Black Friday and then leaving it unmaintained until the next one is the most expensive version of both options.

The Deploi point of view

Our own position, from building on Shopify. Separate from the facts above.

  • Our take: hire or retain for ownership, not for the build. We scored checkout-function production observability CUSTOMIZE for exactly this reason: the Function is a week of work and the rule set, the staged rollout and the failure alerting are a standing obligation (Deploi decision record, September 2026).
  • What we’ve seen: the Functions that cause trouble are almost never the ones that were hard to write. They are the ones whose business rules moved after launch and whose original author was no longer the person answering the question.
  • What we refuse to quote: a market rate for "a Shopify Function." The sibling page on agency cost explains why, and the short version is that no such rate exists because no two Functions are the same object.
  • Where we disagree: the category answers this with "you need a Shopify Plus development partner," which is what an agency would say and is often not true. If your discount tiers change monthly and you have one developer who already owns checkout, keeping this in-house is cheaper, faster and less fragile than any retainer we would sell you. We would rather scope the observability and the runbook and hand you the keys.

Reviewed by Martin Dejnicki, Director of SEO & AI Search. Facts verified 2026-09-14.

Follow-up questions

Once we factor in ongoing maintenance (not just the initial build), does a custom Shopify Function ever actually beat a third-party discount app's subscription cost over 2-3 years?

A custom Function does not beat a discount app on three-year cost for a single common rule. Deploi's Scripts-to-Functions record puts a build at $7,250 to $40,000 over three years against $1,800 to $16,700 on apps (Deploi decision record, September 2026). Custom wins when one rule set would otherwise need two or three subscriptions.

If our custom shipping-rate Function needs updating every time we add a new fulfillment location, does that ongoing cost make a simpler native rule table a better long-term choice?

A shipping Function that needs a code change per new location was scoped wrong, not chosen wrong. Read locations from configuration and a new warehouse becomes a data edit. Shopify allows up to 99 custom shipping profiles plus the general profile (Shopify Help Center, September 2026), which is the ceiling that decides whether native rules can carry the logic instead.

What does it realistically cost to have an agency build a custom Shopify Function for one discount use case?

No published market rate exists for one custom Shopify Function. The Shopify Partner Directory publishes no hourly rates or budget bands (verified September 2026). Deploi's own Scripts-to-Functions record puts $5,000 to $25,000 on an audit-through-cutover for a one-to-six-rule inventory, illustrative and not a quote. Price the rule, not the word Function.

Can we prototype a discount-stacking or validation rule using Shopify Flow first, before committing budget to a custom Function build?

Shopify documents Functions, not Flow, as the mechanism for checkout backend logic, so Flow cannot stand in for a discount or validation rule. Flow is a free triggers, conditions and actions automation app on Basic, Grow, Advanced and Plus (Shopify Help Center, September 2026). Run Flow first to prove your tags and metafields are populated.

How do we write a clear brief for an agency to scope a custom Shopify Function, if we don't know the technical terms ourselves?

A usable Function brief answers five questions in plain business language: what the rule reads, what it outputs, what happens when it collides with another discount, what happens when it fails, and who edits the numbers later. Shopify's own limits turn two of those into hard constraints: 200 line items and a 3,000 byte input query (shopify.dev, September 2026).

Is it possible to buy a pre-built Function for a common use case (like tiered volume discounts) from the Shopify App Store instead of commissioning a custom build?

Yes. The Shopify App Store runs a collection called Discount Apps built on Shopify Functions, and tiered volume discounts are covered several times over. Dealeasy is free to install to 50 orders per month, then $9, $19 and $29 monthly, rated 4.9 stars across 629 reviews (Shopify App Store, September 2026). No-code Function builders also exist.

Which of the five Shopify Functions categories (discount, shipping, payment, validation, fulfillment) should a mid-market brand tackle first if we can only afford one custom build this year?

Discount is the first Function to build for most mid-market brands, because it is the category where a rule maps directly to margin. Shopify documents more than the five categories in the question: Discount, Cart Transform, Cart and Checkout Validation, Delivery Customization, Payment Customization, Fulfillment Constraints and Order Routing Location Rule (shopify.dev, September 2026).