> For the complete documentation index, see [llms.txt](https://help.mimeeq.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.mimeeq.com/commerce-and-integrations/shopify/add-to-cart.md).

# Shopify Add to Cart Methods

Control how configured products reach the Shopify cart, from single products to bundles. Learn to set up each add-to-cart method for standard and modular products.

Mimeeq provides advanced bundling functionality for 3D configurators integrated with Shopify stores. This feature allows you to group multiple product components into a single purchase unit, so complex product configurations can be added to cart as packages.

{% hint style="info" %}
**Before you start:** Custom Product, Single Variant and Product Bundles functionality is available for Shopify-integrated stores. To use these features, enable **Add to Cart Configuration** in your Shopify app Extension Settings. This feature requires an active Shopify connection and will not function without proper Shopify integration. See [Shopify Admin Settings](/commerce-and-integrations/shopify/admin-settings.md) to make sure all required settings are configured correctly.
{% endhint %}

![Example of a bundled product in a Shopify cart](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2FkDtdLmjlX1cMwKY5ONjQ%2Fshopify-bundle-1_1ar7t0f.png?alt=media)

***

## Bundling methods by product type

### Standard products: two bundling approaches

Standard products support two bundling methods:

<table><thead><tr><th width="68.64453125">#</th><th>Method</th><th>How it works</th></tr></thead><tbody><tr><td>1</td><td><strong>Cart Transform API</strong> (Dynamic Bundling)</td><td>Real-time bundling that occurs during the cart process without creating products in your catalogue</td></tr><tr><td>2</td><td><strong>Admin Bundling</strong></td><td>Creates static bundles via Shopify's Admin API during the add-to-cart process</td></tr></tbody></table>

{% hint style="warning" %}
**Note:** both bundling methods have specific technical limitations and use cases. For detailed information about Cart Transform API limitations and when to choose each method, see our Understanding Shopify Cart Transform API Limitations guide (coming soon).
{% endhint %}

### Modular products: custom bundling methods

Modular products use different bundling approaches that allow flexible element combinations. See [Shopify bundling methods for modular products](#shopify-bundling-methods-for-modular-products) for detailed configuration.

***

## Creating bundles in Mimeeq

To create a bundle in Mimeeq:

1. Navigate to your product's configuration page.
2. Open the **Pricing and Codes** tab.
3. Find the **Add to Cart Configuration** section.
4. In the **Method** dropdown, select your bundling approach: **Single Custom Product** or **Shopify Custom Defined Logic**.

{% tabs %}
{% tab title="Single Custom Product" %}
When you select **Single Custom Product**, your configured product is added as a single item to the cart. This is the simplest approach, where all components are combined into one product.

**For Shopify integrations**, you can optionally set a **Product Breakdown Metafield Key**. This is the key of the JSON metafield where the app stores the product breakdown, entered in `namespace.key` format (e.g. `custom.product_breakdown`).

{% hint style="warning" %}
The metafield must be configured as a JSON-type metafield in Shopify, otherwise the integration will not work.
{% endhint %}

![The Product Breakdown Metafield Key field in the Add to Cart Configuration panel](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2F8FOIezwCBZSmEUC0mkr2%2Fkey-shopify_gqqv29.png?alt=media)
{% endtab %}

{% tab title="Shopify Custom Defined Logic" %}
When you select **Shopify Custom Defined Logic** (multiple components), you have three independent options that can be used separately or together:

1. **Custom Products to Create:** creates entirely new products in Shopify before adding to cart. See [Custom products configuration](#custom-products-configuration).
2. **Single Variants to Add to Cart:** adds existing Shopify variants directly to the cart as a single item. See [Single variants configuration](#single-variants-configuration).
3. **Bundles:** creates a grouped collection of products that are treated as a single unit. Choose between:
   * **Cart Bundle** (Cart Transform API): for dynamic bundling. See [Cart bundle configuration](#cart-bundle-configuration).
   * **Admin Bundle:** for static bundle creation. See [Admin bundle configuration](#admin-bundle-configuration).
     {% endtab %}
     {% endtabs %}

***

## Custom products configuration

When creating custom products, configure the following:

<table><thead><tr><th width="182.578125">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Name</strong></td><td>Product name with variable support. For example: PC Case - <code>{{CASETYPE#name}}</code> - <code>{{Casecolour#name}}</code> - <code>{{shortcode}}</code></td></tr><tr><td><strong>SKU Code</strong></td><td>Optional SKU identifier</td></tr><tr><td><strong>Qty to Add</strong></td><td>Quantity of this item</td></tr><tr><td><strong>Price Each</strong></td><td>Individual item price</td></tr><tr><td><strong>Cart Parameters</strong></td><td>Additional data passed to cart</td></tr></tbody></table>

***

## Single variants configuration

{% hint style="warning" %}
**Important:** if your variant ID is created dynamically (the variant does not already exist in Shopify before the add-to-cart call), newly created variants take time to propagate to Shopify's cart service. This is typically a few seconds, but occasionally up to \~30s. A variant may be readable via the Variants API while the cart service still rejects it with a 422 "sold out" error, even with inventory tracking disabled. This is a Shopify propagation delay, not a Mimeeq configuration issue.

For dynamic configurations, we recommend using Custom Products instead of Single Variants where possible. Freshly created products propagate faster than variants appended to an existing root product, and this approach avoids Shopify's per-product variant ceiling.
{% endhint %}

To add individual Shopify variants to bundles, configure the following:

<table><thead><tr><th width="141.1484375">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Variant ID</strong></td><td>Shopify variant ID. For example, it can be created from block placeholders using Item Master <code>{ItemMaster[{keyboardtype#code}]#commerceId}</code>, or entered directly as a variant ID (7234567890123)</td></tr><tr><td><strong>Qty</strong></td><td>Quantity to add to the cart</td></tr><tr><td><strong>Cart Parameters</strong></td><td>Additional variant data</td></tr></tbody></table>

***

## Cart bundle configuration

When creating a Cart Bundle, configure the following:

<table><thead><tr><th width="234.28515625">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Bundle Name</strong></td><td>Name of the bundle, for internal use only</td></tr><tr><td><strong>Price Method</strong></td><td>Determines how component prices are calculated: <strong>Mimeeq</strong> (per item) or based on <strong>Shopify Variant</strong> (uses Merge)</td></tr><tr><td><strong>Repeat Master in Components</strong></td><td>Whether to include the master product in the component list</td></tr><tr><td><strong>Override Title</strong></td><td>Customises the bundle title using variables like {shortcode}, {productname}</td></tr><tr><td><strong>Override Image</strong></td><td><strong>None:</strong> use the default product image. <strong>Configurator image:</strong> override the default image with a custom image for the product; this may add a short delay (2–3 seconds) when adding the product to your cart</td></tr></tbody></table>

After you define the main bundle settings, define the variants that will be added to the bundle:

<table><thead><tr><th width="267.29296875">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Is master</strong></td><td>Defines the Master Product as the primary item in the bundle. To add a price to the Master Product, <strong>Repeat Master in Components</strong> must be set to <strong>Yes</strong>. Must be assigned to only one item per bundle</td></tr><tr><td><strong>Variant ID / Custom Product</strong></td><td>Shopify Variant ID or created Custom Product</td></tr><tr><td><strong>Qty</strong></td><td>Quantity of this item in the bundle</td></tr><tr><td><strong>Price Each</strong></td><td>Individual item price</td></tr><tr><td><strong>Cart Parameters</strong></td><td>Additional data passed to cart</td></tr></tbody></table>

***

## Admin bundle configuration

When creating an Admin Bundle, configure the following:

<table><thead><tr><th width="208.84765625">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Bundle Name</strong></td><td>Name of the bundle, for internal use only</td></tr><tr><td><strong>Price Method</strong></td><td>Determines how component prices are calculated: <strong>Mimeeq</strong> (per item) or based on <strong>Shopify Variant</strong> (uses Merge)</td></tr><tr><td><strong>Image</strong></td><td><strong>None:</strong> use the default product image. <strong>Configurator image:</strong> override the default image with a custom image for the product; this may add a short delay (2–3 seconds) when adding the product to your cart</td></tr><tr><td><strong>Title</strong></td><td>Customises the bundle title using variables like {shortcode}, {productname}</td></tr><tr><td><strong>Bundle Price</strong></td><td>Price per bundle. Only available if <strong>Price Method</strong> is <strong>Mimeeq</strong></td></tr></tbody></table>

After you define the main bundle settings, define the variants that will be added to the bundle:

<table><thead><tr><th width="230.06640625">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Type</strong></td><td><strong>Variant ID</strong> or <strong>Product ID</strong></td></tr><tr><td><strong>Variant ID / Product ID</strong></td><td>Shopify Variant ID or Product ID, depending on the type</td></tr><tr><td><strong>Qty</strong></td><td>Quantity of this item in the bundle</td></tr></tbody></table>

***

## Shopify bundling methods for modular products

To create a bundle in Mimeeq for modular products:

1. Navigate to your product's configuration page.
2. Open the **Products** tab.
3. Find the **Add to Cart Configuration** section.
4. In the **Method** dropdown, select your bundling approach.

**Available bundling methods**

<table><thead><tr><th width="73.28125">#</th><th>Method</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td><strong>Custom Product</strong></td><td>Creates a single custom product with elements listed as cart line attributes</td></tr><tr><td>2</td><td><strong>Shopify All Elements as Single Items</strong></td><td>Each element is added individually to the cart</td></tr><tr><td>3</td><td><strong>Shopify Single Bundle With All Elements</strong></td><td>All elements are bundled together</td></tr><tr><td>4</td><td><strong>Shopify Custom Defined Logic</strong></td><td>Custom bundle rules for complex scenarios with multiple bundle groups</td></tr></tbody></table>

***

## How to configure modular product bundles

{% tabs %}
{% tab title="Custom Product (default)" %}
This is the standard approach, where all configured elements become one custom product.
{% endtab %}

{% tab title="All Elements as Single Items" %}

1. Select **Shopify All Elements as Single Items** from the **Method** dropdown.
2. Each element with a Shopify mapping is added separately to the cart.
3. Elements appear as individual line items in the cart.
   {% endtab %}

{% tab title="Single Bundle With All Elements" %}
When you select **Shopify Single Bundle With All Elements**, additional settings appear:

| Field              | Description                                                                                                                                                                                   |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Price Method**   | Determines how component prices are calculated: **Mimeeq** (per item) or based on **Shopify Variant** (uses Merge)                                                                            |
| **Override Title** | Customises the bundle title using variables like {shortcode}, {productname}                                                                                                                   |
| **Override Image** | **No:** use the default product image. **Yes:** override the default image with a custom image for the product; this may add a short delay (2–3 seconds) when adding the product to your cart |
| {% endtab %}       |                                                                                                                                                                                               |

{% tab title="Custom Defined Logic" %}
This advanced method lets you create multiple custom bundles from your modular elements.

**Additional settings for custom logic**

| Field                                | Description                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **How to Handle Undefined Elements** | What happens to elements not in any bundle. **Add Selected Only Elements as Single Items:** only elements that you select are added as single items to the cart if not specified in a bundle; unselected products are not added to cart. **Add All Elements as Single Items:** any products that are not specified in a bundle are added as single items to the cart |
| **Single Items to Add**              | Specific elements to add as single items. *Available only if **Add Selected Only Elements as Single Items** is selected*                                                                                                                                                                                                                                             |

**Create custom bundles for modular products**

1. Select **Shopify Custom Defined Logic** as the method.
2. Configure how to handle undefined elements.
3. Click **Add Bundle** to create a new bundle.
4. Configure each bundle using the fields below.

<table><thead><tr><th width="221.17578125">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Bundle Name</strong></td><td>Name of the bundle, for internal use only</td></tr><tr><td><strong>Method</strong></td><td>Type selection: <strong>Bundle</strong> or <strong>Custom product</strong> (creates a standard custom product for each selected product, using the component's specification as cart attributes)</td></tr><tr><td><strong>Price Method</strong></td><td>Determines how component prices are calculated: <strong>Mimeeq</strong> (per item) or based on <strong>Shopify Variant</strong> (uses Merge)</td></tr><tr><td><strong>Override Image</strong></td><td><strong>No:</strong> use the default product image. <strong>Yes:</strong> override the default image with a custom image for the product; this may add a short delay (2–3 seconds) when adding the product to your cart</td></tr><tr><td><strong>Override Title</strong></td><td>Customises the bundle title using variables like {shortcode}, {productname}</td></tr><tr><td><strong>List of Products to Include</strong></td><td>Select which elements go in this bundle</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Only items shown on the finish screen are included in bundles. Items with **Hide on Finish Screen** are excluded.
{% endhint %}

***

## Related articles

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Shopify Admin Settings</strong></td><td>Connect your API key, products and cart settings.</td><td><a href="/commerce-and-integrations/shopify/admin-settings.md">Shopify Admin Settings</a></td></tr><tr><td><strong>Changelog</strong></td><td>See the latest Shopify app features, improvements and fixes.</td><td><a href="/commerce-and-integrations/shopify/changelog.md">Changelog</a></td></tr><tr><td><strong>Shopify Discount Codes</strong></td><td>Apply discount codes to configured products and bundles.</td><td><a href="/commerce-and-integrations/shopify/discount-codes.md">Shopify Discount Codes</a></td></tr></tbody></table>


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.mimeeq.com/commerce-and-integrations/shopify/add-to-cart.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
