Test your Shopify
promotions before
your customers do.

PromoProof reads your Shopify discounts, predicts how they should behave, then tests them with real carts — so you can find problems before your customers do.

Built for Shopify merchantsNo ordersNo paymentsNo inventory changes

The gap

A promotion can look perfect in Shopify.That doesn’t mean it behaves perfectly at checkout.

The promotion editor validates what you typed. It doesn’t run your promotion against a cart. The first thing that does is a customer — and by then the discount has already been too large, or missing, or silently blocked by another offer.

  1. 01Stated

    Shopify configuration

    The rules as you saved them: the value, the threshold, the dates, the collections.

  2. 02Stated

    PromoProof prediction

    What that configuration should produce, worked out and committed to in advance.

  3. 03Observed

    Real Shopify cart

    A cart built through the same discount engine your customers hit at checkout.

  4. 04Observed

    Comparison

    Prediction against observation, in cents. No interpretation, no rounding.

  5. 05Result

    Verdict

    One of four levels, each implying a different thing for you to do.

How it works

From configuration to proof.

Four stages, always in this order. The order is not a detail — it’s what makes the result evidence instead of an opinion.

  1. 01

    Read

    PromoProof reads the promotion's rules from Shopify — value, thresholds, dates, collections, combination settings — and explains each one in plain English.

  2. 02

    PredictBefore the cart runs

    It calculates what the discount should do, and commits to that number, before a single cart exists.

  3. 03

    Test

    It builds real carts through Shopify's Storefront Cart API: just below the threshold, exactly on it, above it, and mixes of eligible and excluded products.

  4. 04

    Compare

    The committed prediction is compared with what Shopify actually returned. Where they disagree, PromoProof shows both numbers and the cart that produced them.

Expected

€12.40

Computed from the rules

Actual

€12.40

Returned by Shopify

Verdict

PASS

They agree, to the cent

Two readings

What it says. What it does.

PromoProof keeps these apart and never blurs them. Inspecting settings is not evidence of what Shopify does — so findings from each side are reported separately, and labelled.

Stated

Promotion settings

What Shopify says the promotion is configured to do.

Discount
20% off
Minimum spend
€50.00
Applies to
Collection: Summer
Combines with
Nothing
Active
1 Jun – 31 Aug
Observed

Real cart behaviour

What Shopify actually did with a real test cart.

Cart built
€62.00
Eligible items
3 of 3
Expected discount
€12.40
Actual discount
€12.40
Result
Pass

The verdict system

Four levels. Each one implies a different move.

Deliberately few. A result you have to interpret is a result you’ll learn to ignore.

Pass
Your move

Nothing.

The predicted discount and the discount Shopify actually applied agreed, down to the cent. The promotion does what its configuration says it does.

Promotion20% off · minimum spend €50
Test cart€62.00
Expected€12.40
Actual€12.40

Predicted and observed agree. Nothing to do.

Counts toward your store health score.

Restraint

If PromoProof can’t prove it, it won’t pretend.

When PromoProof can’t reliably test a promotion, it says so. No guessing. No false problems. No pretending that an unusual configuration is broken.

A false alarm costs more than a missed one. It sends you looking for a bug that was never there, and a tool that does that twice stops being worth opening.

Scenario SCN-04Not reproducible

Discount restricted to a customer segment. A signed-out test cart cannot be a member of that segment.

Problem

The cart got no discount — so call it broken.

Not taken
Not tested

The condition couldn’t be reproduced, so nothing was proven either way.

Reported

Not tested is the absence of a claim, not a failing grade. It never counts against your store health.

No customer risk

Test without touching the customer.

PromoProof uses Shopify’s cart engine to observe behaviour without creating an order or taking a payment. The test ends where a real checkout would begin.

  • No orders created

    A cart is never turned into an order.

  • No payments taken

    Checkout is never reached, so nothing is charged.

  • No inventory changed

    Carts reserve nothing and release nothing.

What PromoProof asks for

