Skip to main content
Discount types & pricing

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

  1. Open the bundle deal you want to edit in the Bundlex dashboard.
  2. Go to the Advanced tab and tick Customize cart & checkout labels.
  3. In the top field, All lines, enter one label for the whole discount (for example, Black Friday).
  4. 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.
  5. 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.

LineLabel used when you leave it blank
Main discountThe offer's title
Free giftThe offer's title
UpsellThe offer's title
Gift selector picksThe offer's title
Progressive giftThe title of the offer that unlocked it
Paid cross-sellIts own product title
Upsell offer add-onIts 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.

Thanks - we'll keep improving this article.

Want to chat with our team? Still have a question?

Still need help?

Our team is one click away. Send us a message and we'll get back to you.

We use a few cookies to keep this site working, measure how it is used, and power our chat widget when you open it. See our cookie policy.