> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pcnaid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up storefront B2B pricing and quote blocks

> Activate the theme app embeds and configure the B2B pricing and request-a-quote blocks.

# Set up storefront B2B pricing and quote blocks

## What does this do for me?

The storefront theme app extension displays signed-in buyers their B2B prices and can hide retail prices from signed-out visitors. A second block adds a request-a-quote button. Both are app embed blocks turned on in the theme editor.

## 1. Open the theme onboarding

1. Open the app and go to the **Dashboard**.
2. Find the **Theme extension onboarding** section, with **Theme selection**, **Theme compatibility: Online Store 2.0 vs. Vintage**, **Activation instructions**, and **Settings reference**.

## 2. Pick a theme

1. In **Theme selection**, use **Target theme ID**. Leave it blank or enter `current` to use your published theme, or enter a numeric theme ID to configure an unpublished draft or preview.
2. The status badge labeled **Published theme** always describes your published theme, not a draft.

## 3. Activate the app embeds

1. Select **Activate B2B pricing and login in theme editor** for the **b2b-pricing** block, or **Activate B2B request a quote in theme editor** for the **b2b-quote** block.
2. In the theme editor, enable the app embed and select **Save**.

The blocks are app embed blocks that target the storefront body. Both are supported across all Shopify themes; section-level app blocks require Online Store 2.0.

## 4. Configure the block settings

**B2B pricing and login** settings:

* **Theme price CSS selector** — default `.price-item--regular`, the element updated with the B2B price.
* **Hide product prices from signed-out visitors** — when on, guests see a sign-in prompt.
* **Signed-out message** — default **Sign in to view wholesale pricing**.

**B2B request a quote** settings:

* **Button label** — default **Request a quote**.
* **Quantity input selector** — default `[name="quantity"]`.

## How pricing reaches the storefront

The storefront calls the signed app proxy at `/apps/b2b-toolkit`, so Shopify signs the request and supplies the logged-in customer identity. The app never accepts a customer or shop identity from JavaScript. Signed-in shoppers see a loading notice while wholesale pricing resolves and a retryable notice if it is unavailable.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.