> For the complete documentation index, see [llms.txt](https://orbit-b2b.gitbook.io/orbit-b2b-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://orbit-b2b.gitbook.io/orbit-b2b-docs/b2b-prices-app-embed/overview.md).

# Overview

The **B2B Prices** app embed is the storefront layer that surfaces your wholesale and volume discounts to logged-in B2B customers. It replaces the retail price on every product detail page and collection card with the customer's effective B2B price — automatically, on every page, without any theme code edits.

## What it does

* **Overrides the price element** on PDP, sticky add-to-cart bars, and product cards on collection / search / homepage / cart-recommendation surfaces
* **Auto-detects the theme** (Dawn, Horizon, Craft, Refresh, plus a generic fallback for everything else)
* **Combines Wholesale + Volume** rules per your Discount combination setting
* **Reacts live** to variant changes and quantity changes — the volume tier shown updates the moment the customer hits the qty threshold
* **No flash of retail** during the theme's async re-render — uses the cart button's disabled state as a precise theme lifecycle signal

## Why an app embed (not a drag-into-section block)?

Before v1.1.0, merchants had to manually add a `Wholesale Price` block to each product template they wanted overrides on. That meant:

* Theme code edits in the editor for every new product template
* Two separate blocks for PDP vs. collection cards
* Inconsistent placement across themes
* Easy to forget when changing themes

With the app embed, all of that goes away. One toggle in **Theme editor → App embeds → Orbit B2B Wholesale** enables the whole storefront overlay. No drag, no per-section setup, no theme code touched.

## What customers see

**Strikethrough mode** (default — recommended):

```
~$25.00~  $21.25  [Save 15%]
```

**Replace mode:**

```
$21.25
```

The Save badge shows the actual total savings (`(retail - final) / retail`), so when Wholesale 30% + Volume 5% stack to give 33.5% off, the badge says **Save 34%** instead of one rule's nominal value.

## Where prices show up

| Surface                      | Override | Notes                                                                                     |
| ---------------------------- | -------- | ----------------------------------------------------------------------------------------- |
| Product detail page          | ✓        | Main price + sticky add-to-cart                                                           |
| Collection cards             | ✓        | Renders at qty=1                                                                          |
| Search results               | ✓        | Same as collection cards                                                                  |
| Featured product on homepage | ✓        | Uses the card adapter                                                                     |
| Cart drawer / cart page      | —        | Shopify cart computes discount via the function (no override needed; final price matches) |

## Eligibility

A customer counts as B2B-eligible if at least one wholesale or volume rule matches them. If no rule matches, the embed shows the theme's native retail price untouched.

The discount Function at checkout uses the same matching logic, so the price the customer sees on the PDP is the price they pay at checkout.

## Next

* [Enable the embed in your theme](/orbit-b2b-docs/b2b-prices-app-embed/enable.md)
* [Pick a display mode](/orbit-b2b-docs/b2b-prices-app-embed/display-mode.md)
* [Theme support & custom selectors](/orbit-b2b-docs/b2b-prices-app-embed/theme-adapters.md)
* [Variant & qty reactivity](/orbit-b2b-docs/b2b-prices-app-embed/variant-qty-reactivity.md)
* [Troubleshoot the embed](https://gitlab.com/thoaingo.vnkingnet/wholesale/-/tree/docs/docs/gitbook/troubleshooting/b2b-prices-embed.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://orbit-b2b.gitbook.io/orbit-b2b-docs/b2b-prices-app-embed/overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
