Skip to main content
Creating & managing bundles

How to add cross-sell products to an offer

Cross-sells let you offer related products at a discount right alongside the main item in an offer. They show up in the product-page widget as paid add-ons the customer can buy together with the bundle, which is a simple way to grow basket size. This guide walks through adding them and explains how they behave at checkout.

What a cross-sell is

A cross-sell is a paid add-on attached to a single offer (a quantity tier inside a bundle deal). It is different from a free gift: a gift is fully discounted, while a cross-sell can carry any discount you choose, including no discount at all. You can add up to 5 cross-sells per offer.

Add a cross-sell to an offer

Open the offer you want to extend and find the Cross-sell products section.

  1. Click Add cross-sell product. The product picker opens automatically.
  2. In the picker, choose the product and the specific variants you want to offer, then confirm. (If you close the picker without choosing, a Select product badge appears on the add-on so you can open it again.)
  3. Set the Discount type (see the table below).
  4. If the discount type needs a value, enter the amount in the field next to it.
  5. Set the Quantity, which is how many units of this add-on are included.
  6. Optionally set a Title for the add-on.

Discount types

Each cross-sell has its own Discount type, independent of the main offer's discount. The value field next to it changes depending on what you pick.

Discount typeWhat it doesValue field
NoneAdds the product at full price (no discount). The amount field is disabled.None
PercentageTakes a percentage off the add-on, for example 10% off.Discount (%)
Discount per itemTakes a fixed amount off each unit.Discount/unit (currency)
Exact amountSets a target total price for the add-on. The discount is the difference from the original price and never exceeds it.Total price (currency)

When you choose None, the amount field is cleared and disabled, so the add-on is offered at its normal price.

Quantity

The Quantity field is how many units of the cross-sell product are added when the customer takes the offer. The discount type then applies to that quantity.

Title

The Title is the label shown for the add-on. You can use template variables such as {{product_title}} in it. If you leave the title empty, the add-on falls back to the parent offer's title at checkout, so every line in the bundle shares one label.

Variant selection for cross-sells

Cross-sells (and gifts) always show their own variant picker in the widget when the product has more than one variant, because Shopify has no built-in picker for these add-on items. The customer selects the variant directly inside the offer.

This is different from the main product, where the per-offer variant selector is controlled by the Show variant selector per offer setting and applies to the main product only. Pick the variants you want to make available when you choose the product in the picker.

How cross-sells behave at checkout

An offer that carries a paid cross-sell is treated as a bundle: the discount on the main item is given because the add-on is in the cart. This makes the offer all-or-nothing.

If the customer manually removes a required paid cross-sell from the cart, the offer's discount is voided. The discount only applies while every required paid add-on is present.

A few things follow from this:

  • Free gifts are exempt. Removing a free gift does not void the discount, because that only hurts the customer. Only paid cross-sells gate the discount.
  • Bundle offers do not auto-promote. Because they depend on the add-on being present, an offer with paid cross-sells applies only when the customer explicitly chose that offer. Simple volume tiers (no paid add-ons) still ladder up as quantity grows.
  • Avoid using the same product as the main item. If a cross-sell uses the same product as the main product, the cart groups those units together and the widget total can differ from the cart total. Cross-sell a different product to keep the math clean.

Tips and limits

  • You can add up to 5 cross-sells per offer. Once you reach the limit, the add button is hidden.
  • Each cross-sell can have a different discount type, quantity, and title.
  • Set the discount type to None when you want to bundle a related product at full price without a deal on it.
  • The checkout price is always authoritative. If the widget and cart totals ever differ by a cent, the cart price is the one the customer pays.

Was this article helpful?

Your feedback helps us improve our docs.

Thanks - we'll keep improving this article.

Want to chat with our team? Still have a question?

Still need help?

Our team is one click away. Send us a message and we'll get back to you.

We use a few cookies to keep this site working, measure how it is used, and power our chat widget when you open it. See our cookie policy.