Wholesale prices not showing on the storefront
When wholesale prices do not seem to show on a Shopify store using Process Wholesale, the most common cause is expected behavior. The Product Wholesale block does not replace the theme's retail price: it adds a wholesale table under it, on product pages only, for logged-in customers who have a customer tag containing b2b and a discount tag that applies to the product. The wholesale price is applied at checkout for customers tagged B2B.
Quick checks, in order of likelihood
- Are you looking for a table under the price, not a changed price?
- Are you logged in on the storefront as a wholesale customer, not viewing the theme editor?
- Does the customer have the
B2Btag and a discount tag that applies to this product? - Is the Product Wholesale block on the template this product uses, and saved?
- Are you looking at a collection page, search results or the home page, where the block cannot go?
The product page shows the retail price#
This is expected. The Product Wholesale block leaves the theme's price as it is and adds tables under it, such as 1 - 9 | 10% | $18.00 and 10+ | 20% | $16.00 for a $20.00 product. The customer pays the wholesale price at checkout.
How to confirm: Log in on the storefront as a wholesale customer with a discount tag and open a product the discount applies to. The table appears a moment after the page loads.
Fix: None needed. To hide retail prices from customers who are not wholesale, see How to hide prices from customers who are not wholesale (Professional).
No table for a logged-in customer#
The Product Wholesale block shows nothing when any of these is true:
| Cause | How to confirm | Fix |
|---|---|---|
The customer has no tag containing b2b |
In Shopify admin, open the customer and look at Tags | Approve the customer in Process Wholesale under Customers, which adds B2B |
| The customer has no discount tag | The customer's tags include no discount tag from Discounts | Assign a discount. See How to assign discounts to wholesale customers. |
| The discount does not apply to this product | Open the discount in Process Wholesale and check Applies to (products, collections or variants) | Add the product, or use All products |
| The product uses a template without the block | In Shopify admin, check which theme template the product uses | Add the Product Wholesale block to that template and select Save |
| A price list is the only discount and the store is not on Professional | Check Plan | Price list rows need Professional |
| A price list is the only discount and the variant has no price in it | Open the price list and look for the variant | Add a price for the variant |
| A cost plus markup is the only discount and the variant has no unit cost | Check the variant's unit cost in Shopify admin | Set a unit cost for the variant |
The theme editor never shows real tables. It always shows example tables, so test on the live storefront in a private window while logged in. Discount tags match the customer's tags exactly, ignoring capitalization: a customer tagged Wholesale15 matches a discount tag wholesale15, but wholesale-15 does not.
The table shows a different discount than expected#
The product discount table shows one product discount at a time, in this order:
- Cost plus markup
- Price list
- Flat discount or quantity tier, chosen by Settings > Discount settings > Tag priority when the customer has both: Prefer flat tag (the default) or Prefer tier tag. Checkout follows Tag priority only after the Settings page has been saved once; until then it behaves as Prefer tier tag. See which wholesale discount applies.
Example. A customer has a flat 10% discount and a quantity tier of 20% for 10 or more units on a $20.00 product. With Prefer flat tag the table shows Any | 10% | $18.00. With Prefer tier tag it shows 10+ | 20% | $16.00.
When a customer has several flat discounts, the table uses the one with the highest priority on the Flat Discounts tab (1 = highest). For several quantity tiers, price lists or cost plus markups that apply, it shows one of them.
Fix: Change Tag priority, the flat discount priority, or the customer's discount tags. See Which wholesale discount applies: priority and stacking rules.
Two display rules can also look unexpected:
- For a Fixed Price discount, the Discount column shows the fixed price itself, not the amount saved. A fixed price of $12 shows
$12.00 | $12.00. - The product table's quantity column is headed Minimum Cart Quantity. For a quantity tier, it counts the units of this product in the cart, all variants together.
No wholesale price on collection pages, search or the home page#
The Product Wholesale block can be added only to product templates. Collection pages, search results, the home page, the cart and the cart drawer never show a wholesale table from Process Wholesale.
Fix: To give wholesale customers a product list with their prices, add the Quick Buy wholesale order form to a page (Enterprise or Professional). The wholesale price is applied at checkout either way.
The product page and checkout show different prices#
The table is a display; checkout applies the discounts. They can differ for these reasons:
| Cause | What happens | Fix |
|---|---|---|
The customer has a tag containing b2b but not the exact tag B2B, for example a pending customer tagged B2B_Registeration |
The table shows, but checkout gives no wholesale discount | Approve the customer so they get B2B |
| Cart value, cart quantity or loyalty discounts | Checkout adds them on top of the product discount; the table does not include loyalty discounts at all | Expected |
| Prefer tier tag, with fewer units than the tier's first range | The table shows the tier rows; at checkout that line gets no discount, and the flat discount is not used instead | Start the first tier at 1, or use Prefer flat tag |
| A Shopify discount code or another automatic discount | Whether it combines is decided by the discount combination settings | See Using Shopify discount codes with wholesale discounts |
| The customer shops in another currency and has a price list or cost plus markup | The table shows those prices in your store currency amount with the customer's currency symbol; checkout converts them | Expected. Tell customers the table shows store-currency amounts for these prices. |
| The theme changed the variant without the table noticing | The table still shows the variant the page opened with | Reload the page with the variant selected, or check with your theme developer |
If the checkout price is wrong rather than the table, see Wholesale discount not applying at checkout.
Prices hidden, or not hidden, for the wrong visitors#
Hide price (Professional) hides prices from every visitor without a tag containing b2b, and shows them to everyone with such a tag.
| Symptom | Cause | Fix |
|---|---|---|
| Guests still see prices | The Hide price app embed is off, or Hide prices and buy buttons from non-B2B customers is not checked and saved | Turn on both: the app embed under Theme settings > App embeds, and the setting under Settings > Customer settings |
| Some prices or buttons still show | The theme uses class names Hide price does not know | Add custom selectors in the Hide price app embed |
| Pending applicants see prices | B2B_Registeration contains b2b |
Expected. Use Lock Content Redirect for pages only approved customers may open. |
A customer tagged Wholesale cannot see prices |
The tag does not contain b2b |
Approve the customer so they get B2B |
| A non-wholesale visitor added a product to the cart | The add to cart button with the message still works | Expected. Hide price changes the display only. |
See How to hide prices from customers who are not wholesale.