Skip to main content
All CollectionsAdvanced
Using third-party services
Using third-party services
Spencer Davies avatar
Written by Spencer Davies
Updated this week

Note: We strongly advise that any merchants who utilize third-party systems in their store use the Standard bundle type, instead of 'Legacy - Separate SKU' or 'Legacy - Single SKU' bundles.

Bundle Builder and third-party services

Bundle Builder allows third-party systems (such as fulfillment, warehouse, and inventory services/applications) to access details about bundle contents - if you use 'Legacy - Separate SKU' bundles.

Below, we'll explain how 'Legacy - Single SKU' and 'Legacy - Separate SKU' bundles each work with third-party services.


'Legacy - Separate SKU' bundles and third-party services

The vast majority of merchants using third-party services will use Standard, but if you need to use a Legacy bundle type, the best choice would be 'Legacy - Separate SKU' bundles, as this bundle type is not reliant on Shopify's unique system of line item properties.


'Legacy - Single SKU' bundles and third-party services

As 'Legacy - 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 'Legacy - 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, it does not fall under the scope of our support.


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.

In order to access this information, you need to look at the individual variant of a bundle product.

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

id

The Internal ID of given bundle configuration, guaranteed to be unique for all stores.

bundle_name

The name of the bundle.

variants

An array of individual variants that a customer has added to the bundle.

variant_id

ID of a variant (same as in Shopify Admin API).

product_id

ID of a product (same as in Shopify Admin API).

section_id

The unique identification of a section (for multi-section bundles), might be null.

section_name

Name of the section, might be null or blank.

variant_title

Title of selected variant (Default Title) if there are no customer-facing variants.

price

Price of given variant in shop currency.

sku

SKU of given variant, might be null or blank.

product_title

Title of the product.

Only use variant_id and product_id for current data - other fields are provided for convenience.

Did this answer your question?