Setting the discount label shown at checkout
Every offer in a bundle deal has its own title (for example, "Buy 3 with {{saved_percentage}} off"). By default, that per-offer title is what shows up next to the discount at cart and checkout. Customize cart & checkout labels lets you replace it with your own wording, either one name for the whole discount like "Black Friday", or a different name for each line.
What the labels do
Your labels override the per-offer title on every allocation the discount produces at cart and checkout. This only changes wording. It does not change the discount amount, the offer math, or anything in the product-page widget.
- Leave everything blank and each line keeps the title it would have used anyway.
- A label that is empty or only spaces counts as blank and falls back the same way.
How to set them
- Open the bundle deal you want to edit in the Bundlex dashboard.
- Go to the Advanced tab and tick Customize cart & checkout labels.
- In the top field, All lines, enter one label for the whole discount (for example,
Black Friday). - Optionally fill in any of the rows below it to override a single line. Rows are grouped per offer and cover the main discount, free gifts, upsells, gift selectors, and progressive gifts.
- Save the bundle, then re-publish it so the new labels reach checkout.
Each row's placeholder text shows you the label that line will use if you leave it blank, so you can see the result before typing anything.
Unticking Customize cart & checkout labels clears every label you have entered, including any on lines not currently visible. Re-ticking it gives you empty fields, not your previous text.
What each line falls back to
Gifts, upsells, and gift selector picks don't use their own widget titles at checkout. Their widget text is sales copy ("Free gift", "Save 10% more", "Choose 4 free gifts"), which reads as noise in a list of discount names, so they inherit the offer's title instead and the whole offer reads as one discount.
| Line | Label used when you leave it blank |
|---|---|
| Main discount | The offer's title |
| Free gift | The offer's title |
| Upsell | The offer's title |
| Gift selector picks | The offer's title |
| Progressive gift | The title of the offer that unlocked it |
| Paid cross-sell | Its own product title |
| Upsell offer add-on | Its own title |
Cross-sells are not in the list
Paid cross-sells have no override row, because they keep their own product title rather than inheriting the offer's. They are separate products in the bundle and their names are meaningful at checkout. To change how a cross-sell reads, edit that cross-sell's title on the offer.
Template variables at checkout
You can use template variables in the label, the same {{...}} placeholders you use in offer titles. The catch is that the cart and checkout only have a limited set of data available, so most variables are stripped there. Only the ones Bundlex can compute from the offer itself survive.
Variables that survive at checkout
{{saved_percentage}}resolves for percentage offers and is stripped for other discount types.{{quantity}}(and the legacy{{offer_quantity}}) resolves to the offer's quantity threshold.{{buy_quantity}}resolves to the buy count (for Buy X Get Y, the paid items; otherwise the threshold).{{get_quantity}}resolves to the free count (for Buy X Get Y; otherwise 0).
Variables that are stripped at checkout
These work in your product-page text but are removed from the label at cart and checkout, because that data is not part of the checkout's input:
- Product, stock, and timer variables:
{{product_title}},{{stock}},{{timer}}. - All price variables, such as
{{saved_per_item}},{{saved_total}},{{price_per_item}}, and the compare-at price variables.
There is one exception. On upsell offer add-on lines, {{product_title}} does resolve at checkout, because that discount applies to a single known product. Everywhere else it is stripped.
If a label only contains variables that get stripped, the resolved text can come out empty. When that happens, Shopify falls back to its own default discount label.
One label vs. per-line savings
If your label includes a per-line variable like {{saved_percentage}}, it is resolved separately for each allocation using that line's own discount. So a bundle with 20% off the main product and 10% off a paid extra, using the label "Save {{saved_percentage}}", shows a different number on each line: the main line reflects its 20% and the paid-extra line reflects its 10%.
That is intentional, since each line reflects its own savings. If you want one identical label on every line at checkout, use a plain label with no variables, such as Black Friday.
Tip: for a clean, consistent name across the whole discount (great for promo events), skip the variables and use a short fixed label. Save the variables for your product-page offer titles, where the full set is available.
Was this article helpful?
Your feedback helps us improve our docs.