Salon Supply DistributionWholesale / B2BCross-sell8 min read

Reorder Essentials, Stacked on Wholesale: A B2B Cross-sell

How a salon supply distributor reminded wholesale buyers of the consumables they always forget, with a saving stacked on top of wholesale pricing.

A wholesale cart that clears two trigger floors and shows reorder essentials at 8% off the wholesale priceReorder essentials, stacked on wholesaleTrigger: Pro Color BrandUnits14 of 6Spend$486 of $300Wholesale segmentColor shades excluded from the poolReorder essentialsDeveloper+8% offFoils$31.00$28.52Gloves+8% offBarrier cream+8% offStack on top of product discounts · max 2 discounted units per add-on

A Shopify B2B salon distributor reminded wholesale accounts of consumables with a Discount Prime Cross-sell: a vendor trigger requiring 6 units and $300 spend, a same-vendor pool excluding color shades, 8% off up to 2 units, Stack on top of product discounts over Wholesale / B2B Pricing, and Wholesale segment eligibility. In this scenario, consumables attach rate on color orders rose from 34% to 71%.

At a glance

Challenge
Salons forgot foils, gloves and developer on every color reorder, and account managers could not call 620 accounts every two weeks.
Approach
A vendor-triggered Cross-sell with quantity and spend floors, a vendor pool minus color shades, and 8% stacked on Wholesale / B2B Pricing.
Discount Prime campaign types used
Cross-sellWholesale / B2B Pricing

Scenario-based case study: the merchant profile is modeled on patterns across real Discount Prime stores, not a single named customer.

Introduction

Wholesale buyers reorder on autopilot. Same products, same quantities, same vendor, every few weeks.

And every few weeks, they forget the same two things.

The traditional fix is human:

"Have the account managers call and ask if they need foils this time."

A solutions architect asks a scaling question:

"Can the cart ask that question, only on real orders, and make yes slightly cheaper than no?"

In wholesale there is a second question hiding behind the first: does the add-on discount survive the account's standing wholesale price? This case study designs a reorder reminder for a salon supply distributor that built it into the cart and sweetened it on top of wholesale pricing.

Merchant Scenario

Consider Meridian Salon Supply, a fictional Shopify B2B distributor selling professional hair color, developer and consumables to salons.

AttributeDetail
IndustryWholesale / B2B (Salon Supply)
PlatformShopify
Annual Revenue$9.4 Million
Products1,200
Wholesale Accounts620
Average Wholesale Order$820

Salons ordered color every two weeks. They ran out of gloves, foils and developer at the same rate, and reordered those only when they had already run out.

The Reminder Nobody Was Sending

Account managers used to call. "Need foils this time?"

That did not scale to 620 accounts. The team wanted the cart to ask the question, once the order was big enough to matter, and to make yes slightly cheaper than no.

Business Objectives

PriorityObjective
1Remind salons of matching consumables on every real color order
2Show the reminder only on genuine wholesale orders, not samples
3Add a saving on top of the account's wholesale price, not instead of it
4Keep the offer a reorder nudge, not a volume program
5Show the offer to wholesale accounts only

Evaluating the Options

Option 1: Account Manager Calls

Advantages

  • Personal, knows the account.
  • Can spot account-specific gaps.

Disadvantages

  • Does not scale to 620 accounts every two weeks.
  • Happens after the order, not inside it.
FactorAssessment
Architecture Score★★☆☆☆

Option 2: Cross-sell With Best Deal Wins

Advantages

  • Same reminder in the cart.
  • Default combination setting.

Disadvantages

  • Compares 8% to the wholesale discount and keeps the wholesale one.
  • The add-on shows no extra saving, so the reminder has no sweetener.
FactorAssessment
Architecture Score★★☆☆☆

Option 3: Cross-sell Stacked on Wholesale Pricing

Advantages

  • 8% comes off the wholesale price.
  • Quantity and spend floors keep it to real orders.
  • Vendor pool matches the salon's color system.

Disadvantages

  • Pool ranks by sales, not by what this account forgot.
  • Spend floor is measured per cart, not per month.
FactorAssessment
Architecture Score★★★★★

Comparison Matrix

ApproachScales to 620 AccountsSaving on Top of WholesaleReal Orders OnlyEffort
Account manager calls✕NoNegotiated✓YesHigh
Cross-sell, Best deal wins✓Yes✕No✓YesLow
Cross-sell, Stack✓Yes✓Yes✓YesLow

The Discount Prime Configuration

SettingValue
Campaign NameReorder Essentials: Pro Color Brand
Campaign TypeCross-sell
Offer Title (storefront)Reorder essentials
TriggerVendor: Pro Color Brand, min quantity 6, min spend $300
OfferPool, Vendor: Pro Color Brand
Items to Show4
ExclusionsHair color shades (so the pool offers consumables, not more color)
Offer Discount% off, 8%
Max Discounted Units2
Apply WhenTrigger and add-on both in cart
Combinations & OverlapStack on top of product discounts
Customer EligibilitySpecific customer segment: Wholesale
PlacementCart

A vendor trigger with a quantity and spend floor. A vendor pool with the color shades excluded. 8% on top of wholesale.

Why Cross-sell Fits

The trigger had two floors: at least 6 units from the vendor and at least $300 of it. That is a real wholesale order, not a sample, and below either floor the offer did not show. Cross-sell's trigger supports quantity and spend thresholds together, and Meridian used both.

The pool was the same vendor, so every recommended consumable matched the color system the salon already used. The exclusions list removed the color shades themselves. Otherwise the pool would have recommended more of what was already in the cart.

