> For the complete documentation index, see [llms.txt](https://docs.roadmap.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roadmap.so/trade-and-b2b/shipping/split-shipping-rates-between-b2b-and-dtc-customers.md).

# Split shipping rates between B2B and DTC customers

Show different Shopify shipping rates to B2B and DTC customers using Roadmap delivery customizations.

Use this setup when B2B customers should see different shipping rates from DTC customers.

Roadmap controls which Shopify shipping rates appear at checkout.

Shopify still controls the actual rate price, transit time, and shipping zones.

### How it works

A customer counts as **B2B** when their account is linked to a Shopify company.

A customer counts as **DTC** when they are not linked to a company.

Roadmap checks the title of each Shopify shipping rate.

If the title contains your chosen keyword, Roadmap can show that rate to:

* all customers
* B2B customers only
* DTC customers only

{% hint style="warning" %}
The matching text sits inside the shipping rate title.

Customers can see that title at checkout.

Use clear wording such as `B2B`, `Wholesale`, or `Trade`.
{% endhint %}

### Before you start

Make sure:

* Shopify B2B is set up and your B2B customers are linked to a company
* you know the keyword you want to use in your shipping rate titles
* you know which shipping profiles and zones need separate B2B rates

If you use more than one shipping zone, repeat this setup in each zone.

### Step 1: Configure the delivery customization

{% stepper %}
{% step %}

#### Open Shopify shipping settings

In Shopify, go to **Settings → Shipping and delivery**.
{% endstep %}

{% step %}

#### Open Delivery customizations

Scroll down to **Delivery customizations**.
{% endstep %}

{% step %}

#### Add the Roadmap customization

Add **B2B Shipping Rates by Roadmap**.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FeRsnN6c9S4mbA612Yfsr%2FScreenshot%202026-04-16%20at%202.53.00%E2%80%AFPM.png?alt=media&amp;token=5cead558-7ecf-46a9-9a50-fed1397b7651" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Choose who should see the matched rates

Choose one of these options:

* **All customers**
* **B2B customers only**
* **DTC customers only**

To split B2B and DTC shipping rates, choose **DTC customers only**.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FYYlmKicMIucOpLKyELVB%2FScreenshot%202026-04-16%20at%203.20.51%E2%80%AFPM.png?alt=media&amp;token=9458b993-9972-4a73-8dc6-ccb2e779a775" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Enter the title match text

Enter the text that Roadmap should look for in the shipping rate title.

For example, use `B2B`.

Any Shopify shipping rate with `B2B` in the title will match this rule.

Select to show to 'B2B customers only'

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2F6AF0Qqg4f2j8x29eXvLV%2FScreenshot%202026-04-16%20at%203.21.54%E2%80%AFPM.png?alt=media&amp;token=bf0fb9f3-22c6-4ccb-9445-ff92cd44c765" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Save the configuration

Save the setup.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FL1PhQcrsx9JDjU6T1wzU%2FScreenshot%202026-04-16%20at%203.11.32%E2%80%AFPM.png?alt=media&amp;token=04e3f8ad-e8a8-44e3-b6d8-b91a22a32868" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### Step 2: Create the shipping rates in Shopify

After the customization is saved, create the actual rates in Shopify.

{% stepper %}
{% step %}

#### Open your shipping profile

In **Settings → Shipping and delivery**, open the shipping profile you want to update.
{% endstep %}

{% step %}

#### Choose a shipping zone

Open the zone where the B2B rate should apply.

If you use multiple zones, repeat this process for each one.
{% endstep %}

{% step %}

#### Add a shipping option

Click **Add rate** or **Add shipping option**.
{% endstep %}

{% step %}

#### Put the keyword in the rate title

Add the same keyword you used in Roadmap to the shipping rate title.

Examples:

* `B2B Flat Rate`
* `B2B Orders Under $500`
  {% endstep %}

{% step %}

#### Finish the rate setup

Set the usual Shopify shipping details:

* rate type
* price
* transit time

Then save the rate.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2F5YmfVcnL2GfC58xEfpyU%2FScreenshot%202026-04-16%20at%203.00.14%E2%80%AFPM.png?alt=media&amp;token=869a44f0-4d68-4561-a0dd-b480151d283f" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Add multiple rates if required

Repeat the process until all rates and profiles are covered.
{% endstep %}
{% endstepper %}

### Example split

A common setup looks like this:

* `Standard Shipping` for DTC customers
* `B2B` titled rate for B2B customers

If Roadmap is set to **B2B customers only** with the keyword `B2B`:

* B2B customers see `B2B Flat Rate`  options only
* DTC customers do not see `B2B` rates and will see all other rates

This lets you keep standard rates for DTC while showing separate rates to trade customers.

### Test the setup

Run both tests before going live:

1. Test with a customer who is **not** linked to a company.
2. Confirm they only see the DTC rates.
3. Link that customer to a company.
4. Test checkout again.
5. Confirm they now see only the rates that contain your B2B keyword.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FXpzYdkN4PXBJt40WPPxR%2FScreenshot%202026-04-16%20at%203.26.19%E2%80%AFPM.png?alt=media&amp;token=1f4b677a-4216-4db2-9ec7-de0a14635723" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If the B2B rate only appears in one region, check the shipping zones first.

The rate must exist in every zone where you want B2B customers to use it.
{% endhint %}

### Common mistakes

Check these first if the split is not working:

* the keyword is missing from the Shopify shipping rate title
* the test customer is not linked to a company
* the B2B rate was added to one zone but not the others
* the 'title contains' in incorrectly formatted in the shipping rate title (it is case sensitive)
* the rate title uses customer-facing wording that is unclear

### Need DTC-only rates instead?

Use the same setup, but choose **DTC customers only** in the Roadmap customization.

Then create shipping rates with a DTC-specific keyword in the title.

Roadmap will show those matched rates only to customers who are not linked to a company.


---

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

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

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

```
GET https://docs.roadmap.so/trade-and-b2b/shipping/split-shipping-rates-between-b2b-and-dtc-customers.md?ask=<question>&goal=<endgoal>
```

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

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

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