The journal

Guides12 min readBy

Shopify Developer Charges: Hourly vs Fixed Price Explained

Shopify developers charge three ways: by the hour, by the day, or as a fixed price against a written scope. The number on the invoice can look similar at the start and end up very different by launch.

Shopify Developer Charges: Hourly vs Fixed Price Explained

Key takeaways

  • Hourly billing on a Shopify build has no ceiling. Work estimated at 80 hours can run to 150 without anyone signing a change order.
  • Day-rate pricing still leaves the scope-creep risk with the merchant. A day count is an estimate, not a cap on what gets delivered.
  • Fixed price only works when the scope document names the exact pages, integrations, revision rounds and exclusions before anyone signs.
  • Meant quotes every website and headless Shopify build as a fixed price in writing, agreed before any work starts. There is no hourly billing on project work.
  • A theme restyle and a headless Hydrogen rebuild are different projects with different cost structures. Pricing them as the same job is how quotes go wrong.

Shopify developer charges come in three shapes: by the hour, by the day or sprint, or as one fixed price against a written scope. The rate on the quote matters less than who carries the risk when the work takes longer than planned. Under hourly and day-rate billing, the merchant carries it. Under a properly written fixed price, the developer does. At Meant we price builds the second way. Below we explain why, where fixed price fails, and when hourly is still the honest answer.

How Shopify Developer Charges Work

Every Shopify development cost comes down to a rate multiplied by time. What changes between models is who guesses the time, and who pays when the guess is wrong.

Hourly billing

The developer logs hours and invoices monthly or at milestones. You pay for time worked, not for a defined result. Any estimate attached to the quote is guidance.

Rates vary widely. ZipRecruiter puts the US market average pay for a Shopify developer at $109,905 a year, roughly $52.84 an hour, with the middle 80% earning between $57,000 and $150,500. That is salary for employed developers, not what a studio bills. Agencies add project management, overhead and margin on top. The useful point is the spread. A rate that wide makes the hourly figure a poor way to compare quotes unless the hours are fixed too.

Day-rate or sprint pricing

The developer sells days, or two-week sprints with a set team. It feels more structured than hourly, and it is easier to budget. But ten days is still an estimate. If half the catalogue migration is left on day eight, you buy more days. In a sprint model the backlog gets reprioritised and you receive whatever fitted inside the sprints you paid for.

Fixed price against a written scope

One number covers a defined list of deliverables. The developer estimates internally, adds their own contingency and absorbs any overrun on work that was in scope. This model is only as good as the scope document. A vague scope produces either a padded price or an argument later about what "the product page" was supposed to include.

The Same Build, Priced Three Ways

The build: six pages, a migrated catalogue, one checkout flow

Take an illustrative project. A merchant on a stock Shopify theme wants a headless storefront. The scope covers six templates: home, collection, product, about, journal and contact. It includes the full catalogue migrated with variants, images and metafields, a custom cart, and a handoff to Shopify's own checkout. Old URLs need redirects so search rankings survive the move.

Here is how the three models treat that same job.

HourlyDay-rate or sprintFixed price
What you signA rate and an estimateA rate and a number of daysA price and a scope document
What you know on day oneThe rateThe rate and a planned durationThe total
Who pays for an overrun on agreed workMerchantMerchantDeveloper
How new requests are handledAdded to the hours, often unnoticedExtra days, or something else drops outPriced as a change order before work starts
Typical failureFinal invoice far above the estimateDeadline met, features missingScope too vague, so disputes over what was included
Admin load on the merchantChecking timesheetsTracking sprint outputReading the scope carefully once

What happens when scope shifts under each model

Three things happen on almost every migration. The metafields turn out messier than expected. Someone asks for a size guide on the product page. The design goes into a third round of revisions.

On hourly billing, all three land on the invoice. None of them feels large on its own, and that is how 80 estimated hours become 150 without a formal change order ever being raised.

On a day rate, the same events either add days or push something out of the sprint. Often the journal template or the redirects quietly slip to "phase two".

On a fixed price build, the messy metafields are the developer's problem if the catalogue migration was in scope as written. The size guide is new scope, so it is priced and approved before anyone builds it. The third revision round depends on what the contract says about revisions. That is why the clauses matter more than the headline number.

The Contract Clauses That Protect a Merchant

Most comparisons of hourly and fixed pricing stop at the model. The protection sits in the wording. When a build is quoted as a fixed price for a written scope, these are the four clauses to read before signing, whoever you hire.

A scope clause that names pages, integrations and exclusions

The scope should list every template by name and every integration by tool: reviews, subscriptions, email platform, analytics, any ERP or 3PL feed. It should also list what is excluded. "Copywriting not included" or "catalogue migration limited to current active products" is the line that prevents a dispute three months later.

A revision-rounds clause with a defined limit

Design revisions need a number. Two rounds per template is a common structure. The clause should also define a round: one consolidated set of feedback, not a stream of messages. Without a limit, a fixed price quietly turns into open-ended work and the developer starts cutting corners elsewhere to cover it.

A change-order clause that prices new scope before work starts

New requests should be written up, priced and approved in writing before work begins. The clause should state how quickly the developer will return a price, and that nothing is billed until you approve it. This is the single clause that separates fixed price from hourly billing wearing a disguise.

An ownership and handover clause for code and content

You should own the code, the design files and the content once the invoice is paid. The repository should sit in your account or transfer to it. The clause should cover access to hosting, the Shopify store, and any domain or analytics accounts, so the business is never locked out of its own assets.

