Back to E-commerce Tips

How to Hide Retail Promotions from B2B Buyers in Shopify

E-commerce Tips
How to Hide Retail Promotions from B2B Buyers in Shopify

Most Shopify stores have one cart drawer serving two very different audiences. Retail shoppers expect a holiday flash sale, a free-shipping bar at $75, and a gift-with-purchase at $150. Wholesale buyers expect their negotiated rate to apply quietly at checkout — and nothing else. The moment those two audiences share a cart, retail promotions can quietly leak into wholesale orders and shave margin off pricing you already negotiated. If you're searching for how to hide retail promotions from B2B buyers in Shopify, the answer is a single condition: "Customer is not a B2B customer".

Now that Shopify's native B2B features are available beyond Shopify Plus, more stores have company accounts and DTC shoppers landing in the same cart drawer for the first time. The cart logic that worked for a single audience suddenly has a margin problem.

The B2B Double-Discount Problem

A wholesale buyer's "price" isn't a list price. It's a negotiated rate — sometimes 20%, 30%, or 50% off retail — baked into a B2B catalog or company-account pricing rule. That margin is already gone before the cart loads.

Now add a sitewide retail promotion on top:

  • A holiday flash sale: "30% off everything"
  • A free-shipping bar set at $75 — a threshold a wholesale order clears almost by accident
  • A gift-with-purchase that triggers at $150 — also trivially cleared by a $3,000 wholesale order
  • A retail discount triggered at $200 spend

Without segmentation, the wholesale order gets:

  1. Their negotiated 30% wholesale price
  2. Plus an automatic 30% flash-sale discount
  3. Plus subsidized shipping you already factored into wholesale margins
  4. Plus a "free gift" that was budgeted as a retail acquisition cost

That's the double-discount. The margin you negotiated away in the wholesale agreement is being subtracted from again by promotions designed for full-priced retail traffic. Over a quarter's worth of B2B orders, that adds up fast.

The Negation Pattern: Hiding Retail Promotions from Wholesale Customers

Two parallel paths in a warehouse, one for retail packages and one for wholesale pallets, isometric business illustration

The fix is a single per-reward condition. In Cart Designer → Rewards, open any V2 reward and expand the Conditions card. Two condition types matter here:

  • Customer is a B2B customer — matches buyers signed in against a Shopify company account
  • Customer is not a B2B customer — matches everyone else: DTC customers and guests

For retail promotions, you want the second one. Add Customer is not a B2B customer to every retail-only reward — flash sales, free-shipping bars, gift-with-purchase tiers, percentage-off thresholds — and the reward bar simply doesn't render those tiers when a B2B buyer is signed in. The order-discount function applies the same condition at checkout, so even if the reward bar were somehow bypassed, the discount itself won't attach to a wholesale order.

The negation pattern is important for one reason: guests count as DTC. A logged-out visitor matches "Customer is not a B2B customer" because they're not on a company account. That's exactly what you want — your retail promotions should still attract anonymous traffic. The negation only filters out B2B buyers, not everyone who isn't logged in.

This mirrors the inverse approach covered in our B2B rewards without customer tags guide, which uses the positive condition for wholesale-only rewards. Most stores end up using both.

Three B2B vs Retail Cart Scenarios

A protective shield over a stack of business contracts and price agreements, soft isometric illustration

The clearest way to see what the condition does is to compare what the same cart looks like for each audience.

Scenario 1: Holiday flash sale (30% off)

A "30% off everything" automatic discount is the highest-risk promotion for B2B margin leakage. It's also the most common — every Black Friday, Memorial Day, and end-of-quarter push.

Without the condition:

  • DTC shopper sees: "30% off your order" applied at checkout
  • B2B buyer sees: Their wholesale price minus an additional 30% — a 51% effective discount when stacked on a 30% wholesale rate

With Customer is not a B2B customer on the flash-sale reward:

  • DTC shopper sees: "30% off your order" applied at checkout
  • B2B buyer sees: Their negotiated wholesale price, unchanged. The flash sale never renders in their reward bar, and the discount function refuses to apply at checkout

