How to create bundles with a subscription plan like Recharge, Seal, and Appstle in Simple Bundles 2.0
In this article:
- Popular subscription apps recommended for merchants
- How subscription orders are processed in Simple Bundles
- How bundle selections are preserved on subscription renewals
- How to prevent double-shipping bundle items on subscription orders
- Using subscription-only products in bundles in the Recharge app
- One-time bundle purchase vs. a subscription purchase
- Will bundle components show up inside Recharge itself?
- Related help guides for using subscriptions with bundles
Popular subscription apps recommended for merchants
Many merchants have integrated their bundles with leading subscription platforms. Some of the popular options include:
- Recharge Subscriptions
- Seal Subscriptions
- Appstle
- Bold Subscriptions
- Loop Subscriptions
- Skio
- Ordergroove
How subscription orders are processed in Simple Bundles
If you're using subscriptions with your bundles, please note that native subscription support through the Cart Transform API is currently limited due to Shopify platform constraints. When a subscription is detected on an order, Simple Bundles 2.0 automatically uses the order editing method instead.
With this approach, bundles are broken down at the order level after checkout, allowing Simple Bundles 2.0 to work smoothly with popular third-party subscription apps such as Recharge and Ordergroove, while still maintaining accurate order processing and inventory management.
Because subscription orders created through third-party apps originate outside Shopify's native sales channel, they're processed using the same order editing workflow used in Simple Bundles 1.0. For one-time bundle purchases, the bundle is still broken down into its components at checkout using the Cart Transform API.
Fulfillment note for subscription renewals: On renewal orders processed through order editing, you'll see both the parent bundle line (at full price) and the component lines (at a 100% discount) on the order. Only the component lines represent the physical items to pick and ship, the parent bundle line is there for pricing and accounting purposes only. If your fulfillment team or 3PL isn't aware of this, it can result in accidentally shipping duplicate items on renewals, since seeing both the bundle line and its components can look like two separate orders' worth of product.
How bundle selections are preserved on subscription renewals
When a subscription order renews, Simple Bundles needs to know which products were originally selected to break down the bundle correctly. The way this works depends on your bundle type.
Important: Subscription bundles (both BYOB and Infinite Options) must use fixed pricing. Dynamic pricing is not supported for subscriptions because subscription orders use the order editing method rather than Cart Transform, and dynamic pricing calculations require Cart Transform to run at checkout.
BYOB (Build Your Own Bundle)
BYOB bundles store the customer's selections in a _bundle_selection line item property. This field contains the component variants the customer chose when building their bundle.
For subscription renewals to work correctly:
- The subscription app must preserve and replay the
_bundle_selectionproperty when creating renewal orders - The BYOB must be configured with fixed pricing (not dynamic pricing)
- If
_bundle_selectionis missing on a renewal order, Simple Bundles cannot determine which components the customer originally selected
What happens if _bundle_selection is not preserved:
- The renewal order will show only the parent bundle SKU
- No component line items will be added via order editing
- Inventory will not be deducted from the individual component products
- Fulfillment teams will not see the itemized pick list
Infinite Options bundles
Infinite Options bundles store selections as multiple line item properties (key-value pairs like Color: Red , Size: Large ) rather than a single _bundle_selection field.
The same requirements apply:
- The subscription app must preserve all line item properties on renewal orders
- The bundle must use fixed pricing
- If properties are missing, Simple Bundles cannot determine the original selections
Note: Whether line item properties are preserved depends on your subscription app. Some apps (like Loop) preserve custom properties by default; others may require configuration. Contact your subscription app's support to confirm their behavior.
How to prevent double-shipping bundle items on subscription orders
Because order editing places both the parent bundle line and the component lines on the same order, any fulfillment process that doesn't distinguish between the two can end up picking and shipping both, resulting in duplicate items going out on every renewal.
The recommended fix, and the workaround, is to turn on automatic fulfillment of bundle SKUs in Simple Bundles. You'll find this setting under Settings > Advanced Settings > Cart Transform and Order Editing Fallbacks in Simple Bundles 2.0 (in 1.0, it's under the legacy Preferences location). With it enabled, Simple Bundles automatically marks the parent bundle SKU as fulfilled as soon as the component lines are added, so it never lands on your fulfillment team's or 3PL's pick list. Only the real component SKUs are left to be picked and shipped. This doesn't send a fulfillment notification to the customer, since our app doesn't set notifyCustomer when creating that fulfillment.
Full setup steps and screenshots are in Enabling automatic fulfillment of bundle SKUs.
If your bundle SKUs are shared across both one-time and subscription purchases, keep in mind this setting only matters for the order editing path. Bundles that check out through Cart Transform never show a parent bundle line on the order in the first place, so there's nothing extra to exclude there.
If you're on a 3PL or fulfillment app like ShipStation, this setting is what keeps the parent bundle SKU off their pick list automatically, so there's no separate configuration needed on their end.
Using subscription-only products in bundles in the Recharge app
If you're using Recharge Subscriptions and including subscription-only products (i.e., no one-time purchase option enabled) in your bundles, it's important to note that Shopify will reject the add-to-cart action when the bundle is added to the cart via the storefront. This issue is not theme-related. Instead, it's tied to how Shopify and Recharge handle selling plan requirements for subscription-only products.
For example: "Aro Home + Gardenia Whisper (150ml) with FREE Mystery Gift", the product "Gardenia Whisper inspired by Mont-Blanc Resorts®" is configured in Recharge as subscription-only (with the one-time purchase option turned off).
As a result, when a customer tries to add this bundle to the cart through the storefront, Shopify rejects the add-to-cart request entirely because it includes a product that must be purchased with a selling plan, but the bundle isn't set up to pass that plan.
Solution: In Recharge, make sure that "One-Time Purchase" is enabled for all bundle component products. This ensures that the parent bundle can be successfully added to the cart, even if the customer is only purchasing the subscription product as a one-time purchase.
One-time bundle purchase vs. a subscription purchase
Below, we show how a bundle appears on the storefront and in the order admin as a one-time order vs. a subscription order. Below is a comparison of how a bundle appears to customers and in the Shopify admin when purchased as a one-time order versus a subscription.
-
Bundle as a one-time purchase.
How it appears in the Shopify order admin:
-
Bundle as a subscription
What customers see at checkout:
How it appears in the Shopify order admin:
Will bundle components show up inside Recharge itself?
No. With Recharge, the bundle will always appear as a single parent line item within Recharge's own subscription record, since that's what the customer is actually subscribed to. The Shopify order itself will correctly show the broken-down child products via order editing, but this doesn't carry over into Recharge's own interface.
There currently isn't a supported workaround for this. Recharge generates a unique selling plan ID per variant for each subscription cadence, so applying the parent bundle's selling plan to its child variants at the cart level isn't possible; doing so returns a 422 – Cannot apply selling plan to variant error, since those child variants aren't enrolled in that specific plan ID. Recharge's discounting, which is calculated as a percentage off each variant's own list price, also creates pricing mismatches if this is attempted.
So to summarize:
- Shopify order: child products appear correctly ✓
- Recharge subscription record: only the bundle parent appears (this is expected, by design)
If you need the components visible inside Recharge itself for operational reasons, that would require custom work on Recharge's side, or switching to a different subscription app such as Loop, which does support cart-level breakdown (see the related guide below).
Related help guides for using subscriptions with bundles
Creating bundles with a subscription plan in Simple Bundles 1.0
- If you're using Simple Bundles 1.0, this guide explains how to create bundles that include a subscription plan. It walks through the setup required to allow customers to purchase bundle products as subscriptions using compatible subscription apps.
Breaking down bundles at the cart level when using Loop, Ordergroove, and other supported subscription apps with Simple Bundles 2.0
- This guide explains a workaround for using compatible subscription apps like Loop and Ordergroove with Simple Bundles 2.0. It shows how to expand bundles into their child products at the cart level when a subscription (selling plan) is selected, so the subscription app receives the correct items and processes the order correctly.
Note: this workaround is not compatible with Recharge, since Recharge assigns a unique selling plan per variant per cadence; see "Will bundle components show up inside Recharge itself?" above for why.
Need more help? Contact our team anytime. We're happy to help!