
If a coupon discount appears in the mini cart but not checkout, or checkout shows a different total than the order review, test cache and session behavior before blaming the coupon rule itself.
Use this when shoppers report vanishing coupons, incorrect discounts, stale totals, or coupon success messages that do not match the final WooCommerce order.
Quick answer
WooCommerce Cart Cache Coupon Discount Mismatch Check should be handled with a narrow evidence-first workflow: trace coupon state, compare totals, map cache layers, then verify the result before making broader changes.
What to check first
- Test coupon add, remove, quantity change, shipping change, logged-in pricing, and final order placement in a fresh browser.
- Compare mini cart, cart page, checkout order review, Store API or AJAX response, and final order total.
- Bypass full-page cache when WooCommerce cart, session, logged-in, currency, or dynamic pricing cookies are present.
- Check whether CDN, host cache, object cache, and performance plugins disagree on cart and checkout exclusions.
- Record one request trace for a passing session and one for a failing session.
Diagnostic table
Use this table to keep the work practical. It connects the symptom to evidence and a verification step.
| Action | Evidence to collect | How to verify |
|---|---|---|
| Trace coupon state | Test coupon add, remove, quantity change, shipping change, logged-in pricing, and final order placement in a fresh browser. | Mini cart, cart, checkout, and final order receipt show the same coupon state. |
| Compare totals | Compare mini cart, cart page, checkout order review, Store API or AJAX response, and final order total. | WooCommerce session and cart cookies cause bypass or private handling where needed. |
| Map cache layers | Bypass full-page cache when WooCommerce cart, session, logged-in, currency, or dynamic pricing cookies are present. | Catalog pages remain fast and cacheable after cart-specific rules are tightened. |
| Adjust bypass rules | Check whether CDN, host cache, object cache, and performance plugins disagree on cart and checkout exclusions. | The test includes guest, logged-in, mobile, and at least one dynamic pricing condition if used. |
Why this usually happens
- One page is cached as public HTML while another route reads the live WooCommerce session.
- A coupon is applied through AJAX but the checkout order review gets a stale server response.
- Dynamic pricing, memberships, currency switching, or tax rules add shopper-specific state that cache rules miss.
- The cart fragment updates visually while the final order total comes from a different request path.
Field notes
- A coupon mismatch needs a receipt-level proof path. Screenshots of cart totals are not enough.
- Do not disable all caching permanently. Isolate the route, cookie, and method that needs bypass behavior.
Useful command or data shape
Adapt paths, IDs, and privacy handling to the site before running commands or storing data on production.
coupon_trace:
coupon: SAVE20
browser_session: fresh_guest
mini_cart_total: 84.00
cart_total: 84.00
checkout_total: 105.00
order_review_request: /?wc-ajax=update_order_review
cache_header: HIT
likely_fix: bypass cache for WooCommerce session cookie
Safe fix order
Do the work in a sequence that makes each result easy to prove. Stop if a step produces new evidence that changes the incident scope.
- Trace coupon state
- Compare totals
- Map cache layers
- Adjust bypass rules
- Retest receipt
What to tell the client or owner
Show the owner the failing trace, the exact cache layer that caused it, and a passing receipt after the rule change.
Production verification checklist
- Mini cart, cart, checkout, and final order receipt show the same coupon state.
- WooCommerce session and cart cookies cause bypass or private handling where needed.
- Catalog pages remain fast and cacheable after cart-specific rules are tightened.
- The test includes guest, logged-in, mobile, and at least one dynamic pricing condition if used.
Mistakes to avoid
- Do not judge the fix by one browser or the homepage only.
- Do not delete evidence before recording usernames, file paths, timestamps, and response headers.
- Do not add a cache, security, or tracking plugin while the original problem is still unclear.
- Do not leave test users, temporary debug logs, or broad API keys active after verification.
When HandL WP should help
Bring in help when this affects leads, checkout, search visibility, malware risk, paid media reporting, or a client production site. HandL WP can trace the issue through WordPress, hosting, cache, tracking, and Search Console, then verify the workflow after the technical fix.
If this is active on a production site, fix WooCommerce cache and checkout performance safely.
Related HandL WP guides
Use these related guides when the same issue touches tracking, security, checkout, or crawler visibility.
- WooCommerce mini cart cache exclusion rules for checkout
- WooCommerce object cache cart fragment stale price check
- WooCommerce Store API performance tracking checklist