---
title: "How to hide prices from customers who are not wholesale"
description: "Process Wholesale's Hide price feature hides prices and buy buttons from guests and retail customers and shows a message such as Log in to see price. Turn on the Hide price app embed and the setting in Settings > Customer settings, on the Professional plan."
type: how-to
plans: [Professional]
keywords:
  [
    hide price,
    hide prices for guests,
    login to see price,
    log in to see price,
    hide add to cart,
    wholesale only prices,
    price on request,
    hide price until login,
    Shopify hide prices,
  ]
questions:
  - "How do I hide prices from customers who are not logged in as wholesale on Shopify?"
  - "Why are prices still showing after I turned on Hide prices?"
  - "Can customers still buy when prices are hidden?"
  - "Do pending wholesale applicants see prices?"
  - "What if my theme still shows some prices or buttons?"
  - "Which plan includes Hide price?"
last_verified: 2026-11-11
order: 7
---

# How to hide prices from customers who are not wholesale

Process Wholesale can hide prices and buy buttons on your storefront from everyone who is not a wholesale customer (B2B customer), and show a message such as "Log in to see price" in place of the add to cart button. It needs two switches, both on: the **Hide price** app embed in your theme, and **Hide prices and buy buttons from non-B2B customers** in Process Wholesale under **Settings > Customer settings**. Hide price is part of the Professional plan. It changes what the storefront displays; it does not stop a purchase.

**At a glance**

- **Plan:** Professional
- **Where:** Process Wholesale > **Settings > Customer settings > Hide prices for non-B2B customers**, and Shopify theme editor > **Theme settings > App embeds > Hide price**
- **Hidden from:** Guests and logged-in customers with no tag containing `b2b`
- **Shown to:** Logged-in customers with any tag containing `b2b`, including pending customers tagged `B2B_Registeration`
- **Pages:** Every storefront page, including the home page, collection pages, search, product pages and the cart. Shopify checkout is not changed.
- **Default message:** "Log in to see price"
- **Default:** Off

## Before you start

- Your store must be on the Professional plan. On other plans the settings are disabled with a link **Upgrade to Professional**, and the **Hide price** app embed is not listed in your theme. See [Process Wholesale plans and what each plan includes](../account/plans-and-pricing.md).
- Your theme must support app embeds (an Online Store 2.0 theme). See [Process Wholesale theme blocks and app embeds](theme-blocks-overview.md).

## Steps to hide prices

**Part 1: turn on the setting in Process Wholesale**

1. In Shopify admin, open the **Process Wholesale** app.
2. Select **Settings**, then **Customer settings** in the list on the left.
3. In the **Hide prices for non-B2B customers** card, check **Hide prices and buy buttons from non-B2B customers**.
4. In the text field under it, enter the message shown in place of the add to cart button. Leave it as "Log in to see price" or write your own, for example "Apply for a wholesale account to see prices".
5. Select **Save**. Nothing changes on the storefront until you save.

**Part 2: switch on the Hide price app embed**

1. In the same **Hide prices for non-B2B customers** card, select the **Hide price** link in the banner "Enable the Hide price app embed in your theme customizer to begin hiding prices." It opens the theme editor at **App embeds** with **Hide price** selected. You can also go to **Online Store > Themes > Customize > Theme settings > App embeds**.
2. Switch **Hide price** on.
3. Select **Save** in the theme editor.

**Part 3: check the result**

1. Open your store in a private browser window, where you are not logged in.
2. Open a collection page and a product page. Prices should be hidden and the add to cart button should show your message.
3. Log in as a wholesale customer tagged `B2B` and confirm prices show.

The Process Wholesale **Dashboard** also has a **Hide price** card in **App Status**. It shows **ON** when the Hide price app embed is on in your published theme. The card does not check the setting in Part 1, so a card showing **ON** still needs the checkbox saved. On the Enterprise plan the card is not locked and shows **Enable**, but the Hide price app embed needs Professional and is not listed in the theme editor on Enterprise.

## What your customers see