Every permission the app requests, and why it needs it.

  • read_discounts

    Read the discounts you already created. PromoProof never edits one.

  • read_products

    Find real products to build test carts from.

  • unauthenticated_read_product_listings

    Mint a storefront token, the same way your storefront does.

  • unauthenticated_read_checkouts

    Read what a cart came back with.

  • unauthenticated_write_checkouts

    Build the test cart itself. Carts are never turned into orders.

What it never asks for

Deliberately not requested, so it cannot be used by accident.

  • No write scopes
  • No order scopes
  • No customer scopes

Reading who a discount is restricted to would need customer access. Reading only the shape of that restriction is enough to know the discount can’t be tested — so PromoProof requests no customer access at all.

Under the hood

Built around Shopify’s actual discount engine.

PromoProof tests through Shopify’s Storefront Cart API, not draft orders. Carts run through the same discount engine that prices a real customer’s checkout — and nothing is saved. Draft orders would have been simpler to authorise, but they diverge on automatic discounts, which are half the problem.

  1. PromoProof

    Promotion rules

    Read from the Admin API. Never edited.

  2. PromoProof

    Expected result

    Computed from the rules and fixed before any request goes out.

  3. Shopify

    Shopify cart engine

    The same engine that prices a real customer's cart at checkout.

  4. PromoProof

    Observed result

    What actually came off the cart, in cents.

  5. PromoProof

    Verdict

    The two readings, compared.

Worked examples

Four promotions. Four different answers.

Pick one and watch it go through a run. These are real classes of finding, including the one where PromoProof declines to answer.

Example promotions
Promotion under test

20% off over €50

Pass

20% off over €50: pass. The threshold holds on both sides: €49.00 got nothing, €50.00 got exactly €10.00. Predicted and observed agree to the cent.

Configuration
Discount
20% off order
Minimum spend
€50.00
Applies to
Entire order
Generated scenario

Cart built just above the threshold

Cart total
€62.00
Result
Expected
€12.40
Actual
€12.40
Real cart behaviour

The threshold holds on both sides: €49.00 got nothing, €50.00 got exactly €10.00. Predicted and observed agree to the cent.

Limitations

Sometimes the right answer is “not tested.”

Some promotion types can’t be verified reliably by a signed-out test cart. PromoProof reads and explains them, then marks them as not tested rather than implying they’re fine — or that they’re broken.

  • 01

    Buy X Get Y

    Read and described accurately, but not cart-tested.

    Not tested
  • 02

    Free shipping

    Needs a delivery address and live shipping rates to observe. Not simulated.

    Not tested
  • 03

    App and Function-backed discounts

    Their logic lives in code Shopify doesn't expose. Listed, and marked unsupported.

    Not tested
  • 04

    Customer-segment restrictions

    A signed-out test cart is not a member of your segment, so it can't reproduce the condition.

    Not tested
  • 05

    Market-specific pricing

    Carts are built in your primary market. Other markets aren't varied.

    Not tested

We’d rather say “not tested” than give you a false answer.

Pricing

Priced by how often you need proof.

Every plan runs the same checks. What changes is how many promotions you can test, and how often the whole store is swept.

Free trial

€0

Enough to see what PromoProof finds in your store.

  • 3 promotion checks in total
  • Full store check not included
  • Configuration checks and live cart tests
  • Plain-English explanation of every discount
Basic

€9.99/ month

For a store running a handful of promotions at a time.

  • 25 promotion checks per week
  • Full store check once a day
  • Configuration checks and live cart tests
  • Test history for every promotion
  • Store health overview
Pro

€29.99/ month

For stores where a broken promotion is expensive.

  • Unlimited promotion checks
  • Full store check every 30 minutes
  • Configuration checks and live cart tests
  • Test history for every promotion
  • Store health overview and analytics

NoteShopify Billing is not connected yet. Choosing a plan changes your limits immediately and takes no payment. Prices are shown so you know what each plan will cost once billing goes live.

Know before
they know.

Test your Shopify promotions before your customers do.

Coming to the Shopify App Store. The button opens the store while the listing is in review.