Skip to content
Can Elmas

Shopify · 8 min read

Shopify B2B and Wholesale: How to Set Up a Wholesale Channel

TL;DR

For most brands, Shopify wholesale works best as native B2B on the existing store: company buyers log in and see their own catalog, prices, payment terms and quantity rules, while consumers see retail. Use a separate store only for a different catalog, entity or team. Settle pricing, minimums, inventory allocation and ERP sync before inviting accounts.

· Published · Updated

For most brands, the best way to run Shopify wholesale is native B2B on the store you already have: wholesale buyers log in to the same storefront and see their own catalog, prices and payment terms, while consumers keep seeing retail. A separate store or an app is the right call only in specific cases. The hard part is deciding pricing, terms, minimums and inventory ownership before the first account logs in.

Wholesale options on Shopify

There are four ways to take wholesale orders, from least to most structured:

  1. Draft orders. Accounts email their order, you build a draft order at wholesale prices and send an invoice. Nothing to set up, but every order is manual.
  2. Wholesale apps. Apps that show wholesale prices to tagged customers and add order forms or quote flows. Some apply the price through discounts or draft orders behind the scenes, which can clash with your other discounts, so check how the price reaches checkout.
  3. Native B2B on your existing store. Companies, catalogs, price lists, payment terms and quantity rules built into Shopify Plus, sharing one catalog and inventory with retail.
  4. A separate wholesale store. A second storefront only for trade buyers, running native B2B or an app.
OptionBest forOngoing effortMain watch-out
Draft ordersA handful of stockists ordering occasionallyHigh per orderNo self-serve; doesn’t scale
Wholesale appNon-Plus stores, or needs native B2B doesn’t cover, such as quote requestsLow to mediumHow prices are applied; dependence on one vendor
Native B2B, same storeMost brands with an overlapping catalogLow after setupRequires Shopify Plus; wholesale-only SKUs visible to consumers
Separate wholesale storeDifferent catalog, legal entity or teamHighestDuplicated apps, product data and inventory sync

One store or two

Default to one store: one product catalog, one inventory count, one theme and one set of apps. B2B orders carry the company and location, so you can still separate them in reports.

A second store earns its overhead when at least one of these is true:

  • The wholesale catalog is substantially different: case packs, display units, retailer-only SKUs or product content written for buyers rather than consumers.
  • Wholesale runs through a different legal entity, currency, tax setup or payment provider.
  • You want the entire wholesale storefront behind a login, invisible to search engines and consumers.
  • A separate team owns wholesale with its own P&L.

The cost is real: syncing products and inventory between stores through an app or your ERP, paying for apps twice and updating two themes. On Shopify Plus, expansion stores are included; on other plans, each store is its own subscription. Whether your setup needs Plus at all is covered in Shopify vs Shopify Plus; this post focuses on the build.

Company accounts, catalogs and price lists

Native B2B is built around three objects:

  • Companies: the business you sell to.
  • Locations: each place that company orders for, with its own shipping and billing addresses, payment terms, catalogs, tax details and checkout settings. A retailer with three shops is one company with three locations.
  • Customers (buyers): the people who place orders, each assigned to one or more locations with a role such as ordering only or location admin.

Before importing, build a sheet with one row per location: legal name, addresses, buyers, price tier, payment terms and tax status. Gaps in that sheet become support tickets after launch.

Catalogs and price lists

A catalog decides which products a location can see and buy, and its price list sets what they pay. A price list can apply a percentage adjustment to all products, set fixed prices on specific variants, and add volume pricing (price breaks at higher quantities).

Two pricing decisions matter most:

  • Tiers versus negotiated prices. Launch with two or three tiers, for example standard wholesale around half of retail and a lower distributor price. Account-specific pricing multiplies catalogs and admin work.
  • Percentage versus fixed prices. A percentage-based price list follows your retail price, so if you run DTC sales by lowering the product price itself, wholesale drops with it. Use fixed prices for core SKUs, or run DTC promotions through discounts.

Moving from WooCommerce, where wholesale often ran on a plugin with customer roles? Map each role to a tier and catalog; the WooCommerce to Shopify migration checklist covers the rest.

Payment terms, minimums and quantity rules

Payment terms

Each location gets its own terms: net terms such as Net 30, due on fulfillment or due on a fixed date. Buyers can also pay by card, and cards can be saved to the company for later orders. Each location can also require a deposit at checkout.

Credit limits and collections belong in your accounting system or ERP. A practical policy: new accounts pay by card at first, then move to terms once they’ve paid on time. For new or at-risk accounts, turn on the location setting that submits orders as drafts for review.

Minimums and quantity rules

RuleNative in B2B?Example
Minimum quantity per variantYes, in the catalogAt least 6 units
Order in incrementsYes, in the catalogSold in cases of 6
Maximum quantityYes, in the catalogLimited release, maximum 24
Volume price breaksYes, in the price listLower unit price from 48 units
Minimum order valueNo$300 opening order, $150 reorder

An order-value minimum needs a cart and checkout validation app built on Shopify Functions. A theme message helps as guidance, but buyers can get around it, so the block has to happen at checkout.

Whatever the rules, publish them on your wholesale terms page so nothing surprises buyers at checkout.

