Skip to content

Bundles, offers & upsells

Bundles and offers are how you sell more than one product at a time, or steer buyers toward an add-on. They live in a different place from discounts: a discount lowers the price of items already in the cart, while a bundle or offer decides which products get grouped, what they cost together, and where that grouping appears on your storefront.

Sellerlane has four distinct tools, and they are reached two different ways:

Fixed bundle

A real catalog product that bundles several items at one price. Created in the product editor (product type Bundle), so it is searchable and has its own product page.

Box builder

Customers assemble their own box by picking from sections you define, up to a set number of items, at a price you control. Under Offers → Box builder.

Frequently bought together

A set of add-on products offered alongside what customers are already buying, to lift average order value. Under Offers → Frequently bought together.

Upsell rule

A “when this is in the cart, recommend that” rule that surfaces extra products (optionally at a special price). Under Offers → Upsell.

Bundles and offers vs discounts

This is the most common point of confusion, so it is worth stating plainly. There is no “set price” discount type in the discount engine. A literal price like “any 2 for ₹999” comes from a bundle or offer (as a Price cap — buyers pay at most ₹999, less if their picks total less), or from a Buy X Get Y discount — not from a percentage or amount-off discount. If you want a capped price for a set of items, use a bundle or offer here, not a discount. See discounts for the price-reduction side.

Each bundle, offer, and upsell rule carries its own pricing model, chosen independently of any discount you may also be running:

Pricing modelWhat the buyer pays
Price capThe lower of the selection’s combined component total or the cap. The cap is a ceiling, never a floor — cheaper selections keep their own total, so the storefront advertises it as “Up to …”.
Percentage OffA percentage taken off the combined component price.
Amount OffA flat amount taken off the combined component price.

For Price cap you can also set a Compare At Price so the storefront can show the original total struck through next to the bundle or offer price.

The fixed/discounted amount applies once to the selected offer group, not once per component. Sellerlane allocates that parent amount to components using a deterministic largest-remainder calculation so component tax, discount, refund, COGS, and inventory rows always add back to the bundle total. See Financial semantics.

How offers combine with discounts

An offer sets a price; a discount reduces a price. When the cart is recalculated, money is worked out in three layers, always in the same order:

  1. Prices — the catalog or contract price and any volume pricing come first; then the offer: a fixed bundle’s price is prorated across its components, and a Box builder, Frequently bought together, or upsell group is repriced to its offer price.
  2. Discounts — codes and automatic discounts run next, under the combination rules: product discounts first, then order discounts, then shipping discounts.
  3. Tenders — loyalty points, store credit, and gift cards pay the discounted total; they never change a price.

That ordering gives you a precise set of rules:

  • A cart line carries at most one offer. A line is a fixed bundle, part of one Box builder or Frequently bought together group, or part of one upsell group — never two of these at once.
  • Offer prices are not discounts. An offer has no code, no usage limits, and no per-customer caps, and it never counts toward the discount combination rules. On the cart and order the saving is recorded under the offer’s name — the cart shows it on the items it touched, alongside any discount codes — but it is not a removable code chip.
  • Product discounts skip offer-priced items by default. A product discount (or a Buy X Get Y “get” reward) does not touch items that are already priced by a Box builder, Frequently bought together, or upsell offer — unless that discount’s Combinations section has Bundle & offer prices ticked. Order and shipping discounts are never blocked this way. Earned rewards are the exception: discounts minted by loyalty redemptions and referral programs always apply to offer-priced items — a customer’s earned reward is never silently skipped.
  • When a discount does apply, it calculates on the offer price. A 20% discount on a Box builder offer that is already 30% off takes 20% of the offer price, not of the original component total.
  • Minimum purchase requirements see offer prices. A “minimum ₹1,000” discount is checked against what the buyer would actually pay after offer pricing — not against the original catalog total. An order discount’s minimum is additionally checked after product discounts.
  • A Price cap offer is a ceiling, never a floor. If the buyer’s picks already total less than the cap, they pay the lower catalog total. An offer can only lower what the buyer pays.
  • Fixed bundles are discounted as one product. A product discount that should reach a fixed bundle must target the bundle product itself; the discount then spreads across the components automatically for tax and refund purposes.

