# Bundles

{% hint style="warning" %}
**Note:** There’s now a new, no-code way to launch bundles using the **Smartrr Bundle App Block**—no theme edits required. We recommend using this method for faster setup and improved compatibility with Shopify 2.0. [Learn more →](https://help.smartrr.com/docs/support/admin-portal/bundle-app-block)
{% endhint %}

Last updated: May 14, 2025

Bundles features are available to merchants on our [<mark style="color:blue;">💎 Excel plan</mark>](https://help.smartrr.com/docs/getting-started/onboarding/plans). With Bundles, you can offer "build-a-box" style subscriptions for your customers by allowing them to curate their own assortment of recurring products.&#x20;

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FWUVOn5BOAoKEgzgQbmVw%2FScreen%20Shot%202022-09-27%20at%208.43.57%20AM.png?alt=media&#x26;token=759cbe3c-a94e-49ac-b2ca-e3394de173c1" alt=""><figcaption><p>Learn how to build your own beautiful bundles!</p></figcaption></figure>

There are several parts to setting up Bundles with Smartrr, outlined below:&#x20;

1. [<mark style="color:blue;">How to create a Bundle in</mark> <mark style="color:blue;"></mark>*<mark style="color:blue;">Shopify</mark>*](#how-to-create-a-bundle-in-shopify)
2. [<mark style="color:blue;">How to create a Bundle in</mark> <mark style="color:blue;"></mark>*<mark style="color:blue;">Smartrr</mark>*](https://help.smartrr.com/docs/support/admin-portal/what-are-bundles#how-to-create-a-bundle-in-smartrr)
3. [Injecting Bundle snippets into your theme](#injecting-bundle-snippets-into-your-theme)
4. [Rendering your bundle](#rendering-your-bundle)
5. [<mark style="color:blue;">How to implement Bundles on your live site</mark>](#undefined)

## How to create a bundle in Shopify

### 1. Create a dummy bundle product

Create a bundle product to sell in Shopify by navigating to **Products** and clicking **Add product**.&#x20;

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2F9S2Obz8fIGgdMMNRoiun%2Fproducts.png?alt=media&#x26;token=95663efd-58ec-4ed1-8577-0206db49ef94" alt=""><figcaption></figcaption></figure>

Fill in product details, including name, photos, price, etc.

{% hint style="info" %}
**🖼 Note:** Ensure your parent bundle has at least one photo, as this is what will display in your customers' account portals if they go to edit their bundles.
{% endhint %}

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FOeM6Gn1Zs5KxU9VvCf9Z%2Fadd-product.png?alt=media&#x26;token=22024570-ee6c-46a6-ac92-08a7c328753d" alt=""><figcaption></figcaption></figure>

Add at least one **Variant**. If your bundle is determined by size we recommend setting up variants something like *4 pack, 6 pack, 8 pack* etc.&#x20;

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2Ffx7qf7ZNsegLUm5kPjCt%2Fvariants.png?alt=media&#x26;token=6b4ee4bf-607e-4247-90bf-3bf38ce70769" alt=""><figcaption></figcaption></figure>

**Make sure that your products are in stock**, and then Click **Save**.&#x20;

### 2. Create a collection for your bundle product

In order to know which products can be included in this bundle, create a new collection in Shopify with all potential bundle products. We recommend naming this collection the same as your newly created dummy bundle parent product. Set the **Collection type** to **Manual**.

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2F22kojmjipsQ3tbudJQEP%2Fbundle.png?alt=media&#x26;token=eb6162bd-981d-45d9-a843-77841739e4d1" alt=""><figcaption><p>A manual collection will always include the same products of your own selection, unless you add or remove them yourself</p></figcaption></figure>

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2F1oA7YyWjxHRmlufDehvB%2FScreenshot%202024-04-10%20at%201.22.25%E2%80%AFPM.png?alt=media&#x26;token=1913eea8-d000-4966-998a-7d5a90f1b13f" alt=""><figcaption><p>Only add the products you want to be available as options within the bundle. <mark style="color:red;"><strong>DO NOT</strong></mark> add the parent dummy bundle product to this collection.</p></figcaption></figure>

{% hint style="info" %}
**Note:** If the variants within your parent bundle product will contain different options, create a different collection for each different bundle variant. \
\
\&#xNAN;*Example scenario:*\
\
*Parent bundle has three variants, A, B, C.*\
\
*Variant A offers products D, E, F*\
*Variant B offers products, D, E, F*\
*Variant C offers products D, E, **G***\
\
*In above scenario, two collections would have to be made for the parent bundle; one to reference bundle products for Variants A & B and one to reference bundle products for Variant C.*
{% endhint %}

## How to create a bundle in Smartrr

In Smartrr, navigate to **Subscription Programs** and **Bundles**. Click **Create bundle**.

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FLIh6gBOH86yb9iBrqyXJ%2Fsmartrr-bundles.png?alt=media&#x26;token=f16df782-a38c-4043-9161-9316ee18cd6a" alt=""><figcaption></figcaption></figure>

The first step is to select a Subscription Program to link the bundle you're about to create.&#x20;

{% hint style="warning" %}
**Double check:** Make sure the same items you added above in your [<mark style="color:blue;">Shopify bundle collection</mark>](#2.-create-a-collection-for-your-bundle-product) *AND* your [<mark style="color:blue;">parent dummy bundle product</mark>](#1.-create-a-dummy-bundle-product) are all selected as products within the Subscription Program you are about to choose.
{% endhint %}

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FnqDho3XgPZWUkqNo8rgw%2Fcreate-bundle-simple.png?alt=media&#x26;token=1478e785-fcbd-4408-b814-08ab78475326" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**Warning:** You won't be able to change the subscription program associated with this bundle after you've pressed **Save**.&#x20;
{% endhint %}

Next, select the [<mark style="color:blue;">parent dummy bundle product</mark>](#1.-create-a-dummy-bundle-product) you created above as your **Bundle Product**. *\*You will not see this as an option in the modal if the product has not been added to your Subscription Program first.*

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2F6TP5oVuIVmm4gcWlFIWG%2Fcreate-bundle-expanded.png?alt=media&#x26;token=45b36f80-9eac-48a1-b314-9f0c320c3d69" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2Frpp1IJyPIYV7WHUTj8cm%2Fthis.png?alt=media&#x26;token=1571fc1e-a14f-4b30-8b5b-71b593e0add9" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**📦 Tip:** Check **Use line items** if you'd like to pass individual bundle items to your 3PL as line items or custom attributes as opposed to the parent bundle SKU. Read more in our FAQ section below: [<mark style="color:blue;">How are Smartrr bundles passed to my 3PL?</mark>](#undefined)
{% endhint %}

Finally, add as many **Bundle Variants** as you linking to the variants you set up in Shopify for your [<mark style="color:blue;">parent dummy bundle product</mark>](#1.-create-a-dummy-bundle-product). Link the variant to the [<mark style="color:blue;">collection you created in Shopify</mark>](#2.-create-a-collection-for-your-bundle-product) in the above step.

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FfbiRMYE06YtpXn9r2xyq%2F4pack.png?alt=media&#x26;token=1d231f38-8325-4acc-a520-658e0662c932" alt=""><figcaption><p>Be sure to label and describe each variant appropriately!</p></figcaption></figure>

Once you've completed this step, you've now built the bundle product within Shopify, created an associated collection with variants included, and linked the bundle with a subscription program in Smartrr.

From here, we need to properly implement bundles on your live site by creating a new bundles page, and "injecting" the Smartrr bundle snippet into the code of your live theme.

## Injecting Bundle snippets into your theme

To inject the bundle snippet onto your live theme, navigate to the theme in Shopify, click the three dots to the side, and then "edit code"

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FBzTwMoMyXZwwlFaXbZX0%2FScreenshot%202024-05-07%20at%209.31.06%20AM.png?alt=media&#x26;token=6e287a81-c303-4315-8e56-12c8b82e21d7" alt=""><figcaption></figcaption></figure>

Go to"add a new template" on the left side, and select "page" as the template type. Then select "liquid", and name the bundle to something relevant. This will create a new page in Shopify for your bundle.

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2Fjbj1m72CK62GBt7uYyHv%2FScreenshot%202024-05-07%20at%209.35.16%20AM.png?alt=media&#x26;token=aa992d60-972a-40df-af0f-548e7905ac56" alt=""><figcaption><p>Liquid is an open-source template language created by Shopify and written in Ruby. Described as "the backbone of Shopify themes", Liquid is used to load dynamic content on Shopify storefronts.</p></figcaption></figure>

Now you've created the page, scroll down to Snippets, and you'll find the Smartrr bundle snippet you created earlier, it should be titled "smartrr-bundle-*bundle name*.liquid". In this example, "smartrr-bundle-georges-tea-box.liquid".

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FLwE2RxA7sZQjcv1hTZul%2FScreenshot%202024-05-07%20at%209.41.48%20AM.png?alt=media&#x26;token=8b18fd15-e731-4444-9988-c1178caf05a1" alt=""><figcaption></figcaption></figure>

Double click the snippet, and it'll "inject" the bundle code onto the new page you've just created.

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2Fx8tVsJwltSD4YiZqx5Og%2FScreenshot%202024-05-07%20at%209.43.37%20AM.png?alt=media&#x26;token=e0267e1e-2d32-46c6-bc39-846ecd3414dd" alt=""><figcaption></figcaption></figure>

Now we've injected the snippet, we need to render the code to make it visible and functional on our live site.&#x20;

## Rendering your Bundle

Navigate back to the bundle page we created, and add the Smartrr bundle render code.

This part of code will always be the same, just changed to reflect the name you gave your bundle. In this example, the render code looks like this:

```html
{% render 'smartrr-bundle-georges-tea-box' %}
```

Paste the code into the page, and then click "save".

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FEINqM2rARYdHf40PVldJ%2FScreenshot%202024-05-07%20at%2010.05.51%20AM.png?alt=media&#x26;token=7a0c12f5-569a-4027-bcb6-463b1eac954e" alt=""><figcaption><p>Adding multiple bundles in one store will add a layer of complexity to this code, but this is what a simple bundle page looks like in the backend</p></figcaption></figure>

Once you've saved, navigate back to Shopify, go into the "Online Store" sales channel, and then click "Pages". From there, click "Add page".

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2F5iBOYQxl0JHnQbjgHMUv%2FScreenshot%202024-05-07%20at%2010.10.27%20AM.png?alt=media&#x26;token=598c3180-2203-4955-a28f-761268d83d2d" alt=""><figcaption></figcaption></figure>

Name the page the same as your bundle, and click the drop-down "Theme template" on the right-hand side. You should see the template we created in the backend appear as an option. Select it and click save.

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FLiqNXy7a49CwfLDiRFTu%2FScreenshot%202024-05-07%20at%2010.12.23%20AM.png?alt=media&#x26;token=374fe6fd-7c9a-402a-a156-3c254256d53d" alt=""><figcaption></figcaption></figure>

If you click "View page" from here, you'll be directed to your (very basic) bundle page!

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FoVPQGCm6k4rMad08WKn2%2FScreenshot%202024-05-07%20at%2010.14.00%20AM.png?alt=media&#x26;token=bfc7b6ed-8027-4374-8c18-31ce61fc3eaa" alt=""><figcaption></figcaption></figure>

## How to implement Bundles on your live site

The ability to trigger the Bundles modal can be placed anywhere on your site. For example, it can live on your parent bundle PDP as a CTA button: "**Build my bundle**".&#x20;

On our [<mark style="color:blue;">💎 Excel plan</mark>](https://help.smartrr.com/docs/getting-started/onboarding/plans), you have access to our implementation team which can help you get Bundles up and running on your shop.&#x20;

Once installed, the Bundles modal can also be styled with custom colors and typography by editing the CSS on the snippet <mark style="color:purple;">`smartrr-bundle-css.liquid`</mark> in your theme’s liquid code.

{% hint style="info" %}
💻 Developers can find additional technical support for bundles by viewing: [<mark style="color:blue;">Bundles: Developer Documentation</mark>](https://help.smartrr.com/docs/support/developer-documentation/bundles-developer-documentation).&#x20;
{% endhint %}

## Frequently Asked Questions

#### I removed a bundle item from my Shopify collection and subscription program. Why do my customers still see the item in their account portal when they are editing their bundle?

Currently, while bundle items removed from your Shopify collections and subscription program will no longer be available *new* customers to add to their bundle, it will still show up for customers who have *already* purchased subscriptions a bundle with this item. This is a known issue, and Smartrr is actively working on a fix. Please contact your CSM for more information.&#x20;

#### How are Smartrr bundles passed to my 3PL?

Smartrr offers two ways to pass bundle information to your 3PL for picking and packing:

1. As <mark style="color:purple;">custom attributes</mark>
2. As <mark style="color:purple;">line items</mark>

By default, Smartrr appends bundle items to a Shopify order with the <mark style="color:purple;">custom attributes</mark>. When this is the case, your customers' orders in Shopify will look something like the below:&#x20;

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2Fg6OsXxfhas2e3jQfSkGR%2FScreen%20Shot%202022-09-30%20at%2011.58.36%20AM.png?alt=media&#x26;token=fa90b0ac-2179-454c-94b5-3f7cd0362db3" alt=""><figcaption><p>In the above instance, the items in the parent bundle <strong>All-In Cheese Fruit box</strong> are separated as custom attributes <strong>Cheese No Variant: 1</strong>, <strong>Grapes Red Globe: 1</strong>, and <strong>Ben's Cheese: 1</strong>. The attribute <strong>_smartrr_info</strong> appends a JSON breakdown of included bundle variants and their associated selling plans. </p></figcaption></figure>

Alternatively, you can check to enable **Use&#x20;**<mark style="color:purple;">**line items**</mark> when creating your bundle:

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FcAIboGhNZS5WhA2yjosG%2Fthis.png?alt=media&#x26;token=d5ecbfc1-b396-46aa-b24d-14d78ff634a5" alt=""><figcaption></figcaption></figure>

When line items are enabled, your customers' orders in Shopify will look something like the below:&#x20;

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FElP5q0KNo6d0byAW7VKp%2FScreen%20Shot%202022-09-30%20at%2011.59.27%20AM.png?alt=media&#x26;token=1e50641d-a026-4585-9141-dab7b70350d0" alt=""><figcaption><p>When line items are enabled, the Smartrr app will automatically go in and edit the Shopify order to append order items. Bundle items are added at a 100% discount. </p></figcaption></figure>

This will allow you or your 3PL center to fulfill items at a line-item level:

<figure><img src="https://3658670565-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FndNAuxS4koYyI8AQTpS9%2Fuploads%2FYNYECceyinHkp2Or3G7V%2FScreenshot%202024-04-10%20at%201.35.37%E2%80%AFPM.png?alt=media&#x26;token=7446caa3-581c-4502-8de9-9fe60ac8db92" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**⏰ Timing note:** When using line items, the Smartrr app will update the order items in Shopify as soon as Shopify fires an ORDER\_UPDATE webhook. This means that the order you see in Shopify *should be nearly instantaneous*, however we recommend having at least a **10 minute delay** to be safe before Shopify order information is relayed to your 3PL to ensure that Smartrr has had time to add line items.
{% endhint %}

To validate an order has been updated with line items, your 3PL can check for order line item properties in the ORDER\_CREATE payload. If this payload contains `_smartrr_info` then the 3PL should continue to wait on that order for another 10 minutes.
