Shopify B2B & the wholesale channel
A wholesale discount on Shopify is the wrong tool for a wholesale price, and the difference is not pedantic. A discount reduces a retail price at the moment of purchase. A wholesale price is a different price for a different kind of transaction, and the store should treat it that way — as a price list attached to an account, not a code applied to a cart.
Brands start with discounts because it is the obvious lever: tag the customer, apply half off, done. It works for the first two stockists and then breaks in four specific ways, all of which are easier to avoid than to unwind.
The four ways a discount breaks
Codes travel. A code given to one boutique ends up in a group chat, then on a coupon aggregator, then applied to a consumer order at trade pricing. Automatic discounts tied to a customer tag avoid the sharing problem, but only if the tagging is disciplined and nobody manually tags a consumer who asked nicely.
Promotions stack. You run a seasonal consumer campaign. Unless every wholesale account is explicitly excluded, the campaign lands on top of trade pricing and you ship stock at a price below cost. This is discovered after the orders are confirmed, when the choice is to honour them or start the relationship with a correction email.
Reporting lies. Your revenue shows as retail sales net of a large discount. Gross margin by channel becomes an export and a pivot table rather than a number you can look at. Over a year that means you cannot easily answer whether the wholesale channel is carrying its weight, which is the one question the channel has to answer.
The buyer sees the wrong thing. A crossed-out retail price with a discount beside it reads as a favour, a temporary offer, something that can be asked for again in bigger size. A clean wholesale price on a line sheet reads as a trade term. Buyers negotiate against discounts; they plan against prices.
There is a fifth, quieter problem: rounding. Taking a share off a 27-dollar item produces 13.50, and off a 34-dollar item produces 17. Fine. But an item at 21.99 becomes 10.995, and now your line sheet has a number no buyer wants to type. Wholesale prices should be chosen, not computed.
What to use instead
The right structure is a price list assigned to an account, holding fixed prices per item. The buyer logs in, sees twelve dollars, and twelve dollars is what appears in the cart, at checkout, on the invoice and in your reports.
On plans with native B2B, that is a built-in concept and the design considerations are in B2B price lists. On a standard plan it is either a wholesale app doing price substitution or, for small account counts, a draft order built by hand.
Volume breaks belong in the same structure. Twelve dollars at a case of six, eleven at four cases, ten at twelve cases — expressed as prices at quantity tiers, not as escalating discounts. Buyers read tiered price tables fluently; they are the same tables their other suppliers send.
When a discount is genuinely the right tool
Three cases where reaching for a discount is fine, because they are actually promotions rather than pricing.
An opening order incentive. Ten percent off a first order is a time-limited inducement to commit, and calling it a discount is honest — it is one. Set an expiry and make sure it does not repeat automatically on the reorder, because a permanent opening discount is just a lower price with extra steps.
A trade show offer. Orders written at a market within the show window get a freight allowance or a show discount. Again genuinely temporary, and useful for creating urgency in a hall full of competing brands.
Clearing discontinued stock. An end-of-life item offered to existing accounts at a reduced price to clear it. A discount is the correct expression because you do not want it in the price list permanently.
In all three the discount sits on top of the wholesale price, not instead of it. That only works cleanly when the wholesale price is a real price in the first place.
The pricing decision underneath
None of the mechanics matter if the underlying number does not work, and this is where DTC brands get caught, because consumer pricing habits do not transfer.
Take a ceramic mug. Retail is 32 dollars. Landed cost — clay, glaze, kiln time, the box, the void fill that stops it breaking — is 9 dollars. On the consumer side you also carry payment fees, shipping and the advertising it took to acquire the order, so the contribution per mug is lower than the 23-dollar gap suggests.
At wholesale, the price is 16 dollars. Gross margin is 7 dollars instead of 23, and that looks like a loss until you count what disappears. No ad cost on the order. No individual parcel. One card fee or one transfer on a 1,200-dollar order instead of seventy-five separate consumer transactions. No consumer returns on breakage in transit, because the freight terms handle it differently.
That mug still has to work for the buyer too. At 16 dollars wholesale and 32 retail, the shop doubles their money, which is the baseline most boutiques need to cover rent, staff and the items that do not sell. Price wholesale above half of retail and you are asking the shop to accept less than that, which is the most common reason an otherwise enthusiastic buyer passes.
Work back from that constraint. If halving your retail price puts you below landed cost, the answer is not a smaller discount — it is a different cost structure, a different pack, or not selling that item wholesale at all.
Protecting the price once it exists
Three habits keep wholesale pricing from eroding.
Never publish it openly. A wholesale price list on a public page becomes a negotiating lever for every buyer who finds it, including the ones currently paying more. Keep it behind a login or inside a PDF you send.
Write the tiers down with entry criteria. A buyer moves to the better tier by ordering the volume that tier requires, not by asking. Without written criteria, every negotiation is a fresh one and your prices drift downward one account at a time.
Check your consumer promotions against trade accounts before launching. One line on the pre-launch checklist: are wholesale accounts excluded. This takes ten seconds and prevents the most expensive mistake in this article.
Where the real leverage is
Pricing mechanics are worth getting right once and then not thinking about. The channel's outcome depends far more on which accounts you land than on how the price is technically expressed.
A brand with the perfect price list and six stockists earns less than a brand with a clumsy draft-order process and sixty. If the constraint is finding buyers rather than billing them, paste a product link into WholesalePilot and the preview shows the kinds of shops, distributors and chains that would plausibly carry something like it — a faster answer than another evening spent on discount logic. The tooling that supports it once accounts exist is covered in wholesale apps.
Questions brands ask about wholesale discounts
Can I just use an automatic discount for tagged customers? For a handful of accounts on one tier, yes, and many brands run that way for a year. Watch for promotion stacking, and move to a price list before you add a second tier.
Will the buyer see the retail price crossed out? With a discount-based approach, usually yes, and it is worth avoiding. A trade buyer seeing your consumer price beside theirs starts doing arithmetic about your margin during the order.
Does this differ on WooCommerce, BigCommerce, Wix or Squarespace? The failure modes are identical. BigCommerce expresses the correct pattern natively through customer groups and price lists; WooCommerce needs a role-based pricing plugin; Wix and Squarespace brands usually push wholesale into a separate portal or into invoices.
How do I handle a buyer who asks for a better price? Point at the tier table. If they qualify by volume, they get it; if not, the honest answer is that the price reflects what the order costs you to make and ship. Buyers respect a structure far more than they respect a concession.
What about shipping — should that be discounted? Handle it separately from price. Trade orders need their own shipping treatment anyway, and your consumer threshold for included shipping should never apply to a pallet, as covered in the B2B checkout.