Skip to content
DocumentationPreview vs checkout mismatch

Preview and checkout do not match

Stackable is built so the preview equals checkout. When they seem to differ, it is nearly always multiple currencies, a stacked discount you did not expect, or comparing different carts.

"Cart equals checkout" is the promise the whole app is built around: widgets and the simulator read the same campaign data the checkout discount uses, so they cannot drift apart on their own. When numbers look different, one of the situations below is in play.

1. The shopper is paying in a different currency

Watch out

The honest limitation

Spend thresholds and fixed money amounts are set in your store’s currency. At checkout, the shopper’s amounts arrive in their own currency and are compared against your number without conversion. A "spend $100" goal is therefore measured as "spend 100" of whatever currency the shopper pays in, which is not equivalent across currencies. Percentage rewards are always correct in any currency.

  • If you sell in several currencies, prefer percentage-based rewards and goals; they behave identically everywhere.
  • The storefront widgets protect shoppers from this: the progress bar and the free-gift auto-add disable themselves in foreign-currency carts rather than show a number that checkout would not honour.
  • Full multi-currency conversion for money thresholds is on the roadmap.

2. Another discount changed the math

A checkout total reflects every discount that applied, not just the one you are looking at. An order-level discount computes on the subtotal after product discounts, and two product discounts on the same item add up from the original price (never below free). If checkout shows more or less discount than you expected, list what actually applied on the order and check each campaign’s combine switches.

3. The carts are not the same

  • A price changed between preview and checkout: fixed-price and amount rewards are computed from the live price at checkout.
  • An item in the preview cart was excluded, or below a threshold, in the real cart.
  • The campaign’s schedule moved between the two moments (it started, or ended).

Use the simulator as the referee

The simulator inside the app runs the exact discount logic checkout runs. Rebuild the disputed cart there, in your store currency, and its result is what checkout will do. If the simulator and your expectation differ, the campaign settings (counting, set basis, targeting) explain it; the relevant building-blocks pages walk through each one.

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