**Visitors without wholesale access** (guests, and logged-in customers with no tag containing `b2b`):

- Prices are hidden on every page where the theme shows them, as long as the theme uses one of the selectors Hide price looks for (listed in "How Hide price finds prices and buttons").
- **Buy it now** and other dynamic checkout buttons are hidden.
- In each product form and product card, the first add to cart button stays visible and its text is replaced by your message. Any other add to cart buttons in the same form or card are hidden.
- The message is plain text on the button. It is not a link, and it shows in one language: the text you saved.
- Products that appear later on the page, such as in a quick view, a drawer or a "load more" list, are hidden too when they use the same selectors.

**Wholesale customers** (any customer tag containing `b2b`) see the storefront as usual, with all prices and buttons.

**Example**

| Visitor                     | Tags                 | Prices                                         |
| --------------------------- | -------------------- | ---------------------------------------------- |
| Guest, not logged in        | none                 | Hidden                                         |
| Retail customer             | `newsletter`         | Hidden                                         |
| Customer                    | `Wholesale`          | Hidden, because the tag does not contain `b2b` |
| Approved wholesale customer | `B2B`, `wholesale15` | Shown                                          |
| Pending applicant           | `B2B_Registeration`  | Shown, because the tag contains `b2b`          |
| Customer                    | `b2b-gold`           | Shown                                          |

> **Note:** Hide price uses a broader rule than checkout. Any tag containing `b2b` counts, so pending applicants tagged `B2B_Registeration` see prices before you approve them. Wholesale discounts at checkout still need the exact tag `B2B`. See [Wholesale customers and customer tags explained](../customers/wholesale-customers-and-tags.md).

## How Hide price finds prices and buttons

Hide price looks for page elements by CSS selector. The defaults match many themes, including Dawn-style themes:

| What                | Default selectors                                                                                                                                                                                                   |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Prices              | `.price`, `.price__regular`, `.price__sale`, `.price__container`, `[data-product-price]`, `.product__price`, `.card-information .price`, `.card__information .price`, `.product-card__price`, `.product-card-price` |
| Add to cart buttons | `button[name="add"]`, `input[name="add"]`, `.product-form__submit`, submit buttons in an add to cart form, submit buttons in `product-form`                                                                         |
| Buy it now buttons  | `.shopify-payment-button`, `.shopify-payment-button__button`, `.buy-buttons__dynamic`, `[data-shopify="payment-button"]`                                                                                            |

Add to cart and Buy it now buttons are changed only inside a product form or a product card: an add to cart form, a `product-form` element, or an element with the class `product-form`, `product-card` or `card-wrapper`. Prices are hidden wherever they match, on any part of the page.

## Custom selectors for themes that need them

If some prices or buttons stay visible, your theme uses different class names. Add them in the theme editor under **Theme settings > App embeds > Hide price**:

| Setting                          | Use it for                                        |
| -------------------------------- | ------------------------------------------------- |
| **Price on product page**        | The price on the product page                     |
| **Add to cart on product page**  | The add to cart button on the product page        |
| **Buy it now on product page**   | The Buy it now button, or the element around it   |
| **Price on collection page**     | Prices on collection pages and product cards      |
| **Quick buy on collection page** | Quick add or add to cart buttons on product cards |

- Leave a field blank to use only the defaults. Your selectors are added to the defaults; they never replace them.
- Separate several selectors with commas, for example `.product-price, .money-sale`.
- The two price fields are applied together on every page, and so are the two add to cart fields. Putting a price selector in the product field or the collection field gives the same result.
- Select **Save** in the theme editor after changing a field.

**How to find a selector in your browser**

1. Open your storefront in Chrome, Edge or Firefox while logged out.
2. Right-click the price (or button) that stays visible and choose **Inspect**.
3. In the panel that opens, look at the highlighted element and its parents for a `class` attribute, for example `class="product-price money"`.
4. Turn one class into a selector by putting a period in front of it: `.product-price`. For an `id`, put `#` in front: `#ProductPrice`.
5. Paste the selector into the matching field, save the theme, and reload the storefront in a private window.

