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 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.
| Attribute | Detail |
|---|---|
| Industry | Wholesale / B2B (Salon Supply) |
| Platform | Shopify |
| Annual Revenue | $9.4 Million |
| Products | 1,200 |
| Wholesale Accounts | 620 |
| 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
| Priority | Objective |
|---|---|
| 1 | Remind salons of matching consumables on every real color order |
| 2 | Show the reminder only on genuine wholesale orders, not samples |
| 3 | Add a saving on top of the account's wholesale price, not instead of it |
| 4 | Keep the offer a reorder nudge, not a volume program |
| 5 | Show 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.
| Factor | Assessment |
|---|---|
| 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.
| Factor | Assessment |
|---|---|
| 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.
| Factor | Assessment |
|---|---|
| Architecture Score | ★★★★★ |
Comparison Matrix
| Approach | Scales to 620 Accounts | Saving on Top of Wholesale | Real Orders Only | Effort |
|---|---|---|---|---|
| Account manager calls | ✕No | Negotiated | ✓Yes | High |
| Cross-sell, Best deal wins | ✓Yes | ✕No | ✓Yes | Low |
| Cross-sell, Stack | ✓Yes | ✓Yes | ✓Yes | Low |
The Discount Prime Configuration
| Setting | Value |
|---|---|
| Campaign Name | Reorder Essentials: Pro Color Brand |
| Campaign Type | Cross-sell |
| Offer Title (storefront) | Reorder essentials |
| Trigger | Vendor: Pro Color Brand, min quantity 6, min spend $300 |
| Offer | Pool, Vendor: Pro Color Brand |
| Items to Show | 4 |
| Exclusions | Hair color shades (so the pool offers consumables, not more color) |
| Offer Discount | % off, 8% |
| Max Discounted Units | 2 |
| Apply When | Trigger and add-on both in cart |
| Combinations & Overlap | Stack on top of product discounts |
| Customer Eligibility | Specific customer segment: Wholesale |
| Placement | Cart |
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
- A salon builds its usual color order: 6 or more Pro Color Brand units, $300 or more.
- Below the cart lines, one card appears with four tiles: developer, foils, gloves, barrier cream. Each shows its wholesale price with the 8% applied.
- The buyer adds two boxes of foils. Both get 8% off the wholesale price.
- The card never shows a product already in the cart, so the next ranked consumable takes the foils' place.
| Cart | Result |
|---|---|
| 4 color units, $180 | No card, below both floors |
| 8 color units, $420 + 2 foils | Both foils at $28.52 instead of $31 |
| 8 color units, $420 + 10 foils | 8% on two boxes, eight at wholesale |
| Retail shopper, same cart | No 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.