# Free shipping rules for wholesale and B2B customers on Shopify

Tag your wholesale customers in Shopify, such as with Wholesale, then use a **Customer tag** condition to give them their own shipping offer, or to leave them out of retail free shipping. Shopify's native free shipping discount has no customer tag condition, and it can't mix customer rules with rate names or product rules. [RM: Advanced Free Shipping](https://apps.shopify.com/better-free-shipping) does both. It costs $9.90 USD every 30 days, with a 7-day free trial, billed by Shopify.

One store that had spent weeks trying to give free shipping to B2B clients put it this way on the Shopify App Store: "this app solved it in less than 2 minutes." (Marketplace Supplies)

## The setup: two discounts, one tag each

Most stores want retail customers on one offer and wholesale customers on another. Build them as two discounts, each with one **Customer tag** condition.

**Discount 1: retail free shipping over $75**

1. Click **Create Shipping Discount** and choose **Automatic discount**.
2. Under **Conditions**, add **Customer tag** **Does not contain** Wholesale.
3. In the same rule group, add **Cart total** **Is at least** 75.
4. Under **Discount setup**, choose **Shipping**, **All shipping rates**, **Free**.

**Discount 2: wholesale free freight over $500**

1. Create a second **Automatic discount**.
2. Under **Conditions**, add **Customer tag** **Contains** Wholesale.
3. In the same rule group, add **Cart subtotal** **Is at least** 500. Subtotal is measured before discounts, so wholesale price lists or codes don't push an order under the line.
4. Under **Discount setup**, choose **Shipping**, then **Choose specific rates**, and pick your freight or Ground rate. Set **Discount value** to **Free**.

![A Customer tag condition in RM: Advanced Free Shipping set to Contains, with the tag VIP added. A wholesale setup uses the same condition with the tag Wholesale](/images/customer-tag.png)

## What customers pay

The store has Ground at $14.00 and Express at $38.00.

- **Retail customer, $90 cart:** Ground shows ~~$14.00~~ Free. They pay $90.00.
- **Wholesale customer, signed in, $90 cart:** the retail discount doesn't apply to them, and $90 is under $500. They pay $104.00 with Ground.
- **Wholesale customer, signed in, $620 order:** Ground shows ~~$14.00~~ Free. Express stays $38.00. With Ground, they pay $620.00.

## Signed-in customers and guests

Customer tags only match customers who are signed in to their account at checkout. That fits wholesale well, because B2B buyers usually sign in to see their prices.

- A guest has no tags. So **Does not contain** Wholesale includes every guest, and **Contains** Wholesale never matches one.
- A wholesale buyer who checks out as a guest, or with a different email, is treated as retail.
- Tags added by a wholesale or loyalty app work, as long as the tag is on the customer's Shopify profile.

To target a group that includes guests, choose **Specific customer segments** under **Customers** instead. Shopify matches segments by the email or phone number entered at checkout.

## B2B companies on Shopify

To give free shipping to B2B company buyers, tag the customer profiles of each company's contacts, such as with B2B or Wholesale, and use the **Customer tag** setup above. One tag across all your trade accounts keeps the rule simple.

## More wholesale offers

- **Wholesale gets a capped rate, not free.** Use **Fixed Price**, such as $10 on Ground. Rates already under $10 stay as they are.
- **Retail pays, wholesale gets 50% off freight.** **Customer tag** **Contains** Wholesale, then **Percentage** 50.
- **Free shipping for trade accounts by state.** Add **Province / State** **Is one of** to the wholesale rule group, plus a **Shipping country** condition so a code like WA only matches one country.
- **Wholesale only on the bulk collection.** Add **Cost of items from collection (subtotal)** **Is at least** 500 for that collection.

Keep each discount to one **Customer tag** condition. If you need retail and wholesale rules side by side, use separate discounts as shown above.

## Testing

Turn on **Test mode**, sign in at checkout as a test customer with the Wholesale tag, and use ABC123 as the shipping first name. Then try a retail test account and a guest checkout. See [test a shipping discount](/guides/test-a-shipping-discount.md).

Related guides: [free shipping for retail, not wholesale](/guides/free-shipping-for-retail-not-wholesale.md), [free shipping for VIP customers](/guides/free-shipping-for-vip-customers.md) and [threshold before or after discounts](/guides/threshold-before-or-after-discounts.md). For the full condition list, see [conditional free shipping](/conditional-free-shipping.md).

RM: Advanced Free Shipping is Built for Shopify and rated 5.0 on the Shopify App Store. It costs $9.90 USD every 30 days after a 7-day free trial, billed by Shopify, and has free personalised setup. Install it from the [Shopify App Store](https://apps.shopify.com/better-free-shipping).
