# App introduction

B2Bridge allows you to set up and manage your B2B pricing, registrations, and payment options. To see the new B2B price on your store, your customers have to log into their accounts.

### Key features:

* **B2B Registration Forms:** Create a customized form for your potential B2B customers to sign up. Verify them and turn those registrations into B2B accounts.
* **Price Lists:** Configure your B2B pricing in one place:
  * Custom discounted B2B prices
  * Volume discounts
  * Order limits (e.g. minimum quantity before checkout)
  * Product increments (e.g. products sold only in multiples of 5)
* **Customer Groups:** Control who sees what and how they pay:
  * Assign one or multiple Price Lists to a Customer Group
  * Choose allowed payment options (online payment or net payment terms)
  * Configure tax collection per group
* **Company Account:** Group individual B2B buyers under a single company umbrella for corporate purchasing. Company Account is equivalent to Customer Group, that's why you can only choose one between the two core features. Besides basic settings mentioned Customer Group, Company Account feature let you create the company roles like admin, sales manager, purchasing staff and set up permissions for each role, invite people to join the company team. &#x20;
* **Lock & Hide:** restrict product visibility or prices to specific groups
* **Request For Quote (RFQ):** let buyers negotiate prices before checkout
* **Manual Orders:** Create B2B orders on behalf of your buyers directly from the Shopify admin.

### How B2Bridge works:

**In each Price List**, there are products you want to sell to your B2B customers.

**In each Customer Group or Company Account**, there are customers who will see assigned products and their B2B prices. Customers in a group will only see B2B prices after logging into your store.

### Next step:

To start using B2Bridge, head to [Get started](/get-started) to learn more.

