> 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/use-checkout-blocks-to-restrict-native-pickup-to-b2b.md).

# Use Checkout Blocks to restrict native pickup to B2B

Restrict Shopify native pickup locations to B2B buyers with Checkout Blocks on Shopify Plus.

Last verified against Shopify: April 23, 2026

This article explains how to use Checkout Blocks to restrict native pickup to B2B buyers.

It focuses on the Shopify Plus-only delivery customisation that sits on top of native **Pickup in store**.

Use this setup only after native pickup is already active for B2B.

{% hint style="warning" %}
This article applies only to Shopify Plus merchants.

Customising the delivery step of checkout, including hiding pickup locations from specific customer types, requires Plus.

This is a platform restriction, not an app restriction.

If the store is not on Plus, use pickup as a shipping rate inside a B2B shipping profile instead.
{% endhint %}

### What Checkout Blocks can and cannot do

Checkout Blocks is Shopify's free first-party app for checkout customisation.

It uses Shopify Functions under the hood.

For Plus merchants who do not want to commission a custom delivery customisation function, it is the most straightforward path.

Per Shopify's delivery customisation documentation, Checkout Blocks cannot hide the **Pick up** method itself.

What it can do is hide individual pickup locations based on conditions such as `customer is B2B`, `customer is logged in`, customer tags, company membership, cart conditions, shipping location, or market.

### Before you start

Confirm these three points before you build the rule:

* native **Pickup in store** is already enabled for the location
* B2B pickup is already activated on the store by Shopify Support
* the store is on **Shopify Plus**

If you still need the main decision framework, use [Configuring Pickup for B2B Customers on Shopify: Two Approaches](/trade-and-b2b/shipping/configuring-pickup-for-b2b-customers-on-shopify-two-approaches.md).

### Set up the Checkout Blocks rule

{% stepper %}
{% step %}

#### Install Checkout Blocks

Install [Checkout Blocks](https://apps.shopify.com/checkout-blocks) from the Shopify App Store.
{% endstep %}

{% step %}

#### Create a delivery customisation

In **Apps → Checkout Blocks**, create a delivery customisation.
{% endstep %}

{% step %}

#### Target the pickup location

Create a rule that hides the specific pickup location when the customer is not a B2B buyer.

Do not try to hide the **Pick up** method itself.
{% endstep %}

{% step %}

#### Add the condition

In most stores, the cleanest rule is `customer is B2B`.

If you need tighter control, use `buyer belongs to a company`, `customer is logged in`, customer tags, customer order count, customer lifetime spend, customer email, Shopify Market, shipping country, province, zipcode, or cart-level conditions.
{% endstep %}

{% step %}

#### Apply the rule to the checkout profile

Apply the customisation to the relevant checkout profile in **Settings → Checkout**.
{% endstep %}

{% step %}

#### Save, publish, and test

Save and publish the customisation.

Then test as a B2B customer, a DTC customer, and a DTC guest.
{% endstep %}
{% endstepper %}

### How this behaves at checkout

If all pickup locations are hidden for a given customer, the **Pick up** tab has nothing to show and effectively disappears.

If some pickup locations are hidden and others remain visible, the **Pick up** tab still appears and only shows the visible locations.

For merchants with a single pickup location, hiding that one location from DTC customers creates the same end-user result as hiding the **Pick up** tab would.

### Gotchas

{% hint style="warning" %}
Rules apply per pickup location and per active checkout profile.

If either changes, replicate the rule before testing.
{% endhint %}

* Rules apply per pickup location. If you have multiple pickup locations, repeat the rule for each one.
* You cannot hide the **Pick up** method itself. You can only hide individual pickup locations within it. If any pickup location remains visible, the **Pick up** tab still shows.
* Guest DTC checkouts have no customer context. Rules based on `customer is B2B` correctly hide pickup. Tag-based rules also hide pickup for guests because there is no tag to evaluate.
* Checkout customisations apply to the active checkout profile. If you keep draft profiles for tests or seasonal campaigns, copy the rule into those too.
* Changes can take a few minutes to propagate. Wait a moment before retesting.

### Alternatives on Plus

You can also use a third-party app built on the Delivery Customization Function API or commission a custom Shopify Function in-house.

The same platform constraint still applies.

These routes can hide pickup locations, not the **Pick up** method itself.

### If you are not on Plus

If B2B-only pickup visibility is a hard requirement and the store is not on Plus, pickup as a shipping rate is the only supported path.

Upgrading to Plus purely to hide pickup from DTC is rarely worth it.

Most merchants either accept DTC visibility on native pickup or stay with the shipping-rate approach.

### Related articles

* [Configuring Pickup for B2B Customers on Shopify: Two Approaches](/trade-and-b2b/shipping/configuring-pickup-for-b2b-customers-on-shopify-two-approaches.md)
* [Split shipping rates between B2B and DTC customers](/trade-and-b2b/shipping/split-shipping-rates-between-b2b-and-dtc-customers.md)
* [Multiple shipping profiles in B2B: what to know](/trade-and-b2b/shipping/multiple-shipping-profiles-in-b2b-what-to-know.md)


---

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

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.roadmap.so/trade-and-b2b/shipping/use-checkout-blocks-to-restrict-native-pickup-to-b2b.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
