Shopify B2B & the wholesale channel
There are three practical ways to sell wholesale on Shopify, and the right one depends almost entirely on how many accounts you have. Under about ten, use draft orders and invoices and build nothing. Between ten and thirty, gate a trade area of your existing store with customer tags and an app that applies trade prices. Above that, or once your pricing has several tiers, the native B2B features on the top plan do the work properly.
Moving up too early costs money and setup time you do not have; staying too long in a manual process costs hours every week and loses orders placed at eleven at night. This is how each setup actually runs, and the signals that it is time to move.
Setup one: draft orders and invoices
Shopify's draft order tool is a wholesale system that most brands never notice. You build an order in the admin, apply the trade price, set the shipping, and send the buyer an invoice link they can pay online. Or you mark it as pending and send your own invoice with payment terms.
For your first accounts this is the correct answer. There is nothing to configure, nothing to break, and no monthly cost. Your buyer emails an order, you build it in five minutes, they receive a professional invoice, and the order flows into your normal fulfilment and reporting like any other.
Keep two habits with it. Tag every wholesale order clearly so your reporting can separate the channel from retail. And write the trade prices down in one place — a line sheet you send — so you are not recalculating a discount each time.
The point it stops working is predictable: when you are building the same order for the same eight shops every month, when buyers ask to order without waiting for you, or when you make a pricing mistake because it lives in your head. That is the signal to build something. What the buyer needs to see before any of this matters is the paperwork listed in the wholesale readiness checklist.
Setup two: a tagged trade area on your existing store
The middle option keeps one store and one product catalogue, and separates trade from retail with customer accounts, tags and an app.
The shape is consistent regardless of which app you choose. A retailer applies through a form on your site. You approve them and add a tag such as wholesale to their customer record. The app then applies a trade price for tagged customers — usually either a proportional discount across collections or a fixed price per product — and can enforce minimum order values and quantity increments so case packs are respected. Pages, collections and sometimes the prices themselves are hidden from anyone not logged in with the tag.
What you get is a buyer who can place their own order at any hour, at the right price, without you touching it. What you accept is that this behaviour is bolted onto a retail store: prices are being adjusted rather than natively different, checkout is still the consumer checkout, and payment terms usually mean taking the order and invoicing separately rather than a clean terms flow.
Three things to get right in this setup, whatever tool you use:
- A real application form. Business name, address, tax or company number, website, and what they already stock. Approving people manually is a feature, not a chore — it stops consumers buying at trade prices.
- Quantity increments per product. This is what makes a case pack a case pack. Without it you will correct orders by hand forever.
- Wholesale shipping rates. Retail rates were designed for one parcel. Set a separate rate for trade orders, with a threshold above which you include freight.
Be careful about relying on an app for anything you cannot rebuild. Apps change, get acquired and get retired. Keep your prices in a document of your own, not only inside a tool.
Setup three: native B2B on the top plan
The third option is Shopify's own B2B functionality, which is part of its higher enterprise-level plan rather than the standard ones. Instead of adjusting retail behaviour, it adds a proper company model: companies with locations and contacts, catalogs that control which products a buyer sees and what they pay, quantity rules, payment terms with net periods, and a checkout built to place an order without paying immediately.
The practical difference is that trade behaviour stops being a workaround. A buyer logs in and sees their own catalog. Case packs are enforced by increments. Tax exemption sits on the company location. Terms are attached to the account rather than remembered by you. A mini-chain with several shops is one account with several locations.
It earns the cost when complexity, not just volume, has arrived: several price tiers, accounts on different terms, a distributor buying at a different level from a boutique, and enough orders that manual handling is a real weekly cost. The full feature-by-feature picture is in Shopify B2B.
The fourth option you should probably skip
A second, password-protected Shopify store used only for wholesale was the standard advice for years, and it still appears in old guides.
It works, and it has one real advantage: total separation, so trade prices can never leak and the storefront can be built entirely for buyers. But it duplicates everything. Two product catalogues to keep in sync, two sets of inventory unless you add a syncing tool, two subscriptions, two themes, and an ordering experience behind a shared password that feels dated to buyers who expect their own login.
Unless you have a specific reason — a completely different range for trade, or a separate legal entity — one store with trade access gated is easier to run and easier to keep accurate. The history of why so many brands ended up with a second storefront, and how to consolidate, is in the Shopify wholesale channel.
Things every setup needs, whichever you choose
Four operational decisions sit outside the software, and getting them wrong makes any of the three feel broken.
Inventory separation. Retail and wholesale drawing from one pool is fine until a six-case order empties the shelf your own store was selling from. Either hold wholesale stock at a separate location or keep a buffer quantity you never sell down.
Consistent retail pricing. Your own store at full retail, always. Discount codes that apply sitewide are the fastest way to annoy a stockist whose customer is standing in their shop with a phone.
Order confirmations that read like a supplier. Quantities, unit prices, ship date, payment terms, purchase order reference. Whether that comes from an app or from you, it should look the same every time.
Somewhere to record account history. Which stores have ordered, when they last did, what sold. Shopify's customer notes and tags are enough at first, and this record is what produces reorders.
Which one you need this year
A rough test. Count your active wholesale accounts and count the price tiers you genuinely operate.
Fewer than ten accounts and one tier: draft orders. You do not have a software problem, you have a sales problem, and the time is better spent finding accounts. Ten to thirty accounts and one or two tiers: the tagged trade area, because self-service ordering is now worth more than the app cost. More than thirty, or several tiers, or accounts on terms: the native B2B route, where the monthly cost buys back hours and removes errors.
If you are at the first stage and want to be at the third, the constraint is the account list rather than the platform. Pasting a product link into WholesalePilot returns a preview of the retailers and distributors that stock comparable products, which is the input the store cannot generate. Choosing the buyers deliberately, rather than taking whoever emails, is covered in independent brand wholesale.
Questions about wholesale on Shopify
Can you sell wholesale on a standard Shopify plan? Yes. Draft orders work on any plan, and tag-based trade pricing through an app covers most of what a small brand needs.
Should wholesale prices ever be visible publicly? No. Gate them behind an approved login, so shoppers never see a trade price next to a retail one.
How do you stop a consumer registering as a retailer? Approve every application manually and ask for a business identifier. A short form and a two-minute check is enough.
Can one store handle two currencies for export accounts? Yes, through Shopify's market settings, though tax and duty handling for export needs deliberate configuration rather than defaults.
What about syncing wholesale orders to accounting? Tag the orders clearly and use your accounting integration's mapping. A clean tag from day one saves an unpleasant reconciliation later.