Customer eligibility was the Wholesale segment, so retail shoppers never saw the card. Segment eligibility is an Ultimate feature.

Stacking on Wholesale Pricing

Every Wholesale account already had Wholesale / B2B Pricing on every product, and Combinations & Overlap was set to Stack on top of product discounts.

The 8% came off the wholesale price, not the retail price. A $42 box of foils, wholesale $31, became $28.52 as an add-on.

Best deal wins would have compared 8% to the wholesale discount and picked the wholesale one. The add-on would have shown no extra saving, and the reminder would have had no sweetener.

Two Units, Not Twenty

Max discounted units was 2. A salon adding two boxes of foils got 8% on both. A salon adding ten got it on two.

The campaign was a reorder reminder, not a volume program. Volume had its own campaign.

Customer Journey

  1. A salon builds its usual color order: 6 or more Pro Color Brand units, $300 or more.
  2. Below the cart lines, one card appears with four tiles: developer, foils, gloves, barrier cream. Each shows its wholesale price with the 8% applied.
  3. The buyer adds two boxes of foils. Both get 8% off the wholesale price.
  4. The card never shows a product already in the cart, so the next ranked consumable takes the foils' place.
CartResult
4 color units, $180No card, below both floors
8 color units, $420 + 2 foilsBoth foils at $28.52 instead of $31
8 color units, $420 + 10 foils8% on two boxes, eight at wholesale
Retail shopper, same cartNo card, not in the Wholesale segment

What Cross-sell Cannot Do

The pool is ranked by what sells. It cannot know what this particular salon forgot last time.

Meridian would have liked "offer what this account bought two orders ago and skipped last time." That is a Smart suggestions problem, an Ultimate feature ranked from order history across the store, and even then it ranks by pairs, not by a single account's gaps.

The trigger's spend floor is also measured on the cart, not on the account's month. A salon splitting a big order into two small ones saw no card on either.

Metrics That Measure Success

  • Consumables attach rate on qualifying color orders
  • Cart card impressions, adds and attach rate per offered consumable
  • Average wholesale order value against the $820 baseline
  • Estimated Profit on stacked add-on lines, wholesale price minus 8%
  • Share of qualifying orders that split below the spend floor
  • Account manager reorder calls replaced by cart adds

Common Mistakes

  • ❌ Using Best deal wins on a wholesale account and watching the add-on discount silently lose to the standing wholesale price.
  • ❌ Setting a vendor pool without excluding the trigger products themselves, and recommending more of what is already in the cart.
  • ❌ Leaving Min spend blank on a B2B reminder and showing the card on a $40 sample order.
  • ❌ Showing a wholesale-only offer to retail shoppers by leaving eligibility on All customers.
  • ❌ Treating a reorder nudge as a volume discount by setting Max discounted units high.

Key Lessons

In wholesale, Stack is usually the honest setting. The account's price is the floor, and a cross-sell is a reward on top of it. Best deal wins hides the reward.

Two thresholds on the trigger kept the reminder for real orders only. And excluding the trigger products from a same-vendor pool turned "more of the same" into "what you always forget."

Conclusion

Account managers cannot call 620 salons every two weeks.

A cart card that appears on real orders, offers the consumables that match, and takes 8% off the wholesale price asks the question for them.

In this scenario, Meridian's consumables attach rate on color orders went from 34% to 71%. The forgotten foils got remembered.

Frequently asked questions

Can a cross-sell discount stack on top of wholesale prices on Shopify?

Yes. In Discount Prime, set the Cross-sell's Combinations & Overlap to Stack on top of product discounts. The add-on percentage then comes off the account's wholesale price, so a $42 product at a $31 wholesale price becomes $28.52 with 8% off. With Best deal wins, the 8% is compared against the wholesale discount, the wholesale one wins, and the add-on shows no extra saving.

How do I show a cross-sell only on large wholesale orders?

Set both a minimum quantity and a minimum spend on the Cross-sell trigger. Discount Prime's trigger supports the two thresholds together, for example at least 6 units and at least $300 from one vendor, and below either floor the offer does not show. Note the spend floor is measured per cart, not per account per month, so a split order may see no card.

How do I stop a vendor pool from recommending products already in the order?

Add the trigger products to the Cross-sell's Exclusions list. When the trigger and the pool are the same vendor, the pool would otherwise recommend more of what is already in the cart, such as more hair color shades. Excluding them in Discount Prime leaves only the consumables, and the widget also never offers a product already in the cart.

Can I limit a Shopify cross-sell offer to wholesale customers only?

Yes. Set Customer Eligibility to a specific customer segment, such as Wholesale, so retail shoppers never see the cart card. In Discount Prime, segment eligibility is an Ultimate feature. It pairs naturally with Wholesale / B2B Pricing assigned to the same segment, so the offer and the account price reach exactly the same buyers. Leaving eligibility on All customers is a common mistake that exposes a wholesale-only reorder offer to retail buyers.

Can a cross-sell recommend what a specific B2B account forgot last time?

No. A Cross-sell pool is ranked by what sells across the store, not by one account's history. Discount Prime's Smart suggestions, an Ultimate feature, rank from store-wide order history by product pairs, but still not by a single account's gaps. For a reorder reminder, a same-vendor pool with exclusions offers the consumables that match the trigger, which covers what most accounts forget.

Go deeper

Run this architecture in your store

Every campaign type in this case study is included in Discount Prime, with profit analytics to verify the margin impact.

More case studies