How the discount is applied at checkout
Applies to: TreStack Bundles, every plan
Updated: 11 October 2026
- Discount: One automatic discount per published deal
- Priced from: What is in the cart, not the bar clicked
- Buy it now: Hidden unless the offer is one plain line of the page's variant
One automatic discount per deal
When you publish a deal, the app creates one automatic app discount for it in Shopify. A Shopify Function runs that discount at checkout and works out the price from the cart. The app never creates discount codes, so shoppers have nothing to type.
You find the discount in Shopify admin under Discounts, titled TreStack Bundles - followed by the deal's Name (only visible for you). Its start and end follow the deal's Active dates. It discounts cart lines, and a free shipping gift discounts shipping; the app makes no order discounts. It applies to one-time purchases and to subscription purchases, on every renewal.
Change the deal in the app, not the discount in Shopify admin: the app writes the discount from the deal each time you Save or Publish. Unpublishing a deal, saving it as a draft, removing it, or a paused plan removes its discount. If you delete the discount in Shopify admin yourself, the deal goes back to draft and Home shows A deal was unpublished. Publish the deal again to create a new discount.
The label shoppers see
Each discounted line shows a label in the cart and at checkout. It is the deal's Discount name (shown in cart/checkout) when you filled it in, otherwise the title of the bar that priced the line. The variables {{quantity}}, {{buy_quantity}} and {{get_quantity}} are filled in with the bar's numbers; any other variable is removed, because the checkout has no prices or titles to put there. A label longer than 255 characters is shortened.
The label shows in the shopper's language only when you translated the discount name or the bar title on the Translations page, and only in languages other than your store's primary language. Everywhere else the original text shows. See Translations, currencies and markets.
The cart decides, not the bar clicked
The checkout prices what is in the cart when the shopper pays. What they clicked in the widget does not matter once the items are in the cart.
- Quantity breaks and Buy X, get Y: every unit of a targeted product in the cart counts, and different variants of the same product add up. The bar with the largest quantity the cart reaches applies. A shopper who adds 3 and then changes the cart to 2 gets the 2-item price, and below the lowest bar there is no discount. A percentage or an amount off applies to every unit. A fixed price bar is scaled to the units in the cart: with 5 units and a 3-item bar at $30, the 5 units cost $50. On a Buy X, get Y bar, each whole buy-and-get set in the cart earns its "get" quantity at the "get" price, given to the cheapest units; the other units pay the "buy" price.
- Items added outside the widget: the theme's own Add to cart counts too, unless Apply discount only via bundle widget is on in Settings, Visibility. With it on, items added through POS, pages without the widget or other apps get no deal discount.
- Bundles and Mix & Match: the cart needs the full set. A missing item means no discount for that set, and units beyond the set pay full price.
- Volume discount with other products: only items added through the widget's product picker count across products, and the page's product must stay in the cart.
- Gifts and upsells: they are free or discounted only while the cart still reaches the bar that owns them. If the shopper drops below it, they stay in the cart at full price; nothing removes them.
- Rounding: a percentage price rounds each unit up to the cent. Price rounding from Settings, Pricing applies in the shopper's currency.
- Currencies: amounts you enter are in your store currency and converted with Shopify's rate for the shopper's currency. A deal set to one market can use that market's currency instead. If no usable rate exists, the shopper gets no discount, never a wrong one.
- Markets and B2B: Shopify applies the discount only in the deal's markets. With Exclude B2B customers on, Shopify B2B buyers get neither the widget nor the discount.
- A/B tests: each variant charges its own price at checkout. See A/B testing a deal.
Checkout routes
The normal cart checkout, Shop Pay and express checkout buttons in the cart all run the discount.
Buy it now buys only the variant shown in the product form. So the widget hides the theme's Buy it now button whenever the chosen offer is more than that one plain line: a bundle, a Mix & Match set, gifts, upsells, different variants per item, or an Alternative product bar. It is also hidden for a multi-unit bar when the theme's product form has no quantity box. Those offers go through the cart. A quantity break or Buy X, get Y bar of one variant keeps Buy it now.
Skip cart and go to checkout directly, in Settings, Cart, sends the shopper from the widget's Add to cart straight to checkout. It first takes out this deal's earlier lines for the same product, so pressing Add to cart twice does not double the offer. Other items in the cart stay.
The app does nothing special for draft orders or POS. With Apply discount only via bundle widget on, items added there get no deal discount.
Checking a price, in four steps.
Publish a deal on one product
Pick a product only you are testing with, or use a development store. See Development stores and testing safely.
Add each bar from the widget
Note the price the widget shows for each bar, then open the cart. The cart total should match.
Go to checkout
Check the label next to the discount and the total. Use the cart checkout, not Buy it now, for offers of more than one line.
Change the cart
Lower a quantity or remove one item of a set and check the price again. It follows the cart, as described above.
Settings reference
{{quantity}}, {{buy_quantity}} and {{get_quantity}} are filled in. Other variables are removed.If this does not work
The failures most likely on this page, with the check that resolves each one.
Translations, currencies and markets
The widget's built-in texts in 20 languages, translating your deal texts and checkout labels, how prices follow the shopper's currency, and deals limited to some markets.
Combining discounts, and store limits
How a deal's discount combines with codes and other discounts, what happens when two deals or two bundle apps share a product, Shopify's 25 automatic discounts, the deal size limit, and every other limit in the app.