E-commerce

Upsell and cross-sell that do not annoy: where to put them

One suggestion per page, after the product choice, with the price beside it: upsell and cross-sell work only when they leave the buy button alone.

Key points

  • One suggestion per page, never above the buy button.
  • In the cart the addition must happen without a page reload.
  • Show the suggestion price at once, with the difference against the chosen product.
  • A suggestion tied to use or category beats one picked for margin.

An upsell or cross-sell works when it arrives after the product choice and does not move the buy button: one suggestion per page, with the price beside it.

Where the suggestion goes

PlacementWhat to suggestRisk
Product page, below availabilityThe higher variant or an accessory that completes the useAbove the button it pushes the purchase away
Cart, below the totalA light complement, added in one clickA page reload loses the edited quantity
Order confirmationNothingAny link leaves the completed payment
Post-purchase emailA refill or spare part, after deliveryIt reads as advertising if it lands before the parcel

Placement matters more than content: if buying the suggestion means going back and starting again, the suggestion is an obstacle. In the cart the addition has to happen without a reload, otherwise the quantity already chosen is lost.

The three rules

  • One suggestion. Two slots or more pull attention from the primary button and neither gets read.
  • The suggestion price is visible, with the difference against the chosen product. Hiding the extra cost until the cart produces abandonment.
  • The suggestion fits the use or the category, not the margin. An accessory from another product family reads as advertising.

The code: measure what the page shows

# quante volte una scheda prodotto propone un suggerimento
curl -s https://www.esempio.it/prodotto/esempio \
  | grep -ci "correlat\|consigliat\|completa l"

# quante volte compare il pulsante d'acquisto
curl -s https://www.esempio.it/prodotto/esempio \
  | grep -c "Aggiungi al carrello"

If the suggestion count is above one per product page, the page asks for two decisions at once. If Aggiungi al carrello appears more than once above the fold, the second button competes with the first and neither convinces.

The limitation to name

We have no measure of how much a suggestion lifts average order value: that needs a test on your own customer base, two groups, the same time window. A suggestion showing a sold-out item, or one with a delivery date different from the rest of the order, makes the experience worse even when the code is right.

Where to continue

Three real records to start from: product-card-01, cart-01 and the commerCN library, which collects cart, checkout and category blocks. For context read cart abandonment, blocks for ecommerce and the guide building an ecommerce site.

Frequently asked questions

How many suggestions belong on a product page?

One. A second slot splits attention and usually neither gets opened. If you have two valid candidates, pick the one that completes the use of the product, not the one with the higher margin.

Does an upsell in the cart cost sales?

Only when it moves the button or reloads the page. A light complement below the total, added without a reload, does not interrupt the path; a large block above the summary does.

Random or personalised suggestions?

Ones that fit the category or the use. Personalisation built on browsing history helps with plenty of data; with few orders it produces random pairings the customer reads as advertising.

Should returning buyers still see a cross-sell?

Yes, but after delivery, with a consumable or a spare part. On the page for something already in their history, the useful suggestion is the variant or the accessory, not the identical item.

How do I measure whether a suggestion works?

Two groups, the same time window, the same traffic source, and one metric: the share of orders containing at least one suggested item. Without a control group you measure seasonality, not the suggestion.