Where offers don’t apply

  • Upsell offers are online-only. Box builder and Frequently bought together offers can also be enabled for POS, but an upsell rule has no POS option.
  • Gift cards are never offer items. The product pickers for fixed-bundle components, Box builder and Frequently bought together sections, and upsell recommendations leave gift-card products out, and saving an offer that references one is rejected. A gift card is stored value — prorating a discounted offer price across one could issue more value than the buyer paid. Sell gift cards at their own price instead.
  • Company (B2B) purchases never take offers. Bundles, offers and upsells are refused on company carts, and any offer lines already in a cart are removed when it switches into company context. See B2B isolation.
  • Checkout shows only one-click recommendations. Box builder and upsell builders appear on offer pages, product pages, and cart surfaces, not on the checkout page.

Fixed bundles (catalog products)

A fixed bundle is an ordinary product whose type is Bundle. Because it is a catalog product, it shows up in search and collections and has a normal product page where the buyer adds the whole group to the cart in one click.

  1. Go to Products and create a new product (or open an existing one) and set the product type to Bundle.
  2. In Bundle Composition, add the component products that make up the bundle. For products with variants you can allow all variants or restrict the buyer to an allowlist of specific variants per component.
  3. Set the Bundle Price — the price the buyer pays for the whole bundle.
  4. Choose a Bundle Inventory Tracking Method:
    • Track at bundle level — the bundle has its own stock count, separate from the component products.
    • Track based on component products — the bundle is only available when every component has enough stock; you manage each product’s inventory individually.
  5. Add images, description, SEO, and a status as you would for any product, then save.

Once published, the bundle behaves like any other product: it is indexed for search, can be added to collections, and renders on its own product page. For how product types differ, see product types.

Refunds and returns for bundles

The order snapshots the bundle parent and every fulfillment component. A component refund cannot exceed that component’s allocated order value. Returns currently use component returns only: each selected component follows the ordinary return, refund, and restock lifecycle at its order-line quantity. A whole-bundle policy is not supported. To return every item in a bundle, select every component quantity; the system still records and caps each component independently. Changing the product later never changes an existing order’s allocations or policy snapshot.

Box builder

A Box builder offer lets the buyer fill their own box from sections you define — for example “Choose 1 main”, “Choose 2 sides” — and pay a price you control for the assembled box. Find it under Offers → Box builder.

  1. Open Offers → Box builder and choose Create offer.
  2. On the General tab, give the offer an Offer name and set Minimum Units and Maximum Units — the smallest and largest number of items a customer may put in the box. Use the Active toggle to control whether the offer is live, and the Online Store and Point of Sale toggles to control where it is available. In the Active dates card, set a Start date & time (required) and optionally toggle Set end date to add an expiry — offers are scheduled exactly like discounts, in the store’s timezone.
  3. On the Pricing tab, set the Pricing Model (Price cap, Percentage Off, or Amount Off) and the corresponding cap or discount. For Price cap you can add an optional Compare At Price.
  4. On the Products & Sections tab, add one or more sections. Each section has its own name and its own min/max units, and you pick which products (and which variants) the buyer may choose from in that section. A Box builder offer can have up to 10 sections.
  5. Fill in the offer’s page content: an optional Description shown on the offer’s page, and a Featured image. In the SEO card, set the Meta title, Meta description, and the page’s Web address, and pick a Theme template if you’ve created a bundle alternate. Blank fields fall back sensibly — the offer name serves as the title, the description as the listing text, and the first product image stands in for a missing featured image.
  6. Save the offer. Once it is Active, inside its Active dates, and Online Store enabled, its storefront page is live at /bundles/<handle> — the SEO card shows the exact URL and lets you edit the web address (old URLs redirect automatically).

Frequently bought together

A Frequently bought together offer presents a set of add-on products alongside what customers are already buying, to lift average order value. Find it under Offers → Frequently bought together.

It is structurally a simpler Box builder: it has exactly one section, and the section name and min/max units come from the offer itself, so you only manage one list of products.

  1. Open Offers → Frequently bought together and choose Create offer.
  2. On the General tab, name the offer and set Minimum Units and Maximum Units for how many of the grouped products are offered together. Use the Active, Online Store, and Point of Sale toggles to control availability, and the Active dates card to schedule when the offer runs, the same way as a Box builder offer.
  3. On the Pricing tab, set the Pricing Model and price the same way as a Box builder offer.
  4. On the Products & Sections tab (shown as Offer products here), select the products that should be offered together. The single section automatically uses the offer name and the min/max units you set on the General tab.
  5. The Description, Featured image, SEO card, and Theme template selector work the same way as on a Box builder offer. Save.

