What you'll build
Two completely separate sets of shipping options — one for retail customers, one for business customers. Retail customers will see standard and express home delivery. Business customers with the wholesale tag will see business freight and pallet delivery instead. Neither group will see the other's options.
Before you start
- You have at least two shipping options created: one for home delivery (B2C) and one for freight or pallet delivery (B2B).
- Your store tags wholesale customers with the tag
wholesale. Confirm this in your store's customer records before building rules. - You understand what "hidden by default" means — the option will never show unless a rule explicitly shows it.
Step 1: Tag your B2B shipping options as hidden by default
Open each B2B shipping option and find the Default visibility setting. Set it to Hidden.
Do this for:
- "Business Freight"
- "Pallet Delivery"
This is the most important step. If you skip it and rely only on show rules, the options will appear to all customers until the rule engine has evaluated them — which can cause a brief flash of the wrong options, or show them to logged-out customers where tag data is unavailable.
Tip: Always make B2B-exclusive options hidden by default. A show rule then acts as a gate: the option only appears when the condition is met. This is safer than using only hide rules.
Step 2: Add show rules to your B2B options
For Business Freight, add a new rule:
| Rule field | Value |
|---|---|
| Rule name | Show for wholesale customers |
| Condition: field | customer_tag |
| Condition: operator | sameAs |
| Condition: value | wholesale |
| Action | enable_method |
| Conditions match | All |
Repeat the same rule configuration for Pallet Delivery.
Step 3: Add hide rules to your B2C options
Your B2C options (Standard Home Delivery and Express Home Delivery) are visible by default — that's correct. Now add a rule to each that hides them when the customer is a wholesale buyer.
For Standard Home Delivery, add a new rule:
| Rule field | Value |
|---|---|
| Rule name | Hide from wholesale customers |
| Condition: field | customer_tag |
| Condition: operator | sameAs |
| Condition: value | wholesale |
| Action | disable_method |
| Conditions match | All |
Repeat for Express Home Delivery.
Warning: If you only add hide rules to B2C options without also setting B2B options to hidden by default, wholesale customers will briefly see both sets of options before rules are applied.
Step 4: Review your setup
| Shipping option | Default visibility | Rule |
|---|---|---|
| Standard Home Delivery | Visible | Hide if customer_tag = wholesale |
| Express Home Delivery | Visible | Hide if customer_tag = wholesale |
| Business Freight | Hidden | enable_method if customer_tag sameAs wholesale |
| Pallet Delivery | Hidden | enable_method if customer_tag sameAs wholesale |
How it works
When a customer reaches checkout, Shipit evaluates all rules against the current session. For a retail customer with no tags, no show rules fire for the B2B options (so they stay hidden), and no hide rules fire for the B2C options (so they stay visible). For a customer tagged wholesale, the hide rules remove the B2C options and the show rules reveal the B2B options.
Testing it
- Open the Checkout tester and enter a customer with no tags. Confirm you see Standard and Express Home Delivery only.
- Change the customer to one tagged
wholesale. Confirm you see Business Freight and Pallet Delivery only. - Try a guest (no customer data). Confirm the guest sees the B2C options.
Tip: If a wholesale customer still sees B2C options, double-check that the hide rule condition value matches the tag exactly, including case. Tags are case-sensitive.