When Hourly Billing Still Makes Sense

Fixed price is not the right answer for every job, and pretending otherwise would make this article an advert.

Small fixes and bug triage

If a theme app has broken the cart drawer, nobody can scope the fix until someone looks. Writing a scope document for a two-hour bug costs more than the bug. Hourly billing with a cap, agreed in advance, is the honest model here. For a single small fix, a good hourly freelancer will often serve you better than a studio built around fixed-price projects.

Ongoing optimisation with no fixed end point

Conversion testing, speed tuning and steady feature additions have no finish line. A time-based arrangement fits them, provided it can be stopped whenever you choose. The protection on ongoing work is the right to stop, not a fixed total.

Why Headless Shopify Pricing Looks Different

Headless means the storefront is built as its own application, while Shopify keeps running products, inventory and checkout behind it through the Storefront API. That split is why headless Shopify pricing sits higher than a theme job. It is a software build, not a restyle.

What a theme build does not include

A theme build works inside Shopify's Liquid templates and theme editor. Shopify hosts the front end. The work is mostly styling, sections and app configuration. There is no separate codebase to deploy, no front-end hosting to set up and no API layer to wire. That is why theme work is cheaper. It is also why a theme looks like a theme, however well it is styled.

What a headless storefront adds to the scope

A headless build adds a custom front end in React, using Shopify's Hydrogen or Next.js. It adds API wiring for products, collections and cart, a deployment pipeline, and a technical SEO rebuild with redirects. Hosting is less of a variable than it used to be: Hydrogen storefronts deploy at no cost on Oxygen, Shopify's own hosting for headless builds. Since 25 August 2026, Oxygen has been available on trial-plan stores, so teams can build and test before committing to a paid plan. Hydrogen also does not require Shopify Plus. Plus adds features such as custom checkout and higher API limits, but a headless storefront can run on standard plans.

Two of our builds show what that scope looks like in practice. For Oleum Crete, which sells single-estate PDO extra virgin olive oil from Crete to the UAE, we replaced a stock Shopify template with a custom Hydrogen storefront. It has cinematic scrolling, guided selling across five pressings and an editorial buy-moment with Apple Pay. The same build included a two-day Dubai photoshoot, a re-mastered estate film, a technical SEO rebuild and a zero-downtime domain cutover. Each of those is a line in the scope, and each is absent from a theme quote.

PureNest, a luxury bedding brand entering the UAE, runs headless on Next.js 14 with the Shopify Storefront API. The build includes a complete catalogue, product pages, a slide-out cart, a true right-to-left Arabic layout and a day-and-night mode. It launched in a coming-soon mode, wired to switch on live Shopify selling when the brand is ready. Bilingual layout and launch states like that are scope items, so they get priced, not discovered.

How to Get an Accurate Fixed-Price Quote

The accuracy of a fixed price depends mostly on what you bring to the first conversation.

Write down every page and integration before the call

List each template, not each page. Fifty product pages share one product template. Then list every tool the store touches: payments, reviews, subscriptions, email, search, translation, shipping, analytics. Note your catalogue size and how many variants you carry. If you sell in two languages, say so up front, because right-to-left Arabic layout is a different job from a translation plugin.

Ask for the scope document before you ask for the price

A price without a scope tells you nothing. Ask for the document that lists deliverables, exclusions, revision rounds and handover terms. Then read the price against it. Two quotes are only comparable once they cover the same list.

Check what counts as a change order

Ask the developer to give one example of a request they would treat as a change order and one they would absorb. Their answer shows how they will behave in month two. Vague answers here usually mean the fixed price will start to drift.

Related: Bespoke website and headless Shopify development · How a custom headless Shopify storefront compares to a theme · Fuller cost and timeline breakdown for headless commerce

Frequently asked questions

How much does a Shopify developer cost per hour?

It varies by experience, region and whether you hire a freelancer or a studio. ZipRecruiter's US data puts average pay for an employed Shopify developer at about $52.84 an hour, and agency rates sit above salary because they include management and overhead. The hourly figure alone is a weak basis for comparison unless the hours are also fixed.

Is headless Shopify more expensive than a standard theme build?

Yes, upfront. A headless build is a separate application with its own front end, API wiring and deployment, while a theme build works inside Shopify's existing templates. The premium buys a storefront that does not look or behave like a template, and Hydrogen hosting on Oxygen carries no extra cost.

What should be included in a Shopify development contract?

At minimum, a scope clause naming pages, integrations and exclusions, a limit on revision rounds, a change-order process that prices new work before it starts, and a clause transferring ownership of code and content to you. Access to the store, domains and hosting should sit with the business.

Can a fixed-price quote change once the project has started?

The price for the agreed scope should not change. New requests can be added, but each one should be priced as a change order and approved by you in writing before any work begins. If a developer raises the price on work that was already in scope, the scope document was not doing its job.

How long does a headless Shopify rebuild usually take?

It depends on the number of templates, catalogue size, integrations and whether content and photography are part of the job. A bilingual build with a custom cart is a longer project than a single-language storefront. A good fixed-price scope states the timeline alongside the price, so you know both before you sign.

Want a fixed price in writing before any Shopify work starts? Talk to Meant about your build.

Get the next one.

One email when a new case study or guide goes up. No list, no newsletter filler.

No list, no filler. Reply to any entry and we will take you off.

WhatsApp us