Wholesale on Shopify has a reputation for meaning "upgrade to Plus." It does not have to.
If you sell to both retail shoppers and trade buyers, you need two prices for the same product shown to two different people. Shopify Plus offers a native B2B system for exactly this, but Plus is a significant jump in cost, and most growing wholesalers are not ready for it. The good news: you can give approved buyers their own pricing on any Shopify plan using customer tags and Functions-based discount rules. This guide walks through how.
The short answer is this. Tag your wholesale customers, apply a pricing rule that only fires for accounts carrying that tag, and layer volume tiers on top. Approved buyers see wholesale prices when logged in. Retail shoppers see standard prices. No Plus, no second store, no public code that leaks.
Why wholesale feels locked behind Plus
Shopify's native B2B features, company accounts, published price lists, and net terms, are reserved for Plus. That is real, and it is why the search "wholesale pricing Shopify without Plus" exists at all. But those features are a convenience layer over a simpler idea: show different prices to different customers based on who they are.
You can reproduce the essential outcome without the native tooling. The mechanism is the customer tag.
How tag-based wholesale pricing works
A customer tag is just a label on a customer account, like wholesale or trade. Shopify lets you tag accounts manually or through an approval flow. Once an account is tagged, you can apply a pricing rule that only fires when the logged-in customer carries that tag.
Here is the flow end to end:
- Collect wholesale applications. Use a simple form or a dedicated account request so you approve buyers rather than letting anyone self-select into trade pricing.
- Tag approved accounts. Add a
wholesaletag to each approved customer. This is the gate. - Build a tag-gated pricing rule. Create a discount that only applies to customers with the
wholesaletag. On modern Shopify this runs through Shopify Functions, so it works on any plan, not just Plus, and it replaces the old Plus-only Scripts approach. - Layer volume tiers on top. Wholesale buyers purchase in quantity, so combine the tag gate with a volume schedule. A trade account gets both its base wholesale rate and deeper pricing at case quantities.
Because the offer is tied to the account, not to a code, there is nothing to post on a coupon site. The wholesale price simply does not exist for anyone who is not logged in and tagged.
A worked example
Say a product retails at $40 with a cost of $22, so retail margin is 45 percent. You want trade buyers to get 30 percent off as a base, with an extra break at a case of 12.
| Buyer | Condition | Price per unit | Margin per unit |
|---|---|---|---|
| Retail | Public price | $40.00 | $18.00 (45%) |
| Wholesale, 1 to 11 | Tagged wholesale | $28.00 | $6.00 (21%) |
| Wholesale, 12 or more | Tagged, case quantity | $26.00 | $4.00 (15%) |
Two things to notice. First, the retail shopper never sees the $28 price, because the rule only fires for tagged accounts. Second, the wholesale margin still clears cost at every tier. That second point is the whole discipline of wholesale: your trade prices are lower, but they are set from cost up, not from retail down. A wholesale rate that dips below your fully loaded cost turns your best-volume accounts into losses.
Tag-based wholesale versus a separate store
The other common answer to wholesale on Shopify is a second, password-gated store or an "expansion store." That works, but it is heavier: two catalogs to keep in sync, two sets of inventory, two checkouts, two things to break. Tag-based pricing keeps everything in one store. Retail and wholesale buyers shop the same catalog, and the price each one sees is decided by their tag.
For most wholesalers under Plus, the single-store, tag-gated approach is simpler to run and easier to keep consistent. Reserve the separate-store pattern for cases where the wholesale catalog is genuinely different from retail.
Where volume tiers fit
Wholesale and volume pricing are close cousins, and the strongest setups use both. The tag decides who gets trade pricing. The volume tiers decide how much they save as the order grows. If you have not designed your quantity ladder yet, our guide to tiered pricing on Shopify covers depth and breakpoints, and B2B buyers can carry more tiers than retail because they expect a volume schedule.
What to get right before you launch
Approve before you tag. The tag is the gate, so guard it. Do not let visitors self-assign wholesale pricing.
Set prices from cost, not from retail. Decide each wholesale tier against fully loaded cost. Discounting down from your retail price is how trade accounts quietly become unprofitable.
Decide what combines. A tag-gated wholesale rule that also stacks with a public sitewide code can discount far past your floor. Set your combination rules deliberately.
Handle net terms separately. Tag-based pricing sets the price. It does not by itself grant net-30 payment. If you offer terms, handle that through your order and invoicing process.
Setting this up with Discount Prime
Discount Prime runs volume and tiered pricing natively through Shopify Functions on any plan, so the quantity side of your wholesale ladder is ready today without Plus. Account-specific, tag-gated customer pricing is the natural next layer, and it is exactly where we are heading next. Our follow-up post on B2B and customer-specific pricing covers that approach in full. If you are selling wholesale on a non-Plus plan, start by mapping your tags and your cost-up tiers, and the tooling will meet you there.




