Development alpha.3 — local testing
Test promotions with the cart simulator
Applies to the working 0.1.0-alpha.3 version. This guide is staged for the next coordinated documentation update; the downloadable development build is alpha.3. The current guide’s screenshots must be replaced with real alpha.3 captures before publication.
What you can check
Compare promotion prices, actual WooCommerce coupon deductions, product taxes, stock, campaign allowances and Min/Max rules for the same set of products. You can also estimate standard zone-based shipping and include a selected rate in an amount-limit check.
The simulator does not save the customer, activate a draft, add products to a shopper’s cart, reserve stock, consume a coupon or create an order. Its result is a preview, not a reservation or a guarantee that checkout will succeed later.
Before you start
- Save the promotion you want to test. Unsaved editor changes are not used.
- Have at least one priced simple product or specific variation available.
- To test coupon deductions, create the coupon in WooCommerce first.
- To check purchase limits, install and configure HS Min/Max Quantities.
- To test delivery, configure a shipping zone and method covering the preview address.
Open HookSpark → Pricing & Discounts → Cart simulator.
1. Choose products and the customer
Select a product and enter a whole quantity. Use Add product for another line. Repeated selections of the same product or variation with identical attribute choices are combined for calculation, as in a standard WooCommerce cart. Different variations or different wildcard choices remain separate. Select a specific variation rather than its variable parent. If a variation accepts any value for an attribute, choose that value when prompted and calculate again.
Use Customer account ID 0 for a guest. A real customer ID uses that account’s audience and saved details. The billing email field can test an email-restricted coupon without sending mail or updating the customer. For an account, WooCommerce may accept either its account email or billing email according to its coupon rules.
The optional date changes promotion timing. It does not recreate historical stock, coupon validity, campaign allowance or a past customer profile. Coupon validity is checked at the time you run the preview.
2. Enter an address when taxes or delivery matter
Leave all preview address fields blank to use the selected customer’s saved address. For a different destination, select Preview country and enter the state/province code, postcode and city relevant to your tax and shipping rules.
A guest may need an explicit country before shipping rates can be found. A postcode-specific zone requires a matching postcode. State values currently use WooCommerce codes, such as CA for California or PA for Palermo.
Store tax settings still determine whether billing, shipping or the store base supplies the tax location. Zone-based local pickup uses the store base when WooCommerce’s pickup tax setting requires it. The preview does not change the address used by an existing shopper session.
3. Apply a real coupon
Enter Coupon code to simulate, enable A coupon is present, then calculate. The switch alone can test promotion eligibility, but monetary results require an actual valid code.
For example, with a non-taxable product priced at €100, a 20% promotion configured to combine with coupons gives €80. A valid 10% WooCommerce coupon then gives €72. The Purchase amounts section shows the values before and after the coupon separately.
If the coupon is invalid or restricted to another email, the monetary calculation reports the problem rather than assuming a zero deduction. Check the coupon code, minimum spend, allowed products, email restrictions and expiry.
4. Choose shipping and calculate again
The first calculation loads rates for the preview destination. Choose Shipping method for this preview, then calculate again. The selected rate and its taxes enter Min/Max rules configured to include shipping.
The current estimate covers one standard package using WooCommerce flat rate, free shipping and zone-based local pickup. Applicable HS shipping promotions can make selected services free. Other methods are identified as requiring a real-cart calculation. Custom package splitting and modern Blocks pickup locations need separate verification.
If a chosen rate disappears after an address or rule change, choose an available rate again. An unavailable selection is not treated as a confirmed free delivery.
5. Read the checks together
| Result | How to interpret it |
|---|---|
| Calculation result | Promotion amounts in the catalog’s tax basis, with the rule trace. |
| Purchase amounts | Product amounts after promotions, before/after native coupons, and product tax. These figures exclude delivery and fees. |
| Quantity check with Min/Max | Whether the simulated physical quantities satisfy applicable quantity rules. |
| Amount check with Min/Max | Whether calculated amounts satisfy applicable monetary rules, using their configured basis and selected shipping where requested. |
| Stock check | Current availability, including shared variation stock and reservations. Nothing is reserved for this preview. |
| Campaign allowance | Current recorded usage/availability; an unavailable reading must not be interpreted as sufficient capacity. |
| Shipping preview | Available standard-package estimates, including applicable shipping tax. |
A rule with a €100 minimum can pass on a €120 pre-Pricing base and fail on the €96 amount after a 20% promotion. Existing “before coupons” rules still mean after Pricing and before WooCommerce coupons; they are not silently changed to the earlier base.
For a shipping-inclusive minimum of €95, €91.20 of products plus €7 shipping passes. If a promotion makes that shipping free, €91.20 no longer reaches the minimum. Review the amount rule’s basis and shipping setting when the outcome seems surprising.
Automatic gifts and inactive promotions
Eligible automatic gifts appear as separate Automatic gift rows. Do not add them again manually. Stock limits and competing promotions may reduce or prevent an automatic reward; read the campaign explanation.
Enable Include inactive promotions in this preview only to test saved drafts. This does not activate them. Remember that another active promotion may win under the configured pricing strategy.
Correct an error
Email and address validation retains entered values and associates the error with the relevant field. Correct it and calculate again. An amount-limit message identifies an unmet rule or missing calculation; it is not always a request to increase quantity. Check the selected monetary basis, coupon and shipping first.
Fees are not yet calculated by this preview. Rules requiring unavailable fee data cannot be confirmed. Third-party price/tax/coupon extensions and unusual rounding combinations also require the corresponding real checkout test.
Confirm before publishing a promotion
Repeat the scenario on the product page and in the cart. Increase and decrease quantities, apply/remove the coupon, select delivery, and complete a local test checkout. Compare the saved order’s quantities, product totals, taxes and shipping with the preview. Test both classic and Blocks checkout when your store offers them.
A verified local example uses 12 physical products at €100, an HS shipping benefit and active Min/Max rules: the simulator and both checkout paths agree on €1,200, while reducing the cart to 11 is rejected. A second verified scenario adds a 20% promotion and a native 10% coupon: €1,200 → €960 → €864, with the same free shipping and quantity protection. Both checkout paths and the simulator agree. These non-taxable examples prove those scenarios, not every configuration.
Next: coupon and overlap rules and shipping promotions.
Coupons on promotion-excluded products
When the selected promotion excludes coupons from its discounted products, the simulator keeps those rows at the promotional price. For example, a100 product discounted20% remains80 with a10% coupon; with coupon combination allowed, it becomes72. Other eligible rows can still receive the coupon.
Manage rules
New rules and duplicates are inactive by default. Edit preserves the ID; duplicate creates a new ID. Activation and deactivation take effect only after a successful save; disabling restores the original cart price on recalculation. Deletion requires explicit confirmation and leaves other rules intact.
Recover from errors
Correct the retained inputs after validation errors. If another editor saved first, reload before saving again and reapply your intended changes. Do not overwrite their work using an old tab. When an amount seems wrong, compare the winning rule and strategy in the simulator with the current saved settings.
See the current controls

