> 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/create-bundles/build-your-own-bundle.md).

# Build your own bundle

Complete guide to creating Build Your Own Bundles in Elite Bundle Builder, including steps, products, discounts, design customization, and FAQ.

A **build your own bundle** guides shoppers through steps where they pick products. Everything they pick is added to the cart as one bundle, and the discount tier they reached applies at checkout.

## What shoppers see

{% stepper %}
{% step %}
They land on the bundle page and see the first step, for example "Choose your base".
{% endstep %}

{% step %}
They pick products, choosing a variant like size or colour where needed.
{% endstep %}

{% step %}
They move through the steps while the bundle cart shows their selection and the next discount tier.
{% endstep %}

{% step %}
They click **Add bundle to cart**. The tier applies automatically at checkout.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
The **Elite Embed Core** app embed must be on for the bundle to render. See [Getting started](/get-started/getting-started.md#2-enable-the-elite-embed-core-app-embed).
{% endhint %}

## The editor tabs

The fullscreen editor has seven tabs on the left icon rail. This page covers **Build**, **Config** and **Offer**. Template and Design are in [Design and customize](/customize-and-publish/design-and-customize.md).

| Tab      | What it controls                                                  |
| -------- | ----------------------------------------------------------------- |
| Template | Starting layout and where the bundle appears                      |
| Build    | Steps and the products in each                                    |
| Config   | Rules and custom data on cards                                    |
| Offer    | The discount                                                      |
| Design   | Everything visual                                                 |
| Publish  | Status, theme setup, going live                                   |
| Settings | The parent product, store-wide custom CSS and all storefront text |

## Build tab

### Step title

Short and action-based: *Choose your cleanser*, *Pick your snacks*, *Add your extras*.

### Product source

| Source            | Behaviour                                                                          | Use when                               |
| ----------------- | ---------------------------------------------------------------------------------- | -------------------------------------- |
| Specific products | You pick exactly which products appear                                             | Full control, seasonal or limited sets |
| Collection        | The step shows every product in one collection, updating as the collection changes | Rotating catalogs, low maintenance     |

### Managing steps

* **Add step** creates a new step; a bundle needs at least one
* Drag a step by its number badge to reorder
* **Duplicate** copies a step and its products
* Inside a step, drag products to set the order shoppers see

## Config tab: Rules

Per-step rules live in **Config → Rules**. The page lists every step; open one to configure it.

| Rule                               | What it does                                                                    |
| ---------------------------------- | ------------------------------------------------------------------------------- |
| Limit how many items shoppers pick | A minimum and maximum for the step. Minimum is at least 1 when the limit is on. |
| One of each product only           | Blocks several units of the same product within the step                        |
| Mark items as a gift               | Flags everything picked in the step as a gift on the order                      |

{% hint style="success" %}
**Optional steps:** leave the limit turned off and shoppers can skip the step entirely.
{% endhint %}

The same page sets whole-bundle limits:

* **Limit total bundle size**: a minimum and maximum across every step
* **Stop at the top discount tier**: once the highest quantity tier is reached, every add button locks. Ignored when tiers are based on order total.

## Config tab: Custom data

Show your own product data on each card: dietary tags, calories and protein, care instructions, anything stored in a **product metafield**. Open **Config → Custom data**, click **Add field**, then:

| Setting          | What it does                                         |
| ---------------- | ---------------------------------------------------- |
| Select metafield | Pick from your store's product metafield definitions |
| Show as          | Where the value appears on the card                  |

**Show as** has three placements:

{% tabs %}
{% tab title="Badge on image" %}
Small chips over the product image. A list metafield such as `Vegan, Gluten free` becomes one chip per entry.
{% endtab %}

{% tab title="Line under price" %}
One compact line. Several fields join with a dot: `320 kcal · 24g protein`.
{% endtab %}

{% tab title="Text block" %}
A short paragraph under the price, for instructions or a one-line description. Line breaks are kept.
{% endtab %}
{% endtabs %}

Values show exactly as stored, so keep units in the metafield (`320 kcal`). The same values also show in the quick-view modal, and a product with no value simply shows nothing. A couple of badges and one meta line read best.

**Supported types:** single- and multi-line text, integer, decimal, date, URL and colour, plus lists of any of these. Other types do not appear in the picker: true/false, rich text, JSON, money, weight, volume, dimension, rating, date and time, and references.

{% hint style="warning" %}
**The metafield needs a definition with Storefront access**, or the card shows nothing. In Shopify go to **Settings → Custom data → Products**, open the definition and turn on **Storefront access**. The editor shows a note under any field that is not exposed yet.

Metafields created by other apps without a definition ("unstructured") do not appear in the picker. On the same Shopify page choose **View unstructured metafields → Add definition**, enable Storefront access, and the field becomes available.
{% endhint %}

## Offer tab

Discounts live under **Offer → Discount offer**. Turn on **Enable discounts**, then set:

| Setting     | Choices                                                                               |
| ----------- | ------------------------------------------------------------------------------------- |
| Trigger     | **Number of items** or **Order total value**                                          |
| Calculation | **Percentage**, **Fixed amount off**, **Fixed target price**, **Amount off per item** |
| Tiers       | One row per threshold                                                                 |

| Min items | Discount |
| --------- | -------- |
| 3         | 5% off   |
| 5         | 10% off  |
| 8         | 15% off  |

Tiers apply at checkout with no code. Removing the last tier turns discounts off. How the offer is *displayed* (progress bar, segmented, box) is set in **Design → Discount display**. Full detail in [Discounts](/create-bundles/discounts.md).

## Template, Design and Settings tabs

**Template** picks the starting layout and where the bundle appears. **Design** controls the banner, product cards and variant pickers, steps, bundle cart, discount display and branding. Both are covered in [Design and customize](/customize-and-publish/design-and-customize.md).

**Settings → Parent product** opens the Shopify product behind the bundle, where its name, media, description and SEO live (the pencil icon beside the bundle name does the same). **Custom CSS** and **Language & Texts** apply to every bundle in the store.

## Frequently asked questions

### Can a shopper skip a step?

Leave **Limit how many items shoppers pick** off for that step in Config → Rules. Once the limit is on, the minimum is at least 1.

### What happens if a product goes out of stock?

It shows as sold out and cannot be added. To hide it instead, turn on **Hide out of stock items** in Design → Product card & variants.

### Can shoppers change their mind after picking a product?

Yes. The bundle cart shows the current selection; they can increase, decrease or remove items before adding the bundle to cart.

### How are variants handled?

By default a card shows a variant picker. In **Design → Product card & variants** you style each option as labels, swatches or a dropdown, with images or colours per value, or turn on **Show each variant as its own card**.

### Can I show nutrition facts, tags or instructions on the cards?

Yes. Store them in product metafields and add them under **Config → Custom data** as a badge, a line under the price, or a text block. If a field shows nothing, check that its definition has **Storefront access** on.

### Why is my discount not showing?

Confirm tiers exist in the Offer tab, the bundle was added from the bundle page rather than as separate products, and you tested in checkout, not just the product page. Then check the settings page for a failed discount service.

### Can some steps use a collection and others specific products?

Yes. Each step chooses independently.

### Grid or list?

**Grid** puts the image on top with text and button below, good for a browsable set. **List** puts the image on the left, good for long catalogs. The layout comes from the template.

### Do design changes go live immediately?

Only once you save. One save bar covers every tab. Keep the bundle **Unlisted** while testing.

### Can different bundles have different designs?

Yes. Each bundle has its own template, layout settings and branding.


---

# 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/create-bundles/build-your-own-bundle.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.