> **Tip:** Choose a class that is used only for prices. Every element with a matching class is hidden on every page, so a very general class can hide other content too. The default `.price` already hides any element with the class `price`.

## What Hide price does not do

- **It does not prevent a purchase.** The add to cart button that shows your message still works as an add to cart button. A visitor who clicks it adds the product to the cart, and the cart and Shopify checkout show the price.
- **It does not remove prices from the page.** Prices stay in the page source, and they can appear for a moment while the page loads, before Hide price runs.
- **It does not change checkout.** Shopify checkout always shows prices.
- **It does not restrict who can open a page.** To send visitors away from wholesale-only pages, collections or products, use [Lock Content Redirect](lock-content.md) (Enterprise or Professional).

## Limits and things to know

- **Both switches must be on.** With the app embed on and the setting off, or the setting on and the app embed off, nothing is hidden.
- **Professional only.** Hide price is part of the Professional plan. The **Hide price** app embed is not listed in the theme editor on Starter or Enterprise.
- **One message for every language.** The message is not translated per storefront language.
- **Elements outside a product form or card keep their buttons.** A theme that places its add to cart button outside a form or card that Hide price recognizes keeps that button as it is.
- **The rule is "a tag containing `b2b`".** Any customer with a tag such as `B2B_Registeration`, `B2Bnetterms` or `b2b-vip` sees prices.

## Troubleshooting

| Symptom                                                     | Likely cause                                       | Fix                                                                                                                                   |
| ----------------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Prices still visible to guests                              | The app embed is off, or the setting was not saved | Switch on **Hide price** in **App embeds** and save the theme. Check the box in **Settings > Customer settings** and select **Save**. |
| Some prices or buttons still visible                        | The theme uses different class names               | Add custom selectors in the Hide price app embed.                                                                                     |
| Hide price is not in **App embeds**                         | The store is not on Professional                   | Upgrade to Professional under **Plan**.                                                                                               |
| The settings in **Customer settings** are grayed out        | The store is not on Professional                   | Upgrade to Professional.                                                                                                              |
| Pending applicants can see prices                           | Their tag `B2B_Registeration` contains `b2b`       | No setting changes this. Use [Lock Content Redirect](lock-content.md) for pages that only approved customers may open.                |
| A customer tagged `Wholesale` cannot see prices             | The tag does not contain `b2b`                     | Approve the customer in Process Wholesale so they get the `B2B` tag.                                                                  |
| A visitor added a product to the cart despite hidden prices | The message button still adds to cart              | Expected. Hide price changes the display only.                                                                                        |

## Frequently asked questions

### Can customers still buy when prices are hidden?

Yes. Hide price changes the add to cart button's text but does not disable it, and the cart and checkout show prices. Hide price is a display setting, not a purchase restriction.

### Do pending wholesale applicants see prices?

Yes. Pending applicants are tagged `B2B_Registeration`, which contains `b2b`, so Hide price shows them prices. They do not get wholesale discounts at checkout until they are approved and tagged `B2B`.

### What if my theme still shows some prices or buttons?

Add your theme's CSS selectors in the theme editor under **Theme settings > App embeds > Hide price**. Custom selectors are added to the defaults, and you can enter several separated by commas.

### Which plan includes Hide price?

Professional. Current prices are shown on the Shopify plan page that opens from **Plan** in Process Wholesale.

### Can I show a link or a different message per language?

No. The message is plain text in a single language, shown on the add to cart button.

## Related articles

- [How to make pages, collections or products wholesale-only](lock-content.md)
- [Process Wholesale theme blocks and app embeds](theme-blocks-overview.md)
- [Theme block settings reference](../reference/theme-block-settings-reference.md)
- [Wholesale prices not showing on the storefront](../troubleshooting/wholesale-prices-not-showing.md)
- [Wholesale customers and customer tags explained](../customers/wholesale-customers-and-tags.md)
