Frequently Bought Together, Without Guessing: Hand-Picked Cross-sell
How a camera store hand-picked three add-ons per camera body and discounted only those, never the body itself.
A Shopify camera retailer replaced a generic theme carousel with a Discount Prime Cross-sell campaign per camera family: nine camera bodies as the trigger, three manual picks (battery, memory card, strap) as the offer, 10% off one unit of each add-on, applied when trigger and add-on are both in the cart. The body stays full price. In this scenario, accessory attach rate rose from 23% to 61%.
At a glance
- Challenge
- The theme carousel recommended other camera bodies instead of the battery, card and strap that actually fit the one being viewed.
- Approach
- One Cross-sell campaign per camera family with manual picks, 10% off one unit of each add-on, shown on the product page only.
- Discount Prime campaign types used
- Cross-sell
Scenario-based case study: the merchant profile is modeled on patterns across real Discount Prime stores, not a single named customer.
Introduction
A camera body is a $1,400 decision. A spare battery is a $49 decision that nobody makes unless someone suggests it.
The gap between those two decisions is where cross-sell revenue lives. Most stores leave it to a theme carousel and hope.
The usual instinct is to reach for an algorithm:
"Let's turn on recommendations and let the data decide what goes with what."
A solutions architect asks a plainer question first:
"Does the merchant already know exactly what belongs with this product?"
When the answer is yes, the merchant's knowledge beats any algorithm that cannot tell a battery from a camera. This case study designs a hand-picked "frequently bought together" offer for a camera retailer that stopped hoping customers would remember the battery.
Merchant Scenario
Consider Lumen Camera Co., a fictional Shopify brand selling mirrorless cameras, lenses and accessories.
| Attribute | Detail |
|---|---|
| Industry | Electronics |
| Platform | Shopify |
| Annual Revenue | $7.8 Million |
| Products | 1,900 |
| Monthly Orders | 3,100 |
| Average Order Value | $640 |
Accessories had the best margin in the store and the lowest attach rate. The team knew exactly which three accessories belonged with each camera body. They just had no way to say so on the page.
The Problem With a Generic Carousel
The theme's "You may also like" block showed whatever the algorithm liked. For a $1,400 body, it liked other $1,400 bodies.
Nobody buying one camera wants a second one recommended. They want the battery, the card and the strap that fit the one they chose. The carousel was filling the most valuable spot on the page with the least useful suggestion.
Business Objectives
| Priority | Objective |
|---|---|
| 1 | Raise the accessory attach rate on camera bodies |
| 2 | Recommend only accessories that actually fit the body being viewed |
| 3 | Keep the camera body itself at full price |
| 4 | Give a small nudge on add-ons without turning it into a volume sale |
| 5 | Show the offer where the buying decision happens |
Evaluating the Options
Option 1: The Theme's Generic Carousel
Advantages
- Already installed, no setup.
- Updates itself.
Disadvantages
- Recommends other camera bodies instead of companions.
- No discount, no control over which items appear.
| Factor | Assessment |
|---|---|
| Architecture Score | ★☆☆☆☆ |
Option 2: Buy X Get Y
Advantages
- Can discount the battery when a body is bought.
- Familiar reward logic.
Disadvantages
- No recommendation block on the product page.
- Does not tell the customer which three items to add, or offer one-tap add buttons.
| Factor | Assessment |
|---|---|
| Architecture Score | ★★☆☆☆ |
Option 3: Cross-sell With Manual Picks
Advantages
- Recommendation first, discount second.
- The trigger (the body) is never discounted.
- Exactly the right battery for each body.
Disadvantages
- Manual picks need a human edit when a product is discontinued.
- One campaign per camera family to maintain.
| Factor | Assessment |
|---|---|
| Architecture Score | ★★★★★ |
Comparison Matrix
| Approach | Right Companions | Product Page Block | Discount on Add-ons Only | Effort |
|---|---|---|---|---|
| Theme carousel | ✕No | ✓Yes | No discount | None |
| Buy X Get Y | Partly | ✕No | ✓Yes | Low |
| Cross-sell, manual picks | ✓Yes | ✓Yes | ✓Yes | Medium |
The Discount Prime Configuration
| Setting | Value |
|---|---|
| Campaign Name | FBT: Camera Bodies |
| Campaign Type | Cross-sell |
| Offer Title (storefront) | Frequently bought together |
| Trigger | Specific products, 9 camera bodies, min quantity 1 |
| Offer | Manual picks, 3 products (spare battery, 128 GB card, strap) |
| Items to Show | 3 |
| Offer Discount | % off, 10% |
| Max Discounted Units | 1 |
| Apply When | Trigger and add-on both in cart |
| Combinations & Overlap | Best deal wins |
| Placement | Product page |
One campaign per camera family. Nine triggers, three hand-picked offers, 10% off each add-on, one unit each.
Why Cross-sell Fits
Cross-sell is built as recommendation first, discount second. The trigger is the body. The offer is the list. The discount applies only to the offered items, and only while the trigger is in the cart.
Trigger items are never discounted. The camera stays at full price and only the add-ons move. That is the difference from a Buy X Get Y setup, which can discount the battery but cannot put the list of companions on the page.
Manual Picks, On Purpose
The offer source was Manual picks. Lumen's team knew the exact battery model for each body, and a pool drawn from the Accessories collection would have offered the wrong battery half the time.
Manual picks are capped at six products per campaign. Three was plenty, and it matched Items to show. The live preview under the picker showed each offer with its price and stock, with a one-click Exclude on any row.
Max Discounted Units and Apply When
Max Discounted Units: One
The 10% applied to one unit of each add-on. A photographer who added two spare batteries got 10% off one of them, and the second paid full price.
That is Max discounted units set to 1, and it was deliberate. The offer was a nudge to add the accessory, not a volume discount on batteries.
Apply When: Trigger and Add-on Both in Cart
A customer who found the battery on their own, added it, and then added the body still got 10% off the battery. The discount did not care whether the add-on came from the widget.
The alternative, "Only if added from the widget," tags the line the way BOGO reward lines are tagged and discounts only those lines. Lumen wanted the honest, simple version. The widget-only mode has its own use, covered in The Three-Dollar Add-on.
Customer Journey
- A shopper opens a camera body page and sees a "Frequently bought together" row: battery, card, strap. Each tile shows its price, the 10% already as a strike-through, and an Add button.
- A total for "camera + all three" sits underneath.
- The shopper taps Add on the battery. With the body and the battery both in the cart, 10% comes off one battery.
- The body itself is charged at full price.
Placement was Product page only. Lumen's cart drawer was already busy, and the product page was where the decision happened.
| Cart | Result |
|---|---|
| Body + one $49 battery | Battery at $44.10, body at full price |
| Body + two batteries | One battery at 10% off, the second at full price |
| Battery added first, body added later | Battery still gets 10% off |
| Battery only, no body | Full price, no offer shown |
What Cross-sell Cannot Do
The discount lives on the add-ons, never on the trigger. A customer who bought only the battery, with no body in the cart, paid full price, and the widget was not shown because there was no trigger page to show it on.
Manual picks are also manual. When Lumen discontinued one strap, the campaign kept offering it until someone edited the list. The live preview flagged it as out of stock, but the edit was still a human step.
Metrics That Measure Success
- Accessory attach rate on orders containing a camera body
- Widget impressions, adds and attach rate per offered accessory
- Average order value of camera body orders against the $640 store baseline
- Estimated Profit on add-on lines after the 10% discount
- Share of add-ons that arrived from the widget versus found independently
- Out-of-stock flags in the live preview, reviewed monthly
Common Mistakes
- ❌ Using a collection pool for accessories that have to match a specific model, and offering the wrong battery.
- ❌ Leaving Max discounted units blank or high on a cheap accessory, turning a nudge into a volume discount.
- ❌ Choosing "Only if added from the widget" without realizing a customer who finds the add-on themselves then pays full price.
- ❌ Setting the trigger to Any product and discounting batteries for customers buying tripods.
- ❌ Never revisiting manual picks after a product is discontinued.
Key Lessons
"Frequently bought together" is only useful when it is true. Three hand-picked add-ons per body beat any algorithm that did not know a battery from a camera.
One discounted unit each kept the offer a nudge, not a sale. And keeping the trigger at full price meant the most expensive item in the cart was never part of the discount math.
Conclusion
Recommendation engines recommend. Merchants know.
For products with a known, specific set of companions, Cross-sell with manual picks puts the merchant's knowledge on the page, with a discount that applies only to the add-ons and only while the main product is there.
In this scenario, Lumen's accessory attach rate on camera bodies went from 23% to 61%. The battery finally got remembered.
Frequently asked questions
How do I add a frequently bought together section with a discount on Shopify?
Use a Cross-sell campaign. In Discount Prime, set the main products as the Trigger, choose the companions as the Offer (Manual picks for exact matches, up to six), set Items to show, and pick an Offer Discount such as 10% off. The widget shows the add-ons on the product page with one-tap Add buttons, and the discount applies only to the offered items while the trigger product is in the cart.
Does a Cross-sell discount the main product too?
No. In a Discount Prime Cross-sell, trigger items are never discounted. The discount applies only to the offered add-ons, and only while a trigger product is in the cart. A camera body stays at full price while its battery gets 10% off. A customer who buys the add-on with no trigger in the cart pays full price, and the widget is not shown because there is no trigger page to show it on.
Should I use manual picks or a collection pool for cross-sell recommendations?
Use manual picks when the companion has to match a specific model, such as the right battery for a camera body. A pool drawn from a broad Accessories collection can offer the wrong item. Use a pool when the offered collection changes often and any item in it fits. The trade-off is maintenance: manual picks keep offering a discontinued product until someone edits the list, although the live preview flags it as out of stock.
What does Max discounted units do in a Cross-sell campaign?
It limits how many units of each add-on receive the discount. In Discount Prime, setting Max discounted units to 1 means a shopper adding two spare batteries gets 10% off one and pays full price for the second. That keeps the offer a nudge to add the accessory rather than a volume discount. Leaving it blank or high on a cheap accessory quietly turns a recommendation into a bulk sale.
What is the difference between Cross-sell and Buy X Get Y on Shopify?
Cross-sell is recommendation first, discount second; Buy X Get Y is a reward rule. Both can discount a battery when a camera is bought, but only Discount Prime's Cross-sell puts a recommendation block on the product page that names which items to add, with one-tap Add buttons and a combined total. Use Buy X Get Y when the reward is the point, and Cross-sell when the suggestion is.
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.