Upsell rules

An upsell rule is a “when / then” rule: when the cart matches your trigger conditions, then recommend a set of products, optionally at a special price. Find it under Offers → Upsell.

Unlike the other offers, an upsell does not pre-define a fixed set of items — it picks recommendations dynamically from the conditions you set.

  1. Open Offers → Upsell and create a new rule, then give it a name.
  2. On the Conditions tab, build your Trigger Conditions (“When customer adds products… selected conditions are met”). Each condition targets either Specific Products or Products from Collections, with an operator like Equals any of, Not equals any of, or Is any product.
  3. Build your Recommendation Conditions (“Then recommend products”). These use operators including Same as trigger, Different from trigger, Equals any of, and Not equals any of, so you can recommend the same item, a different one, or a specific set.
  4. On the Pricing Settings tab, choose a Pricing Model (Percentage Off, Amount Off, or Price cap) and enter the cap or discount that applies to the recommended products.
  5. Set a Sort strategy for how recommendations are ordered: No sorting, Price: Low to High, Price: High to Low, or Best Selling.
  6. Set Min. products to get a discount (the minimum the buyer must add for the offer price to apply — must be greater than 1) and Max recommendations (how many products to show — must be greater than 1).
  7. In the Placement card, choose where the rule appears: the product page, cart page, cart drawer, and the post-purchase rail on the order confirmation page (see Post-purchase offers — that surface serves one-tap cards, so builder-style offers never appear there).
  8. In the Active dates card, set a Start date & time (required) and an optional end date — the same scheduling as the other offers and discounts. The rule recommends only inside its window.
  9. Save. New rules are added to the bottom of the priority list.

Priority

Every upsell rule has a Priority. When more than one rule could fire, the priority order decides which wins. On the Upsell list, drag the rules by their handle to reorder them — the top rule has priority 1, the next has priority 2, and so on. Reordering saves immediately.

Where offers appear on the storefront

A Box builder or Frequently bought together offer reaches buyers three ways: through its own page, through storefront search, and through the recommendation surfaces your theme renders in context.

Every Box builder and Frequently bought together offer that is active, inside its dates, and online-enabled has its own storefront page at /bundles/<handle>, rendered by your theme’s bundle template (which receives the offer as bundle_rule_offer) — or by the alternate template chosen in the form’s Theme template dropdown; a ?view= parameter in a link still overrides the stored choice. The handle is generated from the offer name, and the offer form’s SEO card shows the page URL ready to copy. Its Web address field lets you edit the handle — changing it moves the page, and the old URL redirects to the new one automatically, so shared and indexed links keep working. Link the page from your navigation with the menu editor’s Offers link type, from a campaign, or from anywhere else a URL works.

The page’s title and description come from the SEO card’s meta title and meta description, falling back to the offer’s name and description when blank, and a link shared to social networks carries the offer’s Featured image — or, when none is set, the first product image in the offer.

Live offers are searchable. While its page is live, a Box builder or Frequently bought together offer is indexed for storefront search: it appears in a dedicated Bundles group in the predictive-search drop-down and as a result card on the search results page, matching on the offer’s name and its component products. A fixed bundle surfaces as a full product tile instead, because it is a catalog product. Taking an offer offline removes it from search along with its page.

To merchandise offers beyond their own pages — a “Deals” or “Bundles” landing page, for example — add the theme’s Bundle list section to any page in the theme editor: it renders a card grid of your live Box builder and Frequently bought together offers (up to a maximum you choose), each with its savings badge, its featured image (else a collage of component images), and a link to its /bundles/<handle> page.

Offers also surface contextually. The storefront engine exposes each offer type to Liquid as a drop your theme renders in its recommendation and offer sections — typically on the product page and in the cart — and you can pin the bundle-builder section on any other page in the theme editor:

