Skip to main content

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.