Bundle Builder and third-party services
Bundle Builder provides a way for third-party systems (such as fulfillment, warehouse, and inventory services/applications) to access details about the bundle contents. You can benefit from this easily by using Multiple SKU bundles.
Below, we'll explain how Multiple SKU and Single SKU bundles each work with third-party services.
Multiple SKU bundles using third-party services
The vast majority of merchants using third-party services will use Multiple SKU bundles, as this bundle type is not reliant on Shopify's unique system of line item properties.
Therefore, this bundle type is far more transferrable across multiple systems outside of Shopify.
Note: We strongly advise that any merchants who utilize third-party systems in their store use Multiple SKU bundles instead of Single SKU bundles.
Single SKU bundles using third-party services
As Single SKU bundles are reliant on Shopify’s unique line item properties system, this bundle type is not designed to work alongside third-party services.
Configuring third-party services with a Single SKU bundle can only be done through the API, and therefore requires a significant level of expertise.
Due to the complexity and personalized nature of this process, we're not able to offer support for this.
Metafields
The details of what each bundle contains are stored in a variant metafield. For more information about accessing metafields through the API, click here.
The metafield is called bundle-contents
- this is within the bundle-builder
namespace, and the value is JSON encoded.
Example of where this can be obtained:
curl -H "X-Shopify-Access-Token:<TOKEN>"
https://<SHOP_DOMAIN>/admin/api/2020-07/variants/<VARIANT_ID>
/metafields.json
- where:
-
<TOKEN>
is app access token. -
<SHOP_DOMAIN>
is the *.myshopify.com address. -
<VARIANT_ID>
is the ID of a variant of the 'ghost' product that represents one specific bundle configuration.
Example of what the metafield might look like with example products and variants:
{
"id": 399,
"bundle_name":
"Outfits xx",
"variants": [
{
"variant_id": 38742265160,
"product_id": 9955921800, "section_id": 403,
"section_name": "T-Shirts",
"variant_title": "Small",
"price": 12.95,
"sku": "DB47-BLK-0",
"product_title": "Silver Bulldog T-Shirt""
},
{
"variant_id": 38742324808,
"product_id": 9955927240,
"section_id": 403, "section_name": "T-Shirts",
"variant_title": "Black w/ Bow", "price": 4.95,
"sku": "DB192-BLK-0",
"product_title": "Black Velvet Bow T-Shirt
(Various Styles)"}]}
Fields are only updated at the time the customer adds the exact bundle configuration to the cart - they are not updated when products/variants change.
Glossary
Attribute |
Description |
|
The Internal ID of given bundle configuration, guaranteed to be unique for all stores. |
|
The name of the bundle. |
|
An array of individual variants that a customer has added to the bundle. |
|
ID of a variant (same as in Shopify Admin API). |
|
ID of a product (same as in Shopify Admin API). |
|
The unique identification of a section (for multi-section bundles), might be null. |
|
Name of the section, might be null or blank. |
|
Title of selected variant (Default Title) if there are no customer-facing variants. |
|
Price of given variant in shop currency. |
|
SKU of given variant, might be null or blank. |
|
Title of the product. |
Only use variant_id
and product_id
for current data - other fields are provided for convenience.