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:

PropertyCheckout orderRenewal orderNotes
Contents (unchanged)YesYesDefault selection
box_contents (unchanged)NoNoNot present if unchanged
Contents (changed)YesNoReplaced on renewal
box_contents (changed)NoYesAdded after selection update
_rb_idYesNoInternal selection ID
_rc_bundleNoYesAdded on renewal only

๐Ÿ“˜

Note:

An order should never include both Contents and box_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

PropertyKeyAvailabilityLocalizationNotes
ContentsContentsCheckout and renewal OrdersUser localeReplaced with box_contents if selection is changed. Often used to display bundle contents in cart.
box_contentsbox_contentsRenewal orders onlyUser localeAdded only when the user modifies selection. Remains active until removed. Updates with each selection update.
_rb_id_rb_idCheckout orders onlyN/ANano ID referencing user selection in Redis. Internal use only.
_rc_bundle_rc_bundleRenewal orders onlyN/AValue 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:

PropertyCheckout orderRenewal orderNotes
_rc_bundleYesYesIncluded in subscriptions (with flag)
_rc_bundle_parentYesNoIdentifies bundle product handle
_rc_bundle_variantYesNoSelected bundle variant ID
_rc_bundle_collection_idYesNoCollection ID of selected product

๐Ÿ“˜

Note

Recharge only includes _rc_bundle as a subscription property after processing.

PropertyKeyFormatAvailabilityNotes
_rc_bundle_rc_bundle<nano ID>:<external-bundle-product-id>Checkout and renewal OrdersIncludes on renewal only if include_dynamic_bundle_product_as_line_item_in_order is true.
_rc_bundle_parent_rc_bundle_parentShopify bundle product handleCheckout orders onlyIdentifies the bundleโ€™s product handle.
_rc_bundle_variant_rc_bundle_variantSelected variant IDCheckout orders onlyStores the ID of the selected variant.
_rc_bundle_collection_id_rc_bundle_collection_idCollection ID of the selected productCheckout orders onlyTracks 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.


Need Help? Contact Us