> For the complete documentation index, see [llms.txt](https://docs.elitebundleapp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.elitebundleapp.com/grow-and-manage/upsells.md).

# Upsells

Promote a Shopify bundle on other product pages: pick where it shows, choose a card style, and track views, clicks and upsell sales.

An upsell puts a small card for a bundle on other product pages, right below the Add to cart button. The card has an image, a title, a short line of text and a button that opens the bundle. It works for every bundle type and is set per bundle.

## Set it up

{% stepper %}
{% step %}
Open the bundle and go to **Config → Upsell**.
{% endstep %}

{% step %}
Turn on **Show upsell**.
{% endstep %}

{% step %}
Under **Where to show**, pick which product pages get the card.
{% endstep %}

{% step %}
Pick a **Style** and fill in the **Content**. The preview on the right shows the card on a sample product page.
{% endstep %}

{% step %}
Check **Placement** says **Automatic** or **Placed**, then save.
{% endstep %}
{% endstepper %}

## Choose where it shows

| Show on                          | The card appears on                                                                         |
| -------------------------------- | ------------------------------------------------------------------------------------------- |
| Products in this bundle          | Every product the bundle is built from, including products in the collections its steps use |
| Specific products                | Only the products you select                                                                |
| Products in specific collections | Every product in the collections you select, including products added to them later         |

A bundle never shows its own upsell on its own page. Draft bundles never show an upsell. Unlisted bundles do, because shoppers can still buy them by link.

When several bundles target the same product, all of their cards show, stacked.

## Pick a style

| Style   | Looks like                                           | Good for                |
| ------- | ---------------------------------------------------- | ----------------------- |
| Card    | Image beside the text, full-width button below       | Most stores             |
| Banner  | The image fills the card, text and button sit on top | Strong lifestyle photos |
| Compact | One row: thumbnail, title and a button               | Busy product pages      |

The card uses the bundle's own colours, corner radius and button shape from **Design → Branding**, so it matches the bundle page.

## Write the content

* **Custom image**: optional. Without one, the card uses the first product image in the bundle.
* **Title**, **Text** and **Button label**: each can carry a translation per published language, like every other storefront text. Compact cards do not show the text line.

## Where it sits on the page

By default the card goes right below the theme's Add to cart button. To put it somewhere else, add the **Bundle Upsell** app block to your product template. When the block is on the page, it always wins.

The **Placement** section reads your theme and tells you which of these applies:

| Status        | Meaning                                                      | What to do                                           |
| ------------- | ------------------------------------------------------------ | ---------------------------------------------------- |
| **Off**       | The Elite Embed Core app embed is off, so no upsell can show | Click **Turn on app embed**                          |
| **Placed**    | The Bundle Upsell block is on your product template          | Nothing. Use **Open theme editor** to move it        |
| **Automatic** | No block, so the card sits below Add to cart                 | Nothing, or click **Add block** to place it yourself |

The status refreshes when you come back from the theme editor.

## Track how it performs

Open the bundle's analytics. The **Upsell** row shows:

| Metric         | What it counts                                                      |
| -------------- | ------------------------------------------------------------------- |
| Upsell views   | Times the card was at least half on screen, once per page view      |
| Upsell clicks  | Clicks on the card's button                                         |
| Click rate     | Clicks ÷ views                                                      |
| Upsell orders  | Orders of this bundle from shoppers who reached it through the card |
| Upsell revenue | Revenue from those orders                                           |

An order counts as an upsell order when the shopper opened the bundle from its upsell card and then bought that bundle in the same cart.

{% hint style="info" %}
Views and clicks go through Shopify's customer privacy settings, so shoppers who decline analytics tracking are not counted. Orders are counted either way.
{% endhint %}

## The card does not show?

* **Show upsell** is on and the bundle is saved
* The bundle is **Active** or **Unlisted**, not **Draft**
* The product you are looking at matches **Where to show**, and is not the bundle itself
* **Placement** does not say **Off**
* On a custom theme with no standard Add to cart button, add the **Bundle Upsell** app block so the card has a place to go


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.elitebundleapp.com/grow-and-manage/upsells.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
