How to Hire a Shopify B2B Wholesale Developer (2026 Plans, Hours, Red Flags)

Shopify B2B build hours: native setup 15 to 40, server-side gate 10 to 40, ERP sync 120 to 300

TL;DR: Native Shopify B2B no longer needs Plus: since April 2026, Basic, Grow and Advanced get up to 3 wholesale catalogs and payment terms. A build without an ERP sync runs about 25 to 80 hours, or $1,250 to $4,000 at my $50 rate. An ERP sync adds 120 to 300 hours. Before you hire, ask one question: what stops a retail buyer who posts a wholesale variant to /cart/add?

On a Shopify Plus B2B build I shipped for a regulated UK aesthetics and pharmacy group, the gate had six layers. Five of them lived in the theme, and any one shopper with a cart permalink could walk around all five.

Only the sixth, a Shopify Function running on the server, could not be bypassed. This guide is for a DTC brand doing $1M to $10M that wants to open a wholesale channel and is about to hire someone to build it. Below is which plan you need, what the hours should cost, and the questions that separate a B2B developer from a theme developer who has heard of B2B. One honest limit: none of this replaces a wholesale pricing strategy. It makes sure the one you pick holds.

Download the Shopify B2B developer hiring scorecard (PDF)

Why this matters for your store

  • A developer who quotes Plus for a store that only needs 3 price lists moves you onto a plan that starts at $2,300 a month.
  • A gate built only in the theme lets retail buyers order wholesale-only products, which costs you margin on every order that slips through.
  • An ERP sync is most of the bill, so knowing whether you need one decides your budget before you take a single call.

Do you need Shopify Plus for B2B wholesale in 2026?

Probably not anymore. On April 2, 2026, Shopify moved key B2B features to non-Plus plans. Basic, Grow and Advanced now include company profiles, payment terms, volume pricing, and up to 3 active B2B catalogs assigned through Markets, at no extra cost.

A catalog is a price and product list you assign to wholesale buyers. Shopify’s catalog documentation confirms the cap: 3 active catalogs across all your B2B markets on the lower plans, unlimited on Plus. Here is how the split lands for a typical wholesale brief:

What you need Basic, Grow, Advanced Shopify Plus
Company accounts and payment terms (net 30) Yes Yes
Up to 3 wholesale price lists (say, retailer, distributor, VIP) Yes Yes
A different price list per account No Yes, unlimited catalogs
Catalogs assigned straight to a company or location No Yes
Deposits and partial payments No Yes
Your own custom app with a Shopify Function No Yes
Custom checkout fields on the information, shipping or payment step No Yes

The last two rows matter more than they look. Shopify states that only Plus stores can run custom apps containing Function APIs, and checkout UI extensions on the information, shipping and payment steps are Plus-only. What non-Plus stores can still customize at checkout is in my checkout extensibility guide for non-Plus stores. Plus starts at $2,300 a month on a 3-year term.

So the plan question becomes one test. If you have 3 or fewer price tiers and no custom checkout step, start on your current plan. If every account negotiates its own price, or the build needs a custom server-side rule, you are pricing Plus.

What does a Shopify B2B wholesale build cost?

Agency quotes for this work are wide. Proscube, a Shopify studio, puts native B2B setup at $8,000 to $20,000 and B2B with an ERP at $40,000 to $90,000 or more (September 2026). Those figures bundle discovery, design and project management. Split by the actual work, the hours look like this:

Work What it covers Hours (my estimate) At $50/h At $150/h
Native B2B setup Companies, catalogs, payment terms, wholesale theme states, customer import 15 to 40 $750 to $2,000 $2,250 to $6,000
Server-side gate or checkout step A validation Function, a checkout UI extension, an approval flow 10 to 40 $500 to $2,000 $1,500 to $6,000
Two-way ERP or 3PL sync Orders out, stock and tracking back, retries 120 to 300 $6,000 to $15,000 $18,000 to $45,000

The hours are my scoping estimates for a $1M to $10M store, not a quote. Without an ERP sync, the build lands at 25 to 80 hours. With one, 145 to 380. I bill $50 an hour; Plus agencies run about $100 to $250, which I break down in what a Shopify expert costs. The line-item hours behind an ERP sync are in my custom Shopify app development cost breakdown.

Ask any quote one thing before you compare totals: which row is the money in? A $20,000 quote with no ERP in scope is mostly design and meetings.

Why is hiding the wholesale price in the theme not a gate?

This is where most B2B builds go wrong, and it is invisible until someone abuses it. A theme can hide a price, a button or a whole product card. It cannot stop a request that never touches the theme.

Shopify’s Ajax Cart API accepts a variant ID and a quantity at /cart/add.js. A cart permalink loads a cart straight from a URL. Express buttons like Shop Pay skip your cart page entirely. Any of the three gets a wholesale-only SKU into a retail cart, whatever the theme shows.

If your wholesale price comes from a B2B catalog, Shopify resolves it on the server, and that part is safe. The danger is product access: a wholesale-only, trade-only or practitioner-only product that the theme merely hides. That needs a cart and checkout validation Function, which re-checks the cart on every change and also runs on express checkouts such as Shop Pay, PayPal, Google Pay and Apple Pay.

On the pharmacy build, the Function was written to fail closed. A product counts as gated unless it is provably exempt:

// cart/checkout validation Function: a line is gated unless provably exempt
const lineIsGated = (merchandise) => {
  if (!merchandise || typeof merchandise !== "object") return true;   // unreadable -> gated
  if (merchandise.__typename !== "ProductVariant") return false;      // gift-card top-up, etc.
  const product = merchandise.product;
  if (!product) return true;                                          // no product -> gated
  if (product.isGiftCard === true) return false;
  return true;                                                        // default: practitioner-gated
};