OfferTheme object
Fixed bundle (catalog product)bundle
Box builderbundle_rule_offer with its bundle_section_offer sections
Frequently bought togetherbundle_rule_offer
Upsell ruleupsell_rule_offer
Any placed recommendationrecommended_offer

A fixed bundle renders on its own product page because it is a catalog product, and an upsell rule has no dedicated page — it appears only where its trigger conditions match. Inspect live values from a template with {{ object | json }} while you build, and see the Liquid objects reference for the full property list of each drop.

Post-purchase offers

After a buyer places an order, the order confirmation page can show a few one-tap add-ons. Place an upsell rule on the Post-purchase surface and its recommendations are served first, priced with the rule’s pricing model as a one-tap discount — the card shows the discounted price with the original struck through. With nothing placed, the rail works with no configuration at all: it fills automatically from products frequently bought together with what’s on the order, topped up with best sellers. Either way the rail never shows products already on the order. An add-on can be a single product or one of your fixed bundles; bundle cards are labelled as such and append the whole kit, priced and itemised exactly as it would be in the cart. Buyers can pick a quantity of up to 10, and the card shows how long the offer has left — or they can tap No thanks, which declines the offer and closes it for that order. A decline is recorded as an explicit refusal, so your analytics can tell it apart from an offer that was simply ignored until it expired.

How the buyer pays depends on how they paid for the order:

  • Cash on delivery — one tap. The item goes onto the same order and the courier simply collects the new total on delivery. No second checkout, no second delivery, no payment step.
  • Prepaid — the order is already paid, so there is nothing left to grow. The card shows what the add-on will cost and sends the buyer to your payment provider’s page to pay just that amount. The item joins the same order once the payment lands, so it still ships in the same parcel.

Either way the appended line is badged as a post-purchase add-on on the order detail page.

The amendment is tightly fenced:

  • One add-on per order, inside a 60-minute window that starts the first time the confirmation page shows the offer. Opening a prepaid payment extends the window if little time is left, so nobody is sent to a payment page that expires under them.
  • The order must still be unshipped, and still awaiting cash-on-delivery collection on the COD path, when the buyer accepts.
  • On the COD path your cash-on-delivery rules are re-checked against the new total — an add-on that would push the order past a COD limit is refused. Either way a single add-on is capped at 25% of the order total. For a bundle, the cap and the COD re-check read the whole bundle’s total, quantity included.
  • Everything appended ships in the same delivery, so add-ons are physical, shippable, in-stock items only. A bundle is offered only when every one of its components qualifies.
  • On the prepaid path the price is fixed when the buyer is sent to pay. If anything about the item changes before the payment lands — a price change, a component going out of stock, the order being cancelled or shipped — the add-on is refused and the payment is refunded rather than applied at a different price.

Troubleshooting

  • An offer does not appear online — confirm the offer or rule is Active, that today falls inside its Active dates, and that Online Store is enabled — a Scheduled or Expired badge on the form means the window, not the toggle, is keeping it offline. That is all a Box builder or Frequently bought together page at /bundles/<handle> needs; if a recommendation card is missing from a product or cart page, also check that your theme renders the offer section on that surface.
  • An offer doesn’t show up in search — offers are indexed only while their /bundles/<handle> page is live, so the same Active + Active dates + Online Store check applies. A fixed bundle is searched as a product; check the product’s status instead.
  • The offer price looks wrong — re-check the Pricing Model. Price cap charges the lower of the selection’s combined total or the cap (it never raises a cheaper selection to the cap); Percentage Off and Amount Off are taken off the combined component total.
  • I want a strike-through “was” price — set a Compare At Price on a Price cap bundle or offer so the theme can show the original total.
  • Two upsell rules both match — the rule with the higher Priority (nearer the top of the list) wins; drag to reorder.
  • A Box builder buyer can’t reach the right count — check each section’s min/max units and the offer’s overall Minimum / Maximum Units; the totals must allow a valid selection.

Next steps

  • Discounts — percentage, amount-off, free shipping, and Buy X Get Y, distinct from bundles and offers.
  • Product types — how the Bundle product type fits alongside physical, digital, event, and gift-card products.
  • Themes and the editor — place and style the offer sections that render your bundles and upsells.
  • Search and discovery — how fixed-bundle products and live offers are indexed and surfaced in storefront search.