Line item properties using bundles
Learn about line item properties including with each Bundle type.
Recharge supports bundle products, allowing merchants to offer a group of products as a single purchasable unit. Depending on the type of bundle (fixed, dynamic, or preset), Recharge adds specific line item properties to orders to support bundle functionality across checkout and renewals.
This guide outlines the properties added per bundle type, when they are included, and their role in order and subscription processing.
Fixed-price bundles
A fixed-price customizable bundle lets customers choose multiple products to include in a bundle for a set price, no matter which items a customer chooses. The following properties are used to represent and track selections:
Property | Checkout order | Renewal order | Notes |
---|---|---|---|
Contents (unchanged) | Yes | Yes | Default selection |
box_contents (unchanged) | No | No | Not present if unchanged |
Contents (changed) | Yes | No | Replaced on renewal |
box_contents (changed) | No | Yes | Added after selection update |
_rb_id | Yes | No | Internal selection ID |
_rc_bundle | No | Yes | Added on renewal only |
Note:
An order should never include both
Contents
andbox_contents
. If both are present, this may indicate an issue during processing.
After order processing, Contents
or box_contents
(whichever applies) persist as line item properties and subscription properties. These properties do not persist if the bundle product is set up as reset_box_contents
.
Property information
Property | Key | Availability | Localization | Notes |
---|---|---|---|---|
Contents | Contents | Checkout and renewal Orders | User locale | Replaced with box_contents if selection is changed. Often used to display bundle contents in cart. |
box_contents | box_contents | Renewal orders only | User locale | Added only when the user modifies selection. Remains active until removed. Updates with each selection update. |
_rb_id | _rb_id | Checkout orders only | N/A | Nano ID referencing user selection in Redis. Internal use only. |
_rc_bundle | _rc_bundle | Renewal orders only | N/A | Value is the subscription ID. Internal use only. |
Dynamic Bundles
โA dynamically-priced customizable bundle allows customers to build a personalized package where the total cost depends on the specific items they select. Recharge applies the following properties to each child item in the bundle:
Property | Checkout order | Renewal order | Notes |
---|---|---|---|
_rc_bundle | Yes | Yes | Included in subscriptions (with flag) |
_rc_bundle_parent | Yes | No | Identifies bundle product handle |
_rc_bundle_variant | Yes | No | Selected bundle variant ID |
_rc_bundle_collection_id | Yes | No | Collection ID of selected product |
Note
Recharge only includes
_rc_bundle
as a subscription property after processing.
Property | Key | Format | Availability | Notes |
---|---|---|---|---|
_rc_bundle | _rc_bundle | <nano ID>:<external-bundle-product-id> | Checkout and renewal Orders | Includes on renewal only if include_dynamic_bundle_product_as_line_item_in_order is true. |
_rc_bundle_parent | _rc_bundle_parent | Shopify bundle product handle | Checkout orders only | Identifies the bundleโs product handle. |
_rc_bundle_variant | _rc_bundle_variant | Selected variant ID | Checkout orders only | Stores the ID of the selected variant. |
_rc_bundle_collection_id | _rc_bundle_collection_id | Collection ID of the selected product | Checkout orders only | Tracks which collection the selected product belongs to. |
Preset bundles
Preset bundles are non-customizable fixed-price bundles. By default, Recharge does not add any line item properties. However, you can implement custom properties via integrations or custom logic. These custom properties are treated the same way as in fixed-price bundles.
Custom subscription properties
For fixed-price customizable bundles and preset bundles, any custom properties added to the parent bundle subscription are also included in the bundle product line item in each order. These properties persist across renewals and should be included in every renewal order.
Recharge does not support custom line item properties for dynamically-priced bundles by default.
Updated 3 days ago