The other half of that build was a rule I now ask every candidate about. The store used open email sign-up, so being signed in granted nothing. The only purchase credential was an approval tag a human set, and removing it re-gated the buyer on their next cart change. Logging in and being allowed to buy are separate checks. Theme-only “hide the price for guests” setups merge them.

What went wrong on my own B2B build?

Two things broke before launch, and both are now hiring questions.

The first version of the gate was a whitelist: it gated products of certain types and let everything else through. It silently leaked any product whose type fell outside the list. Flipping it to a denylist, where unknown means gated, fixed it. A new product type added a year from now stays gated by default.

The second was the application form. The first build used Shopify’s create_customer form, and under new customer accounts it silently discarded the custom fields: registration numbers, documents, the details a reviewer needs. I rebuilt it on Shopify’s B2B companies plus Shopify Forms, with Flow driving the pending, approved and rejected emails. Silent is the problem: nobody notices until a reviewer opens an application with nothing attached.

The full build, three storefronts and five extensions with no server to patch, is in the Shopify Plus B2B case study.

Which questions screen out the wrong B2B developer?

Ask these on the first call. The answer you want is next to each one.

  1. “A retail customer posts a wholesale variant ID to /cart/add. What stops them?” You want a server-side control named: a B2B catalog, or a validation Function. “We hide the button” ends the call.
  2. “Does logging in let someone buy wholesale?” You want a no. Approval should be a separate tag, company or catalog assignment that a person controls.
  3. “How will you capture the application fields?” You want B2B companies plus Shopify Forms, or another flow they have tested under new customer accounts.
  4. “How many catalogs do I need, and does that force Plus?” You want them to count your price tiers against the 3-catalog cap before quoting a plan.
  5. “Will you edit or fork my theme’s core files?” You want new files under their own prefix and a short list of any core edits, so your theme stays upgradeable.
  6. “What in this build runs on a server?” You want as little as possible. An extension-only app has no hosting bill and nothing to breach. On my build, the one job that needed a backend ran on a single Cloudflare Worker that stores nothing.

For the general vetting list (code ownership, staging, handover), use my 12 questions to ask before hiring a Shopify developer.

Should you hire a freelancer or an agency for Shopify B2B?

It depends on one row of the cost table. Native setup plus a server-side gate is 25 to 80 hours of focused work, and a senior freelancer does it faster with nobody in between. I built the pharmacy program solo.

An ERP or 3PL sync is different. When it fails on a Saturday, orders stop shipping, so it needs on-call cover. Hire an agency for that, or a freelancer who names a backup in writing. Check first whether your ERP vendor already sells a Shopify connector; even a paid one usually beats a 150-hour build on cash for years.

If wholesale buyers also get tiered discounts, ask how they will stop a wholesale discount stacking with a public sale. I covered that pattern in stacking Shopify discounts with Functions.

How do you check a B2B quote in 5 minutes?

  1. Count your price tiers. Three or fewer and no per-account pricing means the quote should not assume Plus.
  2. Find the ERP line. If the quote has no ERP sync but costs more than about $6,000 at agency rates, ask what the hours buy.
  3. Read the gating answer. If the proposal says “hide prices for non-wholesale customers” and names no Function or catalog, the gate is cosmetic.

The takeaway

  • Check your plan before you buy Plus: Basic, Grow and Advanced now run 3 wholesale catalogs with payment terms.
  • Budget 25 to 80 hours for a build without an ERP, and 120 to 300 more if you need one.
  • Ask every candidate what stops a /cart/add request, and hire the one who names a server-side control.
  • Separate logging in from being approved to buy, and make approval a human decision.
  • Default every new product to gated, so a missed type fails closed instead of leaking.

Hiring for a wholesale channel now? Print the scorecard above and score each candidate on the call. If you want a second opinion on a B2B quote, book a free 30-minute call and I will tell you which rows you actually need.

Kaspian Fuad is a Shopify developer and CRO consultant who builds Shopify Plus checkout extensions, B2B gates and custom apps for DTC and wholesale brands.

Frequently Asked Questions

Do you need Shopify Plus to sell B2B wholesale in 2026?

No. Since April 2, 2026, Basic, Grow and Advanced plans include native B2B with up to 3 active catalogs, company profiles, payment terms and volume pricing. Plus is still required for unlimited catalogs, catalogs assigned directly to companies and locations, deposits and partial payments.

How much does a Shopify B2B wholesale build cost?

A Shopify B2B wholesale build without an ERP sync takes about 25 to 80 hours, which is $1,250 to $4,000 at $50 an hour or $3,750 to $12,000 at a $150 agency rate. A two-way ERP or 3PL sync adds 120 to 300 hours on top. These are my scoping estimates for a $1M to $10M store.

Is hiding prices in the Shopify theme enough to protect wholesale products?

No. Hiding prices or buttons in the theme is cosmetic, because a shopper can still add a variant through the /cart/add endpoint, a cart permalink or an express checkout button. A real gate lives on the server, in a B2B catalog or a cart and checkout validation Function.

What should I ask a Shopify B2B developer before hiring?

Ask what stops a retail customer who posts a wholesale variant ID to /cart/add. The right answer names a server-side control, such as a B2B catalog or a cart and checkout validation Function. Also ask how they capture application fields, how many catalogs you need, and whether they will fork your theme.

Should I hire a freelancer or an agency for Shopify B2B?

Hire a senior freelancer for native B2B setup and a server-side gate, which together run about 25 to 80 hours. Hire an agency, or a freelancer with a named backup, when the build includes a two-way ERP sync that runs your fulfillment, because that needs on-call cover.

Part of the Liquid guide.

Book Strategy Call