Shopify B2B & the wholesale channel
You can sell wholesale on a standard Shopify plan without the native B2B feature set, and most brands should start that way. The four approaches that work are draft orders, a tag-gated catalog, a duplicate wholesale-only storefront, and a third-party ordering portal — in roughly that order as you grow.
None of them is as clean as the native tools. All of them are cheaper than upgrading before you have the accounts to justify it. The question worth answering is not whether the workaround is elegant, it is how many hours a month it costs you and when that number crosses the price of the upgrade.
Why the native B2B tools sit behind the higher plan
Shopify's built-in B2B layer is company-based rather than customer-based. Instead of a person with an email address, you get a company record with locations, assigned buyers, its own price list, its own payment terms and its own checkout behaviour. That structural difference is why it is bundled with the top plan: it is closer to a second commerce model than a feature toggle.
Everything below is an attempt to fake parts of that model using tools a standard plan already has. Each approach copies one or two pieces well and ignores the rest, which is fine — you probably do not need company hierarchies and multi-location shipping for your first dozen stockists.
Approach one: draft orders and a PDF line sheet
This is the unglamorous answer and it is correct for longer than most brands believe.
The buyer receives a line sheet — a single PDF with photography, item numbers, case packs, wholesale price and suggested retail. They email or text back what they want. You build a draft order in the Shopify admin, set the prices manually or apply a line-item discount, add shipping, and send the invoice link. They pay by card or you mark it paid when the transfer lands.
What this gets you: real orders that deduct from the same inventory as your consumer sales, real customer records, and zero new software. What it costs you: roughly ten to twenty minutes per order and a permanent risk of typing the wrong price.
The reason it works so well early is that the first stockists are not a self-service audience anyway. A boutique owner placing an opening order usually wants to ask about lead times, ask whether you will do a display, and negotiate the opening quantity. That conversation is happening in email regardless, so the order may as well be built there.
The point at which it stops working is not a revenue number. It is when you catch yourself retyping the same order for the same shop for the third time, or when you find two accounts paying different prices for no reason you can reconstruct.
Approach two: tag the customer, gate the catalog
The standard-plan version of a price list. You tag approved buyers as wholesale, duplicate your products into a hidden collection with wholesale prices, and use theme logic to show the wholesale collection only to tagged, logged-in customers.
Done carefully this is genuinely useful. Done carelessly it produces the two classic failures: consumers finding the wholesale price, and inventory diverging between the retail SKU and the wholesale SKU because they are separate products.
Solve the second problem first. If the wholesale item is a different product from the retail item, you now have two inventory numbers for one physical shelf. Either connect them with a shared variant approach, or accept that you will reconcile stock by hand. Brands that skip this end up overselling in the same week they get their first good order.
For gating, test the logged-out view in a private browser window after every theme change. Any page that can render a wholesale price without a session will eventually be found.
Volume tiers get awkward here. Two tiers is manageable with two tags. Four tiers, plus negotiated exceptions, is where the spreadsheet starts running your business, and where structured B2B price lists become worth the upgrade.
Approach three: a second store just for wholesale
Some brands run a separate Shopify store, password-protected or on a subdomain, entirely for stockists. All prices on it are wholesale prices, so there is no gating logic to get wrong and no chance of a consumer seeing trade pricing.
The appeal is clarity. The wholesale store can have a dense ordering grid, a downloadable line sheet, case-pack quantities baked into the product titles, and none of the consumer merchandising that slows a buyer down.
The cost is duplication. Two stores mean two catalogs, two sets of product photography updates, two apps bills, and — most importantly — two inventory pools unless you connect them with an inventory sync tool. For a brand with a small, stable SKU count and a clear separation between channels, that is a manageable trade. For a brand launching new products monthly, it is a maintenance tax that compounds.
This approach also complicates reporting in a way that is easy to underestimate. Your true picture of the business now lives in two dashboards, and questions like which SKU earns the most gross margin across both channels require an export.
Approach four: an ordering portal app
The middle path. A third-party app adds a wholesale login, per-customer pricing, minimum order rules and often an invoice flow to the store you already have, without a plan change.
This is the right move when the manual admin has become real, the tiering has become real, and you are not yet close to the volume where the top plan is obviously cheaper. What to look for, and what to check before installing, is covered in do you need a Shopify wholesale app and in the evaluation framework in choosing among wholesale apps.
The two things to verify before you commit: whether the app can mark an account tax-exempt with a resale certificate on file, and whether the pricing substitution survives checkout rather than only the cart. Those are the two places where standard-plan workarounds most often leak.
When the upgrade actually makes sense
Run the arithmetic rather than the feeling. Take a home goods brand with a twenty-eight dollar retail price, fourteen dollars wholesale, case of four, 450-dollar opening minimum.
At twelve stockists ordering three times a year, that is thirty-six orders and about 16,000 dollars of wholesale revenue. Manual draft orders cost maybe nine hours a year. Staying on the standard plan is obviously right.
At seventy stockists ordering four times a year, that is 280 orders and around 126,000 dollars. Manual entry is seventy hours, several accounts are on payment terms, three have negotiated pricing, and two want to ship to multiple store locations on one order. At that point the native tools are not a luxury — they are the thing standing between you and a full-time order-entry job. The specifics of what you get are in what Shopify Plus B2B includes.
The honest middle is somewhere between twenty and fifty accounts, and it depends more on the complexity of your pricing than on the count.
What to build first regardless of plan
Three things are worth getting right before you touch any of the above, because they survive every migration.
A line sheet with item numbers, case packs, wholesale price, suggested retail and your terms in plain language. This is what a buyer forwards to their partner, and it works whether it arrives as a PDF or a portal.
A written terms policy: opening minimum, reorder minimum, lead time, payment terms, damage and shortage handling. Deciding these once stops you from negotiating each one separately with every account, which is how inconsistent pricing starts. The structure is laid out in B2B payment terms.
And a list of buyers worth approaching. Every approach above is plumbing for orders you still have to go and get. If you are not sure which shops, distributors or regional chains carry products in your category, paste a product link into WholesalePilot and the preview shows the kinds of buyers who would plausibly stock it — useful before you invest a weekend in portal configuration.
Questions brands ask
Can I use discount codes for wholesale instead? You can, and it breaks in three predictable ways: codes get shared, they stack unpredictably with promotions, and your reporting shows retail revenue with a discount rather than wholesale revenue. It is workable for a single pilot account, not as a system.
Do the workarounds affect my consumer conversion rate? Only if you put wholesale entry points in the main navigation. Keep the trade login in the footer, where a buyer will look for it and a consumer will not.
What about WooCommerce, BigCommerce, Wix or Squarespace? WooCommerce handles this with customer roles and pricing plugins; BigCommerce has customer groups and price lists in the platform itself; Wix and Squarespace brands generally lean on a third-party portal because the native commerce layer offers less. The sequence — manual first, gated catalog second, portal third — is the same everywhere.
If I start manual, will I have to redo everything later? Not the parts that matter. Customer records, order history and your terms policy carry forward. The work you repeat is catalog configuration, which is a day, not a rebuild.