Wholesale pricing on Shopify without Plus
Updated August 2026 · about a 6 minute read
If you sell to both retail customers and trade buyers, you need the same product to cost different amounts depending on who is logged in. On Shopify there are three honest ways to do that without upgrading to Plus, and most of the advice online is out of date because the platform changed in April 2026.
Start here: native B2B is no longer Plus-only
This is the single most important thing to check first, because it is free and most guides predate it. Shopify moved company profiles, catalogs, volume pricing and quantity rules down from Plus to the Basic, Grow and Advanced plans in April 2026. If your wholesale buyers can live as company accounts — meaning they log in, they are approved by you, and they are happy being a separate kind of customer — you may not need an app at all.
What native B2B gives you:
- Per-company price lists (catalogs), assigned through B2B markets
- Volume pricing, up to 10 quantity tiers per product
- Quantity rules — minimum, maximum, and increment — enforced at checkout, not just on the product page
- Payment terms and company-level ordering
Where it stops:
- A limited number of active catalogs, so many distinct price groups gets awkward
- Buyers must be set up as companies — it does not price by the customer tags you may already be using
- It is a separate buying experience, not a discount layered on your normal storefront
Check this before you spend anything. Open Settings → Plan in your admin and confirm what your plan includes today. Plan-availability pages change, and this one changed recently.
Option 2: automatic discounts (free, and further than people think)
Shopify's built-in automatic discounts can carry a surprising amount of wholesale logic. Create an “amount off products” discount, scope it to a collection, and set a minimum quantity. It applies without a code, at checkout, on every payment method.
Two limits decide whether this works for you:
- Minimum quantity pools across everything that qualifies. If you scope a discount to a collection and set “minimum 3”, then three of item A plus three of item B is six qualifying items — the tier fires. There is no native setting for “three of the same product”. The workaround is to scope each discount to a single product, so only that product's quantity counts.
- A store can have at most 25 active automatic discounts, and app-created ones count toward the same 25. Three tiers per product means you run out at eight products. For a short catalogue this is a genuinely free answer. For a large one it is not.
Option 3: a tag-based pricing app
The third route prices by the customer tags you already maintain: tag an
account wholesale, and that account sees wholesale prices everywhere, with no
separate login and no company setup. This is the model most wholesale apps use.
When you compare them, the question that matters more than any feature list is where the pricing is calculated. There are two answers, and they behave very differently.
Pricing computed in your theme
Some apps insert JavaScript into your storefront that rewrites displayed prices and
adjusts the cart. It works on the pages the script runs on. It does not necessarily work
on collection quick-add, on a restored cart, on a direct /cart/add POST, or on
accelerated checkout buttons like Shop Pay and Apple Pay — which is why “the discount
disappears at checkout” is one of the most common complaints in this category. It also
means uninstalling can leave code behind.
Pricing computed by Shopify
Others run as a Shopify Discount Function — a small program that runs on Shopify's own infrastructure at cart and checkout, evaluating each line. Because it is part of the pricing pipeline rather than a script on your pages, it applies the same way on express checkout and it cannot slow your storefront down, since nothing is added to it.
When evaluating any app in this category, this is the one question worth asking support directly: “Is pricing applied by a Shopify Function, or by JavaScript in my theme?” It sorts the field faster than any comparison table.
Which one should you pick?
| If… | Use |
|---|---|
| Your buyers are happy as company accounts and you have a handful of price groups | Native B2B — it is free and it is built in |
| You have a small catalogue and simple volume breaks | Automatic discounts, scoped per product |
| You already tag customers, want no separate login, or need many groups | A tag-based app |
| You need minimum order quantities or increments | Native B2B quantity rules, or a checkout validation app |
Before you commit to anything
- Test with a real logged-in customer, not a preview. Tag a test account and buy something.
- Test express checkout specifically — Shop Pay, Apple Pay, Buy-it-now. This is where theme-based pricing usually fails.
- Check what happens when you uninstall. Ask whether prices revert and whether anything remains in your theme.
- Watch for caps, in the app and in Shopify: number of price groups, number of products, and the 25-automatic-discount store limit.
We build Pricebook, which takes the tag-based approach and runs as a Shopify Discount Function. We also wrote the section above recommending you check native B2B first, because for a lot of stores that genuinely is the right answer and it costs nothing.