Building offers

Products, dates and visibility

Which products show a deal, when it runs, in which markets and for which buyers, what the widget-only setting leaves out, and which deal shows when several share a product.

Applies to: TreStack Bundles, every plan
Updated: 11 October 2026

At a glance
  • Targeting: Products or collections, not variants
  • Dates: Your browser's time zone
  • Deals shown per product: One, but every discount runs

Choosing products

The Products section of the editor decides on which product pages the deal shows. Visibility has three choices:

  • All products: every product, the default. Select exceptions opens a menu, Products or Collections, to leave some out; they are then listed under Exceptions.
  • Selected products: only the products you pick with Select products.
  • Selected collections: every product in the collections you pick with Select collections.

The picker takes up to 200 products, or 100 collections, at a time. Targeting works on whole products: there is no way to show a deal for some variants of a product only.

When products you pick are already in another deal, the editor warns: Some of the products are in "deal name" deal which may result in conflicting discounts, with the products listed. Take that warning seriously, as the last section explains.

Names and active dates

The Settings section starts with three names:

  • Name (only visible for you): the deal's name in the app. It must be unique.
  • Block title: the heading above the bars on the storefront.
  • Discount name (shown in cart/checkout): the label of the discount at checkout. Without one, the bar's title is used. How the discount is applied at checkout covers the label.

Active dates sets when the deal runs: a Start date and Start time, and with Set end date on, an End date and End time. Times are typed as HH:MM and are in the time zone of the browser you are using, which the field shows next to the time. Turning on Set end date fills in midnight at the end of the start day, or this time tomorrow if that has passed.

A published deal whose start is in the future is Scheduled, and shows once it starts. A deal whose end date has passed is Expired: it stays published, but the widget hides it and its discount stops at the end date, because the Shopify discount carries the same start and end. The app checks statuses every minute. Creating, publishing and managing deals lists every status.

Markets, B2B and the widget-only rule

The Visibility part of Settings has the rest of the rules:

  • Markets: All, or one market. A deal set to one market shows only to shoppers in that market, and Shopify applies its discount only there.
  • Exclude markets: shown with All. Tick it and choose the Excluded markets where the deal does not show or apply.
  • Exclude B2B customers: buyers of a Shopify B2B company get neither the widget nor the discount. The editor notes it works with Shopify B2B only: third-party B2B apps are not supported. With it off, B2B carts are priced like any other.
  • Apply discount only via bundle widget: only items added through the widget get the discount. The editor notes that items added via POS, non-bundle product pages, or other apps won't receive the bundle discount.

When a deal is set to one market, its amounts are entered in that market's currency when the market has its own. They are exact in that currency and converted for any other. If the app cannot read the market's exchange rate, the field says so and the amounts stay in your store currency. Translations, currencies and markets covers currencies.

Without the widget-only rule, every item of a targeted product counts towards a quantity break or Buy X, get Y, however it reached the cart: the theme's Add to cart, a collection page, another app, a draft order or POS. With the rule on, only lines the widget added are discounted. Bundles and mix and match always need items added through the widget.

When several deals share a product

The widget shows one deal per product. It first drops the deals that are outside their dates, set to another market, excluding the shopper's market, or excluding B2B buyers when the shopper is one. From the rest it picks:

  1. A deal set to the shopper's market over a deal for all markets.
  2. The most specific targeting: Selected products, then Selected collections, then All products with exceptions, then All products.
  3. The most recently published version.

The Bundle deal app block has a Deal ID setting that shows one of that product's eligible deals instead of the automatic choice, but the app does not display deal ids yet. Theme compatibility and placement covers the app block.

The one-deal rule is the widget's only. At checkout every published deal runs its own discount, so a product in two published deals can be priced by either, following Shopify's rules for which discounts apply to a line. Give each product one published deal. Combining discounts, and store limits explains how deals combine with other discounts.

Targeting a deal, in four steps.

Pick the products

All products with exceptions, Selected products, or Selected collections. Read the conflict warning if it appears.

Set the dates

Start date and time, and an end date if the offer ends. Check the time zone shown next to the time.

Set markets and buyers

Markets, Exclude markets, Exclude B2B customers, and Apply discount only via bundle widget if only widget orders should be discounted.

Publish and check

Publish, then open a product page from the deal's products. The deal list shows Active or Scheduled.

Settings reference

Visibility
All products (with optional exceptions), Selected products, or Selected collections.
Exceptions
Products or collections left out of All products.
Picker limits
200 products or 100 collections at a time. No variant targeting.
Start and end
Date and HH:MM time in your browser's time zone. The end date is optional.
Markets
All or one market. Enforced by Shopify at checkout as well as by the widget.
Exclude markets
With All only. The excluded markets get neither widget nor discount.
Exclude B2B customers
Shopify B2B buyers get neither widget nor discount. Third-party B2B apps are not supported.
Apply discount only via bundle widget
Off by default. On, items added any other way pay full price.
Priority
Shopper's market, then most specific targeting, then the most recently published version.

If this does not work

The failures most likely on this procedure, with the check that resolves each one.

Copyright © 2026