> For the complete documentation index, see [llms.txt](https://docs.roadmap.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roadmap.so/bundles/create-a-variant-bundle.md).

# Create a variant bundle

Build a bundle where shoppers choose products or variants before adding it to cart.

Use a variant bundle when shoppers should choose products or variants before adding the bundle to cart.

This works well for offers like "pick any 3" or bundles with size, colour, scent, or flavour choices.

{% hint style="info" %}
Variant bundles still fulfil as the underlying SKUs in Shopify.
{% endhint %}

### Before you start

Make sure:

* the products already exist in Shopify
* the variant options are already set up on those products
* you know whether the offer should use a percentage discount or a fixed bundle price

### Create your variant bundle

{% stepper %}
{% step %}

#### Start a new bundle

In Roadmap, go to **Bundles** and create a new bundle.
{% endstep %}

{% step %}

#### Name the bundle

Enter a clear internal name so you can find it later in the Bundles dashboard.
{% endstep %}

{% step %}

#### Choose the discount type

Choose how pricing should work:

* `% Discount off`
* `Fixed bundle price`

Use `% Discount off` when products in the selector vary in price.

Use `Fixed bundle price` when the whole offer should always cost the same amount.
{% endstep %}

{% step %}

#### Enter the price or discount

* For `% Discount off`, enter the percentage.
* For `Fixed bundle price`, enter the bundle price.
  {% endstep %}

{% step %}

#### Optional: enable market-specific pricing

If you use Shopify Markets, enable `Enable market-specific discounts` and update pricing per market.
{% endstep %}

{% step %}

#### Add products to the first selector

Click `Add products`, choose all products for the first selector, then confirm.
{% endstep %}

{% step %}

#### Add more selectors

Repeat `Add products` for each additional selector in the bundle.
{% endstep %}

{% step %}

#### Edit selectors if needed

Use `Edit` on any selector to change what shoppers can choose in that slot.
{% endstep %}

{% step %}

#### Save the bundle

Click `Save` when the structure and pricing are correct.
{% endstep %}
{% endstepper %}

### After you save

Open `Edit Bundle Product` to finish the Shopify product setup.

### Complete setup in Shopify

Use this checklist before you publish:

* add bundle media
* leave the Shopify price at **$0.00**
* select the correct bundle template
* add collections and tags if needed
* confirm the right sales channels are enabled
* set the product status to **Active**

### Common setup mistakes

Check these if the bundle does not behave as expected:

* the wrong discount type was chosen
* products were added to the wrong selector
* the bundle product is not active in Shopify
* the bundle template was not applied

{% hint style="warning" %}
Changing selector contents changes what shoppers can choose on the product page.
{% endhint %}

### Related guides

* [Fixed vs variant bundles](/bundles/fixed-vs-variant-bundles.md)
* [Fixed product bundle setup](/bundles/fixed-product-bundle-setup.md)
* [Shopify bundles that fulfil as SKUs](/bundles/shopify-bundles-that-fulfil-as-skus.md)
* [Bundle fulfilment & ERP integration](/bundles/bundle-fulfilment-and-erp-integration.md)
* [Bundle sales analytics & exports](/bundles/bundle-sales-analytics-and-exports.md)


---

# 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.roadmap.so/bundles/create-a-variant-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.
