Getting a deal live

Development stores and testing safely

Development stores use TreStack Bundles free. How to try a deal on a live store without shoppers seeing or getting it, how test orders and analytics behave, and what happens when a development store goes live.

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

At a glance
  • Development stores: Free, every feature
  • Best for trying a live store: Duplicate theme plus widget-only
  • Test orders in analytics: Never counted

Development stores

On a Shopify development store, TreStack Bundles is free, with every feature, and needs no plan: the app does not send it to the Plans page. A banner says This app is free for development stores, and that when the store goes live, all bundle deals will be hidden until you choose a plan and approve the subscription. You can close the banner; View plans opens the Plans page.

You can still pick a plan on a development store, for example to see the approval screen. It is billed in test mode, so no money changes hands.

When a development store goes live without a plan, every deal pauses: the widget hides, the discounts are removed, and the deal list shows the deals as Paused. The admin stays open. Choose a plan and approve it in Shopify, and the deals come back. A deal whose discount cannot be created again, because the store already has 25 active automatic discounts, returns to draft instead, and Home says A deal was unpublished. Pausing, cancelling and uninstalling has the details.

Testing without shoppers seeing it

Two things go live when you publish a deal, and a safe test has to keep both away from shoppers:

  • The widget shows on every theme where the Bundle deals app embed is on. If your live theme has the embed on, a published deal is in front of shoppers within about a minute.
  • The discount is a Shopify automatic discount, created on publish. It works at checkout whatever the theme shows. A quantity break, for example, also prices 2 units a shopper added with the theme's own Add to cart button.

To try a deal on a store that sells, work on a copy of the theme:

  1. Duplicate your live theme (Online Store, Themes, Duplicate), turn the Bundle deals embed on in the copy only, and save it. Leave the embed off in the live theme while you test.
  2. Turn on Apply discount only via bundle widget, in the deal's Settings, under Visibility. With it on, only items added through the widget get the discount. Since shoppers on your live theme have no widget, they get no discount either.
  3. Target one product, with Selected products, so a mistake touches as little as possible.
  4. Preview the copy from Online Store, Themes, and open the product there.

When you are happy, turn the embed on in the live theme (or publish the copy), and turn widget-only off if you want the theme's own Add to cart to count too.

While you test on a copy, Home still says Store widget is disabled, and may show a banner that the store widget is not visible on product pages, because the status reads your live theme only. That is expected.

Save as draft keeps a deal off the storefront and creates no discount, but a draft cannot be previewed on the storefront either: View in store and theme previews show published deals only. The editor's own Preview, with Country previewing and Product previewing, shows a draft with your real prices.

Two storefront address tricks help while testing. Adding ?bndl=off to a storefront address turns the widget off for that page load, to compare the page with and without it. Adding ?bndl=dev shows the widget as usual but does not send that page's deal views and add-to-carts to analytics. Neither hides anything from shoppers, and both apply only to the address you add them to.

Test orders and analytics

Shopify marks orders paid with a test payment method as test orders: the Bogus Gateway on a development store, or Shopify Payments in test mode. TreStack Bundles leaves test orders out of every figure, and out of the added revenue your plan measures. That is why a development store shows no orders, revenue or added revenue, however many test orders you place.

Visitors still count. A visit with the widget on screen counts when the shopper (or you) allowed analytics in the store's cookie banner. Nothing is counted in the theme editor.

A real order you place to test a live store is a real order: it counts in analytics and in billable added revenue, and refunding or cancelling it later does not take it out. Use Shopify's test mode for test purchases.

Figures are recomputed every 15 minutes, so a new order or visit takes up to that long to show. Deal analytics explains every figure.

Testing a deal, in four steps.

Duplicate the theme

Turn the Bundle deals embed on in the copy only. Keep it off in the live theme while you test.

Publish on one product

Selected products, with Apply discount only via bundle widget on. Publish, then wait about a minute.

Run a test order

Open the product in the theme preview, pick a bar, add it to the cart, and pay with Shopify's test mode.

Check the cart and checkout

The prices, the discount line with your discount name or bar title, gifts and upsells. Then try changing quantities in the cart.

Settings reference

Development store price
Free, with every feature, no plan needed. A plan picked on one is billed in test mode.
Go-live
When a development store goes live without a plan, every deal pauses until a plan is approved.
Test orders
Never counted in analytics or in billable added revenue. Real orders count even if refunded later.
Theme preview
Shows published deals on any theme where the app embed is on, including an unpublished copy.
Embed status in the app
Reads the live theme only. A copy with the embed on still reads as disabled.
Apply discount only via bundle widget
In Settings, Visibility. Only items added through the widget get the discount, so shoppers without the widget get none.
?bndl=off
On a storefront address, turns the widget off for that page load.
?bndl=dev
On a storefront address, shows the widget but keeps that page's deal views and add-to-carts out of analytics.

If this does not work

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

Copyright © 2026