A repair is not complete because the original error disappeared. Checkout is a chain: session, totals, order, payment, callback, stock, email and fulfilment. A change that fixes one step can damage another or work only for an administrator.
Create a written acceptance record with controlled orders. Reconcile and clean up each attempt before starting the next.
Re-run the exact failure
Use the same device class, guest/account state, product type, address, shipping and payment method that originally failed. Record the before/after evidence.
Do not change several variables and call the issue resolved. The original long-tail symptom must be demonstrably fixed.
Check the gateway and WooCommerce after one submission to prevent duplicate tests.
Test cart and session continuity
Add, remove and change quantity; navigate between product, cart and checkout; then refresh. Test guest and returning customer separately.
Session acceptance:
cart survives page changes
coupon and shipping remain consistent
another private browser has a separate cart
login follows the intended cart-merge policy
Warm public cache before the final pass. A cold cache can hide unsafe rules.
Validate totals
Use representative addresses and products to confirm discounts, shipping, tax, fees and currency. Test a boundary such as just below/above free-shipping minimum.
The displayed checkout total, stored WooCommerce order and gateway amount must match. Document rounding differences only when they are expected and legally/accountingly approved.
Do not use production customer data.
Exercise payment states
Test success, decline/cancellation and any asynchronous method in sandbox or an approved low-value production process. Confirm exactly one payment object and transaction reference per order.
Inspect webhooks and browser return independently. A successful thank-you page does not prove the provider callback updated the order.
Replaying one sandbox event should not repeat stock or fulfilment.
Confirm order and stock lifecycle
Check order status, private notes, stock reduction, reservations and external inventory sync. Test cancellation/refund according to store policy.
For variations, verify the exact SKU/variation changes. One sale should reduce inventory once; a legitimate restock should be separately auditable.
Do not move statuses back and forth merely to produce notes.
For virtual or downloadable products, confirm access becomes available only after the intended paid status and remains protected from unauthorised users.
Verify link expiry.
Verify communications
Confirm customer Processing/Completed messages and administrator New order notification. Trace generation, SMTP acceptance and inbox delivery.
Follow email links to account and order pages using the intended recipient. Check the plain-text version and translated templates.
Keep personal information and SMTP credentials out of the acceptance record.
Test customer and staff interfaces
Check first-time guest, customer login/password reset, My account and mobile checkout. Administrators often bypass cache and security rules, so admin-only testing is insufficient.
Open the order list, search the controlled order and confirm fulfilment/reporting systems receive it once.
Test keyboard interaction and visible validation errors, not only a mouse-driven happy path.
Confirm measurement without confusing it with finance
Inspect one GA4 purchase event with stable transaction ID, value, currency and items under the selected consent state. Refreshing the confirmation page must not create another logical purchase.
Analytics will not always equal WooCommerce because of consent and blockers. WooCommerce and the gateway remain financial truth.
Label and refund production tests through the approved accounting process.
Observe after reopening
Monitor PHP errors, payment webhook failures, SMTP rejections, scheduled-action backlog and abnormal status changes through a representative trading period.
Record software versions, repair, rollback and acceptance results. Recurring care should turn this checklist into repeatable synthetic tests so customers do not become the first people to discover the next regression.