Shopify B2B is the set of features (gated catalogs, customer-specific pricing, draft orders, payment terms, tax-exempt customers, company accounts) that lets a single Shopify store serve both retail buyers and wholesale buyers without breaking either experience. Done right, it adds a new revenue line that operates at 40–60% of DTC margin but with 5–20× the order size. Done wrong, it pollutes your analytics, undercuts your retail prices, and gives your support team a queue they can't triage.

Most stores discover B2B accidentally — a buyer from a boutique emails asking for 50 units at a discount, you do it as a one-off, and three quarters later you're running a meaningful side-business on top of an operation built for $40 retail orders. This guide walks through when to formalize that, when to keep it manual, and what the structural decisions actually look like inside Shopify.

The three-stage progression of wholesale on Shopify

Every store that does any meaningful wholesale passes through the same three stages. Knowing which one you're in tells you exactly how much B2B infrastructure to build.

Stage 1: Ad-hoc — under $50K/year wholesale

You take wholesale orders by email or DM. You quote a price, send a Shopify draft order with a manual line-item discount, and email the invoice. Buyers pay by Shopify Checkout link, ACH, or bank transfer.

This is the right stage for almost every store under ~$30K total monthly revenue. Adding B2B-specific apps or a separate wholesale storefront here is over-engineering. You'll spend more time configuring the system than you'll spend handling the orders manually.

The one upgrade worth making early: a shared customer list tagged wholesale so you can pull a quick CSV when you need to.

Stage 2: Formalized — $50K–$500K/year wholesale

Wholesale is now a meaningful percentage of revenue, you have repeat buyers, and you're losing time on manual quoting. The friction now sits in three places: (1) you keep typing the same line-item discount, (2) buyers ask for tax-exempt invoices and you have to remember which buyers, and (3) your retail conversion analytics are noisy because $4,000 wholesale orders are blending into your AOV reports.

The fix at this stage is not a separate Shopify store. It's:

  • A buyer-specific price list using Shopify B2B catalogs (Shopify Plus) or wholesale apps (Wholesale Pricing Discount, B2B Login & Lock) on standard plans.
  • A wholesale customer tag and a customer-tag-gated discount code.
  • Customer-specific tax exemption set up under the customer record.
  • A separate analytics segment that excludes the wholesale tag from your DTC reports — see the recipes in our metrics guide.

You're still on one storefront. You're still running one ops process. You've just stopped retyping the same quote.

Stage 3: Two-faced store — $500K+/year wholesale or 25%+ of revenue

At this point, B2B is its own business with its own buyers, its own price expectations, and its own support patterns. The cleanest answer is a separate Shopify B2B-only storefront (a Shopify Plus feature: "B2B store") tied to the same back-office, OR a fully separate Shopify store if you want hard isolation.

Reasons to split:

  1. Pricing visibility. Wholesale buyers comparing your B2B price list to your DTC price list see the markup. A separate storefront avoids the conversation entirely.
  2. Catalog scope. Wholesale buyers want pack-quantities, MOQs, and SKU-bundles that are confusing on a DTC PDP. A B2B storefront can show them natively.
  3. Account workflow. Reps placing orders on behalf of buyers want company accounts, multiple shipping addresses, and approval flows — none of which fit on a DTC checkout.
  4. Separate analytics. Mixing $30 retail orders with $5,000 wholesale orders gives you a meaningless AOV and ruins your cohort analysis.

The transition from Stage 2 to Stage 3 is a meaningful project. Budget 4–6 weeks of work, $5–15K in agency or implementation time, and a careful migration plan for existing wholesale buyers.

What Shopify B2B actually gives you (Plus only)

Shopify B2B (released in its modern form in 2023, expanded substantially through 2025) is bundled with Shopify Plus and includes:

  • Company accounts — multiple buyers can place orders on behalf of one company, with role-based permissions.
  • Catalogs — assign a specific product catalog (with custom prices, currencies, and visibility) to a company.
  • Customer-specific pricing — set per-SKU prices per buyer, including volume tiers.
  • Payment terms — Net 30, Net 60, deposits, with automatic invoice generation.
  • Tax exemption — flag specific companies as tax-exempt with certificate storage.
  • Quantity rules — minimum order quantity, increment, max per SKU.
  • Quick order forms — buyers can paste a SKU list instead of clicking through products.
  • Draft orders → quotes — sales reps can build a draft on a buyer's behalf and send it as a quote.

