What is the _bundlex code on my orders?
If you have opened an order in your Shopify admin and noticed a line that reads something like _bundlex: {"o":0,"d":"da2a9114-..."}, that is Bundlex at work. It is an internal tracking tag, and this article explains exactly what it does and why it is there.
The short version
The _bundlex line-item property is an internal tracking code that Bundlex attaches to order line items. It does two jobs:
- Applies the correct discount at checkout, by recording which bundle offer the customer selected.
- Attributes revenue in your Bundlex analytics, by recording which discount the line belongs to.
It is not a coupon code, a promo code, or anything your customer typed in. It is metadata that Bundlex uses behind the scenes.
Where the property is visible
Shopify hides underscore-prefixed line-item properties at checkout, but keeps them visible in the admin order details. The property also remains available to theme code and cart APIs.
To hide it on the storefront, the theme must filter private properties. Custom email templates, packing slips, and other integrations should also avoid printing internal properties. Do not assume an underscore hides the value on every surface. See Shopify's private-property documentation.
Bundlex has no setting to hide this property from Shopify's admin order view. If customers can see it in your storefront or a custom template, contact support with the affected page or template.
Why Bundlex uses it
The property links the cart line to its offer and role. Bundlex uses that information for discount eligibility and reporting. Do not strip it from cart requests to hide it visually; filter it from the displayed output instead.
What the code looks like
You will typically see one tag per line item. The main product line carries an offer reference, and any gift or paid extra line carries an additional marker:
_bundlex: {"o":0,"d":"da2a9114-8063-..."} Main item
_bundlex: {"o":0,"e":0,"d":"da2a9114-8063-..."} Gift or extra item
The values are internal identifiers: o is the offer position, d is the discount ID used for revenue attribution, and e marks a gift or paid extra. You do not need to act on them or interpret them.
I see the tag but no discount was applied
This is normal and usually expected. If an order has a single item with the _bundlex tag but no discount, the purchase almost always matched a tier set to None or 0%, for example the "Buy 1" or single-unit tier of a volume deal.
Say you run a wine deal with a "Buy 1" tier at 0% off and larger tiers at a real discount. A single-bottle order will still be tagged. The customer bought 1 unit, which matched the first tier, so no discount applies and only the tracking tag is present. That is the app working correctly.
Tip: if you would rather your first tier carried no discount at all instead of an explicit 0%, set that offer's discount type to None for a cleaner configuration. The behavior is the same and the tag will still appear.
Do I need to do anything?
No. You can safely ignore the _bundlex code on your orders. It supports discount eligibility and revenue attribution. If it appears in a customer-facing template, check how that template displays private properties. If you ever see an order where you expected a discount and none applied, check which tier the purchased quantity matched before assuming something went wrong.
Was this article helpful?
Your feedback helps us improve our docs.