Bundles are available on request. Contact support from the app to have them turned on for your store.
How it works
When a customer rents a bundle:- Each component is added to the cart as its own line item with the attributes Supercycle needs.
- Availability is checked across every component for the selected dates.
- The customer picks an option, such as a rental period, for each component.
Set up a bundle
1
Open Bundles
On Products, select Bundles.
2
Create the bundle
Select Create bundle and enter a name.
3
Add component products
Add each product that makes up the bundle. Turn on the methods each component needs before you add it, because the methods on each component decide which options are available when you create intents at checkout.
4
Save the bundle
Select Save. Supercycle tags the parent product
Supercycle bundle product, tags each component Bundle component: <parent-product-handle>, and writes the supercycle.bundle metafield on the parent.Bundle metafields
The parent product carries the tagSupercycle bundle product and a supercycle.bundle metafield listing its components:
supercycle.bundle
Bundle component: <parent-product-handle>. You can reach each component’s full Shopify product object in Liquid:
Look up a component
Iterate over the components to read each one’s configuration:
Read each component's calendar configuration
global_id per option. For example, a calendar configuration:
calendar_configuration
Build the storefront flow
Each component goes into the cart as its own line item with the right Supercycle attributes. The steps below check availability, create an intent per component, and add every component to the cart in one request.1
Check availability
Use the Product availability endpoint to confirm every component is available for the selected dates. Collect the component IDs from the bundle metafield in Liquid, then post them:
Collect component IDs
Check availability
2
Create an intent for each component
Each component needs an intent from the Intent endpoint. The intent returns an Call it for every component before adding to the cart:
attributes object with everything Supercycle needs to process the line item as a cycle, including _cycle, _validations, and selling_plan.Build a UI that lets the customer pick an option for each component, for example a dropdown of rental periods per item. Each option has a global_id in the component’s configuration metafield, which is what you pass to the endpoint:Create an intent
Call it per component
3
Add the components to the cart
With an intent for each component, add every variant to the cart in a single request using Shopify’s multiple items cart API. Set every key of
intent.attributes directly, because each key is already the form field name Shopify expects.