What it does NOT give you out of the box:

  • PO upload (most B2B buyers expect this; you'll need an app or custom code).
  • Approval workflows beyond simple role permissions.
  • Real-time inventory allocation between DTC and B2B (without manual location segmentation).
  • EDI integration for big-retail channels — that's a separate problem with a separate toolset.

The pricing question every wholesale store gets wrong

The most common pricing mistake is setting wholesale at a flat 50% off retail. This is rarely the right number. The two structural issues:

Issue 1: 50% off retail isn't 50% margin

If your retail margin is 70%, then 50% off retail is 40% margin. If your retail margin is 55%, then 50% off retail is 10% margin — you're losing money on every pallet. Wholesale pricing should be set as a function of landed cost, not retail price. Common starting point: 2× landed cost (which gives ~50% margin to you and lets the buyer mark up to 2.2–2.5× their cost for retail).

Issue 2: Volume tiers should reflect handling cost, not "more is better"

A 6-unit order and a 600-unit order have the same purchase order cost on your side but very different per-unit fulfillment cost. A 6-unit order incurs a flat $8–$15 handling fee that makes 6-unit wholesale margin worse than DTC retail. Most stores never charge this and quietly subsidize their smallest wholesale buyers.

A clean tier structure for a typical small-catalog store:

VolumeDiscount off MSRPWhy
6–24 units35%Token wholesale margin; volume covers handling cost
25–149 units45%Real wholesale tier — most boutique buyers land here
150+ units55%Volume tier for distributors and large boutiques

Set the bottom tier with a minimum order quantity (MOQ) of 6 units to make it not worth picking off as a hack on retail.

Order workflows: where wholesale breaks DTC ops

DTC fulfillment optimizes for: pick a single SKU, pack in a small mailer, ship in 1–2 days. Wholesale fulfillment is a different shape: pick 50 SKUs, pack in cartons or pallets, ship in 5–10 days, often with bill-of-lading paperwork. Forcing both through the same workflow generates predictable failures:

  • Pickers grabbing from the wrong location. B2B inventory should live in a separate Shopify location (or even a separate warehouse) from DTC inventory. If they share, every wholesale order risks stocking out a fast-moving DTC SKU.
  • Carrier selection mistakes. A 50-unit wholesale order should ship LTL (less-than-truckload) freight, not 8 USPS boxes. Default rate-shopping in your fulfillment stack usually doesn't know this.
  • Packaging signal mismatch. DTC ships in branded boxes with hand-written notes. Wholesale ships in plain corrugated cartons. Forcing branded packaging on B2B costs you margin and confuses buyers.
  • Returns logic. B2B returns are RMAs with restocking fees. DTC returns are no-questions-asked. The same "Returns" link can't serve both.

The fix is to split the operations from day one of Stage 2. Separate locations in Shopify, separate fulfillment workflow, separate returns policy, separate shipping rate config.

Customer experience: the things B2B buyers want

B2B buyers are professional purchasers. They behave differently from DTC shoppers:

  1. They reorder the same things. A "buy again" or "reorder this list" surface is more valuable than a recommendation engine.
  2. They want pricing visible without a login. Many wholesale catalogs hide pricing behind a login wall, which kills new-buyer conversion. Show MSRP and indicate "wholesale pricing available" with a sign-up CTA.
  3. They place big orders late at night. B2B buyers are doing inventory restocks at 11pm after their store closes. Make sure your checkout doesn't break on session timeout.
  4. They care about lead time more than free shipping. A clear "ships in 5 business days" beats free shipping by a wide margin.
  5. They want a tax-exempt path. Most B2B buyers have resale certificates. Surfacing the upload in account creation removes 3–5 emails per buyer.

If you're going to build for B2B, build for these patterns. Don't graft a DTC checkout onto wholesale and hope.

Common mistakes

  • Treating wholesale as "DTC with a discount code." It's a different business model with different unit economics, ops, and conversion behavior.
  • Discounting on percentage rather than rebuilding price as a function of landed cost. You'll find out in 18 months that your top wholesale account is your worst-margin customer.
  • Mixing inventory pools. Wholesale orders cleaning out a DTC SKU is a routine disaster. Use separate Shopify locations.
  • Letting one big buyer become 30%+ of revenue. You're now one phone call from a 30% revenue cut. The customer-segmentation discipline applies to wholesale too.
  • Not setting a real MOQ. Six-unit wholesale orders that aren't priced for the handling cost are a cumulative subsidy that adds up to real margin.
  • Skipping payment terms. Asking every wholesale buyer to pay upfront caps your buyer pool. Net 30 is table stakes for serious B2B.
  • Forgetting about the legal layer. Wholesale agreements (resale certs, MAP policies, geographic restrictions) are real contracts, not Shopify settings.

Frequently asked questions

When should I add Shopify B2B to my store?

Add it when wholesale revenue crosses 15% of total revenue OR when you have three or more repeat wholesale buyers. Below that, draft orders and a tagged discount code are sufficient and don't add complexity. Above that, the time saved by formalizing pricing, tax, and reorders pays for the setup within 60–90 days.

Do I need Shopify Plus for B2B?

Shopify Plus has the most complete native B2B feature set (catalogs, company accounts, payment terms, B2B-only storefronts). On standard Shopify plans, you can build a similar experience with apps like Wholesale Pricing Discount, B2B Login & Lock, and a tagged customer segment. Plus is worth it once wholesale is $500K+/year.

Should I run B2B on a separate Shopify store?

Only at Stage 3 (>$500K/year wholesale or >25% of revenue). Below that, a single store with B2B catalogs and customer tags is operationally simpler. Above that, the analytics, pricing visibility, and ops separation justify a second store or a Shopify Plus B2B storefront.

How do I set wholesale pricing on Shopify?

Three options: (1) Shopify B2B catalogs on Plus — assign per-buyer price lists; (2) Wholesale apps like Wholesale Pricing Discount on standard plans; (3) Tag-gated discount codes as a Stage 1 hack. Whichever you pick, base your wholesale price on 2× landed cost, not 50% off retail.

Can I have wholesale and DTC inventory on the same Shopify store?

Yes, but use separate Shopify locations for the inventory pools. Otherwise a wholesale order will randomly clean out a fast-moving DTC SKU. Set the wholesale location as the priority for B2B-tagged orders and the DTC location as the priority for guest orders.

How do tax-exempt B2B sales work on Shopify?

Mark the customer record as tax-exempt under Customers → [Customer] → Manage tax exemptions, and store their resale certificate on file (Shopify B2B has native cert upload; on standard plans use a third-party app or your own document storage). Shopify will not charge tax on orders from that customer.

Key takeaways

  • Wholesale on Shopify is a 3-stage progression: ad-hoc (draft orders), formalized (B2B catalogs + customer tags), two-faced store (separate B2B storefront).
  • The right wholesale price is 2× landed cost, not "50% off retail." Discount-as-percentage hides margin holes.
  • Set MOQs to make small wholesale orders carry their handling cost. Six-unit orders without MOQ are a subsidy.
  • Separate inventory locations between DTC and B2B from day one. Shared pools fail predictably.
  • Net 30 is table stakes for serious wholesale buyers. "Pay upfront" caps the buyer pool.
  • B2B is a different ops shape — different fulfillment, different returns, different packaging, different analytics. Don't graft it onto DTC.
  • A weekly action plan tool like DropifyXL tags wholesale customers separately so they don't pollute your DTC win-back, restock, and PDP-conversion recommendations.

Wholesale is one of the highest-leverage revenue lines a Shopify store can add — provided you treat it as a real business model, not a side door off the DTC funnel.