You can also [Book a Free Demo](https://calendly.com/b2bridge/demo?utm_source=docs.b2bridge.io) to experience what B2Bridge can do.

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Get started

Follow these steps to get your B2B store up and running with B2Bridge. You can track your progress directly from the **Set up checklist** on your dashboard.

<figure><img src="/files/UzdJC8KVgBHmBc9fLtOq" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
When you install B2Bridge for the first time, you'll be taken through a short **Onboarding** that helps you choose the right plan based on your B2B goals. You can skip it and come back to this checklist at any time.
{% endhint %}

{% stepper %}
{% step %}

### Activate B2Bridge's app embed

Go to your Shopify Theme Editor and activate the B2Bridge app embed. This enables B2Bridge to display B2B prices and features on your storefront.

From your dashboard, click **Enable App** — this opens the Theme Editor directly with B2Bridge pre-selected.
{% endstep %}

{% step %}

### Subscribe to a pricing plan

Subscribe to a pricing plan to unlock B2Bridge's full feature set. Click **Go to pricing page** from the Set up guide, or navigate to **Pricing plans** in the sidebar.

A 14-day free trial is available on all paid plans — you won't be charged until the trial ends.
{% endstep %}

{% step %}

### Set up a Price List

Create your first Price List to define B2B prices for your products. A Price List can contain custom discounts, volume tiers, and order limits.

Head to [Price Lists](/app-configuration/price-list) to get started.
{% endstep %}

{% step %}

### Set up a Customer Group

Create a Customer Group and assign your Price List to it. The Customer Group defines which customers see B2B prices and what payment methods are available to them.

Head to [Customer Groups](/app-configuration/customer-group) to get started.
{% endstep %}

{% step %}

### Install B2Bridge on your theme

Run the installation to embed B2Bridge's code into your Shopify theme. This step is required for features like Quick Order, Net Terms, and RFQ to appear on your storefront.

Head to [Installation](/app-configuration/settings/installation) to get started.
{% endstep %}

{% step %}

### Test on your store

Open your store and log in with a test B2B account to verify that prices, payment options, and other features are working as expected.

From your dashboard, click **Open store** to go directly to your storefront.
{% endstep %}
{% endstepper %}

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Onboarding

When you install B2Bridge for the first time, the app walks you through a 3-step onboarding to understand your B2B goals and recommend the right pricing plan.

## 1. Choose your B2B goals

In Step 1, select everything that matches what you want to achieve with B2Bridge. Your answers are used to personalise your setup — only the features you need will be highlighted.

Available goals:

* **B2B Pricing** — set wholesale and volume pricing per customer or group
* **Customer Approval** — build registration forms to verify and approve B2B buyers
* **Minimum Order Quantity** — set minimum quantities or order amounts per customer group
* **Net Payment Terms** — let trusted buyers pay later (Net 15, 30, or 60)
* **Request for Quote** — let customers request and negotiate quotes before checkout
* **Hide Product Prices** — show prices only to logged-in or approved customers

You can also type in any other specific B2B needs in the free-text field at the bottom.

## 2. Choose how you'll manage your B2B prices

In Step 2, select the pricing workflow that fits your catalog. You can change this at any time.

* **Manual pricing** — edit prices directly inside the app. Best for small catalogs.
* **CSV import** — upload prices in bulk. Best for medium to large catalogs.
* **Sync from your ERP** — push prices automatically from your ERP system for a single source of truth.

## 3. Review your recommended plan

Based on your selections, B2Bridge recommends a pricing plan that fits your needs. All plans include a **14-day free trial** — you won't be charged until the trial ends and you can cancel anytime.

Click **Start free trial** to subscribe and go to your dashboard, or **I'll choose later** to skip and choose a plan at any time from **Pricing plans** in the sidebar.

{% hint style="info" %}
If you have a discount code, click **Apply Discount** on the plan card and enter your code before subscribing.
{% endhint %}

## Skipping the onboarding

You can skip the wizard at any step by clicking **Skip for now**. Your answers up to that point are saved, and you can always return to review your plan from the **Pricing plans** page.

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Storefront display


# Product Card display

Product Card allows your customers to start ordering directly from your collection pages (or any pages that Product Card is displayed on).

### How Product Card works:

Product Card replaces your default interface and adds new elements:

* New B2B prices
* Volume pricing and purchase limit (if any)
* Quantity selector
* **Add to cart** button

This allows your customers to quickly add products to their cart.

### How the Product Card looks:

{% columns %}
{% column %}

<figure><img src="/files/4AfTVi7Vy1WA93Ap6QKf" alt=""><figcaption><p>B2Bridge Product Card</p></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/AF18RCj5KQi0YozFEKTf" alt=""><figcaption><p>Default product card</p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Product Detail display

Product Detail displays elements needed to allow customers to order as fast as possible.

### How Product Detail works:

Product Detail replaces your default interface (such as choosing variants, selecting quantity, etc.) with elements from B2Bridge. It supports products with and without any additional variants.

### How Product Detail looks:

{% tabs %}
{% tab title="Product with 1 variant " %}

<figure><img src="/files/bSQtlcJySc1eW9DN73iJ" alt=""><figcaption><p> B2Bridge Product Detail</p></figcaption></figure>

<figure><img src="/files/hRAvXTsj68tGjmlnw5zU" alt=""><figcaption><p>Default Product Detail</p></figcaption></figure>
{% endtab %}

{% tab title="Product with many variants" %}

<figure><img src="/files/D5ZBU9YB1csBlxS52XIN" alt=""><figcaption><p>B2Bridge Product Detail</p></figcaption></figure>

<figure><img src="/files/h54tPwYKz0UdsTmEi2d5" alt=""><figcaption><p>Default Product detail</p></figcaption></figure>
{% endtab %}
{% endtabs %}

### Quantity Selector Improvements (Effective December 16, 2025)

We've updated the Quantity Selector to make your B2B checkout process smoother and eliminate inventory-related errors.

This improved functionality applies to the Product Page, Collection Page, Quick Order Page, and Cart Page.

<figure><img src="/files/3upvJvBxCUhtcPF1d4lu" alt=""><figcaption></figcaption></figure>

#### 1. Quantity Selector for Min/Max Order Limit

When you set Limit purchasing quantity rules, the Quantity Selector will now automatically enforce the limits based on both your product settings and the current Inventory. This ensures customers can never add more to the cart than is available or permitted, preventing failed checkouts.

| **Setting**         | **Product A (Inventory Limit)**                                                                                     | **Product B (Max Order Limit)**                                                                                  |
| ------------------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Min Order Limit     | 6                                                                                                                   | 6                                                                                                                |
| Max Order Limit     | *(None set)*                                                                                                        | 30                                                                                                               |
| Increment           | 10                                                                                                                  | 10                                                                                                               |
| Actual Inventory    | 50                                                                                                                  | 100                                                                                                              |
| Customer Experience | The quantity selector shows: 6, 16, 26, 36, 46. The selector is disabled from reaching 56, as inventory is only 50. | The quantity selector shows: 6, 16, 26. The selector is disabled from reaching 36, as the Max Order Limit is 30. |

#### 2. Preventing Out-of-Stock Purchases

To maintain sales control, if a product goes out of stock and the Shopify setting Continue selling when out of stock is disabled (unticked), the Quantity Selector will automatically be disabled.

Customers will be prevented from adding the product to their cart on the Product Page, Collection Page, and Quick Order Page.

<figure><img src="/files/KuGcpsAnVssa9Z2M8NW5" alt=""><figcaption></figcaption></figure>

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Cart page

B2Bridge replaces your cart page with our own designed cart page for B2B customers to view their order and check out.

### How B2Bridge's cart page works:

* When a B2B customer logs into your store, our app detects the customers and instead of displaying the default cart page, B2Bridge will display our Cart page instead.

### How B2Bridge's cart page looks like:

<figure><img src="/files/gAirem74OcuIPkmUgLqT" alt=""><figcaption></figcaption></figure>

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Quick Order

Quick Order allows your B2B customers to order from a single page, instead of navigating to each product page and adding each product one by one.

### How the buyer navigate to Quick Order

How buyers reach Quick Order depends on the display type you chose during setup:

* **Page** — Buyers go to your dedicated Quick Order page, usually within their B2Bridge account page.
* **Extension** — Quick Order appears right inside the store page where you embedded it (for example, your product page), so buyers see it as part of that page.

{% hint style="info" %}
Please be noted that if you were using Page and then switch to Extension, the Quick Order page link will be redirected back to your store's homepage
{% endhint %}

### How Quick Order page looks:

Quick Order shows a single list of products, each with a quantity box. What's in that list depends on your **product scope** setting:

* If you chose **All products**, buyers see your full catalog.
* If you chose **Products in price list only**, buyers see just the products in their assigned price list, at their agreed B2B prices. Buyers who aren't in a group with a price list will see an empty list.

<figure><img src="/files/ljUkHQ9YAYpjXtPKnVJH" alt=""><figcaption></figcaption></figure>

Depending on your product variants setup:

* Products with a single variant will display an **Add to cart** button, allowing your customers to immediately add a product to their cart.
* Products with multiple variants will display a **View options** button, where your customers can view all variants from that product and add them to their cart.

<figure><img src="/files/e9SsGPJ2PaleLyD0hqV6" alt=""><figcaption></figcaption></figure>

If you turned on **Extra filter**, buyers also see filter options at the top (Type, Collection, Vendors, and/or Tags — whichever you enabled) to quickly narrow down a large catalog.

<figure><img src="/files/Em8ZB0ZQS1wmW7kmbfl3" alt=""><figcaption></figcaption></figure>

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Quick order via CSV

## Overview

Quick Order via CSV lets your B2B customers bulk-add products to their cart by uploading a `.csv` or `.xlsx` file from the Quick Order page. Instead of searching for each product one by one, customers prepare a file with the SKUs and quantities they want, upload it, and add everything to the cart in one click.

This is especially useful for customers placing large or recurring orders.

{% hint style="info" %}
This feature is available on the **$199/month plan**. See [Pricing plans](/policies) for details.
{% endhint %}

{% hint style="info" %}
To learn how the Quick Order page itself works, see [Quick Order](/storefront-display/quick-order-page)
{% endhint %}

### 1. Open the CSV upload modal

<figure><img src="/files/sy36YxzPuSkHt0TZ4rQF" alt=""><figcaption></figcaption></figure>

From the Quick Order page on your store, customers click the Upload button located at the top right position, next to the Add all to cart button to open the upload modal.

### 2. Prepare your file

<figure><img src="/files/PI6mygaI4xrmszQXNcds" alt=""><figcaption></figcaption></figure>

The upload accepts `.csv` and `.xlsx` files. Each row in the file represents one product variant to add to the cart, and must include:

* **SKU** — the SKU of the product variant
* **Quantity** — how many units of that SKU to add to the cart

[Sample file](https://docs.google.com/spreadsheets/d/1glSpDCLYhPydGO0tjhuHZV3JZUEnKBwBNRaq9XlTe8Y/edit?usp=sharing)

**Example:**

| SKU    | Quantity |
| ------ | -------- |
| ABC-01 | 10       |
| ABC-02 | 5        |
| XYZ-99 | 25       |

{% hint style="info" %}
**Tip:** Save customers time by sharing a template file with the correct column headers. You can attach this to your B2B onboarding emails or link to it from your B2B portal.
{% endhint %}

### 3. Upload the file

In the upload modal, customers have two ways to add a file:

* **Click Upload** — opens a file picker so they can select a `.csv` or `.xlsx` file from their computer.
* **Drag and drop** — drag a file directly into the modal.

Once a file is selected, the modal shows the **file name and size**, and the **Upload** button becomes active.

At this point, customers can:

* **Click Upload** to submit the file for validation.
* **Click Upload (again)** or **drag in a different file** to replace the current selection.
* **Click ×** to discard the file and return to the empty state.

### 4. Review and add to cart

After the customer clicks **Upload**, B2Bridge validates the file. The result depends on whether all rows pass validation.

#### a. Success

If every row in the file is valid, the customer sees an **Order summary** card with:

* The total **number of line items** in the file
* The total **quantity** across all items
* A list of products in the order they appeared in the file (the first several items are shown by default)
* A **View more** button that expands the list to show every product, with internal scrolling so the card doesn't grow off-screen

The customer then clicks **Add to cart** to add every item from the file to their current cart. The modal closes and a toast confirmation appears with a **View cart** button that takes them to the cart page.

{% hint style="info" %}
Items are added to the customer's **existing cart** — they won't replace what's already there. This is intentional so customers can combine CSV uploads with items they've added manually.
{% endhint %}

#### b. Validation errors

If one or more rows have issues, the modal stays open and shows an **error list** instead of the order summary. Each error row includes:

* **Line** — the row number in the uploaded file where the error occurred
* **SKU** — the SKU value from that row
* **Quantity** — the quantity value from that row
* **Error** — a description of what went wrong

If the file has many errors, the error list scrolls inside the modal so the modal itself never grows past one screen.

From the error state, customers can:

* **Upload a corrected file** (or drag in a new one) to replace the current file
* **Click ×** to discard the file and the error list, returning to the empty state

The **Upload** button is disabled until a new file is selected.

### 5. Error reference

The table below lists every error a customer might see, what it means, and how to fix it.

| Error message                                            | What it means                                                                                                         | How to fix                                                                                    |
| -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `{{filename.extension}} file type is not supported`      | The uploaded file is not a `.csv` or `.xlsx` file.                                                                    | Save the file as `.csv` or `.xlsx` and upload again.                                          |
| `SKU {{sku}} was not found`                              | The SKU in this row doesn't exist in the store.                                                                       | Double-check the SKU spelling. Confirm with the merchant that the product is still available. |
| `SKU {{sku}} is not available`                           | The SKU exists in the store but isn't part of the customer's assigned price list, so they aren't allowed to order it. | Remove the row, or contact the merchant to request access to that product.                    |
| `Minimum order quantity is {{min}}`                      | The quantity is below the minimum order quantity (MOQ) configured for this variant in the price list.                 | Increase the quantity to at least `{{min}}`.                                                  |
| `Maximum order quantity is {{max}}`                      | The quantity exceeds the maximum order quantity allowed for this variant.                                             | Lower the quantity to `{{max}}` or below.                                                     |
| `Quantity must be ordered in multiples of {{increment}}` | This variant must be purchased in fixed increments (e.g. multiples of 5).                                             | Adjust the quantity to a valid multiple of `{{increment}}`.                                   |
| `Only {{stock}} units are available`                     | The requested quantity exceeds the current inventory for this variant.                                                | Lower the quantity to `{{stock}}` or fewer, or wait until the merchant restocks.              |
| `Quantity is invalid`                                    | The quantity value is empty, zero, negative, a decimal, or not a number.                                              | Enter a positive whole number for the quantity.                                               |

{% hint style="info" %}
**How validation runs:** B2Bridge first checks the file type. If the file is valid, it scans every row at once and lists all errors together so customers can fix the entire file in one pass instead of one row at a time.
{% endhint %}

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Net Terms page

Net Terms page is where your customers can complete purchases on a payment term (net30, net60, etc.)

When B2B customers visit the B2Bridge Cart page, they can see all their available purchase options:

If they choose to purchase on a payment term, they will see this page:

1\. The credit limit block is off. The customer can press on "Order with net terms" and wait for approval.

<figure><img src="/files/Hsv9wqSLKqgGn7sOz4Mu" alt="" width="257"><figcaption></figcaption></figure>

2. The credit limit block is on. The customer can't check out with net terms.

<figure><img src="/files/s4G5BlwNYYyGgoTqrBSc" alt="" width="254"><figcaption></figcaption></figure>

On this page, your B2B customers will have to fill out the Shipping address, and any other fields that you deem required (more on Net Terms form customization [here](https://b2bridge.gitbook.io/b2bridge/app-configuration/customer-group/set-up-net-payment-terms#step-3-create-a-form-to-purchase-on-a-net-term)).

<figure><img src="/files/fXHO6tlQa6aBJBx5mbHf" alt=""><figcaption></figcaption></figure>

After filling out necessary information, your customer will see a summary of their information.

<figure><img src="/files/P58gEHdNbVAde3PMsTm1" alt="" width="375"><figcaption></figcaption></figure>

If everything is correct, the customers can check out as usual.

<figure><img src="/files/R0heX0uJvYNo8K4IzM6l" alt=""><figcaption></figcaption></figure>

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Request For Quote

### Request for quote button on the Collection page:

{% columns fullWidth="false" %}
{% column %}

<figure><img src="/files/toZMWJEH8HPiqe5s0VQL" alt="Product card: Hide price &#x26; Add to cart button. Display Add to quote button."><figcaption><p>Product card: Hide price &#x26; Add to cart button. Display Add to quote button.</p></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/7Nv70VHsgi759jBKysKB" alt="Product card: Hide price &#x26; display Add to quote button."><figcaption><p>Product card: Hide price &#x26; display Add to quote button.</p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### Request for quote button on the Product page:

<figure><img src="/files/jog9Cta8P1PcAlCv5S8j" alt="Product page: Hide price &#x26; Add to cart button. Display Add to quote button."><figcaption><p>Product page: Hide price &#x26; Add to cart button. Display Add to quote button.</p></figcaption></figure>

<figure><img src="/files/N5HTgUKD563OJZM0f3Dj" alt="Product page: Hide price &#x26; display Add to quote button."><figcaption><p>Product page: Hide price &#x26; display Add to quote button.</p></figcaption></figure>

### Request for quote form on the storefront:

<figure><img src="/files/3FDsp2994z3gXxlBpJso" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/NDss1mkgLjYc89P79DU7" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Lock & Hide

Read [setup guide for Lock Price feature.](/app-configuration/lock-hide)

<figure><img src="/files/cUnEvFQ4pwwG49SIitXN" alt=""><figcaption><p>Lock the entire store</p></figcaption></figure>

<figure><img src="/files/48kF8Cqg2BhGycOt6yrl" alt=""><figcaption><p>Hide price of a product &#x26; display a custom message "Log in to see price"</p></figcaption></figure>

<figure><img src="/files/lAzl41LwqKW60kLl6e04" alt=""><figcaption><p>Hide price of products &#x26; display custom message "Log in to see price"</p></figcaption></figure>

<figure><img src="/files/8XsrIzTU2b9Uk4wGVKE2" alt=""><figcaption><p>Lock the entire store and only allow B2B customers with password to enter store</p></figcaption></figure>

<figure><img src="/files/YJjN5kCpOqBVhe64Ck5B" alt=""><figcaption><p>Lock a product price and only allow B2B customers with password to view the price</p></figcaption></figure>

<figure><img src="/files/lN7XGdqKsgiM5Wkm0ebg" alt=""><figcaption><p>Lock specific products and only allow B2B customers with password to view the price</p></figcaption></figure>

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Account page

The **Account Page** is your customer’s self-service hub, where they can manage orders, addresses, and saved carts. All in one place.

#### Key Features

* **Order Management**\
  View detailed order information, including Order ID, Order Amount, Date, Payment Status and Fulfillment Status. Customers can also take quick actions such as **Pay Now** or **Reorder** directly from this section.
* **Address Book**\
  Easily add, edit, and manage multiple shipping or billing addresses.
* **Saved Cart**\
  Access previously saved carts to continue building orders over time. This is especially useful for B2B buyers, where orders are often large and built over time. [How to enable Save cart feature.](/app-configuration/customer-group/set-up-customer-group#step-4-select-payment-options-available)

<figure><img src="/files/ofMDCX7iKa12XyJkW43E" alt=""><figcaption></figcaption></figure>

* **Company Account**

View orders and manage the account based on the assigned corresponding permission.

<figure><img src="/files/GUgeXkB9WhQA8iSdyvso" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="/files/7QFQF44dcZPbTvrzljgB" alt="" width="375"><figcaption></figcaption></figure>

Personal information along with Company name:

<figure><img src="/files/XLkeEZlgk9YER4mXAIFK" alt="" width="563"><figcaption></figcaption></figure>

Member information along with their roles:

<figure><img src="/files/ol4yMVKBsJJ7Pr00PCNB" alt=""><figcaption></figcaption></figure>

Available roles in Company account:

<figure><img src="/files/1j13h8uawBu6EyCkqIUK" alt=""><figcaption></figcaption></figure>


# Sales Rep Portal

The Sales Rep portal is where the Sales Rep can create order on behalf of their assigned customers, track the orders, customers and commission. \
\
You can view this portal via URL: ***\[your myshopify.com url]/apps/b2bridge/sr.***

### Key features&#x20;

#### #1: Create order

Sale Reps click on Create order to start placing the order for their customers.

<figure><img src="/files/pxLf5yutr4XxAQqtnDCo" alt="" width="563"><figcaption></figcaption></figure>

First, the Sales Reps get started by selecting one of the assigned customers.

<figure><img src="/files/YJFLynweNbbqQTU2vhdu" alt="" width="563"><figcaption></figcaption></figure>

After the customer is selected, add products in the cart by clicking on Add products.&#x20;

<figure><img src="/files/xeFxLI2dSrKY6EclcEiY" alt="" width="563"><figcaption></figcaption></figure>

Finally, preview the orders and finish by clicking on Create Draft Order.

<figure><img src="/files/ya0bCSiaWLlPozVw9Nbv" alt="" width="563"><figcaption></figcaption></figure>

#### #2: My Customers

This is where the Sales Reps can check their customer profile including their names, emails and orders.

<figure><img src="/files/e4RHVWi8TmtaxE8WIity" alt="" width="563"><figcaption></figcaption></figure>

To get more details on a specific customer, Sales Reps click on the name of the customers in their assigned list.&#x20;

They will then see their customers' addresses, orders and they can also Create order from here.&#x20;

<figure><img src="/files/BmG4RWVOyWDcNVEEoRms" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/2EyoscwOf3U1D4bMhluC" alt="" width="563"><figcaption></figcaption></figure>

#### #3: All Orders

In All Orders, Sales Reps can track the status of their orders, check their commissions and send the invoices to the customers. They can create order from this tab as well.

<figure><img src="/files/5fSD2NDdzmawLC5VoOYf" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/ivcYpG54z4WkT2IIP6iV" alt="" width="563"><figcaption></figcaption></figure>


# Tax exempt/display

### How tax exemption is shown to your buyers

When a buyer is in a customer group with tax exempt setup, they will only see the price without tax and check out with that price.

<figure><img src="/files/Bge0VGmNxFeEWXXy1i4E" alt="" width="563"><figcaption></figcaption></figure>

### How tax price display is shown to your buyers

The tax price display will be shown to your buyers according to your setup:

* **Both prices but tax-inclusive price is highlighted**: The tax-inclusive price will be shown in bold, bigger font while the tax-exclusive price stand out less.

<figure><img src="/files/vH6IFKzUmO1vRCdKx9gl" alt="" width="563"><figcaption></figcaption></figure>

* **Both prices but tax-exclusive price is highlighted:** The tax-exclusive price will be shown in bold, bigger font while the tax-inclusive price stand out less.

<figure><img src="/files/lYgeiEH2hHpGS9k8llV4" alt="" width="563"><figcaption></figcaption></figure>

* **Tax-inclusive price only**: Only price with tax is shown.

<figure><img src="/files/Sp44TWNM5vks16aNlYhM" alt="" width="563"><figcaption></figcaption></figure>

* **Tax-exclusive price only**: Only price without tax is shown.

<figure><img src="/files/gyMn9w327OPhk3TliWyc" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
The Tax price display is for display purpose only, tax will **still be calculated to the customers normally** regardless of the setup.
{% endhint %}

{% hint style="info" %}
If your Shopify Tax settings has the Additional configuration boxes checked, please uncheck it for the tax to display correctly.
{% endhint %}

<figure><img src="/files/QIXkSEENRr5suO3135sD" alt="" width="563"><figcaption></figcaption></figure>


# App configuration

This section covers all the features you configure inside the B2Bridge admin dashboard. Use the sidebar to navigate to each feature.

### Quick reference:

| Feature                                                            | What it does                                                         |
| ------------------------------------------------------------------ | -------------------------------------------------------------------- |
| [Price Lists](/app-configuration/price-list)                       | Define B2B prices, volume discounts, and order limits                |
| [Customer Groups](/app-configuration/customer-group)               | Assign price lists and payment options to buyer segments             |
| [Company Account](/app-configuration/company-account)              | Group B2B buyers under a company team                                |
| [B2B Registration Forms](/app-configuration/b2b-registration-form) | Collect and approve wholesale applications                           |
| [Lock & Hide](/app-configuration/lock-hide)                        |                                                                      |
| [Request For Quote](/app-configuration/request-for-quote)          |                                                                      |
| [Manual Orders](/app-configuration/manual-order)                   | Create orders on behalf of B2B buyers                                |
| [Settings](/app-configuration/settings)                            | Email notifications, translations, net terms forms, advanced options |
| [Product Data Sync](/app-configuration/settings/product-data-sync) | Keep product data in sync with Shopify                               |
| [Installation](/app-configuration/settings/installation)           | Install B2Bridge code into your Shopify theme                        |

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Quick Order

### Overview

Quick Order lets your B2B buyers order in bulk from a single screen, instead of clicking through each product page one at a time. Every product is listed with a quantity box, so buyers can add lots of items to the cart at once.

Quick Order setup locates at the App Dashboard in the More B2B Features workflows & Setups

<figure><img src="/files/YwfE0SFKsvaOLYeGJ3O4" alt="" width="563"><figcaption></figcaption></figure>

### How Quick Order work

* You turn Quick Order on and choose how it's displayed: a dedicated **Page** or an **Extension** embedded into your theme
* You choose which products it shows and which extra tools (CSV upload, filters) buyers get
* You save, and Quick Order goes live on your storefront
* Buyers open Quick Order, enter quantities (or upload a CSV), add everything to cart, and check out through Shopify as usual

### How to setup Quick Order

#### **Step 1: Turn Quick Order on**

At the top of the page, switch the **Quick Order** toggle on. This is the master switch: when it's on, buyers can use Quick Order; when it's off, it disappears from your store (but your settings are saved for later).

<figure><img src="/files/jTkMeGJd5K7QpPcDGnkr" alt="" width="563"><figcaption></figcaption></figure>

#### **Step 2: Choose how buyers see it**

Pick one of two options:

* **Page** — Quick Order will be added to your store a seperate new page in B2Bridge layout. Click **View** to open it in a new tab and see how it looks to buyers.
* **Extension** — Places Quick Order inside one of your existing store pages

<figure><img src="/files/ibOxAPD527ePsG1JVP51" alt="" width="563"><figcaption></figcaption></figure>

#### **Step 3:  Choose which products buyers can see**

* **All products** — Buyers see your entire catalog.
* **Products in price list only** — Buyers only see the products in their own price list, at their agreed B2B prices. This keeps their list clean and relevant.

<figure><img src="/files/iKsSa4B2YsLQ9RowwIdO" alt="" width="563"><figcaption></figcaption></figure>

#### Step 4: Turn on extra tools (optional)

These make ordering faster for your buyers. Turn on whichever you like:

* **Quick order by CSV** — Lets buyers upload a spreadsheet file (with product SKUs and quantities) to fill their whole cart in one click. Great for buyers who reorder the same items often.
* **Extra filter** — Adds filters so buyers can quickly narrow down a large catalog. After turning it on, tick the filters you want to offer: **Type**, **Collection**, **Vendors**, and **Tags**.

<figure><img src="/files/s45sAmIbK1jjg5ntzNF4" alt="" width="563"><figcaption></figcaption></figure>

#### Step 5: Add the Extension (only if you chose Extension)

You have two ways to add it. Pick whichever matches your store:

* **Add app block:** Click **Add app block**. This opens your Shopify theme editor. Choose the page you want Quick Order to appear on, drag the **Quick Order** block to where you'd like it, and click **Save**.&#x20;

<figure><img src="/files/N8m3urcIqpqkpIJleckq" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/rwHi569RYfhFKuzRi3Dc" alt="" width="563"><figcaption></figcaption></figure>

* **Add by code:** Copy the code shown in the app, then in Shopify go to **Themes > Edit code**, open the page file, paste the code where you want Quick Order to show, and click **Save**.

<figure><img src="/files/hKlO13Ry3EUerI6J3cUz" alt="" width="563"><figcaption></figcaption></figure>

### How to hide stock/ SKU in Quick Order

#### Extension

For extension, while implementing the extension in theme editor, simply click on the B2Bridge Quick Order block. \
\
**A setting panel will pop up at the right side with 2 toggle buttons for Show stock/ SKU**. Toggle the button for which you want to hide and then click Save.

<figure><img src="/files/78NMMSvHyCXXdBcniBBp" alt="" width="563"><figcaption></figcaption></figure>

#### Page

For page, please **contact us via chat** so our dev team can remove it manually for you.

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.


# Price Lists

Price Lists are where you configure all your B2B pricing rules custom discounts, volume tiers, order limits, and product increments. Each Price List defines *what* is sold and at *what price* for the B2B customers assigned to it.

{% hint style="info" %}
A Price List on its own does nothing until it's assigned to a [Customer Group](/app-configuration/customer-group). The Customer Group defines *who* sees those prices. Same with&#x20;
{% endhint %}

### How Price Lists work:

* You add products to a Price List and configure a discount or custom price for each.
* You then assign the Price List to a Customer Group.
* When a customer in that group logs into your store, they see the B2B prices from the assigned Price List.
* A Customer Group can have multiple Price Lists assigned to it.

### What you can configure in a Price List:

* **Overall discount:** apply a percentage, fixed amount off, or a new price across all products in the list
* **Volume discount:** offer tiered pricing based on quantity or order amount
* **Product & order limit:** set minimum/maximum quantities or amounts, and product increments
* **Optional settings:** set a start and end date, and a priority when multiple rules overlap
* **Applicable market:** restrict the Price List to specific Shopify markets

### Managing your Price Lists:

From the **Price Lists** page, you can:

* **Create** a new Price List by clicking **Create price list**
* **Edit** an existing list by clicking the edit icon in the Action column
* **Duplicate** a list to reuse its settings as a starting point
* **Delete** a list (this cannot be undone)
* **Export** and **Import** Price Lists via XLSX or CSV (available on Growth plan and above)

### Set up your first Price List:

From the left-side navigation, select Price Lists and click on Create Price List.

<figure><img src="/files/1J6ievA9d2pa2qNQmFKM" alt="create price list in B2Bridge.io app"><figcaption></figcaption></figure>

Select the products. You can search by collection, by tag or select manually.

<figure><img src="/files/e0HXYIUgDD1vjGsj4Z4J" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/fDLe72DcFFfyxcO7LhaA" alt="" width="563"><figcaption></figcaption></figure>

Follow the 5 steps to create the new Price List.

#### Step 1: Name the price list

<figure><img src="/files/7bmnytBbibWtc81Qt7wv" alt=""><figcaption></figcaption></figure>

#### Step 2: Select market.&#x20;

Under Applicable market, select:

* All markets: The price list applies to all active Shopify Markets.
* Specific markets: A dropdown will appear showing your active Shopify Markets. (You will need to [create markets in Shopify Markets first](https://admin.shopify.com/markets). B2Bridge will only sync the active markets). Then, select one or multiple markets to apply the price list to.

Once saved, B2Bridge automatically ensures buyers see the price list that matches their assigned Market.

<figure><img src="/files/eMqbFgAUKLk1h9tmtB6N" alt=""><figcaption></figcaption></figure>

#### Step 3: Select discount type

**Overall discount:** This section allows you to set new prices for your B2B customers. This option will apply to all products you have selected in Step 1.

<figure><img src="/files/bPRH145dniRoFR5i9NUF" alt=""><figcaption></figcaption></figure>

Example:

You set 10% off across all your products

* Product A's original price is $100, the new price would be $90
* Product B's original price is $50, the new price would be $45

If you want to granularly control prices of every product, select **Customize for each product or variant** and you'll be able to set prices for each product in the next page.

**Volume discount:**

<figure><img src="/files/57S2aOvZrT4sDjy42J80" alt=""><figcaption></figcaption></figure>

Here you can choose the volume discount type and how you want the discount to apply.

* Select if the volume discount is determined by quantity or amount. To set up Unit price, click on Discount on purchasing quantity and [follow the rest of the steps here.](broken://pages/axCENDqlMbD3pZlhaaoq)
* Choose how the discount will be calculated.
  * If **Apply to every product in this price list** is chosen, each product must reach the break point (e.g. quantity 10) for the discount to be applied.
  * If **Apply to the total sum of product quantity from this price list** is chosen, the total quantity of products in a price list must reach the break point (e.g. quantity 10) for the discount to be applied.
    * Example
      * Volume pricing is set to buy 10 get 10% off across all products
      * The order has product A with quantity = 5, and product B with quantity = 6
      * The order would get 10% of since the total quantity is 11

You can also select different volume pricing discounts for different products with **Customize for each product** option. After selecting this option, you can manually set volume pricing for each product.

**Product & order limit:**

<figure><img src="/files/A2hT6JZzfDLYKyAbY6gb" alt=""><figcaption></figcaption></figure>

Here you can choose the limit type and how you want the limit to apply.

* Select if the limit is determined by quantity or amount.
* Choose how the discount will be applied.
  * If **Apply to every product in this price list** is chosen, each product will be bound by the limit number you choose.
  * If **Apply to the total sum of product quantity from this price list** is chosen, the total quantity of products in a price list will be calculated and determined if it's eligible for checkout.
    * Example
      * The limit is set to a minimum of 10 items for any product
      * The order has product A with quantity = 5, product B with quantity = 4
      * The customer would not be able to check out since the total quantity is only 9

You can also select different limits for different products with **Customize for each product** option. After selecting this option, you can manually set the limit for each product.

\*Note: Starting 16 December 2025, the function of Quantity Select is improved.

1- When setting Limit purchasing quantity, the buying experience will be improved to fix the issue of not checking out successfully due to inventory. This applied to Product Page, Collection Page, Quick Order Page, Cart Page.

For example: Product A

Min Order Limit = 6

Actual Inventory = 50

Increment = 10

When a customer click on the Quantity Selector, the quantity of product added to cart is 6. Then it will be 6, 16, 26, 36, 46. Then the quantity selector is disabled. Customer can not proceed to 56 because the inventory is only 50.

For example: Product B

Min Order Limit = 6

Max Order Limit = 30

Increment = 10

When a customer click on the Quantity Selector, the quantity of product added to cart is 6. Then it will be 6, 16, 26. Then the quantity selector is disabled. Customer can not proceed to 56 because the Max Order Limit is only 30.

2- If a product is out of stock and the checkbox Continue selling when out of stock is untick, the quantity selector will also be disabled. Customer won't be able to buy the product. This applied to Product Page, Collection Page, Quick Order Page

**Variant Visibility:**

<figure><img src="/files/1l1aPXX27cixsTnR00Dg" alt=""><figcaption></figcaption></figure>

You can control which variant to hide/show for each product in the Price List.&#x20;

If choosing Selected variants only, you will see this in the pricing table in step 4.

<figure><img src="/files/UF4OWlnKcsJO962klorI" alt=""><figcaption></figcaption></figure>

Click on the eye icon to enable or disable visibility for each variant.

#### Step 4: Edit pricing table

<figure><img src="/files/Q0ChSiPm52YvqrEy7KN5" alt=""><figcaption></figcaption></figure>

This is where you can review all your setup. If you have selected **Customize for each product** in the previous step, this is where you make finer adjustments.

After this step, you can press the **Save** button.

That's the entire process to create a price list.

{% hint style="info" %}
By default the price list will follow the Override Price logic. [Read about Override Price here.](broken://pages/o3HNsWdrYU7LyrPhAq8W)
{% endhint %}

## Next step:

In order to display the correct prices to correct customers, you'll need to assign price list(s) to a [Customer Group](/app-configuration/customer-group) or [Company Account.](/app-configuration/company-account)

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# How to import prices via .csv file

## Overview

Instead of adding products and prices one by one, you can import a Price List in bulk using a `.csv` or `.xlsx` file. This is the fastest way to set up B2B pricing for a large catalog.

{% hint style="info" %}
Bulk import is available on the **Growth plan** and above. See [Pricing plans](/policies) for details.
{% endhint %}

### Step 1. Start importing the file

Go to **Price List**, locate the **Import/Export** button and select **Import price list.**

<figure><img src="/files/zVQlGJskuFONBCnaVeI1" alt=""><figcaption></figcaption></figure>

You’ll see a screen like this:

<figure><img src="/files/wrhSLrx12nydxJDrz6Du" alt="" width="563"><figcaption></figcaption></figure>

* **Overwrite rules with matching IDs:** Suitable when you need to bulk update the previous price lists.
* **Replace all existing rules:** Suitable when yo that want an entirely new price list.

### Step 2: Understanding the File Structure

The file contains two sheets:

* `data_entry_guidelines` - Explains what kind of data should be entered in each cell.
* `data_input` - Where you actually input the prices.

Note:

* In `data_input`, we have implemented dropdown options that match the option in the app, so you don’t have to type it down in the file

<figure><img src="/files/scfpI7oi8dBtw8hDHGP1" alt=""><figcaption></figcaption></figure>

### Common use cases

For example, there are 2 products with total of 5 SKUs

<div><figure><img src="/files/NnemHW9gVToCsYGVFdM0" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Ufj20BBcqK9B6QjjMI7u" alt=""><figcaption></figcaption></figure></div>

Let’s walk through some common examples.

#### Specific price for each SKU

For this, focus on two columns: `sku` and `b2b_price`.

Enter the SKU in the `sku` column, and the wholesale price in the `b2b_price` column

<figure><img src="/files/HJYnDH8e6d3Hj2kKZoTY" alt=""><figcaption></figcaption></figure>

For column `volume_discount_apply_to` and `limit_apply_to`, you can set is to `-- None --`

#### Volume prices for each SKU

For this scenario, focus on columns:

* `sku` - the SKU of the **variant** to apply volume prices to
* `volume_discount_apply_to` - in this case, select "Customize for each variant"
* `volume_discount_break_type` - select either "Quantity" or "Amount", depends on what is used to calculate the discount value
* `volume_discount_break_value` - for each range, select a number of a quantity or amount break
* `discount_type` - for each range, select how you'd like to discount, can either be "Decrease a fixed amount", "Apply a new price", or "Percentage discount"
* `value` - select a number that corresponds `discount_type`

Example:\
If buying 10 units of SKU 13a gets you 10% off, and 20 units gets 20% off, input as follows:

<figure><img src="/files/BQ1tW0cITifJvrd4NvgZ" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note**: for each row of volume pricing range, you need to enter the same SKU so our system can recognize that the volume pricing belongs to one SKU.
{% endhint %}

#### Volume prices for each product with many variant/SKU

If a product has multiple SKUs but you want volume pricing to apply across all of them:

<figure><img src="/files/r2BNKQVgc9V0P4ag9zHA" alt=""><figcaption></figcaption></figure>

In this case, choosing either SKU 13a or 14a will trigger volume pricing for both.

* `sku` - the SKU of the **product** to apply volume prices to
* `volume_discount_apply_to` - in this case, select "Each product"
* `volume_discount_break_type` - select either "Quantity" or "Amount", depends on what is used to calculate the discount value
* `volume_discount_break_value` - for each range, select a number of a quantity or amount break
* `discount_type` - for each range, select how you'd like to discount, can either be "Decrease a fixed amount", "Apply a new price", or "Percentage discount"
* `value` - select a number that corresponds `discount_type`

Example:\
If buying 10 units of the product gets you 10% off, and 20 units gets 20% off, input as follows:

<figure><img src="/files/X4k8LP2y6B0mM6Jdtfyi" alt=""><figcaption></figcaption></figure>

#### Volume prices for entire order

This setting applies volume discounts across **all SKUs** listed in the file.

* `sku` - the SKU of the **product** to apply volume prices to
* `volume_discount_apply_to` - in this case, select "Total sum of order"
* `volume_discount_break_type` - select either "Quantity" or "Amount", depends on what is used to calculate the discount value
* `volume_discount_break_value` - for each range, select a number of a quantity or amount break
* `discount_type` - for each range, select how you'd like to discount, can either be "Decrease a fixed amount", "Apply a new price", or "Percentage discount"
* `value` - select a number that corresponds `discount_type`

<figure><img src="/files/XrfDixpURaqLEfPDkomp" alt=""><figcaption></figcaption></figure>

#### MOQ/MOV for each SKU

You can define rules for each SKU. For example:

* SKU 13a requires a **minimum order of 10**, **maximum of 1000**, and must be ordered in **increments of 10**.
* `sku` - SKU of the **variant** to apply order rule to
* `limit_apply_to` - in this case, select "Customize for each variant"
* `limit_type` - select either "Quantity" or "Amount", depends on what is used to limit ordering
* `min` - mimimum purchasable number
* `max` - mimimum purchasable number
* `increment` - applies only when `limit_type` is "Quantity", select the purchasable increments of one SKU (e.g. qty in 3 6 9 12, etc.)

<figure><img src="/files/8tnY1YcyeolT0eamVwaK" alt=""><figcaption></figcaption></figure>

#### MOQ/MOV for each product with many variant/SKU

Similar to volume pricing for products with multiple SKUs. Use **one representative SKU**.

* `sku` - SKU of the **product** to apply order rule to
* `limit_apply_to` - in this case, select "Each product"
* `limit_type` - select either "Quantity" or "Amount", depends on what is used to limit ordering
* `min` - mimimum purchasable number
* `max` - mimimum purchasable number

<figure><img src="/files/AzRMON3B4fF85qX9Mj3E" alt=""><figcaption></figcaption></figure>

#### MOQ/MOV for entire order

This applies the same order rules across all SKUs listed in the file.

* `sku` - SKU of all products to apply order rule to
* `limit_apply_to` - in this case, select "Each product"
* `limit_type` - select either "Quantity" or "Amount", depends on what is used to limit ordering
* `min` - mimimum purchasable number
* `max` - mimimum purchasable number

<figure><img src="/files/aEhS8qhMzg46KWX06T0p" alt=""><figcaption></figcaption></figure>

### Step 3: Upload and validate the file

#### Successful import:

<figure><img src="/files/iEeoxe8kiqrIPwZytY2o" alt=""><figcaption></figcaption></figure>

You're all set! You can now use [Customer Group](broken://pages/JoJAwhZgkjvBNA9W9fHr) to assign the imported price list to specific wholesale customer groups.

#### If there are errors

If the file has invalid inputs, errors will be shown on screen.

<figure><img src="/files/FL6mHK1qUZF92b5IwELw" alt=""><figcaption></figcaption></figure>

* Please check the file, fix the issue, and re-upload.
* If the problem persists, contact us at <support@b2bridge.io> or use the in-app chatbox.

### Export existing price list(s)

To export a price list:

* Select the price list(s) you want.
* Click Export to export the selected price list(s).

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Unit Price

### Overview

The Unit Price feature allows you to set up quantity-based or tiered pricing per unit in B2Bridge. As customers order more units of a product (or variant), they qualify for lower unit prices according to rules you define.

{% hint style="info" %}
This feature is enabled starting from [B2Bridge Growth plan ($199/month).](https://b2bridge.io/pricing/)
{% endhint %}

### **Unit of Measure Example**

Imagine a product that can be bought as individual units, in cartons, or on pallets.

1 carton = 8 units\
1 pallet = 160 units

The price per single unit is $15.49.\
For a carton, the unit price is $11.49.\
For a pallet, the unit price is $9.49

If a customer wants to purchase 350 units, the system will allocate the quantity across the available units of measure and calculate the total price and average unit price as follows:

* 320 units at the pallet price: $9.49 × 320 = $3,036.80 (2 pallets)
* 16 units at the carton price: $11.49 × 16 = $183.84 (2 cartons)
* 14 units at the single unit price: $15.49 × 14 = $216.86
* Total line amount = $3,437.50

Average unit price = $3,437.50 ÷ 350 = $9.82

Unlike basic volume discounts or tiered pricing, unit pricing offers a more flexible and precise way to control how products are priced per item.

***

### Why B2B Stores Need This Feature

* Encourages larger purchases by offering discounts as order quantity increases.
* Helps manage margins better: you can offer volume-discounts without eroding profit on small orders.
* Gives customers transparency: they can see how unit price changes with quantity, which supports trust and easier decision making.
* Supports complex product packs or different units of measure (e.g. single unit, carton, pallet) so pricing matches how you sell.

***

### Use Cases

* A wholesale buyer orders 1-4 units of a product at a standard unit price, then 5-9 units at a lower unit price, and 10+ units at an even lower price.
* A product is sold in multiple pack sizes (single, carton, pallet)—you want each pack size to have its own unit price.
* Different customer groups (e.g. “VIP wholesalers”, “new customers”, “valued accounts”) see different tiered pricing depending on their status.
* Variant-level pricing: for example, a variant may have different price tiers if larger quantities are bought in that variant.

***

### Setup Guide

Follow these steps to configure Unit Price in B2Bridge (It is basically creating [Price List](/app-configuration/price-list))

{% stepper %}
{% step %}
Create a new [Price List](/app-configuration/price-list)

* Give it a name so you can easily identify it later.
* In **Volume Discount**, select **Discount on purchasing quantity.**
  {% endstep %}

{% step %}
Define the quantity breaks and the unit price for each tier. For example:

<figure><img src="/files/zkhKkuAwRfSxFsvxTS7N" alt=""><figcaption></figcaption></figure>

* Single unit: quantity 1-6 at $10/unit
* Box: quantity 7-19 at $9/unit
* Case: quantity 20+ at $8/unit
* Pallet: quantity 100+ at $5/unit
  {% endstep %}

{% step %}
Review pricing table: Configure how the pricing will be displayed to customers
{% endstep %}

{% step %}
Save the rule to publish it
{% endstep %}
{% endstepper %}

***

### Frequently Asked Questions (FAQ)

<details>

<summary>Can I set different unit prices for different customer groups?</summary>

Yes. Unit price rules can be assigned to specific customer tags, groups, or individual accounts. Each group can have its own tiered pricing structure.

</details>

<details>

<summary>Can I apply unit price rules to only some products or collections?</summary>

Yes. You can select specific products, variants, or collections when creating a rule. You can also exclude items from a rule if needed.

</details>

<details>

<summary>What happens if multiple pricing rules apply to the same product?</summary>

You can set rule priority in the B2Bridge dashboard. The system will apply the rule with the highest priority.

</details>

<details>

<summary>Will customers see the discounted unit price before checkout?</summary>

Yes. The correct unit price is displayed on the product page and in the cart as soon as the customer selects a qualifying quantity.

</details>

<details>

<summary>Can I combine unit pricing with discount codes or other promotions?</summary>

Yes. However, keep in mind that Shopify will apply discounts on top of the unit price. Always test to ensure the pricing works as intended.

</details>

<details>

<summary>Does unit price work with product variants?</summary>

Yes. You can set unit price tiers for each variant individually if needed.

</details>

<details>

<summary>Can I show a “pricing table” on the product page?</summary>

Yes. B2Bridge supports showing a tiered pricing table (e.g., 1-4 units = $10/unit, 5-9 units = $9/unit, 10+ units = $8/unit) so customers can clearly see available discounts.

</details>

<details>

<summary>How can I test unit pricing before customers see it?</summary>

You can assign the rule to a test customer account, then log in as that account in your storefront to check that the correct unit prices display.

</details>

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Override Price

Override Price allows merchants to set a fixed B2B price for selected customers or products.

### Overview

Override Price allows merchants to set a fixed B2B price for selected customers or products. When applied, this price replaces the original product price completely.

Customers will only see the final amount without any discount labels or strike-throughs.

{% hint style="success" %}
It's already available [when you create a Price List.](/app-configuration/price-list)

You can decide to disable/enable the override price. [Go to the setup guide.](#setup-guide)
{% endhint %}

This feature gives merchants more control and flexibility over how B2B prices are displayed and managed, ensuring a **clean, professional buying experience.**

{% hint style="info" %}
This feature is available starting from [B2Bridge Professional plan ($99/month).](https://b2bridge.io/pricing/)
{% endhint %}

### Why B2B Stores Need To Override Price

#### 1. Professional B2B presentation (no strike-through or “discount” tag)

For wholesalers or enterprise buyers, seeing “Custom Discount” or strike-through pricing looks too retail-oriented, it implies a temporary promotion rather than a contract-based wholesale rate.

Override price ensures the buyer sees only the final agreed price — clean, professional, and aligned with B2B expectations.

#### 2. Keeps wholesale pricing discreet

With override prices, B2B buyers won’t see what the “original” retail price was.\
That prevents:

* Revealing retail margins
* Confusing partners who already negotiated their fixed rates
* Price comparison issues if they resell your products

#### 3. Cleaner invoice and checkout experience

Since override pricing removes strike-throughs and discount labels, your invoices, checkout screens, and order emails will show only the final agreed prices.\
That’s more consistent with how B2B transactions are presented.

#### 4. Set the B2B price higher than the original price

There are situations where a wholesale buyer pays more than the public retail price because of special conditions or added value, for example:

* The product includes custom packaging, labeling, or services (e.g., branding, white-label setup).
* The order uses different shipping or payment terms.
* The buyer purchases from a different region with separate tax or logistics costs.

That’s where Override Price solves it perfectly.\
It replaces the price entirely with the correct fixed value, regardless of whether it’s higher or lower than retail.

### Use cases

| Scenario                                  | What Happens with Discount                         | What Happens with Override Price                    |
| ----------------------------------------- | -------------------------------------------------- | --------------------------------------------------- |
| Standard wholesale buyer (-20%)           | Sees a crossed-out retail price and a discount tag | Sees only the final price (no discount text)        |
| Corporate client with value-added service | Cannot set a higher price using discounts          | Can set $450,000 instead of retail $400,000 cleanly |

### Setup Guide

{% stepper %}
{% step %}
Go to **B2Bridge** → **Settings** → **Advanced settings** tab.
{% endstep %}

{% step %}
Find the Override price.

<figure><img src="/files/dD0bjRT0qN0LVWFOIajl" alt=""><figcaption></figcaption></figure>

**Override price:** B2B prices will be shown as-is, without the 'CUSTOM\_DISCOUNT' label. This is the default option.

If you wish to show discount tag and strike through price, then select:

**Don't override price:** B2B prices will be displayed with the discounted amount labelled as 'CUSTOM\_DISCOUNT'
{% endstep %}

{% step %}
Save and test the new logic.
{% endstep %}
{% endstepper %}

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Customer Groups

Customer Groups define *who* sees your B2B prices and *how* they pay. By assigning a Price List to a Customer Group and tagging customers into that group, those customers will see their B2B prices after logging into your store.

{% hint style="info" %}
A Customer Group needs at least one [Price List](/app-configuration/price-list) assigned to it before B2B prices become visible to customers in that group.
{% endhint %}

### How Customer Groups work:

* Each Customer Group is identified by a **Shopify customer tag**. Any customer with that tag automatically belongs to the group.
* You assign one or more Price Lists to the group, then customers will see the B2B prices from those lists.
* You control the assigned payment methods: online payment, net payment terms, and saved cart.
* You can choose whether tax is collected for orders from this group.

### Managing your Customer Groups:

From the **Customer Groups** page, you can:

* **Create** a new group by clicking **Create customer group**
* **Edit** an existing group by clicking the edit icon in the Action column
* **Delete** a group (this cannot be undone and cannot remove the Shopify tag remains on customers)

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Set up Customer Group

## Overview

This guide walks you through creating a Customer Group from scratch, from naming it and assigning a tag, to choosing a Price List and configuring payment options.

### Step 1: Create a new Customer Group

Go to **Customer Groups** in the sidebar and click **Create customer group**.

<figure><img src="/files/0TptT23nsMht8MPv01e2" alt=""><figcaption></figcaption></figure>

### Step 2: Fill in the summary

<figure><img src="/files/x1VMpJgbKvDO9nr9RWx7" alt=""><figcaption></figcaption></figure>

In the **Summary** section:

* **Name:** enter an internal name for this group (not shown to customers).
* **Add tag to customers in this group:** enter a Shopify customer tag. This is how B2Bridge identifies which customers belong to this group. Any customer with this tag will automatically be included.
* **Choose B2B price list(s) to assign to this customer group:** select one or more Price Lists. Customers in this group will see B2B prices from the assigned lists.

{% hint style="info" %}
The customer tag must be unique across all Customer Groups. You cannot use the same tag in two different groups.
{% endhint %}

### Step 3: Configure Buying options

In the **Buying options** section, choose what payment methods are available to customers in this group.

<figure><img src="/files/B2tHxXerRuxQgKUh0XsO" alt=""><figcaption></figcaption></figure>

#### Pay online

Customers pay at checkout with a credit card or any other payment method enabled on your store. This is the standard option.

#### Net payment term

Customers can place orders and pay later according to a net payment schedule. Full details on [Set up Net Payment Terms.](/app-configuration/customer-group/set-up-net-payment-terms)

* **Due on receipt:** payment is due immediately after the order is placed
* **Within N days:** payment is due within a set number of days (e.g. Net 30)
* **Due on specific day of month:** payment is due on a particular day each month
* **Custom:** define your own terms by time unit (days, weeks, or months)

You can also choose whether net terms orders appear in Shopify as **final orders** or **draft orders**.

<figure><img src="/files/TVTWb6WCc9mtt02atgKz" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
To set up a custom net terms information form that customers fill out when requesting net terms, go to [Settings → Net terms information form](broken://pages/9mUYAZgc2BcwHcNaaWR6).
{% endhint %}

#### Saved for later

Save cart for future order. The saved cart is stored in the [Account page](/storefront-display/account-page).&#x20;

{% columns %}
{% column %}

<figure><img src="/files/IhbIQuaKR1bTuvumh2Fs" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/dGzIbuX5ViHzJCh44aDC" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### Step 4: Add customers

In the **Add customers** section, search for and add individual customers to this group. Customers added here will be automatically tagged with the group tag you defined in step 2.

<figure><img src="/files/NVQHd2lnzb2ff4nszpmG" alt=""><figcaption></figcaption></figure>

You can also tag customers manually in Shopify Admin, they'll be picked up by B2Bridge automatically.

### Step 5: Configure Order tags & tax

<figure><img src="/files/XypmNtb1cPz0xmCU974v" alt=""><figcaption></figcaption></figure>

These tags help you manage orders. To avoid overlapping issues, ensure 1 customer has 1 tag. In that way, the price list will always be correct.

In the **Tax collection** section, check **Collect tax on this customer group** if tax should be applied to orders from this group. Uncheck it to create a tax-exempt group. This setting will change the tax setting in each customer in this group.

<figure><img src="/files/DPpQHu84A6Z7sjf2Vt2I" alt="" width="360"><figcaption></figcaption></figure>

Click **Save** to create the Customer Group. Customers with the assigned tag will now see B2B prices from the linked Price Lists when they log in.

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Set up Net Payment Terms

## Overview

Net Payment Terms let your trusted B2B buyers place orders and pay later, for example, Net 30 means payment is due 30 days after the order is placed. You configure net terms per Customer Group so only eligible customers [see this option at checkout.](/storefront-display/net-terms-page)

{% hint style="info" %}
Net Payment Terms are configured inside a Customer Group. Make sure you have already [created a Customer Group](/app-configuration/customer-group/set-up-customer-group) before following this guide.
{% endhint %}

### Step 1: Open the Customer Group

Go to **Customer Groups** in the sidebar and click the edit icon next to the group you want to configure net terms for.

In the **Buying options** section, check **Net payment term** under **Choose buying options**.

<figure><img src="/files/m69hH7yuqVRnnHTHWGaP" alt=""><figcaption></figcaption></figure>

Under **Select eligible net payment terms for this customer group**, choose the schedule that matches your agreement with this group:

#### Due on receipt

Payment is due as soon as the order is placed. Use this when you want net terms in name (draft orders, invoicing) but expect immediate payment.

#### Within N days

Payment is due within a set number of days after the order. This is the most common net terms format.

* Select **Within N days**
* Set the **Value** (e.g. `30` for Net 30, `60` for Net 60)
* Choose the **Time unit**: Days, Weeks, or Months

#### Due on specific day of month

Payment is due on a particular day of each month. For example, all invoices are due on the 15th of the following month.

* Set the **Day of month** (1–31)
* Set the number of months until that day applies

{% hint style="info" %}
If the selected month doesn't have that particular day (e.g. day 31 in February), the due date defaults to the last valid day of that month.
{% endhint %}

#### Custom

Define your own schedule using Days, Weeks, or Months. Enter the value and choose the time unit.

### Step 4: Choose how net terms orders appear in Shopify

Under **Net Terms orders in your Orders tab placement**, choose how net terms orders are recorded in Shopify:

* **Net Terms orders as final orders:** the order appears as a regular Shopify order immediately
* **Net Terms orders as draft orders:** the order appears as a draft order until you confirm it

Draft orders give you a chance to review and adjust before the order is finalised.

### Step 5: Set the Credit limit

<figure><img src="/files/eBv3frBJngw63LJS7Lze" alt=""><figcaption></figcaption></figure>

You can set the Credit limit for each customer group. This represents the maximum total value of unpaid orders a customer in this group can have.

Tick on B**lock customer from paying on net terms when exceeding credit**, it will look like [this](/storefront-display/net-terms-page).

### Step 6: Create a form to purchase on a net term

When a customer click on **Pay with net terms**. You can set up a form to collect information.

<figure><img src="/files/mcizluHbn0qJXZ3azi7M" alt=""><figcaption></figcaption></figure>

Here you can customize the form for your customers to see, which is displayed when they want to check out on a payment term.

<figure><img src="/files/tDGwvKgvoPD2SA0E8Bkv" alt=""><figcaption></figcaption></figure>

Here you select which customer group(s) will see the form you just customized. Note that customers who can pay on a net term, but have no assigned custom form will see the default one.

The default form will have only Shipping address and Billing address fields.

<figure><img src="/files/8Ifpwn2rkW59jfwnczfk" alt=""><figcaption></figcaption></figure>

Click **Save**. Customers in this group will now see the net terms option at checkout after logging in.

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Set up Tax

### Overview

You can either choose to apply tax or exempt tax for your Customer Groups. The Tax setup is available in Step 4: Order Tags & Tax when you configure Customer Groups.

<figure><img src="/files/YepHFdzE4a7teNWWZMhP" alt=""><figcaption></figcaption></figure>

Before setting up the tax, you need to sync your Shopify tax rate with the B2Bridge app first.

### How to sync your Shopify Tax to B2Bridge

The Tax tab in Settings allows you to sync your own Shopify tax rate into B2Bridge configuration.

Go to **Settings > Tax** tab.

<figure><img src="/files/ZYuNd3xdx065Osse3Fcb" alt="" width="563"><figcaption></figcaption></figure>

#### Step 1: Configure Shopify tax

Before syncing, you need to set up your tax rate within your Shopify admin. For quick navigation, you can click on the Open Shopify Taxes settings.\
\
You will be taken directly to the Shopify Tax settings configuration.

<figure><img src="/files/Mz7T97N3E3FQPSse4JDX" alt="" width="563"><figcaption></figcaption></figure>

#### **Step 2: Sync Shopify Tax with B2Bridge**

Once you finish setting up, click on the Sync from Shopify button.

<figure><img src="/files/gy3TxNnqGCcogaHuCJP4" alt="" width="563"><figcaption></figcaption></figure>

After the syncing finish, you can preview the synced rate at the table below the button. You will need to **wait 5 more minutes before performing another sync**.

### How to exempt tax/ display tax

#### Tax exemption

This option is for when you want to use price without tax for your Customer Group.

At step 4: Order tags & Tax of Customer Groups setup, scroll down and simply check the box Exempt this group from tax at checkout.

The buyers belong to the Customer Group you are setting up will be exempt from tax.

<figure><img src="/files/3zbAN55MNEfbpirYI8DD" alt="" width="563"><figcaption></figcaption></figure>

#### Tax display

This option is for setting up how the price with/without tax be displayed to the customer only. The tax **will still be calculated normally if the tax exempt box is not checked.**

At step 4: Order tags & Tax of Customer Groups setup, scroll down and check **Show prices with a custom tax format for this group.**

You will have 3 price options to show:

* **Both prices ( both tax-inclusive + tax-exclusive price)**: Suitable if you want to show both prices before + after tax for your customers.\
  You can also choose to highlight the tax-inclusive or tax-exclusive price. The highlighted price will be shown in bolder, bigger font.

<figure><img src="/files/8TadNnpl8KgwQVqPKAX1" alt="" width="563"><figcaption></figcaption></figure>

* **Tax - inclusive price only**: Suitable if you want to show price after tax for your customers.

<figure><img src="/files/9xPE0YNRLSa8ua8OyO18" alt="" width="563"><figcaption></figcaption></figure>

* **Tax - exclusive only**: Suitable if you want to show price before tax for your customers.

<figure><img src="/files/0IbM8HEMqnn4BOXayACy" alt="" width="563"><figcaption></figcaption></figure>

The tax display will be shown to the assigned customer group at the storefront, the cart page before they check out.

This setting changes how prices appear to customers. It does not change how Shopify calculates tax at checkout.

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.


# Company Account


# Overview

B2Bridge's "Company Account" feature empowers businesses to optimize their B2B purchasing and account management. By creating teams with shared permissions (often called "company roles"), companies can effectively collaborate within their account.

<figure><img src="/files/wLKbDmoEbk0aOhgp7ASF" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](mailto:undefined) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Setup Guide

Once [switching from Customer Groups to Company Accounts](/app-configuration/company-account/switching-from-customer-group-to-company-account), the Company Accounts section will replace Customer Group on the left-side navigation.

<figure><img src="/files/MhjNhcgk9vedbMmVxdII" alt=""><figcaption></figcaption></figure>

### Step 1: Summary

<figure><img src="/files/Ebp8pCXUZscBvWpOdon2" alt=""><figcaption></figcaption></figure>

* Company name Enter the official business name of your corporate customer. This serves as the primary identifier across your store’s management dashboard.
* Add tag to accounts in this company Input a specific tag (such as the default `b2b-`) to automatically apply to all customer profiles linked to this business.
* Add tag to orders made by members in this company Click into this field to find or create a tag that will be automatically attached to every order placed by this company. This allows you to easily track and organize wholesale orders in your Shopify admin.
* Select company admin Use the search bar to find and assign the primary manager for this company. The selected admin will inherit full permissions to manage their company profile and authorized purchasing members.
* Choose B2B price list to assign to this company account Search for and select a pre-configured wholesale price list. Members associated with this company profile will automatically see this custom pricing when logged into your storefront.
* Company address Click (+) Add address to open the address form and enter the primary billing or shipping details for the corporate account.
* Company tax ID Input the business's official tax registration number at the bottom of the form for compliance, invoicing, and tax-exempt tracking.

{% hint style="info" %}
If 2 price lists have any section selected to **Apply to the total sum of product quantity from this price list,** then you should assign only 1 price list to a company account.
{% endhint %}

### Step 2: Payment options

<figure><img src="/files/BIOfw1gGcKZBFBlRmNjl" alt=""><figcaption></figcaption></figure>

* **Pay online:** Customers will checkout with default Shopify checkout.
* **Net payment term:** Customers will use the custom Net term checkout. It allows customers to pay within 15 days, 30 days... [Instruction to set up Net payment term.](/app-configuration/customer-group/set-up-net-payment-terms)
* **Save for later**: Save cart for future order.

### Step 3: Roles and members <a href="#step-5-add-customers" id="step-5-add-customers"></a>

You can add roles manually to each member. Each role has different permissions.

<figure><img src="/files/7u01jGyQgORrBA9vsIa5" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/3kLGTrhhQqVHe2SepRDP" alt="" width="563"><figcaption></figcaption></figure>

After you save the rule with all the information above filled in, you can send an invite to the member for the corresponding role.

<figure><img src="/files/qEFY05lRdXcrUaxitRpN" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/FQ0dw2ZSVetFzbQ3fhyf" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](mailto:undefined) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Switching from Customer Group to Company Account

This document outlines the differences between the legacy **Customer Group** feature and the new, powerful **Company Account** feature in B2Bridge. It also provides critical information regarding the transition process between these two setups.

### 1. Quick Overview

* [**Customer Group**](/app-configuration/customer-group)**:** Primarily designed for basic categorization (e.g., grouping customers by tier, location, or retail vs. wholesale) to apply specific discounts or price lists.
* [**Company Account**](/app-configuration/company-account/setup-guide)**:** A robust, hierarchical structure designed for genuine B2B operations. It allows a business entity to manage multiple users (teams) under a single umbrella account with shared permissions, company roles, and collaborative purchasing.

### 2. Detailed Comparison

| Feature/Capability           | Customer Group                                                  | Company Account                                                                 |
| ---------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| **Primary Purpose**          | Customer segmenting & simple discounting.                       | B2B organizational management & shared purchasing.                              |
| **Account Structure**        | Flat (individual accounts grouped together by tags/attributes). | Hierarchical (one parent company with multiple sub-accounts/teams).             |
| **User Roles & Permissions** | None. Every customer in the group acts independently.           | Yes. Custom company roles (e.g., Admin, Creator, Approver) with shared actions. |
| **Shared Cart & Checkout**   | No. Checkout is strictly individual.                            | Yes. Teams can share specific purchasing actions and order histories.           |
| **Management**               | Managed entirely by the store merchant.                         | Self-managed by the company's designated administrator.                         |

### 3. Important Transition Notice (Please Read Carefully)

If you are planning to transition from the old **Customer Group** system to the new **Company Account** structure, please keep the following operational rules in mind:

<figure><img src="/files/twPFQ8Ynxqhk4Cu22P5b" alt=""><figcaption></figcaption></figure>

#### Old Customer Groups Will Stop Working

Once you initiate the switch to the **Company Account** feature, the **Customer Group** setup will be **permanently disabled and will no longer function**.

* Existing group associations, rules, or automatic customer grouping under the old system will cease to apply.
* This transition is automatic to prevent data conflicts and ensure a smooth checkout experience for your B2B clients.

#### No Automatic Migration (Set Up From Scratch)

Because the underlying database architecture of "Company Accounts" is fundamentally different from "Customer Groups", **your old data cannot be automatically migrated or converted**.

* **Action Required:** You must set up and create all new Company Accounts **completely from scratch**.
* This includes:
  1. Creating the new parent Company Profiles.
  2. Inviting or assigning individual users to their respective companies.
  3. Defining the company roles, teams, and sub-account permissions within the new interface.

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](mailto:undefined) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# How to set up email notification

Go to Settings > Email notifications > Company account emails

* Notification sent to the company member: to invite members that they're authorized to manage orders.

<figure><img src="/files/fJB7sGEFpSZt9gKQE8cn" alt="" width="563"><figcaption></figcaption></figure>

#### Email Notification: You’re invited to join a company <a href="#email-notification-thanks-for-your-quote-request" id="email-notification-thanks-for-your-quote-request"></a>

**Status:** Click Enable to activate this notification. It’s Disable by default.

Customize the email content as you see fit.

Please don’t make changes to the default email variables. For example: {{company\_name}}, {{company\_email}}, {{company\_address}}, {{manager\_name}} - {{manager\_email}}. See the preview of the email on the right.

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# B2B Registration Forms

B2B Registration Forms let potential wholesale buyers apply to become B2B customers on your store. You create a customized form, embed it on your storefront, and then review, approve, or reject submissions from the Manage registrations page.

### How Registration Forms work:

1. You create a form with the fields you need (company name, VAT number, tax ID, etc.)
2. B2B buyers fill out the form on your storefront
3. You receive a notification and review the submission
4. You approve or reject the registration: approved customers become B2B accounts and receive an email notification

### What you can configure:

* **Approval type:** manual approval, auto-approve based on email domain, or auto-approve on registration
* **Form fields:** add system fields (name, address, phone) and custom fields (dropdowns, checkboxes, text)
* **Post-registration redirect:** choose where buyers land after submitting
* **Spam protection:** enable Google reCAPTCHA
* **Email notifications:** customize emails sent to buyers and to you at each stage

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Create a B2B Registration Form

### Overview

This guide walks you through creating a B2B Registration Form, from setting up the general configuration to customizing fields and publishing the form on your storefront.

Go to **Registrations** in the sidebar, then click **Manage forms.**

<figure><img src="/files/lYbmSfkfwcLLF0SzXk8V" alt=""><figcaption></figcaption></figure>

Click on **Create form.**

<figure><img src="/files/3Kjfwc57lu7uAbwIDPdJ" alt=""><figcaption></figcaption></figure>

### Step 1: General configuration

<figure><img src="/files/exBzz9oa8Oe7l0vrJWkq" alt="" width="563"><figcaption></figcaption></figure>

In the **General Information** section:

* **Name:** enter a name for this form. This name is displayed on your storefront, so make it meaningful to your buyers (e.g. "Wholesale Application Form").
* **Form URL:** If you want to embed the form to a page on your store instead of B2Bridge Portal, select Create a new page on your store and paste the URL.
* **Status:** set to **Published** to make the form live on your storefront, or **Unpublished** to keep it hidden while you're setting it up.

### Step 2: Approval&#x20;

<figure><img src="/files/VSDauctytAfSzawtfYN8" alt="" width="563"><figcaption></figcaption></figure>

Choose how incoming registrations are approved:

* **Manual approved by you:** each submission waits in the queue until you review and approve it. You can optionally hide the password field so buyers set a password only after approval.
* **Auto approve a customer if their email contains:** enter an email domain (e.g. `@mycompany.com`) and any buyer registering with that domain is approved automatically.
* **Auto approved upon registration:** all submissions are approved instantly without any review.

### Step 3: Post registration

<figure><img src="/files/o3JRDbInO1pgcguh6xb2" alt="" width="563"><figcaption></figcaption></figure>

* **After registration, redirect customer to page:** enter the URL of the page buyers land on after submitting the form (e.g. a "Thank you" page or your homepage).
* **Add tag to customers successfully registered via this form:** automatically tag approved customers with a Shopify tag. This is useful if you want to assign them to a Customer Group automatically.

### Step 4: Form fields

In the **Fields & protection** tab, you can add, remove, reorder, and configure form fields.

<figure><img src="/files/t6VAa48oNt9ieVqJjnu1" alt=""><figcaption></figcaption></figure>

#### System fields

System fields are pre-built fields for common B2B information. Available fields include: First name, Last name, Company, Phone, Address, City, Postal code, Country/Region, and Tax ID verification fields (VAT, ABN, GST, UK VAT).

Toggle system fields on or off depending on what information you need.

#### Custom fields

Click **Add new field** to add a custom field. Available field types include: Text, Textarea, Dropdown, Checkbox, Radio button, Number, Date, and Heading.

For each field you can configure: label, placeholder, help text, whether it's required, and for dropdowns/radios, the option values.

#### Privacy & spam protection

* **Enable privacy mandatory step:** requires buyers to accept your privacy policy before submitting.
* **Enable Google reCAPTCHA:** adds reCAPTCHA to the form to block spam submissions. If you want to use your own reCAPTCHA keys, click the link to go to the reCAPTCHA Key Setup page.

The **Preview** panel on the right shows a live preview of your form as you make changes. When you're happy with the setup, click **Save**.

### Step 4: Messages

<figure><img src="/files/gOdp7ifAb73KColmnfyg" alt=""><figcaption></figcaption></figure>

Edit the notification messages on your registration.

* Message colors
  * Success message color: Click the color picker to choose the exact hue for positive confirmation text (e.g., when a form is successfully submitted).
  * Error message color: Click the color picker to define the alert color for warning or failure text (e.g., when a mandatory field is left blank).
* Success messages: Expand this accordion menu to customize the actual text copy your customers will see upon a successful action.
* Error messages: Expand this accordion menu to rewrite the specific error notification copy, giving you control over how validation issues or submission failures are communicated.

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Manage, approve and notify your customers

### Overview

After buyers submit your B2B Registration Form, their applications appear on the **Manage registrations** page. From here you can review, approve, reject, and manage all incoming B2B applications.

Go to **Registrations** in the sidebar.

<figure><img src="/files/au6pcoQ0jAxB22Y7LyCa" alt="" width="563"><figcaption></figcaption></figure>

Use the filter tabs at the top of the table to view registrations by status:

* **All:** shows every submission
* **Pending:** submissions awaiting your review
* **Approved:** customers you have already approved
* **Rejected:** submissions you have declined

You can also search by email address using the search bar.

### 1. Approve a registration

Click the **Approve** button to a pending registration.&#x20;

<figure><img src="/files/a1DoNba1jV2VggioErnM" alt="" width="563"><figcaption></figcaption></figure>

You can also open the registration by clicking on the **Edit** button and click **Approve**.

<figure><img src="/files/WSZNwRa0sctlnfOLkCbM" alt="" width="563"><figcaption></figcaption></figure>

You have two scenarios with two options:

Scenario 1: You are using Customer Groups

* **Approve:** creates a B2B account and sends an approval email to the customer
* **Approve & add to Customer Group:** approves the customer and adds them to a Customer Group you created before

Scenario 2: You are using Company accounts

* **Approve:** creates a B2B account and sends an approval email to the customer
* **Approve & add to existing company accounts:** approves the customer and adds them to a Company account you have created before

If you choose the second option, you will need to assign **Role** to the one you just approved after choosing company account for them. Use the dropdown bar to choose Role.<br>

<figure><img src="/files/pZDiMrH50rPstbzpIreI" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
If the customer's email already exists in your Shopify store, B2Bridge will ask you to confirm before overwriting their account details.
{% endhint %}

Click the **Reject** button next to a pending registration. A confirmation modal appears to confirm to reject. A rejection email is sent to the customer if you have that notification enabled

<figure><img src="/files/JkQCbqzScKMce5uJsUeJ" alt="" width="518"><figcaption></figcaption></figure>

### 2. Notify your customers

Go to Settings > Email notifications:

<figure><img src="/files/UIJhNuq8Tnftwm2YwXSk" alt="" width="563"><figcaption></figcaption></figure>

In **Email notifications** > **Registration Form** emails, make the changes here:

To further edit the emails, click on the **Edit** button, you'll find the email edit section where you can edit all 5 emails.

<figure><img src="/files/F1L8cyOvBXVMw4Oytncn" alt=""><figcaption></figcaption></figure>

### 3. Manually create customers

From **Registration** section, find **Add customer.**

<figure><img src="/files/BgmIqfQFKLtChs6QScjw" alt="" width="345"><figcaption></figcaption></figure>

In Add customer, you 1st choose the form and fill out the information accordingly.

<figure><img src="/files/ehyTJLVfvp6EcEc0FScs" alt=""><figcaption></figcaption></figure>

### 4. Import customers

This is ideal if you already have an existing customer list and want to onboard them quickly.

From the **Add customers** dropdown, select **Import customers**.

<figure><img src="/files/Te9lP0mLM2W9da4xuj8h" alt=""><figcaption></figcaption></figure>

In the pop-up, select the form you want to use for the import, then click **Continue**.\
The selected form defines which fields will be included in your import file.

<figure><img src="/files/RNWrbyCs50av9oumkfg1" alt="" width="525"><figcaption></figcaption></figure>

Click **Download a sample file** to get a template.\
This file is automatically generated based on your form. For example, if your form has 5 fields, the CSV will contain the same 5 columns.

<figure><img src="/files/k9jPLzMmZyE6soTJBTOk" alt="" width="518"><figcaption></figcaption></figure>

Fill in your customer data following the format in the sample file and save it as a `.csv`.

Click **Add file**, upload your completed CSV, then click **Save** to complete the import.

Your customers will now be added according to the selected form settings.

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Lock & Hide

Lock & Hide lets you control what different customers can see and access on your storefront. You can restrict entire product categories, individual products, prices, or specific pages and define exactly who is allowed to view them.

### Setup

This guide walks you through creating a Lock & Hide rule, choosing what to lock or hide, who can access it, and what restricted customers see.

<figure><img src="/files/E9Tiwt4XgZ1HBnSAfU4q" alt=""><figcaption></figcaption></figure>

Go to **Dashboard** > **Lock & Hide** in the sidebar and click **Create lock**.

<figure><img src="/files/wXudHf0Kd9gAH5A2O3VV" alt=""><figcaption></figcaption></figure>

#### Step 1: General information

<figure><img src="/files/HER1wvqhNcd9z661VVId" alt=""><figcaption></figcaption></figure>

* **Lock name:** enter an internal name for this rule (not shown to customers).
* **Status:** set to **Enabled** to activate the rule, or **Disabled** to save it without applying it yet.

#### Step 2. Choose what to lock or hide

In the **Choose what to lock/hide** section, select the lock type:

**Entire store**

<figure><img src="/files/egzqD3y0aaR0bbLHXjYB" alt=""><figcaption></figcaption></figure>

Locks your entire storefront. All pages and products require the access condition to be met.

**Lock collections**

<figure><img src="/files/bLhwY6juUUqVYgVbQyDo" alt=""><figcaption></figcaption></figure>

Choose which collections to lock:

* **All collections:** every collection on your store
* **Specific collections:** search and select individual collections

All products within a locked collection are also locked.

**Lock products**

<figure><img src="/files/8BiiCpxOoTtTcgI4tnpM" alt=""><figcaption></figcaption></figure>

Choose which products to lock:

* **All products:** every product on your store
* **Specific products:** search and select individual products
* **Products in price lists:** lock all products belonging to specific Price Lists

**Hide product prices**

<figure><img src="/files/wPHI3CuD5fbqLAmLH55E" alt=""><figcaption></figcaption></figure>

Choose which products have their price hidden from non-qualifying customers. Products are still visible, but the price is replaced by your custom message. Options: all products, specific products, or products in specific Price Lists.

**Specific pages**

<figure><img src="/files/nK6Oc9mvZBtB86VclBvI" alt=""><figcaption></figcaption></figure>

Select individual pages to lock: Homepage, Customer log-in/registration page, or other custom page URLs.

You can also specify **Pages to exclude from being locked** — for example, exclude your login page even when locking your entire store.

#### Step 3: Who can access

In the **Choose how customers can access locked content** section, define the access condition:

<figure><img src="/files/NT57dIS55hh58j0PWLit" alt=""><figcaption></figcaption></figure>

* **All logged-in customers:** anyone with a store account
* **Customers belong to customer groups:** select specific Customer Groups
* **Select specific customers:** search and pick individual customers
* **Enter password:** customers gain access by entering a passcode you define
* **Members belong to specific company:** select a Company Account

You can also use the **Invert** button to flip the logic  for example, to block specific customers rather than allow them.

#### Step 4: Display settings

In the **Choose what to display to restricted customers** section, configure the message or interface shown to customers who don't meet the access condition.

<figure><img src="/files/VAOHzZ7VlmnAihND7pBn" alt=""><figcaption></figcaption></figure>

**For locked content (non-price-hiding rules)**

Enter the message or redirect URL that restricted customers see when they try to access locked content.

**For Hide price rules**

Use the visual editor to customise the message that replaces the price. You can adjust the font, color, font style, and size. Switch to the **Edit HTML** tab to customise the message further with raw HTML.

A **Preview** panel shows how the message will look on your storefront.

Click **Save**. The rule activates immediately if the status is set to **Enabled**.

***

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Request For Quote (RFQ)

Request For Quote (RFQ) lets your B2B buyers request a custom price for products before placing an order. Instead of buying at the listed price, buyers submit a quote request — you review it, negotiate if needed, and convert it into a draft order.

### How RFQ works:

1. A buyer adds products to a quote request on your storefront
2. The request appears in your **Quote list** in B2Bridge
3. You review the request, optionally add a merchant note, and convert it to a draft order or reject it
4. The buyer receives a notification about the outcome

### Two sections in RFQ:

* **Quote list** — all incoming quote requests from buyers, with status tracking (Converted / Not converted)
* **Quote rule** — the rules that determine which products and customers can use the RFQ feature, and any auto-approval thresholds

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Setup Guide

Go to **Dashboard > Request for Quote**

<figure><img src="/files/agDq5av5MhUfNWSVLswN" alt=""><figcaption></figcaption></figure>

When you open the **Request for Quote**, you’ll find 3 main tabs:

1. [**Quote List**](https://sbc-gitlab.bsscommerce.com/sa-division/tf-team/b2bridge.io/b2bridge-docs/-/blob/v2-2026/app-configuration/b2b-features/request-for-quote/how-to-manage-new-customer-quotes.md) – View and manage all quotes submitted by buyers. You can also create new quotes manually here. Each request shows its status (converted to order or not converted).
2. [**Quote Rule**](https://sbc-gitlab.bsscommerce.com/sa-division/tf-team/b2bridge.io/b2bridge-docs/-/blob/v2-2026/app-configuration/b2b-features/request-for-quote/how-set-up-quote-rule.md) – Configure the rules for quotes, such as which products or customer groups can request quotes and what form fields are shown.
3. [**Settings**](https://sbc-gitlab.bsscommerce.com/sa-division/tf-team/b2bridge.io/b2bridge-docs/-/blob/v2-2026/app-configuration/b2b-features/request-for-quote/how-to-edit-quote-notification-email.md) – Manage email notifications. Here, you can enable/disable notifications and customize the email content for two types of messages:

* **Buyer notification:** Sent to the customer after they submit a quote (“Thank you for requesting”).
* **Seller notification:** Sent to you when a new quote request is received.

### Quote rule setup

<figure><img src="/files/pRUoaxzeSKxbK2fWLNF9" alt=""><figcaption></figcaption></figure>

Click on **Quote rule.**

#### **Step 1: General**

<figure><img src="/files/sQqIBEm0Kp6aYBLUVDdn" alt=""><figcaption></figcaption></figure>

**Name:** Enter the name of the quote. This is solely for management purposes and will not be displayed on the storefront.

#### **Step 2: Who can request**

<figure><img src="/files/aOMAiMEpqHi5dxO2FnMz" alt=""><figcaption></figcaption></figure>

* All customers: The quote function applies to all customers.
* All logged-in customers: The quote function applies to only logged-in customers.
* All non logged-in customers: The quote function applies to all customers except for logged-in customers.
* Specific customers: Select customers in the dropdown.
* Customers belong to customer groups: Select the customer group in the dropdown. [Instruction to create customer groups here.](https://b2bridge.gitbook.io/b2bridge/app-configuration/customer-group)

#### **Step 3: Choose what products can be requested for a quote**

<figure><img src="/files/SUQm5qiWlKDmJCNNwfKK" alt=""><figcaption></figcaption></figure>

* All products: The quote function applies to all products..
* Specific products: The quote function applies to specific products. Select the product in the dropdown.
* Products in assigned price list: The quote function applies to all products in the selected price list. Select the price list in the dropdown. [Instruction to create price lists here.](https://b2bridge.gitbook.io/b2bridge/app-configuration/price-list)
* Products in out of assigned price list: The quote function applies to all products except for products in the specific price list. Select the price list in the dropdown. [Instruction to create price lists here.](https://b2bridge.gitbook.io/b2bridge/app-configuration/price-list)

#### **Step 4: Hide options**

<figure><img src="/files/qI6pKBTQYxcC2UF7cVQ1" alt=""><figcaption></figcaption></figure>

Hide prices

* All product
* Specific products

Other hide options

* Hide “Add to cart” button
* Hide “Buy it now” button

#### Step 5: Automatic Approval

<figure><img src="/files/JqdpPapfX4xAtXTvIWB9" alt=""><figcaption></figcaption></figure>

In this example, any quotes submitted with value under $500 will be automatically approved and converted to orders. In contrast, Quotes' value over $500 will be manually handled.

<figure><img src="/files/jX8KvRflDJpoa1JYKlvs" alt=""><figcaption></figcaption></figure>

When checking the Quote list, you can see the status as:

* Converted
* Auto Approved

The person that submitted the quote will receive a notification email.

<figure><img src="/files/iPWnCmEfwB1OQgTVlJa3" alt=""><figcaption></figcaption></figure>

#### Step 6: Form

<figure><img src="/files/ZMRGCYcKg081rkzh33Qc" alt=""><figcaption></figcaption></figure>

Click the **Add new field** button to include other fields in the quote form. This helps to collect necessary information and filter out spam requesters.

Click **Save** and start testing the quote rule.

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](mailto:undefined) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Manage quotes

In Quote list tab, you can:

* [Manage new customer quotes:](#manage-new-customer-quotes) Convert quote to draft order or Delete quote.
* [Create manual quote from admin:](#create-manual-quote-from-admin) When you need to create quotes in admin to quickly send B2B buyers custom offers

### Manage new customer quotes:

<figure><img src="/files/nWjGIDjqEtvNWu4mGG7p" alt=""><figcaption></figcaption></figure>

New quotes from customers are listed here. Click **Action icon** to **Convert to draft order** or **Delete quote.**

<figure><img src="/files/GlQfIQ3qrMGUomDl0reM" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/l6wBNAwqIRkUUISv5jpa" alt=""><figcaption></figcaption></figure>

To delete the quote, click on **Delete quote.**

<figure><img src="/files/d2NUYNKoo3AXjVvqrDcm" alt=""><figcaption></figcaption></figure>

When you click on **Convert to draft order**, it will create **a draft order in Shopify Orders.**

### Create manual quote from admin:

On some occasions when you need to create quotes in admin to quickly send B2B buyers custom offers, keep everything organized, and close deals faster.

To do that, click on **Create quote.**

<figure><img src="/files/1ZTzL4e00uGiFWyLZ006" alt=""><figcaption></figcaption></figure>

Then, fill on all necessary fields: select product, select customer and click on **Create order.**

<figure><img src="/files/kR5AhDpjQetSGpvbua8K" alt=""><figcaption></figcaption></figure>


# Quote notifications

Go to [Settings > Email notifications](/app-configuration/settings/email-notifications) > Request for quote emails:

* [**Notifications that send to your customers:**](#email-notification-thanks-for-your-quote-request) to notify buyers that they have successfully submitted a new quote.
* [**Notifications that send to you:**](#email-notification-new-quote-request) to notify of a new quote submitted.

### Email Notification: Thanks for your quote request

<figure><img src="/files/aEwzXRVOTiIyNvL8SKZD" alt=""><figcaption></figcaption></figure>

**Status:** Click Enable to activate this notification. It’s Disable by default.

<figure><img src="/files/dkvD8M1UWp4cwNWFbpJp" alt=""><figcaption></figcaption></figure>

Customize the email content as you see fit.

Please don’t make changes to the default email variables. For example: {{customer\_name}}, {{customer\_email}}, {{quote\_message}}.

See the preview of the email on the right.

<figure><img src="/files/JZFF8EytT0nSPJ21bXWQ" alt=""><figcaption></figcaption></figure>

### Email Notification: New quote request

<figure><img src="/files/aEwzXRVOTiIyNvL8SKZD" alt=""><figcaption></figcaption></figure>

**Status**: Click Enable to activate this notification. It’s Disable by default.

<figure><img src="/files/WZkfemzidc5tJzXpSjvu" alt=""><figcaption></figcaption></figure>

Customize the email content as you see fit.

Please don’t make changes to the default email variables. For example: {{customer\_name}}, {{customer\_email}}, {{quote\_message}}.

See the preview of the email on the right.

<figure><img src="/files/cQtyfhZmbzsKkb8SR5JJ" alt=""><figcaption></figcaption></figure>


# Manual Orders

### Overview

The Manual Order feature allows merchants to [**create B2B orders**](#setup-guide) directly from the Shopify admin **on behalf of their wholesale customers**.

This is especially useful when buyers prefer offline communication (email, phone, or sales representative) instead of placing orders themselves online.

{% hint style="info" %}
The Manual Order feature is included in [B2Bridge Professional plan ($99/month).](https://b2bridge.io/pricing/)
{% endhint %}

### Why B2B Stores Need Manual Order

Unlike typical B2C customers, B2B buyers often work with sales reps, negotiate terms, or send purchase requests via email or phone calls.

In these cases, merchants need the flexibility to manually generate orders in the system while still applying the buyer’s assigned price list, net payment terms, and tax rules.

This ensures a smooth buying experience for wholesale customers and keeps all transactions centralized in Shopify.

### Use Cases

* Phone or Email Orders: A buyer calls or emails a sales rep with a product list. The merchant can quickly create the order manually.
* Trade Shows & Events: Orders collected during offline events can be entered directly into Shopify with correct B2B pricing.
* Special Agreements: For buyers with custom terms or negotiated deals, merchants can manually apply discounts and payment conditions.
* Support Situations: If a buyer has trouble checking out online, the merchant can step in and place the order for them.

### Setup Guide

In the **Dashboard** > **Manual Orders.**

<figure><img src="/files/mXdCZYSFHRoKSi54P6Ej" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Sync Order Data: Click on this everytime to you need to sync Order Status from Shopify Order to B2Bridge. To ensure correct status of manual draft orders that was converted.
{% endhint %}

{% stepper %}
{% step %}
Click **Create Order.**

<figure><img src="/files/W2UpoaHnuWg9RNCWZNy7" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Add products to the order. You can search or select the items your customer wants to buy. B2Bridge will automatically apply the correct wholesale pricing and discount rules for that customer.

*\*Note: Starting 16 Decemeber, 2025, you can see the inventory update when adding products for Manual Order.*

<figure><img src="/files/UIPkcgveHUYcbkB8ZgEy" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Select the wholesale customer you are placing the order for. This should be a customer account with wholesale pricing or a customer group assigned in B2Bridge. Then the B2B Price will be applied.
{% endstep %}

{% step %}
Include any additional costs such as shipping fees and applicable taxes to ensure the order is accurate.
{% endstep %}

{% step %}
Set the payment terms if needed (e.g., Net 30, Net 60). This allows you to establish when the customer is expected to pay under your B2B agreement.
{% endstep %}

{% step %}
Assign tags to the order for easier management and tracking. For example, you might use tags like offline order, phone order, or trade show.
{% endstep %}

{% step %}
Create order. The order will be draft order.
{% endstep %}
{% endstepper %}

### Print PDF Invoice

Once the order is created, click the Export PDF button. This will open a preview window where you can:

* Review all line items and total amounts.
* Check the billing and shipping information.
* Ensure the document layout meets your requirements.

<figure><img src="/files/jl018firMfFdKusrnvD1" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/nOhb8feaNs8kkcjtjiWm" alt=""><figcaption></figcaption></figure>

After confirming all details are accurate, click the Export button. The system will generate the final file, which you can then download to your device, print, or send directly to your client.

<figure><img src="/files/uTcZeTMh7OzQQRDVrHUI" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Admin Extension in Draft Order

### Overview

The Apply B2B Pricing feature allows store administrators to automatically apply wholesale pricing rules, volume discounts, or specific Price List rates to Shopify Draft Orders.

Instead of manual calculations, the system cross-references customer information and product selections to update the draft order with the correct B2B rates directly within the management interface.

### Setup Guide

Follow these steps to apply B2B pricing to a Draft Order:

#### **Step 1: Create a Draft Order in Shopify**

Navigate to Shopify Admin > Orders > Drafts > Click Create order. Click the Create Draft Order button. In the creation interface:

* Select the Products you want to add to the order.
* Add the Customer Email (ensure this customer is already assigned to a Price List or Customer Group in B2Bridge).
* Click Save to generate the draft.

<figure><img src="/files/Y1nd8iU9MsELq3HjhWbe" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/UeT1GxkY8TEm2l0Ipo6z" alt=""><figcaption></figcaption></figure>

#### **Step 2: Apply Pricing Click the Apply B2B Pricing button.**

The system will scan the items and match them against:

* The active Price List for that specific customer.
* Any applicable Volume Discounts (Quantity Breaks).

<figure><img src="/files/P2DPXoP4b9fYI3IIuiGf" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/28zHNwLbrmiwIDXvGqe1" alt=""><figcaption></figcaption></figure>

**Step 3: Review Order**

Once the prices are updated, review the totals and click Send invoice or Collect Payment.

<figure><img src="/files/frBExboZkp0OBZgwviCS" alt=""><figcaption></figcaption></figure>

#### Frequently Asked Questions (FAQ)

**Does the system apply B2B pricing if no customer is selected?**

No. You must select a specific customer who exists in the B2Bridge system so the app can identify the correct pricing rules to apply.

**Can I still edit the price after applying B2B rates?**

Yes. You can still manually override or adjust prices (Custom price) on individual line items within the Shopify Draft Order interface after the app has processed it.

**Does this feature handle shipping fees and taxes?**

This feature focuses on product pricing. Taxes and shipping fees are calculated based on your default Shopify Admin settings.


# Sales Reps

The Sales Reps feature lets you assign members of your sales team to work directly with your B2B customers. Each sales rep gets their own private portal where they can manage the customers you've assigned to them, place orders on those customers' behalf, and keep track of the commission they earn.

### How Sales Reps works

* You create the Sales Reps profile by entering their information, assign their own tags & commission rate
* You then assign the customers to the Sales Reps
* The Sales Reps will be able to place orders on the assigned customers' behalf
* Finally, you monitor the orders made by Sales Reps and track the status of their earned commission

### Managing your Sales Reps <a href="#managing-your-price-lists" id="managing-your-price-lists"></a>

From the **Sales Rep** page, you can:

* **Create** a new Sales Rep by **clicking Add Sales Rep**
* **Edit** an existing Sales Rep by clicking the edit icon in the Action column
* **Delete** a Sales Rep (this cannot be undone)
* **Monitor** order created by the Sales Rep and their commission

### **Set up your first Sales Rep**

From the left-side navigation, select Sales Reps and click on Add Sales Rep

<figure><img src="/files/rhcTnVd7tdF7amO56ttu" alt="" width="563"><figcaption></figcaption></figure>

#### Step 1: Fill in your Sales Rep's information

Select a customer to become Sales Rep via Shopify Customer email and then fill in the necessary information. \
\
**Name**: Fill in the name of the Sales Rep.

**Tag**: Assign a tag to the Sales Rep. Lowercase alphanumeric and hyphens only. *The tag will automatically has B2Bridge\_SR\_ as prefix.*

**Commision Rate**: The percentage of an order's value that a sales rep earns as commission.\
\
For example, if a sales rep has a commission rate of 15% and they bring in an order worth $1,000, their commission for that order is $150 (15% of $1,000).\
\
Finally, select the Status of the Sales Rep to be Active/ Inactive.

<figure><img src="/files/Kp1hrE97IaNfVRPAtsV9" alt="" width="563"><figcaption></figcaption></figure>

#### Step 2: Assign the customers to your Sales Rep

This step is for assigning customers to the Sales Rep to manage. Click Add Customers to start the process.

<figure><img src="/files/bWCoG8cy3HNzwJND4AnS" alt="" width="563"><figcaption></figcaption></figure>

Choose the customers that you want to assign to this Sales Rep by checking the checkboxes. You can assign multiple customers for them. Click Add to assign

<figure><img src="/files/YzVGcMWmP2t0nrdJJwac" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
Customers can only be assign to 1 Sales Rep only. You can't assign customers who have already been assigned to other Sales Rep
{% endhint %}

Finally, preview the list of assigned customers and click Save to keep the change. To remove assigned customers, click on the trash can icon.&#x20;

<figure><img src="/files/Zr2STQFoVCvoMmwahTtt" alt="" width="563"><figcaption></figcaption></figure>

### Monitor orders made by Sales Reps

The **All Orders** tab gives you a full overview of every order tied to your sales team, so you can track performance and manage commissions in one place.

#### **Summary bar**

At the top of the page, a summary bar shows you key metrics at a glance:

| Metrics     | What it is                                |
| ----------- | ----------------------------------------- |
| Orders      | Total number of orders                    |
| Completed   | Orders that have been finalized           |
| Drafts      | Orders still in draft (not yet completed) |
| Total Sales | Combined value of all orders              |
| Commission  | Total commission generated                |

<figure><img src="/files/r1XLN0IQwx3foh0mR6iC" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}

* Orders that are placed by Sales Reps are Draft orders. Orders are marked Completed only when they are paid by the customers
* Orders that are paid and placed by Customer or Sales Reps will all be counted toward the Sales Reps' commission
  {% endhint %}

#### **Search and filter**

To find specific orders quickly, you can search by order number, customer, or sales rep name. You can also narrow the list down using three filters:

* **Sales Rep** to view orders from one team member.
* **Status** to filter by All, Completed, or Draft.
* **Source** to see where the order came from (Customer or SR).

<figure><img src="/files/ZBxXP1wBUNN0BURhbAZU" alt="" width="563"><figcaption></figcaption></figure>

### Tracking commission and payment

Merchants can track their Sales Reps' commission in the Commission tab.&#x20;

**Summary bar**

At the top, a summary bar shows you key metrics at a glance:

| Metrics         | Meaning                                                                                             |
| --------------- | --------------------------------------------------------------------------------------------------- |
| Unpaid Balance  | Total commission owed to sales reps that hasn't been paid out yet, with a count of pending orders.  |
| Total Paid      | Cumulative commission already paid out across all reps, all time, with the number of payout events. |
| Selected to Pay | Live total of the rows currently checked in the Unpaid Commission table.                            |

<figure><img src="/files/HyX6Ee6tKbAeiqENY1XO" alt="" width="563"><figcaption></figcaption></figure>

#### Unpaid Commission

<table data-search="false"><thead><tr><th>Column</th><th>Meaning</th></tr></thead><tbody><tr><td>Order #</td><td>The Shopify order, with a checkbox to include it in a payout.</td></tr><tr><td>Sales Rep</td><td>Rep's name and email credited for the order.</td></tr><tr><td>Customer</td><td>Customer email on the order.</td></tr><tr><td>Date</td><td>Order date.</td></tr><tr><td>Order Total</td><td>The order's value.</td></tr><tr><td>Commission</td><td>Amount the rep earns on that order </td></tr><tr><td>Source</td><td>Who made the order</td></tr></tbody></table>

<figure><img src="/files/NsJn7SHhxkAJjw8uHGMA" alt=""><figcaption></figcaption></figure>

#### Payout History

| Column    | Meaning                         |
| --------- | ------------------------------- |
| Date      | When the payout was made.       |
| Sales Rep | Who was paid.                   |
| Amount    | Total paid in that payout.      |
| Note      | Optional memo ("—" means none). |

#### Commission Payment

Once the merchants have paid their Sales Rep via agreed payment method, select the paid commission, click on the Pay button and click Confirm payment. \
\
The commission will then be marked as Paid and moved to Payout History.

<figure><img src="/files/G8DzYcc21WYwGYOwHMD6" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/NCOXMrdDigb4P7AdXtm2" alt="" width="563"><figcaption></figcaption></figure>


# Settings

The Settings section contains configuration options that apply across B2Bridge. It is organized into four tabs:

* **Email notifications:** manage the emails sent to you and your customers at each stage of the B2B workflow (registrations, net terms orders, quotes, and company invitations)
* **Translations:** customize the storefront text displayed to your customers in any language
* **Installations**: instruction to install manual code to integrate B2Bridge on the store theme.
* **Advanced settings:** configure override price behavior and account type (Customer Group vs Company Account)

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Email notifications

### Overview

The **Email notifications** tab in Settings lets you manage every automated email B2Bridge sends to your customers and to you throughout the B2B workflow. You can enable, disable, and customize each email.

Go to **Settings > Email notifications** tab.

<figure><img src="/files/9HrbxqzmiqY91UvkTJRv" alt=""><figcaption></figcaption></figure>

### 1. Registration Form emails

These emails are triggered by events in the [B2B Registration Form](/app-configuration/b2b-registration-form) workflow.

| Email                                   | Sent to           | Trigger                                    |
| --------------------------------------- | ----------------- | ------------------------------------------ |
| Your store had a new register           | You (store owner) | A buyer submits a registration             |
| Your customer's account is under review | Customer          | Their registration is received and pending |
| Your customer's account is approved     | Customer          | You approve their registration             |
| Activate your account                   | Customer          | Their account needs email activation       |
| Your customer's account is rejected     | Customer          | You reject their registration              |

### 2. Net terms orders emails

These emails are triggered by events in the [Net Payment Terms](/app-configuration/customer-group/set-up-net-payment-terms) workflow.

| Email                            | Sent to           | Trigger                                               |
| -------------------------------- | ----------------- | ----------------------------------------------------- |
| Your draft order has been placed | Customer          | A net terms order is created                          |
| New draft order                  | You (store owner) | A new draft order is placed by a net terms customer   |
| New final order                  | You (store owner) | A net terms draft order is converted to a final order |

### 3. Request for quote emails

These emails are triggered by events in the [RFQ](/app-configuration/request-for-quote) workflow.

| Email                         | Sent to           | Trigger                         |
| ----------------------------- | ----------------- | ------------------------------- |
| Thanks for your quote request | Customer          | They submit a quote request     |
| New quote request             | You (store owner) | A buyer submits a quote request |

### 4. Company account emails

| Email                            | Sent to        | Trigger                       |
| -------------------------------- | -------------- | ----------------------------- |
| You're invited to join a company | Company member | You send a company invitation |

### Enabling and disabling emails

Each email has a **Status** toggle (**Enabled** / **Disabled**). Click the action button to edit the email template or change its status.

### Editing an email template

Click the edit icon next to an email to open the template editor. You can customise the subject line, body content, and any dynamic variables (such as `{email}` for the customer's email address or `{number}` for password length).

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Translations

### Overview

The **Translations** tab lets you customize the text shown to your customers on the storefront for B2Bridge features. You can translate or reword labels for any language your store supports.&#x20;

B2Bridge is integrated with Shopify Translate & Adapt app. If you have that app already setup, you can skipped the manual translation input.

Go to **Settings** > **Translations** tab.

<figure><img src="/files/r6cmUDQ0AYub8cJkOLzx" alt=""><figcaption></figcaption></figure>

### 1. Choose a language

Use the **Choose language** dropdown to select the language you want to edit translations for.

### 2. Edit translation strings

Translations are grouped into sections:

* **General:** common labels used across B2Bridge storefront features
* **Quote:** text shown on the Request For Quote storefront pages
* **Account:** text shown on the customer account page
* **Company account:** text shown on company account pages

Edit the text in any field to customize what your customers see. Changes are saved per language.

Click **Save** after making your changes.

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Advanced settings

## Overview

The **Advanced settings** tab contains configuration options that affect how B2Bridge displays prices and how your B2B account structure works.

Go to **Settings >** **Advanced settings** tab.

<figure><img src="/files/wNo6fFHV56H3mYAhAbsj" alt=""><figcaption></figcaption></figure>

### 1. Custom CSS

Enter custom CSS to override B2Bridge's default storefront styles. This is for advanced users who need to adjust the visual appearance of B2Bridge elements on their theme.

### 2. Override price

Controls how B2B prices are displayed on your storefront.

* **Override price** *(default)* — B2B prices are shown as the final price, without any "CUSTOM\_DISCOUNT" label or strike-through of the original price. This gives a clean, professional presentation suited to wholesale relationships.
* **Don't override price** — B2B prices are displayed alongside the original price, with the discounted amount labelled as "CUSTOM\_DISCOUNT".

{% hint style="info" %}
For a full explanation of when and why to use Override price, see [Override Price](/app-configuration/price-list/override-price).
{% endhint %}

### 3. Account type

Choose the account model for your B2B store:

* **Use current single company account:** each B2B buyer has their own individual account (the standard [Customer Group model](/app-configuration/customer-group/set-up-customer-group)).
* [**Switch to company (parent/child) account:**](/app-configuration/company-account/switching-from-customer-group-to-company-account) group individual buyers under a Company Account umbrella. This is useful for corporate customers with multiple buyers purchasing under one company.

{% hint style="warning" %}
Switching account types affects how customers are grouped and managed. Review [Company Account](/app-configuration/company-account) before making this change.
{% endhint %}

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Product Data Sync

Product Data Sync synchronizes every product's attribute from your Shopify store (name, prices, SKU, etc.) to ensure all product data is matched to our system.

By synchronizing this data, B2Bridge can calculate and display correct prices to your B2B customers.

### How Product Data Sync works:

* When you first install B2Bridge, our app automatically synchronizes all data for the 1st time, ensuring that you are configuring with the latest data.
* After installation, our app synchronizes every 30 minutes.
* Between those 30-min gaps, if you make changes to any products (name, prices, etc.) in the Shopify admin and want to see immediate change in our app, then you can press the **Sync** button.

<figure><img src="/files/KbwW0zHXcrtrotKi82Hy" alt=""><figcaption></figcaption></figure>

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Installation

Once you have created a Price List and assigned it to a Customer Group, the final step to make the prices display on your store is to install our code snippet into your theme.

<figure><img src="/files/DyzQH56Ali5TF8ayVwTN" alt=""><figcaption></figcaption></figure>

To make B2Bridge display correct prices on every page, you'll need to install it onto both the product pages and and the collection pages.

### Install on product pages

There are a few ways to install it onto the product pages.

1. **If you use Shopify's free theme, then B2Bridge will be automatically installed, and you won't have to do any further steps .**

<details>

<summary>List of Shopify's free themes</summary>

* Dawn
* Trade
* Spotlight
* Craft
* Refresh
* Sense
* Origin
* Studio
* Ride
* Taste
* Publisher
* Crave
* Colorblock
* Vessel
* Fabric
* Dwell
* Horizon
* Atelier
* Ritual
* Savor
* Tinker
* Heritage
* Pitch
* Rise

</details>

{% hint style="info" %}
B2Bridge might work with some paid themes due to the similarity in structure with free themes. You can check your store first before using other installation methods.
{% endhint %}

2. **Install with app block**
3. **Install by inserting a code snippet into your theme**

Here is the text extracted from the screenshot:

Install manually using code

1. Access Edit code mode on your Theme customization
2. Find the product page file , usually it's either `sections/main-product.liquid`, `sections/product-information.liquid` or `sections/product-template.liquid`
3. Add the following code snippet at anywhere you want to display table variants and save the file to run the app.

`<b2bridge-product-table productId="{{ product.id }}"></b2bridge-product-table>`

If you have any issues with the installation, feel free to contact us for support

### Install on collection pages

To make B2Bridge display prices on the collection pages, you'll need to install the code snippet into your theme file.

Add B2BRIDGE pricing table to the Collection Page / Search Page or Feature Product

1. Access Edit code mode on your Theme customization
2. Find the product card file , usually it's `snippets/card-product.liquid`, `snippets/card-product.liquid` or `snippets/product-grid-item.liquid`.
3. Add the following code snippet at anywhere you want to display table variants and save the file to run the app.

`<b2bridge-product-card-table productId="{{product.id}}"></b2bridge-product-card-table>`

If you have any issues with the installation, feel free to contact us for support

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Integration


# Shopify POS

### Integration

To start integrating B2Bridge to your Shopify PO, let's first navigate to your **Point of Sale in Sales channel** and then click **Open editor.**

<figure><img src="/files/v1RS84Ty6faf7uLvxehe" alt="" width="563"><figcaption></figcaption></figure>

Afterward, click **Add tiles l**ocated at the top left side of the scree&#x6E;**> Embedded Apps,** choose **B2Bridge.io** and finally click on **B2Bridge.io - POS UI extension.**

<figure><img src="/files/KU74zda9WqabanDCv1tr" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/2tKNFOTWnMIFPrNcVT40" alt="" width="563"><figcaption></figcaption></figure>

Finally, click **Save** at the top right of the screen to keep the changes.&#x20;

<figure><img src="/files/djtSyY6nMdyRMZRzO8dS" alt="" width="563"><figcaption></figcaption></figure>

### POS display

Once you finish the integration, navigate to **Shopify POS on your mobile device**. If the change is successfully implemented, **you will see a B2B Pricing tile on your screen**.&#x20;

<figure><img src="/files/ZCHRJIEG7WfhUNWZkd9E" alt="" width="266"><figcaption></figcaption></figure>

Afterward, you choose your customers and products for them. You will see **the option to Apply B2B pricing** in the B2B Pricing cart.

<figure><img src="/files/Cu4EmVHgYcH0DS7OmXKX" alt="" width="269"><figcaption></figcaption></figure>

When you see the notification **B2B pricing has been applied to cart**, that means you can now checkout with the B2B pricing. Click Checkout to complete the process.

<figure><img src="/files/l14FHKb8HfGP6dSZtaBD" alt="" width="268"><figcaption></figcaption></figure>

<figure><img src="/files/4YsxGTh1mCi3wMLLQeBW" alt="" width="268"><figcaption></figcaption></figure>

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.


# API Integration


# Public APIs for Customer Groups

### How to get the access key

Go to **Dashboard > Pubic API**, fill out the form and submit your access request. We’ll review it and send the access key to your email.

<figure><img src="/files/A1cVM25TmEn8r5miRJsh" alt=""><figcaption></figcaption></figure>

## Rule endpoints

There are fields of Customer Group rule, you need to understand:

* `id`: If provided and matches an existing customer group, the group will be updated. If omitted or does not match any existing group, a new customer group will be created.
* `name`<mark style="color:red;">\*</mark>: Customer group name.
* `customer_tags`<mark style="color:red;">\*</mark>: A tag is necessary to differentiate B2B and B2C customers. Must start with the prefix `"b2b-"`.
* `payment_options`<mark style="color:red;">\*</mark>
  * ONLINE: Pay online
  * NETTERM: Net payment term
* `pricing_rule_ids`: IDs of the price list rules to assign to the customer group.
* `collect_tax`
  * 0: Don't collect tax
  * 1: Collect tax

If the **`payment_options`** array includes **`NETTERM`**

* `nt_eligible`
  * ON\_RECEIPT: pay on receipt
  * CUSTOM: custom date net term
  * 7: pay after 7 days
  * 15: pay after 15 days
  * 30: pay after 30 days
  * 60: pay after 60 days
  * 90: pay after 90 days
* `nt_to_final_order`
  * 0: Net Terms orders as draft orders
  * 1: Net Terms orders as final orders
* `nt_tag_order_enable`
  * 0: disable
  * 1: enable
* `nt_tag_order_list`
* `nt_time_custom`: Defaults to `{"time": "DAY", "value": 1}` if not provided.\
  If specified, it must follow the structure
  * time: Must be one of `"DAY"`, `"WEEK"`, or `"MONTH"`.
  * value : If `time` is `"DAY"` must be between `1` and `365`. If `time` is `"WEEK"` or `"MONTH"` must be between `1` and `99`.

### Get all customer group by domain

<mark style="color:green;">**`GET`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/customer-groups/get-by-domain`

#### Headers

| KEY                | VALUE |
| ------------------ | ----- |
| x-b2bridge-api-key | xxx   |

#### Params

| KEY    | VALUE             |
| ------ | ----------------- |
| domain | abc.myshopify.com |

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Get Customer Groups Successfully",
    "groups": [
        {
            "id": 1,
            "shop_id": 1,
            "name": "cg1",
            "customer_tags": "b2b-cus1",
            "pricing_rule_ids": "[1]",
            "payment_options": "[\"ONLINE\",\"NETTERM\"]",
            "nt_eligible": "ON_RECEIPT",
            "nt_limit_option": 0,
            "nt_limit_type": "QUANTITY",
            "nt_limit_value": "0",
            "nt_tag_order_enable": 0,
            "nt_tag_order_list": "[]",
            "nt_time_custom": "null",
            "nt_to_final_order": 0,
            "customer_ids": "[\"7875968794841\",\"7881979887833\"]",
            "collect_tax": 0,
            "nt_form_id": null,
            "created_at": "2025-05-23T04:46:48.149Z",
            "updated_at": null,
            "customerGroupPricing": [
                {
                    "pricing_rule_id": 1,
                    "customer_group_id": 1,
                    "shop_id": 1,
                    "created_at": "2025-05-23T04:46:48.154Z",
                    "updated_at": null,
                    "pricingListRules": {
                        "id": 1,
                        "name": "pl1"
                    }
                }
            ]
        }
    ]
}
```

### Get customer group by id

<mark style="color:green;">**`GET`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/customer-groups/get-by-id`

#### Headers

| KEY                | VALUE |
| ------------------ | ----- |
| x-b2bridge-api-key | xxx   |

#### Params

| KEY    | VALUE             |
| ------ | ----------------- |
| domain | abc.myshopify.com |
| id     | 1                 |

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Get Customer Group By Id Successfully",
    "group": {
        "id": 1,
        "shop_id": 1,
        "name": "cg1",
        "customer_tags": "b2b-cus1",
        "pricing_rule_ids": "[1]",
        "payment_options": "[\"ONLINE\",\"NETTERM\"]",
        "nt_eligible": "ON_RECEIPT",
        "nt_limit_option": 0,
        "nt_limit_type": "QUANTITY",
        "nt_limit_value": "0",
        "nt_tag_order_enable": 0,
        "nt_tag_order_list": "[]",
        "nt_time_custom": "null",
        "nt_to_final_order": 0,
        "customer_ids": "[\"7875968794841\",\"7881979887833\"]",
        "collect_tax": 0,
        "nt_form_id": null,
        "created_at": "2025-05-23T04:46:48.149Z",
        "updated_at": null,
        "customerGroupPricing": [
            {
                "pricing_rule_id": 1,
                "customer_group_id": 1,
                "shop_id": 1,
                "created_at": "2025-05-23T04:46:48.154Z",
                "updated_at": null,
                "pricingListRules": {
                    "id": 1,
                    "name": "pl1"
                }
            }
        ]
    }
}
```

### Save or update customer group

* If the `id` field is **not provided** in the customer group, it will be treated as a **new customer group**.
* If the `id` field **is provided** and matches an existing, it will be treated as an **update to that existing customer group**.

<mark style="color:yellow;">**`POST`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/customer-groups/save`

#### Headers

| KEY                | VALUE            |
| ------------------ | ---------------- |
| Content-Type       | application/json |
| x-b2bridge-api-key | xxx              |

#### Body

```json
{
    "domain": "abc.myshopify.com",
    "data": {
        "name": "cg6",
        "collect_tax": 1,
        "customer_ids": [
            "7875968794841"
        ],
        "customer_tags": "b2b-cus4",
        "payment_options": [
            "ONLINE",
            "NETTERM"
        ],
        "pricing_rule_ids": [],
        "nt_to_final_order":0,
        "nt_tag_order_enable": 0,
        "nt_eligible": "CUSTOM",
        "nt_time_custom": {
            "time": "DAY",
            "value": 1
        }
    }
}
```

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Created customer group successfully",
    "payload": {
        "id": 3
    }
}
```

### Save multiple customer group

<mark style="color:yellow;">**`POST`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/customer-groups/bulk-save`

#### Headers

| KEY                | VALUE            |
| ------------------ | ---------------- |
| Content-Type       | application/json |
| x-b2bridge-api-key | xxx              |

#### Body

```json
{
    "domain": "abc.myshopify.com",
    "groups": [
        {
            "name": "cg7",
            "collect_tax": 1,
            "customer_ids": [
                "7875968794841"
            ],
            "customer_tags": "b2b-cus4",
            "payment_options": [
                "ONLINE"
            ],
            "pricing_rule_ids": []
        },
        {
            "id": 14,
            "name": "cg4",
            "collect_tax": 0,
            "customer_ids": [
                "7875968794841"
            ],
            "customer_tags": "b2b-cus3",
            "payment_options": [
                "ONLINE"
            ],
            "pricing_rule_ids": []
        }
    ]
}
```

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": [
        "Create new rule 'cg7' with ID 4 successfully",
        "Update rule ID 14 successfully"
    ]
}
```

### Delete customer group

<mark style="color:red;">**`DELETE`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/customer-groups/delete-by-id`

#### Headers

| KEY                | VALUE |
| ------------------ | ----- |
| x-b2bridge-api-key | xxx   |

#### Params

| KEY    | VALUE             |
| ------ | ----------------- |
| domain | abc.myshopify.com |
| id     | 1                 |

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Delete Customer Group Successfully"
}
```

### Mass delete customer group

<mark style="color:yellow;">**`POST`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/customer-groups/mass-delete`

#### Headers

| KEY                | VALUE            |
| ------------------ | ---------------- |
| Content-Type       | application/json |
| x-b2bridge-api-key | xxx              |

#### Body

```json
{
    "domain": "abc.myshopify.com",
    "ids": [
        9,
        10
    ]
}
```

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Deleted customer groups successfully",
    "deleted": [
        9,
        10
    ],
    "failed": []
}
```

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# Public APIs for Price Lists

### How to get the access key

Go to **Dashboard > Pubic API**, fill out the form and submit your access request. We’ll review it and send the access key to your email.

<figure><img src="/files/McdnOtcVHySxSszC2oVM" alt=""><figcaption></figcaption></figure>

## Rule endpoints

There are fields of Price List rule, you need to understand:

* `id`: If provided and matches an existing price list, the rule will be updated. If omitted or does not match any existing price list, a new price list will be created.
* `name`<mark style="color:red;">\*</mark>: Price list name.
* `priority`: Must be a number between `0` and `99` if provided.
* `status`
  * 0: disable
  * 1: enable
* `replacedVariants`
  * true: Replace all existing variants (default).
  * false: Overwrite variants with matching IDs.
* `discount_type`
  * PERCENT: Apply a percentage as a discount.
  * FIXED: Decrease a fixed amount off original prices.
  * NEW: Apply a new price.
  * CUSTOMIZE: Customize for each product.
* `discount_value`
* `volume_type`
  * NO\_LIMIT: No discount.
  * QUANTITY: Discount on purchasing quantity.
  * AMOUNT: Discount on purchasing amount.
  * CUSTOMIZE: Customize for each product.
* `volume_apply`
  * EVERY\_PRODUCT: Applies to all products in the price list.
  * TOTAL\_PRODUCT: Applies to the total quantity/amount of all products in the price list.
* `volume_table`: If provided, must be an **array** of volume pricing tiers.
  * volume\_pricing\_from: value must be **greater than** the previous one.
  * volume\_pricing\_type: "PERCENT", "FIXED", or "NEW".
  * volume\_pricing\_value: discount value.
* `limit_type`
  * NO\_LIMIT: No limit.
  * QUANTITY: Limit on purchasing quantity.
  * AMOUNT: Limit on purchasing amount.
  * CUSTOMIZE: Customize for each product.
* `limit_apply`
  * EVERY\_PRODUCT: Applies to all products in the price list.
  * TOTAL\_PRODUCT: Applies to the total quantity/amount of all products in the price list.
* `minimum`: Minimum quantity/amount of each product or all products in the price list in the order.
* `maximum`: Maximum quantity/amount of each product or all products in the price list in the order.
* `increment_quantity`
* `pricingVariants`: If provided, must be an **array**.
  * variant\_id, product\_id, origin\_price, variant\_title, product\_title, handle, sku, barcode, image\_url, inventory\_quantity: <mark style="color:red;">require</mark>.
  * price: Applicable only when `discount_type` is `"CUSTOMIZE"`. Defaults to the value of `origin_price` if not provided.
  * minimum: Only applicable when `limit_type` is `"CUSTOMIZE"`.
  * maximum: Only applicable when `limit_type` is `"CUSTOMIZE"`. Must be **greater than** `minimum` if provided.
  * order\_limit\_by: Applicable only when `limit_type` is `"CUSTOMIZE"`. Defaults to `"QUANTITY"` if not provided.
  * increment\_quantity: Applicable only when `limit_type` is `"CUSTOMIZE"` and `order_limit_by` is `"QUANTITY"`. Defaults to `1` if not provided.
  * volume\_limit\_by: Applicable only when `volume_type` is `"CUSTOMIZE"`. Defaults to `"QUANTITY"` if not provided.
  * volume\_pricing: Same structure and validation rules as `volume_table`.

### Get all pricing list rules by domain

<mark style="color:green;">**`GET`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/pricing-lists/get-by-domain`

#### Headers

| KEY                | VALUE |
| ------------------ | ----- |
| x-b2bridge-api-key | xxx   |

#### Params

| KEY    | VALUE             |
| ------ | ----------------- |
| domain | abc.myshopify.com |

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Get pricing rule successfully",
    "rules": [
        {
            "id": 1,
            "shop_id": 1,
            "name": "pl1",
            "status": 1,
            "priority": 0,
            "market_condition_type": "ALL",
            "market_ids": "[]",
            "discount_type": "PERCENT",
            "discount_value": "10",
            "volume_type": "QUANTITY",
            "volume_apply": "EVERY_PRODUCT",
            "volume_table": "[{\"volume_pricing_from\":5,\"volume_pricing_type\":\"PERCENT\",\"volume_pricing_value\":10},{\"volume_pricing_from\":10,\"volume_pricing_type\":\"PERCENT\",\"volume_pricing_value\":20}]",
            "limit_type": "QUANTITY",
            "limit_apply": "EVERY_PRODUCT",
            "minimum": "0",
            "maximum": "5",
            "increment_quantity": 0,
            "start_date": "2025-05-20 06:46:22.03",
            "end_date": null,
            "enable_end_date": 0,
            "created_at": "2025-05-23T04:46:29.110Z",
            "updated_at": "2025-06-02T07:31:26.228Z"
        }
    ]
}
```

### Get pricing list rule by id

<mark style="color:green;">**`GET`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/pricing-lists/get-by-id`

#### Headers

| KEY                | VALUE |
| ------------------ | ----- |
| x-b2bridge-api-key | xxx   |

#### Params

| KEY    | VALUE             |
| ------ | ----------------- |
| domain | abc.myshopify.com |
| id     | 1                 |

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Get pricing rule by id successfully",
    "rule": {
        "id": 1,
        "shop_id": 1,
        "name": "pl1",
        "status": 1,
        "priority": 0,
        "market_condition_type": "ALL",
        "market_ids": "[]",
        "discount_type": "PERCENT",
        "discount_value": "10",
        "volume_type": "QUANTITY",
        "volume_apply": "EVERY_PRODUCT",
        "volume_table": "[{\"volume_pricing_from\":5,\"volume_pricing_type\":\"PERCENT\",\"volume_pricing_value\":10},{\"volume_pricing_from\":10,\"volume_pricing_type\":\"PERCENT\",\"volume_pricing_value\":20}]",
        "limit_type": "QUANTITY",
        "limit_apply": "EVERY_PRODUCT",
        "minimum": "0",
        "maximum": "5",
        "increment_quantity": 0,
        "start_date": "2025-05-20 06:46:22.03",
        "end_date": null,
        "enable_end_date": 0,
        "created_at": "2025-05-23T04:46:29.110Z",
        "updated_at": "2025-06-02T07:31:26.228Z",
        "pricingListVariants": [
            {
                "id": 70,
                "shop_id": 1,
                "rule_id": 1,
                "product_id": "9040691429593",
                "variant_id": "46076618014937",
                "sku": "",
                "barcode": "",
                "price": 557.1,
                "origin_price": 619,
                "variant_title": "Default Title",
                "product_title": "14k Dangling Pendant Earrings Bac",
                "handle": "14k-dangling-pendant-earrings-1",
                "image_url": "https://cdn.shopify.com/s/files/1/0719/7638/6777/files/18k-white-gold-dangling-pendant-earrings_17e71027-81d8-4a49-a455-2e5c205963ee.jpg?v=1730281621",
                "inventory_quantity": -11,
                "variant_different": "{}",
                "minimum": 1,
                "maximum": null,
                "increment_quantity": 1,
                "order_limit_by": "QUANTITY",
                "volume_pricing": "[]",
                "volume_limit_by": "QUANTITY",
                "created_at": "2025-06-02T07:31:26.237Z",
                "updated_at": null
            }
        ]
    }
}
```

### Get variants in price list rule by rule id

<mark style="color:green;">**`GET`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/pricing-lists/get-variants-by-rule-id`

#### Headers

| KEY                | VALUE |
| ------------------ | ----- |
| x-b2bridge-api-key | xxx   |

#### Params

| KEY    | VALUE             |
| ------ | ----------------- |
| domain | abc.myshopify.com |
| id     | 1                 |

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Get variants successfully",
    "rule": [
        {
            "product_id": "9040691429593",
            "pricing_list_variants": [
                {
                    "id": 70,
                    "shop_id": 1,
                    "rule_id": 1,
                    "product_id": "9040691429593",
                    "variant_id": "46076618014937",
                    "sku": "",
                    "barcode": "",
                    "price": 557.1,
                    "origin_price": 619,
                    "variant_title": "Default Title",
                    "product_title": "14k Dangling Pendant Earrings Bac",
                    "handle": "14k-dangling-pendant-earrings-1",
                    "image_url": "https://cdn.shopify.com/s/files/1/0719/7638/6777/files/18k-white-gold-dangling-pendant-earrings_17e71027-81d8-4a49-a455-2e5c205963ee.jpg?v=1730281621",
                    "inventory_quantity": -11,
                    "variant_different": "{}",
                    "minimum": 1,
                    "maximum": null,
                    "increment_quantity": 1,
                    "order_limit_by": "QUANTITY",
                    "volume_pricing": "[]",
                    "volume_limit_by": "QUANTITY",
                    "created_at": "2025-06-02T07:31:26.23775",
                    "updated_at": null
                }
            ]
        }
    ]
}
```

### Save price list rule

<mark style="color:yellow;">**`POST`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/pricing-lists/save`

#### Headers

| KEY                | VALUE            |
| ------------------ | ---------------- |
| Content-Type       | application/json |
| x-b2bridge-api-key | xxx              |

#### Body

```json
{
    "domain": "abc.myshopify.com",
    "rule": {
        "replacedVariants": false,
        "discount_type": "CUSTOMIZE",
        "discount_value": 0,
        "enable_end_date": 0,
        "end_date": null,
        "increment_quantity": 0,
        "limit_apply": "EVERY_PRODUCT",
        "limit_type": "CUSTOMIZE",
        "name": "pl hehe",
        "priority": 0,
        "status": 1,
        "volume_apply": "EVERY_PRODUCT",
        "volume_type": "CUSTOMIZE",
        "volume_table": "",
        "pricingVariants": [
            {
                "product_id": "9040691134681",
                "variant_id": "46076617752793",
                "price": 579,
                "origin_price": 579,
                "variant_title": "Default Title",
                "product_title": "14k Dangling Pendant Earrings Vang",
                "handle": "14k-dangling-pendant-earrings",
                "sku": "SKU8386",
                "barcode": "",
                "image_url": "https://cdn.shopify.com/s/files/1/0719/6777/files/18k-rose-gold-infinite",
                "inventory_quantity": 0,
                "minimum": 1,
                "increment_quantity": 1,
                "order_limit_by": "AMOUNT",
                "volume_pricing": [
                    {
                        "volume_pricing_from": 1,
                        "volume_pricing_type": "PERCENT",
                        "volume_pricing_value": 4
                    },
                    {
                        "volume_pricing_from": 2,
                        "volume_pricing_type": "FIXED",
                        "volume_pricing_value": 4
                    },
                    {
                        "volume_pricing_from": 3,
                        "volume_pricing_type": "NEW",
                        "volume_pricing_value": 4
                    }
                ],
                "volume_limit_by": "QUANTITY",
                "variant_different": "{\"limit_different\":false}"
            }
        ]
    }
}
```

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Created pricing list rule successfully",
    "rule": {
        "id": 4,
        "shop_id": 1,
        "name": "pl hehe",
        "status": 1,
        "priority": 0,
        "market_condition_type": "ALL",
        "market_ids": "[]",
        "discount_type": "CUSTOMIZE",
        "discount_value": "0",
        "volume_type": "CUSTOMIZE",
        "volume_apply": "EVERY_PRODUCT",
        "volume_table": "[{\"volume_pricing_from\":0,\"volume_pricing_type\":\"PERCENT\",\"volume_pricing_value\":0}]",
        "limit_type": "CUSTOMIZE",
        "limit_apply": "EVERY_PRODUCT",
        "minimum": "0",
        "maximum": "0",
        "increment_quantity": 0,
        "start_date": "2025-06-02 10:38:11.568",
        "end_date": null,
        "enable_end_date": 0,
        "created_at": "2025-06-02T10:38:11.670Z",
        "updated_at": null
    }
}
```

### Save multiple price list rules

<mark style="color:yellow;">**`POST`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/pricing-lists/bulk-save`

#### Headers

| KEY                | VALUE            |
| ------------------ | ---------------- |
| Content-Type       | application/json |
| x-b2bridge-api-key | xxx              |

#### Body

```json
{
    "domain": "abc.myshopify.com",
    "rules": [
        {
            "replacedVariants": false,
            "discount_type": "PERCENT",
            "discount_value": 0,
            "enable_end_date": 0,
            "end_date": null,
            "increment_quantity": 0,
            "limit_apply": "EVERY_PRODUCT",
            "limit_type": "NO_LIMIT",
            "name": "pl test",
            "priority": 0,
            "status": 1,
            "volume_apply": "EVERY_PRODUCT",
            "volume_type": "NO_LIMIT",
            "volume_table": "",
            "pricingVariants": [
                {
                    "product_id": "9040691134681",
                    "variant_id": "46076617752793",
                    "price": 579,
                    "origin_price": 579,
                    "variant_title": "Default Title",
                    "product_title": "14k Dangling Pendant Earrings Vang",
                    "handle": "14k-dangling-pendant-earrings",
                    "sku": "SKU8386",
                    "barcode": "",
                    "image_url": "https://cdn.shopify.com/s/files/1/0719/6777/files/18k-rose-gold-infinite",
                    "inventory_quantity": 0,
                    "minimum": 1,
                    "maximum": null,
                    "increment_quantity": 1,
                    "order_limit_by": "AMOUNT",
                    "volume_pricing": [],
                    "volume_limit_by": "QUANTITY",
                    "variant_different": "{\"limit_different\":false}"
                }
            ]
        }
    ]
}
```

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": [
        "Create new rule 'pl test' with ID 5 successfully"
    ]
}
```

### Duplicate price list rule

<mark style="color:yellow;">**`POST`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/pricing-lists/duplicate-by-id`

#### Headers

| KEY                | VALUE            |
| ------------------ | ---------------- |
| Content-Type       | application/json |
| x-b2bridge-api-key | xxx              |

#### Body

```json
{
    "domain": "abc.myshopify.com",
    "id": 1
}
```

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Duplicate rule successfully",
    "rule": {
        "id": 3,
        "shop_id": 1,
        "name": "pl1",
        "status": 1,
        "priority": 0,
        "market_condition_type": "ALL",
        "market_ids": "[]",
        "discount_type": "PERCENT",
        "discount_value": "10",
        "volume_type": "QUANTITY",
        "volume_apply": "EVERY_PRODUCT",
        "volume_table": "[{\"volume_pricing_from\":5,\"volume_pricing_type\":\"PERCENT\",\"volume_pricing_value\":10},{\"volume_pricing_from\":10,\"volume_pricing_type\":\"PERCENT\",\"volume_pricing_value\":20}]",
        "limit_type": "QUANTITY",
        "limit_apply": "EVERY_PRODUCT",
        "minimum": "0",
        "maximum": "5",
        "increment_quantity": 0,
        "start_date": "2025-05-20 06:46:22.03",
        "end_date": null,
        "enable_end_date": 0,
        "created_at": "2025-06-02T10:37:12.705Z",
        "updated_at": null
    }
}
```

### Delete price list rule

<mark style="color:red;">**`DELETE`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/pricing-lists/delete-by-id`

#### Headers

| KEY                | VALUE |
| ------------------ | ----- |
| x-b2bridge-api-key | xxx   |

#### Params

| KEY    | VALUE             |
| ------ | ----------------- |
| domain | abc.myshopify.com |
| id     | 1                 |

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Delete rule successfully"
}
```

### Mass delete price list rules

<mark style="color:yellow;">**`POST`**</mark> `https://b2bridge-public-api.b2bridge.io/api/v1/pricing-lists/delete-by-id`

#### Headers

| KEY                | VALUE            |
| ------------------ | ---------------- |
| Content-Type       | application/json |
| x-b2bridge-api-key | xxx              |

#### Body

```json
{
    "domain": "abc.myshopify.com",
    "ids": [
        6,
        19
    ]
}
```

#### Response <mark style="color:green;">`200`</mark>

```json
{
    "success": true,
    "message": "Deleted pricing rules successfully",
    "deleted": [
        6,
        19
    ],
    "failed": []
}
```

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# OPTIS Integration

## B2Bridge x OPTIS Integration

### About OPTIS

[OPTIS – Product Options Variants](https://apps.shopify.com/product-options-by-bss?utm_source=docs.b2bridge.io\&utm_medium=optis-integration\&utm_campaign=help-center) is a Shopify app that allows you to create unlimited custom product options. With OPTIS, you can add text boxes, dropdowns, checkboxes, image swatches, and even charge additional fees through add-on pricing.

This makes it easy to offer personalized products and flexible customized options for your customers.

### Setting up the integration

The **integration** between B2Bridge and OPTIS is **automatic**. No manual setup is required.

To get started, simply install both apps:

* [Install B2Bridge on Shopify<br>](https://apps.shopify.com/b2bridge-b2b-all-in-one?utm_source=docs.b2bridge.io\&utm_medium=optis-integration\&utm_campaign=help-center)
* [Install OPTIS on Shopify](https://apps.shopify.com/product-options-by-bss?utm_source=docs.b2bridge.io\&utm_medium=optis-integration\&utm_campaign=help-center)<br>

Once both apps are installed, the integration works right away.

### What the integration allows you to do

With B2Bridge and OPTIS working together, you can:

* Display OPTIS product options on B2B product pages.
* Show OPTIS product options on B2B cart page. Ensure add-on prices are integrated in the total price.
* Ensure add-on prices are calculated correctly with B2B discounts at checkout.

### Examples

#### Options on B2B Product Pages

All custom options created in OPTIS (e.g., text input, dropdown, image swatches, price add-on) will be displayed directly on your B2B product pages.

<div><figure><img src="/files/3RPxFMIB17radoorLHYP" alt=""><figcaption></figcaption></figure> <figure><img src="/files/5AdBRLw5OsZgJRkqkP8l" alt=""><figcaption></figcaption></figure></div>

#### Add-On Prices in the Cart & Checkout

If a buyer selects options with additional costs, those add-on prices will be displayed in the cart for clear review before checkout.

Add-on prices are automatically added to the product price and will work correctly with any B2B discounts set up in B2Bridge.

<figure><img src="/files/EmYAokHcZ823X92I9oog" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/54R3KOVFiUcuEmx3wQmD" alt=""><figcaption></figcaption></figure>

### Frequently Asked Questions

<details>

<summary>Do I need to configure the integration manually?</summary>

No. The integration is automatic as soon as both apps are installed.

</details>

<details>

<summary>Will add-on prices from OPTIS work with B2B discounts in B2Bridge?</summary>

Yes. Add-on prices are combined with product prices and correctly adjusted with B2B discounts at checkout.

</details>

<details>

<summary>Can I use all OPTIS option types in my B2B store?</summary>

Yes. All option types created in OPTIS will display on your B2B product pages.

</details>

<details>

<summary>What if I need help setting up OPTIS or B2Bridge?</summary>

You can contact us via [in-app Live Chat](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) or email us at <support@b2bridge.io.>

</details>

####

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}

<br>


# Policies


# App Privacy Policy

Please read this Privacy Policy carefully.

### 1. Introduction

B2Bridge (hereinafter referred to as “we,” “us,” or “our”) is a partner of Shopify Inc. Our primary objective is to provide Shopify Apps (the “App”) and offer relevant consulting and support services (the “Services”) to merchants who rely on Shopify to power their online stores. This Privacy Policy outlines the manner in which we collect, utilize, and share personal information when you install or use the App in conjunction with your Shopify-supported store. It further elucidates your privacy rights and how applicable laws protect you.

### 2. Personal Information the App Collects

Upon installing the App, we automatically gain access to specific types of information from your Shopify account via Shopify APIs, adhering to the Shopify APIs License and Terms of Use. Additionally, we may collect Personal Data about you when you voluntarily provide such information. The collected information may fall into the following categories and sources:

* Your store name and store email address.
* Customers’ email addresses.
* Information we receive when providing technical or customer support for you.

This information is required to deliver specific services. If you choose not to provide the requested information, kindly consider uninstalling our app from your Shopify Stores.

Moreover, when accessing the B2Bridge website (the “Site”), we may employ various technologies to collect personal information, including but not limited to:

* Cookies: Data files placed on your device or computer, often containing an anonymous unique identifier. For more information about cookies, including instructions on how to disable them, please visit [http://www.allaboutcookies.org](http://www.allaboutcookies.org/).
* Log Files: These files track actions occurring on the Site, collecting data such as your IP address, browser type, Internet service provider, referring/exit pages, and date/time stamps.
* Web Beacons, Tags, and Pixels: Electronic files used to record information about how you browse the Site.

### 3. Why Do We Collect Your Personal Information?

We collect your data for the following reasons:

* To generate and save app configurations for your store.
* To maintain contact with you to resolve any issues you encounter while using our app.
* To facilitate the execution of various features within our app.
* To provide you with information or advertising related to our products or services.

### 4. Information Storage and Privacy Commitment

Your personal and customer data will be stored on the servers of B2Bridge in the United States, utilizing the AWS system, until you submit a cancellation request or uninstall our app from your store.

B2Bridge is steadfast in ensuring the security and confidentiality of your data. We employ the latest technologies and software to deter data theft, unauthorized access, and disclosure, thereby safeguarding all the information we collect online. However, please be aware that no method of transmission over the internet or electronic storage is completely secure.

### 5. Our Cookies Policy<br>

Cookies are small text files created when users visit websites, improving the user experience by remembering login information, theme selections, preferences, and other custom functions. We employ cookies for the following purposes:

* Strictly Necessary Cookies: These are essential for the operation of our website and enable you to navigate and use its features.
* Performance and Analytics Cookies: These cookies help us understand how visitors interact with our website, allowing us to improve its performance.
* Functionality Cookies: These cookies are used to recognize you when you return to our website and personalize content for you.

### 6. Links to Other Websites

While our app may contain links to other websites, please be advised that we do not have control over these external websites. Therefore, we cannot assume responsibility for the protection and privacy of any information you provide while visiting such sites. Furthermore, these external websites are not governed by this privacy statement, so it is advisable to exercise caution and review the privacy statement relevant to the respective website.

### 7. Summary of Your Rights Under:

#### **7.1. GDPR European Privacy Rights**

If you are a resident of the European Economic Area, you possess the following rights:

* Right to be informed: You have the right to know whether we hold your Personal Information and the purpose for which your Personal Information is processed.
* Right of access: You are entitled to obtain a copy of your Personal Information, along with an explanation of the categories of Personal Information being processed, the purposes of such Processing, and the details of third parties to whom the Personal Information may have been disclosed.
* Right to rectification: You have the right to correct/update your Personal Information available with us.
* Right to erasure: You are entitled to have your Personal Information erased from our customer relationship management (CRM) databases. It is important to note that we may need to retain certain Personal Information about you for legal and internal business reasons, such as fraud prevention. We will retain your Personal Information for as long as necessary to provide you with the websites and apps you are eligible to use and as needed to comply with our legal obligations and enforce our agreements.
* Right to data portability: You are entitled to obtain and reuse your Personal Information. You can either obtain the Personal Information from us or provide it to a third party if you so wish, or request us to transfer your Personal Information directly to a third party.
* Right to object/restrict Processing or both: You have the right to object/restrict the Processing of your Personal Information in certain circumstances, including situations where the Personal Information is inaccurate (during the period when we verify the Personal Information), when the Personal Information is no longer required for the intended purpose of Processing, or in connection with direct marketing. You can prevent or discontinue marketing communications by checking certain boxes on the forms used to collect your Personal Information, or by utilizing opt-out mechanisms in the emails we send you. You also have the right not to be subject to a decision based solely on automated Processing, including profiling, which produces legal effects that significantly affect you.

In these cases, we will retain minimal Personal Information to record your choice of opting out from further contact. For exercising any of the aforementioned rights, please contact us at <help@b2bridge.io>.

#### **7.2. California Privacy Rights**

If you are a resident of California, please note the following details regarding the personal information we collect about you and your rights under the California Consumer Privacy Act (CCPA):

Subject to certain limitations, the CCPA provides you with the following rights:

* Right to access: You have the right to request access to details on the categories or specific pieces of personal information we collect and/or sell, including how we use and disclose this information, and to whom we may sell it.
* Right to deletion: You can request the deletion of any of your personal information.
* Right to opt-out: You have the right to opt-out of any “sale” of your personal information that may occur.
* Right to non-discrimination: We will not discriminate against you for exercising any of the above rights.

To exercise your California privacy rights under the CCPA, please send us an email. We will verify your request using information associated with your account, including your email address. Further identification may be required. You may also designate an authorized representative to act on your behalf.

#### **7.3. Nevada Privacy Rights**<br>

Nevada law obliges us to offer certain Nevada residents the option to opt-out of the “sale” of “personally identifiable information,” as defined by Nevada law. We do not engage in such activities. However, if you are a Nevada resident who has purchased goods or services from us, you may submit a request under Nevada law to opt-out of any potential future sales by <emailinghelp@b2bridge.io>.

### **CONTACT US**

If you have any questions about Our App or this Privacy Policy, please contact us by email at <help@b2bridge.io>, by post at *20F, Viwaseen Tower, 48 To Huu Str, Trung Van Ward, Nam Tu Liem Dist., Hanoi, Viet Nam*. Please ensure that your query is clear, particularly if it is a request for information about the data we hold about you.


# Refund policy

#### **1. Overview** <a href="#id-1.-overview" id="id-1.-overview"></a>

This Refund Policy applies to **B2Bridge** ap&#x70;**.**

If you experience any issues with our apps, have concerns about billing or support, or require assistance with development services, please contact us directly before requesting a refund. You can reach our support team via:

* 📧 **Email:** <support@b2bridge.io>
* 💬 **Live Chat** (available in-app& on the bottom right corner of [docs.b2bridge.io](https://docs.b2bridge.io) and main website [b2bridge.io](https://b2bridge.io))

Refunds will only be considered **after** we have been given the opportunity to diagnose and fix any issue related to our app.

***

#### **2. Refund Eligibility** <a href="#id-2.-refund-eligibility" id="id-2.-refund-eligibility"></a>

**Monthly Subscriptions**

* Refund requests must be submitted **within 5 days** of the current billing cycle.
* Refunds are granted **only** in cases of major technical issues causing data loss or severe disruption, where our team cannot provide a fix.

Because we provide a **free plan or trial period** for most apps, refunds are not granted in the following situations:

* You changed your mind after purchase.
* You purchased the app at a discount.
* You installed the app for evaluation purposes.
* You purchased the app by mistake.
* You lack the required technical knowledge to use the app.
* You request a refund for prior months.
* You request a refund for custom development or customization services.
* The issue is caused by a **third-party app or theme conflict**.

Before subscribing, please review the **app details, documentation, and demo**, or contact our team to ensure the app meets your business needs.

***

#### **4. How to Request a Refund** <a href="#id-4.-how-to-request-a-refund" id="id-4.-how-to-request-a-refund"></a>

To request a refund, please:

1. Contact us at [**support@b2bridge.com**](mailto:support@b2bridge.com) or via **Live Chat**.
2. Provide supporting information such as **screenshots, videos, or URLs** related to the issue.
3. <mark style="color:red;">**Do not uninstall the app**</mark> <mark style="color:red;">before contacting us - we can only investigate and assist while the app remains installed.</mark>

{% hint style="warning" %}
Once the app is uninstalled, all associated data is removed and we will be unable to assist further.
{% endhint %}

***

#### **5. Before Uninstalling** <a href="#id-5.-before-uninstalling" id="id-5.-before-uninstalling"></a>

If you decide to uninstall B2Bridge, please contact us first so we can:

* Help remove any residual app code.
* Ensure a clean uninstallation without affecting your store’s functionality.

***

#### **6. Refund Processing** <a href="#id-6.-refund-processing" id="id-6.-refund-processing"></a>

After your request is approved:

* **Case 1:** If the billing cycle has already been charged, we will process the refund accordingly.
* **Case 2:** If the billing cycle has not yet been charged, you may need to wait for Shopify to complete the billing. You can also contact Shopify directly to cancel the charge.

Please note:

* Shopify manages all app billing and refunds through their own system.
* We cannot directly cancel or prevent future Shopify charges.
* Refunds are issued only **after Shopify completes billing** for the current cycle.

**Special Case:** If you forget to cancel your subscription after the trial period ends:

* You may receive a **50% refund** of the first billing cycle (monthly or yearly), provided the request is made within the first 5 days for monthly plans.

***

#### **7. Charge Policy** <a href="#id-7.-charge-policy" id="id-7.-charge-policy"></a>

**App Upgrades, Downgrades, and Prorating**

When upgrading or downgrading your app plan, Shopify prompts you to approve a new recurring charge because only **one active charge** can exist per app at a time.

* The existing charge will be cancelled and replaced by the new one.
* Depending on the app, the new charge applies **immediately** or **after the current billing cycle** ends.

If the new charge applies immediately:

* **Upgrade:** You’ll be charged a prorated amount based on the difference in plan prices and the remaining days in your billing cycle. Example: If you upgrade from a $99 plan to a $199 plan on day 15 of a 30-day cycle, you’ll be charged:

  > $99 + ($199 – $99) × (15/30) = $149.
* **Downgrade:** You’ll receive an **application credit** for the unused portion of your higher plan, which can be applied to future Shopify app purchases.

***

#### **8. Contact Us** <a href="#id-8.-contact-us" id="id-8.-contact-us"></a>

If you have any questions about this Refund Policy or need help with your subscription, please contact us at:

📧 [**support@b2bridge.io**](mailto:support@b2bridge.io)

💬 **Live Chat:** available in-app & on the bottom right corner of [docs.b2bridge.io](https://docs.b2bridge.io) and main website [b2bridge.io](https://b2bridge.io)


# Starter Plan $0

The Starter Plan is a free-of-charge entry point designed for new businesses to begin their B2B journey on Shopify. This plan provides essential wholesale features at no cost, allowing you to test the B2B workflow and scale your operations.

> Eligibility Note: The Starter Plan is exclusively available to stores that installed B2Bridge starting from May 7, 2026. Stores installed prior to this date are not eligible for this specific plan. Development stores require granting [**access**](https://b2bridge.io/contact-us/).

***

#### Key Features Included

Even at $0/month, the Starter Plan gives you access to a powerful suite of B2B tools:

* Pricing: B2B Custom Pricing & Price Overrides, Volume Discounts.
* Ordering: Order Limits & Increments, Quick Order Page, and Support for multiple currencies.
* Management: B2B Registration Forms, Net Payment Terms, and a customized B2B Account Page.

***

#### Usage Limits

The Starter Plan is subject to monthly usage quotas. Once these limits are reached, specific features will be temporarily restricted until the next billing cycle or until an upgrade occurs.

| **Feature**             | **Monthly Limit**          |
| ----------------------- | -------------------------- |
| Customer Groups         | 1 Group                    |
| B2B Price Lists         | 1 Price List               |
| B2B Orders              | 5 Orders per month         |
| Wholesale Registrations | 10 Registrations per month |

***

#### When Limits Are Reached

To maintain a smooth experience, the app automatically adjusts your Storefront when you exceed your plan's monthly quotas. Please take note of the following changes that occur upon reaching a limit:

**1. Wholesale Registration Limit Reached**

* The B2B Registration Form will no longer be displayed on your store.
* New wholesale applicants will not be able to submit their information until the limit resets.

**2. B2B Order Limit Reached**

When you exceed 5 B2B orders, the wholesale experience is restricted as follows:

* Pricing Tables: The tiered pricing tables will disappear from Collection pages and Product Detail Pages (PDP).
* Navigation: The Cart icon in the header and the User icon on the Account page will revert to default Shopify behavior and will not link to B2Bridge pages.
* Redirects: Upon logging in, customers will not be redirected to the B2Bridge Account Page.
* Checkout Restriction: In the B2Bridge Cart, the "Checkout" and "Order Net Terms (NT)" buttons will be disabled, preventing new wholesale orders from being processed.

***

#### Upgrading Your Plan

If your business is growing and you require more than 5 orders or 10 registrations per month, you can upgrade to another plan at any time through the App Settings > [**Pricing Plan**](https://admin.shopify.com/?redirect=%2Fapps%2Fb2bridge-b2b-all-in-one/plan). Upgrading immediately removes all storefront restrictions and increases your [**quotas**](https://b2bridge.io/pricing/).

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


# App introduction

B2Bridge Lock & Password Protect allows you to safeguard your exclusive storefront content, protect pricing, and restrict specific products or pages from public view.&#x20;

Unauthorised visitors will be greeted with a fully customizable restriction message, while verified buyers can access your locked content seamlessly.

### Key features:

* **Hide product's price:** Restrict price visibility and hide the "Add to Cart" button from guest visitors, encouraging them to log in or register.
* **Hide products entirely:** Lock access to specific products or entire collections. If a visitor tries to open a locked item page, the core content is hidden immediately.
* **Hide specific pages / URLs:** Lock custom landing pages, blogs, or internal wholesale resource pages based on any URL path.
* **Flexible Access Conditions:** Control exactly who can unlock your content using three powerful criteria:
  * *All logged-in customers*
  * *Customers with a specific tag* (e.g., `B2B`, `Wholesale`)
  * *Visitors who enter a password* (Passcode protection)
* **Custom Display Settings:** Match the restriction layout perfectly with your store's branding by adjusting the text message, colors, font size, and padding without touching any code.

### How B2Bridge Lock works:

Whenever a visitor attempts to access a locked product, price, or page, the application checks their login status or tags.

If they do not meet your active **Who can access** criteria, B2Bridge Lock instantly replaces the restricted content with your custom **Display settings** message (e.g., *"Log in to view page"*). Once the customer logs in with the required credentials or enters the correct passcode, the content is automatically revealed.

### Next step:

To start using B2Bridge Lock & Password Protect, head to [Get started](/b2bridge-lock/get-started) to learn more.

You can also [Book a Free Demo](https://calendly.com/b2bridge/demo?utm_source=docs.b2bridge.io) to experience what B2Bridge can do.

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Get started

Follow these steps to secure your storefront content and protect your wholesale pricing with B2Bridge Lock & Password Protect.&#x20;

<figure><img src="/files/xzhVT8QXBS6wIKT5WPfq" alt=""><figcaption></figcaption></figure>

{% stepper %}
{% step %}

### Activate B2Bridge's app embed

Go to your Shopify Theme Editor and activate the B2Bridge Lock app embed. This is a required step that allows the app to hide prices or restrict access to specific pages without modifying your theme's core code.

From your dashboard, click **Enable App** to open your Shopify Theme Editor directly.
{% endstep %}

{% step %}

### Choose what to lock

Navigate to **lock rule** page to define the specific content you want to restrict. B2Bridge Lock allows you to protect various levels of your store:

* **Hide product's price:** Keep your products visible, but hide the price text and disable the "Add to Cart" button from guest visitors.
* **Hide products entirely:** Lock access to specific products or collections. If a visitor tries to open a locked page, the content is hidden immediately.
* **Hide specific pages / URLs:** Lock any custom page, blog, or link based on its web address (URL path).
  {% endstep %}

{% step %}

### Choose who can access

Set up the criteria required for visitors to unlock and view your protected content. You can grand access based on:

* **Logged-in customers:** Anyone who creates an account on your store.
* **Tagged customers:** Specific groups (e.g., customers with the tag `B2B` or `Wholesale`).
* **Passcode:** Visitors who enter a specific generic password that you set.
  {% endstep %}

{% step %}

### Style the message and enable the rule

Customize the restriction message that unauthorized visitors see when they stumble upon locked content. You can adjust the text, colors, and login/registration buttons to match your brand's storefront display perfectly. Once satisfied, toggle the status to Enabled to activate the rule.

{% endstep %}
{% endstepper %}

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Storefront display

Read [setup guide for lock rule](/b2bridge-lock/app-configuration).​

The application alters your theme's storefront components based on three distinct behaviors:

### 1. Hide price

When you apply a **Hide product's price** rule, the product remains discoverable on collection grids and product pages. However:

* The original price text is hidden.
* The Add to Cart and Buy It Now buttons are disabled.
* A custom fallback container is rendered in place of the price, prompting visitors to log in, verify their account, or provide a passcode.

<figure><img src="/files/48kF8Cqg2BhGycOt6yrl" alt=""><figcaption><p>Hide price of a product &#x26; display a custom message "Log in to see price"</p></figcaption></figure>

<figure><img src="/files/lAzl41LwqKW60kLl6e04" alt=""><figcaption><p>Hide price of products &#x26; display custom message "Log in to see price"</p></figcaption></figure>

<figure><img src="/files/YJjN5kCpOqBVhe64Ck5B" alt=""><figcaption><p>Lock a product price and only allow customers with password to view the price</p></figcaption></figure>

<figure><img src="/files/lN7XGdqKsgiM5Wkm0ebg" alt=""><figcaption><p>Lock specific products and only allow customers with password to view the price</p></figcaption></figure>

#### 2. Hide product entirely

When a **Hide products entirely** rule is active, the application restricts direct access to your selected items or collections:

* If a visitor tries to click and open a locked product or collection page, the core content is hidden immediately.
* B2Bridge will show your custom restriction message or a passcode box instead, blocking them from seeing the page details.

<figure><img src="/files/hOKnxCDorT62biNUBz9v" alt=""><figcaption><p>Hide entirely products information and only allow login customers to view</p></figcaption></figure>

#### 3. Hide pages/URLs

When a **Hide specific pages / URLs** rule is active, any attempt to visit the targeted relative paths instantly replaces the page's core layout with your custom message or passcode input box.

<figure><img src="/files/AQUe4d5CMlEWwgyK5Iuh" alt=""><figcaption><p>Lock catalog page and only allow log-in customers can access</p></figcaption></figure>

<figure><img src="/files/ts2xFVsnJSBk5zVkLTZg" alt=""><figcaption><p>Lock catalog page and only allow customers with password can access</p></figcaption></figure>


# App configuration

This guide walks you through creating and managing a lock rule to secure your storefront. B2Bridge  uses a single dynamic interface to control what is hidden, who gets access, and how the restriction looks.

Navigate to **lock rule** dashboard to begin.

### Step 1: Status

Turn the lock on or off.

* Check **Rule enabled** to enforce the restriction on your live storefront immediately.
* Uncheck it to keep the rule as a draft.

> 💾 Note: Changes will trigger a save bar at the top of your screen — click Save to apply them.

<figure><img src="/files/Fk4oEJ7osTdyIcIuU16g" alt=""><figcaption></figcaption></figure>

### Step 2: What to lock

Choose the restriction type from the Lock dropdown menu:

* **Hide products entirely:** Completely lock specific items or catalogs from unauthorized eyes.
* **Hide product's price:** Keep products visible, but mask the pricing and disable the "Add to Cart" button.
* **Hide specific pages / URLs:** Lock custom pages, blogs, or internal resource links.

<figure><img src="/files/IyU0ZvToFDiinUaV1G87" alt=""><figcaption></figcaption></figure>

### Step 3: Select what to apply the rule to

Depending on your selection in Step 2, you will configure either the product scope or the specific URL paths:

#### 3.1. Hide products entirely/Hide product's price

Define which items this rule applies to using the Apply to dropdown menu:

* **All products:** Applies the restriction across your entire store catalog.
* **Specific products:** Allows you to handpick exact products or collections.

<figure><img src="/files/qP2dtLy0wwgbcpaYKCON" alt=""><figcaption></figcaption></figure>

*Tip:* Click **Edit products** to open the selection modal. You can search by Product title, Product ID, Barcode, or SKU, and use filters to narrow down your target list.

<figure><img src="/files/oToAQc53aUad3lYbpn7S" alt=""><figcaption></figcaption></figure>

#### 3.2. Hide specific pages / URLs

Specify the exact web addresses you want to restrict under the Pages / URLs to lock section:

* Page URL or path: Enter the specific relative path or URL of the page you want to lock (e.g., `pages/wholesale-terms` or `blogs/news`).
* Click **Add** to include the path in your restriction list. The entire content of any matching page will be securely masked and replaced with your custom display message.

<figure><img src="/files/9CfVymt7VAqKw60d3u3z" alt=""><figcaption></figcaption></figure>

### Step 4: Access & Display Settings

Define who can bypass the restriction. The **Display settings** fields below will dynamically adapt based on your selection from the **Allow access for** dropdown:

<figure><img src="/files/1PNapoBbQtUZt9QkJH13" alt=""><figcaption></figcaption></figure>

#### 4.1. All logged-in customers

Any user who has a registered account and logs into your storefront can access the content.

**Message:** Enter your custom call-to-action text (e.g., `"Log in to view product"` or `"Log in to view price"`).

<figure><img src="/files/eNjKerLf5UK4OFpRsg2x" alt=""><figcaption></figcaption></figure>

#### 4.2. Customers with a specific tag

Restrict visibility strictly to verified accounts carrying a unique tag (e.g., `B2B`, `Wholesale`).

* **Message:** Customize the fallback text for non-tagged logged-in customers.
* *Tip:* To manage tags, go to **Shopify Admin > Customers**, select a profile, and check the Tags section on the right. Ensure your entry here matches Shopify exactly.

<figure><img src="/files/NsbgDBZkkYH0JbZwgi6V" alt=""><figcaption></figcaption></figure>

#### 4.3. Visitors who enter a password

Require a shared passcode to unveil the hidden content.

* **Password:** Enter the exact passcode shoppers must type.
* **Input placeholder:** The ghost text inside the input box (e.g., `"Enter password"`).
* **Unlock button text:** The label on the action button (e.g., `"Unlock"`).
* **Wrong-password message:** The error note shown upon incorrect entry.
* **Styling:** Customise the Button color and Button text color using hex codes to match your branding.

<figure><img src="/files/mawSNcuFfMcaxV4QALKD" alt=""><figcaption></figcaption></figure>

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Installation

Once you have set up your Lock rules and assigned them to Customer Groups, B2Bridge Lock will automatically control content visibility across your store based on your configuration.

#### Theme Compatibility & Setup

If your store uses any of Shopify's standard free themes, B2Bridge Lock works automatically out of the box—no manual code installation or extra setup required:

<details>

<summary>List of Shopify's free themes</summary>

* Dawn
* Trade
* Spotlight
* Craft
* Refresh
* Sense
* Origin
* Studio
* Ride
* Taste
* Publisher
* Crave
* Colorblock
* Vessel
* Fabric
* Dwell
* Horizon
* Atelier
* Ritual
* Savor
* Tinker
* Heritage
* Pitch
* Rise

</details>

{% hint style="info" %}
B2Bridge Lock might work with some paid themes due to the similarity in structure with free themes. You can check your store first before using other installation methods.
{% endhint %}

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# App Privacy Policy

Please read this Privacy Policy carefully.

### 1. Introduction

B2Bridge (hereinafter referred to as “we,” “us,” or “our”) is a partner of Shopify Inc. Our primary objective is to provide Shopify Apps (the “App”) and offer relevant consulting and support services (the “Services”) to merchants who rely on Shopify to power their online stores. This Privacy Policy outlines the manner in which we collect, utilize, and share personal information when you install or use the App in conjunction with your Shopify-supported store. It further elucidates your privacy rights and how applicable laws protect you.

### 2. Personal Information the App Collects

Upon installing the App, we automatically gain access to specific types of information from your Shopify account via Shopify APIs, adhering to the Shopify APIs License and Terms of Use. Additionally, we may collect Personal Data about you when you voluntarily provide such information. The collected information may fall into the following categories and sources:

* Your store name and store email address.
* Customers’ email addresses.
* Information we receive when providing technical or customer support for you.

This information is required to deliver specific services. If you choose not to provide the requested information, kindly consider uninstalling our app from your Shopify Stores.

Moreover, when accessing the B2Bridge website (the “Site”), we may employ various technologies to collect personal information, including but not limited to:

* Cookies: Data files placed on your device or computer, often containing an anonymous unique identifier. For more information about cookies, including instructions on how to disable them, please visit [http://www.allaboutcookies.org](http://www.allaboutcookies.org/).
* Log Files: These files track actions occurring on the Site, collecting data such as your IP address, browser type, Internet service provider, referring/exit pages, and date/time stamps.
* Web Beacons, Tags, and Pixels: Electronic files used to record information about how you browse the Site.

### 3. Why Do We Collect Your Personal Information?

We collect your data for the following reasons:

* To generate and save app configurations for your store.
* To maintain contact with you to resolve any issues you encounter while using our app.
* To facilitate the execution of various features within our app.
* To provide you with information or advertising related to our products or services.

### 4. Information Storage and Privacy Commitment

Your personal and customer data will be stored on the servers of B2Bridge in the United States, utilizing the AWS system, until you submit a cancellation request or uninstall our app from your store.

B2Bridge is steadfast in ensuring the security and confidentiality of your data. We employ the latest technologies and software to deter data theft, unauthorized access, and disclosure, thereby safeguarding all the information we collect online. However, please be aware that no method of transmission over the internet or electronic storage is completely secure.

### 5. Our Cookies Policy<br>

Cookies are small text files created when users visit websites, improving the user experience by remembering login information, theme selections, preferences, and other custom functions. We employ cookies for the following purposes:

* Strictly Necessary Cookies: These are essential for the operation of our website and enable you to navigate and use its features.
* Performance and Analytics Cookies: These cookies help us understand how visitors interact with our website, allowing us to improve its performance.
* Functionality Cookies: These cookies are used to recognize you when you return to our website and personalize content for you.

### 6. Links to Other Websites

While our app may contain links to other websites, please be advised that we do not have control over these external websites. Therefore, we cannot assume responsibility for the protection and privacy of any information you provide while visiting such sites. Furthermore, these external websites are not governed by this privacy statement, so it is advisable to exercise caution and review the privacy statement relevant to the respective website.

### 7. Summary of Your Rights Under:

#### **7.1. GDPR European Privacy Rights**

If you are a resident of the European Economic Area, you possess the following rights:

* Right to be informed: You have the right to know whether we hold your Personal Information and the purpose for which your Personal Information is processed.
* Right of access: You are entitled to obtain a copy of your Personal Information, along with an explanation of the categories of Personal Information being processed, the purposes of such Processing, and the details of third parties to whom the Personal Information may have been disclosed.
* Right to rectification: You have the right to correct/update your Personal Information available with us.
* Right to erasure: You are entitled to have your Personal Information erased from our customer relationship management (CRM) databases. It is important to note that we may need to retain certain Personal Information about you for legal and internal business reasons, such as fraud prevention. We will retain your Personal Information for as long as necessary to provide you with the websites and apps you are eligible to use and as needed to comply with our legal obligations and enforce our agreements.
* Right to data portability: You are entitled to obtain and reuse your Personal Information. You can either obtain the Personal Information from us or provide it to a third party if you so wish, or request us to transfer your Personal Information directly to a third party.
* Right to object/restrict Processing or both: You have the right to object/restrict the Processing of your Personal Information in certain circumstances, including situations where the Personal Information is inaccurate (during the period when we verify the Personal Information), when the Personal Information is no longer required for the intended purpose of Processing, or in connection with direct marketing. You can prevent or discontinue marketing communications by checking certain boxes on the forms used to collect your Personal Information, or by utilizing opt-out mechanisms in the emails we send you. You also have the right not to be subject to a decision based solely on automated Processing, including profiling, which produces legal effects that significantly affect you.

In these cases, we will retain minimal Personal Information to record your choice of opting out from further contact. For exercising any of the aforementioned rights, please contact us at <help@b2bridge.io>.

#### **7.2. California Privacy Rights**

If you are a resident of California, please note the following details regarding the personal information we collect about you and your rights under the California Consumer Privacy Act (CCPA):

Subject to certain limitations, the CCPA provides you with the following rights:

* Right to access: You have the right to request access to details on the categories or specific pieces of personal information we collect and/or sell, including how we use and disclose this information, and to whom we may sell it.
* Right to deletion: You can request the deletion of any of your personal information.
* Right to opt-out: You have the right to opt-out of any “sale” of your personal information that may occur.
* Right to non-discrimination: We will not discriminate against you for exercising any of the above rights.

To exercise your California privacy rights under the CCPA, please send us an email. We will verify your request using information associated with your account, including your email address. Further identification may be required. You may also designate an authorized representative to act on your behalf.

#### **7.3. Nevada Privacy Rights**<br>

Nevada law obliges us to offer certain Nevada residents the option to opt-out of the “sale” of “personally identifiable information,” as defined by Nevada law. We do not engage in such activities. However, if you are a Nevada resident who has purchased goods or services from us, you may submit a request under Nevada law to opt-out of any potential future sales by <emailinghelp@b2bridge.io>.

### **CONTACT US**

If you have any questions about Our App or this Privacy Policy, please contact us by email at <help@b2bridge.io>, by post at *20F, Viwaseen Tower, 48 To Huu Str, Trung Van Ward, Nam Tu Liem Dist., Hanoi, Viet Nam*. Please ensure that your query is clear, particularly if it is a request for information about the data we hold about you.


# 👋 App introduction

Managing taxes for different customers and countries can be complicated. B2Bridge Tax makes it simple for Shopify store owners to handle B2B tax exemptions, show clear tax-inclusive or tax-exclusive pricing, and manage custom tax rates across their storefront.

### What does B2Bridge Tax do?

* **Automatic B2B Tax Exemption:** Lets business customers enter their official Tax ID (such as EU VAT, UK VAT, ABN, or GST) directly on the cart page. Once verified, tax is automatically deducted at checkout as an Order Discount.
* **Flexible Storefront Tax Display:** Set rules to display tax-inclusive prices, tax-exclusive prices, or both across product pages, collection pages, search results, and cart pages based on customer tags or locations.
* **Custom Tax Rates & Overrides:** Sync tax rates automatically from Shopify or manually set tax rate overrides by country, state, or city to ensure precise price calculations.

### How it works at a glance

```
  ┌─────────────────────────────────────────────────────────┐
  │                 1. Tax Rates & Overrides                │
  │     Sync rates from Shopify or set manual overrides     │
  └────────────────────────────┬────────────────────────────┘
                               │
                               ▼
  ┌─────────────────────────────────────────────────────────┐
  │                   2. Storefront Display                 │
  │   Show incl./excl. tax prices based on display rules    │
  └────────────────────────────┬────────────────────────────┘
                               │
                               ▼
  ┌─────────────────────────────────────────────────────────┐
  │                    3. Tax Exemption                     │
  │   Validate Tax ID on Cart & deduct tax at Checkout      │
  └─────────────────────────────────────────────────────────┘
```

1. **Configure Tax Rates:** Keep tax rates synced with your Shopify settings or manually override rates for specific locations.
2. **Set Display Rules:** Choose how prices appear to B2B vs. B2C shoppers across your storefront.
3. **Enable Tax Exemption:** Allow qualified business buyers to enter their Tax ID on the Cart page for instant tax relief at checkout.

### Next step:

To start using B2Bridge Tax, head to [Get started ](/b2bridge-tax-exempt/get-started)to learn more.

You can also [Book a Free Demo](https://calendly.com/b2bridge/demo?utm_source=docs.b2bridge.io) to experience what B2Bridge can do.


# Get started

Setting up B2Bridge Tax takes just a few quick steps to get your storefront tax-ready.

#### 1. Activate the app embed

To display prices and enable the Tax ID validation field on your store, activate the B2Bridge Tax app embed in your Shopify Theme Editor and click Save.

<figure><img src="/files/BCreSpXfThDqHVc1fqkV" alt=""><figcaption></figcaption></figure>

#### 2. Set up Tax Display rules

Navigate to Tax display to create rules that control who sees tax-inclusive vs. tax-exclusive pricing. Choose your audience, price mode, and storefront pages (Product, Collection, Cart, Search, or Home page).

Head to [Tax Display](/b2bridge-tax-exempt/tax-display) to get started.

#### 3. Configure Tax Exemption settings

Go to Tax Exemption exemption to enable B2B tax validation on your Cart page. Select your accepted tax IDs (EU VAT, UK VAT, GST, or ABN) and set customer eligibility and shipping country rules.

Head to [Tax Exemption](/b2bridge-tax-exempt/tax-exemption) to get started.

#### 4. Sync Tax Rates

Under Tax rates, click Sync from Shopify to pull your store's latest tax rates. You can also edit any region manually to apply custom rate overrides that take priority during price calculations.

Head to [Tax Rate](/b2bridge-tax-exempt/tax-rates) to get started.

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Tax Display

Tax Display allows you to show prices with tax (tax-inclusive), without tax (tax-exclusive), or both across your Shopify storefront based on who is shopping and where they are located.

### Key Capabilities

* **Target Specific Customers:** Create rules for all customers, customers with specific tags (e.g., `wholesale`, `vip`), or specific customer emails.
* **Flexible Display Modes:** Display tax-inclusive price only, tax-exclusive price only, or both prices side-by-side with customizable labels and primary highlight options.
* **Specific Page Locations:** Choose where tax display rules apply (Home page, Product pages, Collection pages, Cart page, or Search results).
* **Product Targeting:** Apply rules to all products or select specific products and collections.

### How to Set Up Tax Display Rules

#### Step 1: Create a new rule

1. In your B2Bridge VAT/Tax Exemption & Display admin, go to **Tax display** in the left navigation (or **Tax display setup** button in dashboard).

<figure><img src="/files/DJLdtdLSeA8FQ4UgY0tf" alt=""><figcaption></figcaption></figure>

2. Click **Create your first display rule**

<figure><img src="/files/ctCbIROCp5NxhQNYdM4T" alt=""><figcaption></figcaption></figure>

#### Step 2: Configure General Info & Priority

1. **Rule Name:** Enter a clear, descriptive name for internal reference (e.g., *EU B2B Tax Rule* or *Wholesale Tax Excluded*).
2. **Priority:** Set the priority level for this rule using numbers (`0`, `1`, `2`...).
3. **Status:** Select the Rule enabled checkbox to make the rule active once saved.

<figure><img src="/files/EOlmKKVEEOVBjGALDhxF" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Note: Lower numbers take precedence (e.g., priority `0` runs before priority `1`).
{% endhint %}

#### Step 3: Select Target Audience (Who sees it)

Choose which store visitors will see prices modified by this rule:

* **All customers:** Applies to every visitor on your store.

<figure><img src="/files/VDqxQ89TAdTXeyzpyON6" alt=""><figcaption></figcaption></figure>

* **Customers with specific tags:** Enter specific customer tags (e.g., `b2b`, `wholesale`). Only logged-in customers with these tags will see this pricing format.

<figure><img src="/files/8MPcKV8KY21uuKnlCssY" alt=""><figcaption></figcaption></figure>

* **Specific customer emails:** Search and pick specific customer accounts.

<figure><img src="/files/PR8TO8M3ByFWvDVj7Hdl" alt=""><figcaption></figcaption></figure>

#### Step 4: Select Products (Which products)

Define which catalog items follow this tax display rule:

* **All products:** Applies the rule across your entire store catalog.
* **Specific products / Collections:** Choose specific products or collections to limit where this rule takes effect.

<figure><img src="/files/JlxU6hFsWPIinsErWzdv" alt=""><figcaption></figcaption></figure>

#### Step 5: Configure Pricing Format (How prices show)

Customize how the prices are calculated and presented to your shoppers:

1. **Display mode:**
   * **Both prices (incl. + excl. tax):** Displays both the tax-inclusive and tax-exclusive prices side-by-side.
   * **Tax-included price only:** Shows only the tax-inclusive price and hides the tax-exclusive price.
   * **Tax-excluded price only:** Shows only the tax-exclusive price and hides the tax-inclusive price.
2. **Primary price:** Select which price appears larger/more prominent (*Tax-excluded* or *Tax-included*).
3. **Custom Labels:** Enter custom text to identify each price type (e.g., `incl. VAT`, `excl. VAT`, or `+ Tax`).
4. **Visual Styling:** Set the secondary price font scale ratio (e.g., `0.85`) and pick custom text colors to match your theme.

<figure><img src="/files/pENDJYRdn7Ay9kNk3wey" alt=""><figcaption></figcaption></figure>

#### Step 6: Choose Storefront Placement (Where it runs)

Check the boxes for all page types where this tax display rule should apply:

1. **Home page**

<figure><img src="/files/4qcbm0p1BT3MBJCrLH4I" alt=""><figcaption></figcaption></figure>

2. **Product pages**

<figure><img src="/files/u7ZDyrrZYThmWXlpfUKl" alt=""><figcaption></figcaption></figure>

3. **Collection pages**

<figure><img src="/files/dLLGT2XC9bIE9rpslQu6" alt=""><figcaption></figcaption></figure>

4. **Cart page**

<figure><img src="/files/nSagCgTS0nABVUsx7IOd" alt=""><figcaption></figcaption></figure>

5. **Search results**

   <figure><img src="/files/XUzL38VbXUO6OPaYt8pJ" alt=""><figcaption></figcaption></figure>

#### Step 7: Save and Verify

1. Click **Save** in the top right corner.
2. Visit your storefront (or use a test account with matching customer tags) to verify that the prices and tax labels render as expected.

### How Tax Calculation Works

B2Bridge calculates price displays using tax rates synced from your store. Ensure your rates are synced under **Tax rates** so price calculations remain 100% accurate across all display locations.

<figure><img src="/files/cVFae45AL7UiX6v5Gldh" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Tax Exemption

Tax Exemption allows qualified B2B customers to validate their official Tax ID on the Cart page for automatic tax deductions at checkout.

### Key Capabilities

* **Multi-Region Tax ID Validation:** Supports EU VAT, UK VAT, GST (India), and ABN (Australia).
* **Flexible Customer Eligibility:** Apply tax exemption rules to logged-in users only, or customers with specific tags (e.g., `b2b`, `tax-exempt`).
* **Shipping Country Matching:** Restrict tax exemption to orders where the shipping destination matches the country of the Tax ID.
* **EU VAT Country Filtering:** Choose to accept EU VAT IDs from all 27 EU member states or restrict validation to specific EU countries.
* **Seamless Checkout Deduction:** Tax is automatically removed at checkout as an Order Discount once the Tax ID is validated.
* **Customizable Cart Widget:** Customize all form text, button styles, error messages, and success notifications to fit your store's branding.

### How to Configure Tax Exemption

In your B2Bridge Tax admin, go to **Tax exemption** in the left navigation or **Set up tax exemption** button on the dashboard to configure the following settings:

<figure><img src="/files/OkIob6JISCrmzzXpvSA3" alt=""><figcaption></figcaption></figure>

#### Step 1: Turn the feature on

Select the Enable Tax Exemption checkbox to activate the Tax ID input widget on your Cart page.

<figure><img src="/files/ITPGzMiRoHp1VkFIK6X0" alt=""><figcaption></figcaption></figure>

#### Step 2: Choose Accepted Tax IDs

In **Accepted tax IDs**, tick the ID types relevant to your business: EU VAT, UK VAT, GST (India), and/or ABN (Australia). Only the types you tick will be accepted as valid input on the storefront.

<figure><img src="/files/4mSttcOkUpwJZiXEe9cE" alt=""><figcaption></figcaption></figure>

#### Step 3: Select Target Customer (Who can use it)

Choose who can validate their Tax ID on your store:

* **Logged-in customers:** Only customers who are logged into their store account can see and use the Tax ID widget.
* **Customers with specific tags:** Only logged-in customers with specific tags (e.g., `wholesale`, `b2b`) can validate their Tax ID.

<figure><img src="/files/3qqojcbTIgJA9TmJ5etY" alt=""><figcaption></figcaption></figure>

#### Step 4: Shipping Country Rules (Apply exemption)

* **Any shipping country:** Tax exemption applies regardless of where the order is shipped.

{% hint style="info" %}
B2Bridge calculates and deducts tax based on Shopify's tax settings. Therefore, the customer's shipping location must still belong to an active Market with tax collection enabled in Shopify for tax exemption to take effect.
{% endhint %}

* **Only if shipping country matches the tax ID:** Tax exemption is applied only if the shipping address matches the country associated with the Tax ID.

<figure><img src="/files/sDj4bFxSeJPDH109NRJL" alt=""><figcaption></figcaption></figure>

#### Step 5: EU VAT Countries

*(Applicable when EU VAT is selected)*

* **Default (Unchecked):** Validates Tax IDs across all 27 EU member countries.
* **Selected Countries:** Select specific EU countries (e.g., Germany, France) to restrict validation strictly to those nations.

<figure><img src="/files/lXlwo5NpJGwCtVSikqxT" alt=""><figcaption></figcaption></figure>

#### Step 6: Widget Customization & Styling

Customize form labels, field placeholders, button text, error/success messages, and visual styling (colors and fonts) to match your store branding.

<figure><img src="/files/VbC3GAx8Jo3ErsyG3Neg" alt=""><figcaption></figcaption></figure>

#### Step 7: Save and Verify

1. Click **Save** in the top right corner.
2. Go to your storefront, add a product to cart, open the cart page, and confirm the tax-ID box appears with your chosen text/colors. Enter a test tax ID matching one of your accepted formats to confirm the success/error messaging behaves as expected.

<figure><img src="/files/lmhj17W1B1xej1MXLvNa" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/pf96niW8JmbGh46AfUqx" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Note: B2Bridge deducts the tax amount on the Checkout page using an Order Discount equal to the total tax value. This guarantees full compatibility with Shopify's standard checkout flow without requiring complex order modifications.
{% endhint %}

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# Tax Rates

Tax Rates powers the calculations for all tax-inclusive and tax-exclusive price displays across your storefront. You can automatically sync your rates from Shopify or apply manual rate overrides for specific locations.

### Key Capabilities

* **One-Click Shopify Sync:** Automatically import tax rates configured in your Shopify tax settings.
* **Location-Based Precision:** Manage tax rates down to the Country, Province/State, and City levels.
* **Priority Rate Overrides:** Set custom manual rates for specific regions. Manual overrides take priority over synced rates and are preserved during future syncs.
* **Fallback Global Rates:** Define a baseline tax rate for "Rest of world" to cover countries without specific rate rules.

### How to Manage Tax Rates

In your B2Bridge Tax admin, go to Tax rates in the left navigation to view and manage your rate table:

<figure><img src="/files/xCJ4d3WSlJXCeyyEKxQM" alt=""><figcaption></figcaption></figure>

#### 1. Syncing Rates from Shopify

To pull the latest tax rates from your Shopify tax configuration:

1. Click the **Sync** from Shopify button at the top of the page.
2. The table will update with the latest location rates and display the Last synced timestamp.

<figure><img src="/files/8KfWl2mraBaUbW8AJHbh" alt=""><figcaption></figcaption></figure>

#### 2. Rate Sources & Priority

The rates table displays tax rules categorized by source:

* **Auto (Synced):** Tax rates automatically pulled from your Shopify settings.
* **Manual (Override):** Tax rates manually set or modified inside B2Bridge.

<figure><img src="/files/wEDB1XPKzB0ohCMV1Ads" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Rule Priority: Manual rate overrides always take priority over automatically synced rates and will not be overwritten when you click Sync from Shopify.
{% endhint %}

#### 3. Setting a Manual Rate Override

If you need to apply a custom tax rate for a specific country, state, or city:

1. Find the target region in the tax table and click **Edit**.
2. Enter your custom percentage rate (e.g., `20%` for Vietnam, `15%` for US).
3. Click Save. The rate source will change to **Manual**.

<figure><img src="/files/rdTpdg14Kgu9gLECAbY1" alt=""><figcaption></figcaption></figure>

### How Tax Rates Affect Price Displays

When a Tax Display rule is active on your storefront, B2Bridge checks the customer's location (or default store market) against your Tax rates table to calculate pricing:

```
  Base Product Price (e.g., $100)
               │
               ▼
  Check Location Rate in Tax Rates Table (e.g., 20% VAT)
               │
               ▼
  Calculate Displays:
  • Tax-exclusive: $100.00
  • Tax-inclusive: $120.00
```

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we're here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we'll get back to you as soon as possible.
  {% endhint %}


# App privacy policy

Please read this Privacy Policy carefully.

### 1. Introduction

B2Bridge (hereinafter referred to as “we,” “us,” or “our”) is a partner of Shopify Inc. Our primary objective is to provide Shopify Apps (the “App”) and offer relevant consulting and support services (the “Services”) to merchants who rely on Shopify to power their online stores. This Privacy Policy outlines the manner in which we collect, utilize, and share personal information when you install or use the App in conjunction with your Shopify-supported store. It further elucidates your privacy rights and how applicable laws protect you.

### 2. Personal Information the App Collects

Upon installing the App, we automatically gain access to specific types of information from your Shopify account via Shopify APIs, adhering to the Shopify APIs License and Terms of Use. Additionally, we may collect Personal Data about you when you voluntarily provide such information. The collected information may fall into the following categories and sources:

* Your store name and store email address.
* Customers’ email addresses.
* Information we receive when providing technical or customer support for you.

This information is required to deliver specific services. If you choose not to provide the requested information, kindly consider uninstalling our app from your Shopify Stores.

Moreover, when accessing the B2Bridge website (the “Site”), we may employ various technologies to collect personal information, including but not limited to:

* Cookies: Data files placed on your device or computer, often containing an anonymous unique identifier. For more information about cookies, including instructions on how to disable them, please visit [http://www.allaboutcookies.org](http://www.allaboutcookies.org/).
* Log Files: These files track actions occurring on the Site, collecting data such as your IP address, browser type, Internet service provider, referring/exit pages, and date/time stamps.
* Web Beacons, Tags, and Pixels: Electronic files used to record information about how you browse the Site.

### 3. Why Do We Collect Your Personal Information?

We collect your data for the following reasons:

* To generate and save app configurations for your store.
* To maintain contact with you to resolve any issues you encounter while using our app.
* To facilitate the execution of various features within our app.
* To provide you with information or advertising related to our products or services.

### 4. Information Storage and Privacy Commitment

Your personal and customer data will be stored on the servers of B2Bridge in the United States, utilizing the AWS system, until you submit a cancellation request or uninstall our app from your store.

B2Bridge is steadfast in ensuring the security and confidentiality of your data. We employ the latest technologies and software to deter data theft, unauthorized access, and disclosure, thereby safeguarding all the information we collect online. However, please be aware that no method of transmission over the internet or electronic storage is completely secure.

### 5. Our Cookies Policy<br>

Cookies are small text files created when users visit websites, improving the user experience by remembering login information, theme selections, preferences, and other custom functions. We employ cookies for the following purposes:

* Strictly Necessary Cookies: These are essential for the operation of our website and enable you to navigate and use its features.
* Performance and Analytics Cookies: These cookies help us understand how visitors interact with our website, allowing us to improve its performance.
* Functionality Cookies: These cookies are used to recognize you when you return to our website and personalize content for you.

### 6. Links to Other Websites

While our app may contain links to other websites, please be advised that we do not have control over these external websites. Therefore, we cannot assume responsibility for the protection and privacy of any information you provide while visiting such sites. Furthermore, these external websites are not governed by this privacy statement, so it is advisable to exercise caution and review the privacy statement relevant to the respective website.

### 7. Summary of Your Rights Under:

#### **7.1. GDPR European Privacy Rights**

If you are a resident of the European Economic Area, you possess the following rights:

* Right to be informed: You have the right to know whether we hold your Personal Information and the purpose for which your Personal Information is processed.
* Right of access: You are entitled to obtain a copy of your Personal Information, along with an explanation of the categories of Personal Information being processed, the purposes of such Processing, and the details of third parties to whom the Personal Information may have been disclosed.
* Right to rectification: You have the right to correct/update your Personal Information available with us.
* Right to erasure: You are entitled to have your Personal Information erased from our customer relationship management (CRM) databases. It is important to note that we may need to retain certain Personal Information about you for legal and internal business reasons, such as fraud prevention. We will retain your Personal Information for as long as necessary to provide you with the websites and apps you are eligible to use and as needed to comply with our legal obligations and enforce our agreements.
* Right to data portability: You are entitled to obtain and reuse your Personal Information. You can either obtain the Personal Information from us or provide it to a third party if you so wish, or request us to transfer your Personal Information directly to a third party.
* Right to object/restrict Processing or both: You have the right to object/restrict the Processing of your Personal Information in certain circumstances, including situations where the Personal Information is inaccurate (during the period when we verify the Personal Information), when the Personal Information is no longer required for the intended purpose of Processing, or in connection with direct marketing. You can prevent or discontinue marketing communications by checking certain boxes on the forms used to collect your Personal Information, or by utilizing opt-out mechanisms in the emails we send you. You also have the right not to be subject to a decision based solely on automated Processing, including profiling, which produces legal effects that significantly affect you.

In these cases, we will retain minimal Personal Information to record your choice of opting out from further contact. For exercising any of the aforementioned rights, please contact us at <help@b2bridge.io>.

#### **7.2. California Privacy Rights**

If you are a resident of California, please note the following details regarding the personal information we collect about you and your rights under the California Consumer Privacy Act (CCPA):

Subject to certain limitations, the CCPA provides you with the following rights:

* Right to access: You have the right to request access to details on the categories or specific pieces of personal information we collect and/or sell, including how we use and disclose this information, and to whom we may sell it.
* Right to deletion: You can request the deletion of any of your personal information.
* Right to opt-out: You have the right to opt-out of any “sale” of your personal information that may occur.
* Right to non-discrimination: We will not discriminate against you for exercising any of the above rights.

To exercise your California privacy rights under the CCPA, please send us an email. We will verify your request using information associated with your account, including your email address. Further identification may be required. You may also designate an authorized representative to act on your behalf.

#### **7.3. Nevada Privacy Rights**<br>

Nevada law obliges us to offer certain Nevada residents the option to opt-out of the “sale” of “personally identifiable information,” as defined by Nevada law. We do not engage in such activities. However, if you are a Nevada resident who has purchased goods or services from us, you may submit a request under Nevada law to opt-out of any potential future sales by <emailinghelp@b2bridge.io>.

### **CONTACT US**

If you have any questions about Our App or this Privacy Policy, please contact us by email at <help@b2bridge.io>, by post at *20F, Viwaseen Tower, 48 To Huu Str, Trung Van Ward, Nam Tu Liem Dist., Hanoi, Viet Nam*. Please ensure that your query is clear, particularly if it is a request for information about the data we hold about you.


