Skip to content
Examples

How to test a Shopify discount before publishing it

The usual way to test a discount is to place a real order and read the receipt. A simulator lets you build a cart, run every live and draft offer against it, and see which ones apply and which ones lose, before anyone is charged.

  • Volume
  • Spend goal
Simulated cart$94.00
  • Radiance Vitamin C Serum

    50ml / Qty 1

    $42.00
  • Hydra-Dew Moisturizer

    Qty 1

    $34.00
  • Gentle Foaming Cleanser

    Qty 1

    $18.00
Skincare 10% - applied-$9.40
Spend goal over $80 - applied-$10.00
Total at checkout-$19.40$94.00$74.60
A simulated cart showing what applies, what is dropped, and why.
What the shopper sees

Nothing, and that is the point. The preview runs entirely on the merchant side, so no test orders are placed and no customer sees a half-configured promotion.

Build it

How to set this up

  1. 1

    Tools > Simulator

    Open the simulator. It runs against the same engine the storefront uses, so the arithmetic is the same arithmetic.

  2. 2

    Build a cart

    Add the products, variants, and quantities you want to test, including the awkward cases rather than only the happy path.

  3. 3

    Include draft campaigns

    Turn on draft campaigns so an unpublished offer is included in the run. This is how you test before publishing rather than after.

  4. 4

    Read the result

    The result shows which offers applied and which were dropped. A dropped offer is usually a combination setting, so the answer is normally in the stacking switches rather than in the tiers.

    stacking = check the combine switches first

  5. 5

    Test the boundaries

    Run one unit below and one unit above every threshold. Off-by-one threshold errors are the most common discount bug and the cheapest to catch here.

  6. 6

    Publish

    Publish once the awkward carts behave. Then re-run the simulator after publishing as a final confirmation.

The exact settings

Every setting, spelled out

These are the real configuration keys the offer is saved with, so you can check your own setup against this table field by field.

SettingValueConfig key
Runs againstthe same engine as the storefronttype
Includes draft campaignsoptional toggleschedule
Honours combination rulesyes, non-combining offers do not both applystacking
Places a test ordernodiscountMethod
Best used onthreshold boundaries and mixed cartstiers
Watch it

See it built end to end

The episode is not up yet

We are recording this one. The written recipe above is complete, so you can build it today.

Without an app

What Shopify does natively

What you can do

You can place a real test order, or use a draft order, to see what a discount does. For a single simple discount this is perfectly adequate.

Where you need an app

A test order tells you the outcome for one cart after the discount is already live. It does not let you test an unpublished offer, and checking every threshold boundary by placing orders is slow enough that nobody does it.

Before you publish

Watch out for

  • The preview honours combination rules, so two non-combining offers will not both appear. If you expected both, the preview is telling you the truth and the storefront would do the same.
  • A dropped offer is usually a stacking setting rather than a targeting mistake. Check the combine switches before rebuilding the tiers.
  • The preview cannot know things it has no visibility of, such as customer identity on an anonymous cart. Test audience-targeted offers signed in as a qualifying customer.
  • Test the boundaries, not the middle. A cart comfortably over a threshold proves much less than one a cent under it.

Common questions

Can I test a discount before publishing it?
Yes, by including draft campaigns in the simulator run. The offer does not have to be live to be evaluated.
Why does the preview show only one of my two discounts?
Because they are not set to combine. The preview honours the same combination rules as checkout, so it is showing you what would really happen.
Does previewing place a test order?
No. It runs entirely on the merchant side and charges nothing.
What should I test?
Threshold boundaries above all: one unit and one cent either side of every tier. Then mixed carts that trigger several offers at once.

Related examples

Staying under the discount cap

How the active-discount cap is counted, and how to model a big sale so you never hit it.

Limited time discount

A sale that starts and ends on schedule, with a countdown and no manual intervention.

Stacked product and collection discounts

Two product-class discounts on two collections, both applying in one cart, with the per-line rule spelled out.

Build this in your own store

Every recipe in this library runs on the same server-side engine, so the cart total and the checkout total agree.

We use essential cookies to run this site, and, only with your permission, analytics cookies to understand traffic. Read our Cookie Policy.