The “frequently bought together” block is one of the few recommendation slots that still works, on one condition: that the associations it proposes are real. A block fed by guesswork offers the case for a different model, and the visitor stops looking at it after two product pages.
Three sources of association, only one reliable
Manual selection. You designate the accessories for each product. Precise, and impractical beyond two hundred references. Above all, it reflects what you think customers associate, not what they actually associate.
Category proximity. Offering products from the same category amounts to offering competitors of the product being viewed, which is substitution and not complementarity. This approach lowers the cart instead of raising it.
Order history. You look at what has actually been bought together, in the same orders. It is the only source that produces associations you would not have guessed, and those are often the best ones.
The calculation, without complicated mathematics
Three notions are enough, and they are computed in SQL on your own orders.
Co-occurrence is the number of orders containing both product A and product B. It is the starting point, and taken alone it misleads.
Confidence is the share of buyers of A who also bought B. If 200 people bought A and 60 of them took B, confidence is 30%. That is already far more useful than a simple count.
Lift compares this confidence to the purchase rate of B across all orders. If B is bought in 25% of all orders, a confidence of 30% means almost nothing: B simply sells a lot. If B appears in only 3% of orders, a confidence of 30% reveals a genuine association.
It is this third notion that avoids the main trap.
Frequently Bought Together Module PrestaShop 8/9The most profitable cross-selling block in e-commerce, on your product page.€69.00
The best-seller trap
Without correction, your best-selling product appears associated with the whole catalog. It is present in a quarter of orders, so it co-occurs with everything.
The block then becomes an advertising slot for a single product, repeated on every page. Visitors ignore it within a few days, and you lose the slot.
Filtering by lift settles this case: the best-seller is only offered where the association is genuinely stronger than its natural frequency.
The reliability threshold
An association observed on three orders is not an association, it is noise. Set a minimum, ten to fifteen orders containing the pair, and display nothing below it.
An empty block is better than a false one. On recent or low-selling products, plan a fallback: manually designated accessories, or nothing at all.
A methodological point: recalculate associations every week, not every night. Buying habits evolve slowly, and a daily recalculation on a large history costs a lot for an identical result.
Where to place the block, and in what form
Two placements, two uses.
Just under the buy button, as a set of two or three products with a checkbox per item and an “add selection to cart” button. This is the highest-performing format, because it turns three decisions into one.
At the bottom of the page, as a carousel. Less effective, but useful for visitors who read the whole page before deciding.
On the first format, display the total for the set and the price of each item. Hiding the detail gives the impression of an imposed bundle and makes the add rate drop.
Should the set be discounted?
A question to settle carefully. A 5% discount on the set increases the add rate, but it also applies to all the customers who would have taken both products anyway.
The useful test is to measure without a discount first. If the add rate is already satisfactory, the discount only reduces your margin on sales you had already won. It only makes sense if it triggers additions that would not have happened.
Measuring
Three indicators. The useful display rate, meaning the share of product pages where the block actually has something to offer above the threshold. The add rate from the block. And the average cart gap between orders that used the block and the others, which gives the real value of the slot.
The Frequently Bought Together module for PrestaShop computes these associations on PrestaShop 8 and 9: order history analysis with a reliability threshold, false-positive filtering, display as a set with checkboxes and grouped add to cart.