This is the most important rule to set before any storewide percentage promotion goes live. See our scheduled flash sale guide for the full setup once the audience filter is in place.

Scenario 2: Free-shipping threshold

A retail free-shipping bar at $75 is sized for an average DTC order — three skincare bottles, a pair of shoes, a small electronics order. A B2B order at $4,000 clears that threshold without thinking about it, but the actual shipping cost on a wholesale pallet is dramatically higher than on a retail box.

The retail bar should never appear for B2B buyers. Two approaches work:

  • Option A: Add Customer is not a B2B customer to the $75 retail free-shipping reward. B2B buyers see no shipping reward in the cart, which is correct if their wholesale agreement handles shipping separately.
  • Option B: Run two parallel tiers — the $75 retail reward with Customer is not a B2B customer, plus a $750 B2B reward with Customer is a B2B customer. Each buyer sees only their tier.

Option B is the cleanest for stores that want a shipping bar visible to both audiences but at completely different thresholds. The free-shipping progress bar setup is identical either way — only the conditions and threshold change.

Scenario 3: Gift-with-purchase

A free gift at $150 is a retail acquisition tactic. The unit economics assume the gift's COGS is offset by a small lift in conversion at the threshold. Those unit economics break down completely when a wholesale buyer placing a $3,000 order also walks away with the gift.

Add Customer is not a B2B customer to the Single gift or Multi gift reward, and the gift simply doesn't appear for B2B buyers. The reward bar shows their other rewards (if any) — typically just their negotiated discount — and the gift product never gets attached to wholesale orders. The same logic applies to letting customers choose their own free gift — add the negation condition and the picker only renders for DTC traffic.

Where the B2B Condition Is Enforced

Dual-layer protection illustration showing how Shopify cart and checkout both enforce B2B promotion filtering

One detail worth understanding: the Customer is not a B2B customer condition is enforced in two places.

  • In the reward bar (storefront). When the cart loads, the bar checks whether the buyer is a B2B customer and hides any retail tier that excludes them. The buyer never sees the tier exist.
  • In the order-discount function (checkout). Even if a stale page or a script somehow rendered the retail tier, the discount itself won't apply at checkout because the function evaluates the same condition server-side.

The dual enforcement matters because storefront-only visibility isn't a margin guarantee. If a retail discount can attach to a wholesale order at checkout, the visual fix doesn't help. The condition has to be checked at the point where the discount actually mints, which is exactly what the order-discount function does.

When to Use Customer Tags Instead

Native B2B detection covers the case where Shopify itself knows the buyer is on a company account. Two situations still call for Customer has tag instead:

  • Third-party B2B apps. Buyers managed through SparkLayer, B2B Wholesale Club, or another app that doesn't use Shopify's native company-account system won't carry the B2B flag. Tag those customers and use Customer does not have tag: wholesale for retail rewards.
  • Mixed wholesale models. If part of your wholesale book uses native B2B and part uses customer tags (e.g., trade discount accounts), combine both conditions — exclude either flag from retail-only rewards.

For the base "is this a wholesale buyer or not" question on stores using Shopify's native B2B, the negation condition is the cleanest answer.

Setup Steps

  1. Go to Cart Designer → Rewards and open the Rewards tab
  2. Click on an existing retail reward — or create a new flash sale, free-shipping tier, or gift reward
  3. Expand the Conditions card in the reward's settings panel
  4. Click Add condition and select Customer is not a B2B customer
  5. Save

Repeat for every retail-targeted reward. Then test by signing in as a B2B buyer (a customer attached to one of your company accounts in Shopify Admin → Customers → Companies) and confirming none of the retail rewards render. Sign in as a DTC customer (or browse as a guest) and confirm the retail rewards appear normally.

Per-reward conditions are available on the Professional plan. For the complete walkthrough of conditions, scheduling, and market targeting, see the Rewards V2 setup guide.


Margin protection in a one-cart-two-audiences store comes down to one condition. Add Customer is not a B2B customer to every retail promotion, run Customer is a B2B customer for the wholesale-only ones, and the same cart drawer can serve both audiences without quietly subsidizing wholesale orders out of retail promo budgets.

E-commerceShopifyB2BWholesaleMargin Protection