Keeping wholesale pricing hidden from DTC shoppers

With native B2B, wholesale prices only appear after a buyer logs in and selects a location. Logged-out visitors see retail. The leaks happen around that:

  • Wholesale-only SKUs. A case pack published to the online store can surface in search, collections, the sitemap and product feeds. Hide it from DTC browsing, exclude it from feeds and confirm a logged-out visitor can’t buy it by URL, or use a separate store.
  • Discount stacking. Check how your discounts behave for company buyers, so a DTC promotion doesn’t land on top of a wholesale price.
  • Email. Exclude company buyers from DTC campaigns and flows. A retailer who gets a consumer promotion will ask why their price is worse.
  • Applications. Some consumers apply for wholesale to get the discount. Require a business name, tax or resale ID and a storefront or website, and approve accounts manually.
  • Theme-based pricing. If an app changes prices in the theme with scripts, check whether wholesale prices show up in the page source for logged-out visitors.

Add a “Wholesale login” link in the header or footer so buyers don’t shop logged out by mistake.

Inventory, ERP and fulfillment integration

Decide which system owns each piece of data before you connect anything:

DataUsual system of recordSync direction
Products and retail pricesShopify or a PIMOut to the ERP
Wholesale price listsERP, if it holds contract pricingERP to Shopify catalogs
Companies, locations, termsERP or accounting systemERP to Shopify
InventoryERP, WMS or 3PLInto Shopify
OrdersShopifyShopify to ERP
Invoices and payment statusAccounting system or ERPBack to Shopify

Many ERP connectors handle DTC orders well but only partly support companies, catalogs and payment terms. Confirm B2B support with a test order before you sign.

Inventory allocation is the decision teams skip. In one store, wholesale and DTC share stock, so one large retailer order can sell out your best seller for consumers. Keep a DTC safety buffer, allocate wholesale stock in your ERP or WMS, or accept the trade-off deliberately.

Fulfillment needs its own checks:

  • Buyers can enter a PO number at checkout. Make sure it reaches packing slips, invoices and the ERP.
  • DTC free-shipping thresholds can hand free freight to a 20-case order. Review rates against wholesale order sizes.
  • Large retailers often require EDI and routing guides. Shopify doesn’t handle EDI on its own, so plan for an EDI provider if those accounts are coming.

Launching to your first wholesale accounts

Don’t invite every account on day one. Pilot first.

  1. Pick five to ten accounts that order regularly and will tell you what’s broken.
  2. Import their companies, locations and buyers, then assign catalogs, terms and checkout settings.
  3. Test as a buyer at each account: login, prices, quantity rules, minimums, checkout on terms, ERP sync and invoice.
  4. Turn on order review so your team approves each pilot order.
  5. Send a one-page guide covering login, reordering from order history and where terms appear.
  6. Run the old process in parallel for a few order cycles, then roll out to the remaining accounts.

After launch, watch the share of orders placed self-serve versus by email, order corrections, time from order to invoice and reorder frequency by account.

Pre-launch checklist:

  • A test buyer sees wholesale prices logged in and retail logged out
  • Quantity rules and the order minimum block an invalid order at checkout
  • Wholesale-only SKUs are excluded from DTC search, collections and product feeds
  • DTC discounts don’t apply to wholesale orders
  • Company buyers are excluded from DTC email campaigns and flows
  • A test order on terms reaches the ERP with company, PO number and terms
  • The DTC inventory buffer or allocation rule is agreed
  • Someone owns account approvals, price list changes and overdue invoices

When I build wholesale channels as part of Shopify development work, most of the time goes into pricing policy, ERP mapping and the pilot. The admin configuration is the quick part.

Get it built

If you want a wholesale channel your accounts actually order through, I can plan and build it, from price lists to ERP sync. Shopify builds and migrations start from $6,000, or start with a Growth Audit, $1,500 fixed and credited if we continue. See pricing or get in touch.

FAQ

Frequently Asked Questions

Do I need Shopify Plus to sell wholesale?

Not necessarily. Draft orders and wholesale apps work on any plan. Native B2B, with companies, catalogs, price lists, payment terms and quantity rules built in, is a Shopify Plus feature, so weigh the cost of Plus against app fees and how you actually price accounts.

Can wholesale and retail customers use the same Shopify store?

Yes. With native B2B, company buyers log in and see their own catalog, prices and terms, while everyone else sees retail. Wholesale-only products need extra care so they don't show up in DTC search, collections or product feeds.

How do I set a minimum order value for wholesale on Shopify?

Quantity rules handle per-product minimums and case increments natively. A minimum order value usually needs a cart and checkout validation app built on Shopify Functions, because a theme-only check can be bypassed.

How should I set wholesale prices?

Start from your margin at each tier, not a flat discount copied from a competitor. Most brands launch with two or three tiers, such as a standard wholesale price around half of retail and a lower distributor price, and move key accounts to negotiated pricing only when their volume justifies it.

Work with me

Let’s find your biggest growth lever

Tell me about your growth challenge. I’ll tell you honestly if I can help — and if I can’t, who can.

  • ✓ No obligation
  • ✓ No sales script
  • ✓ Honest feedback
  • ✓ Clear next steps