What a checkout smoke test actually is
A smoke test is the simplest possible version of a test suite: a fast, shallow pass that answers one question, does this thing still broadly work? For checkout, it means walking through the exact path a buying customer takes and verifying each step succeeds.
You don't need to cover every edge case. You don't need to test every payment method. You need to know, in under two minutes, that the critical path from product page to confirmation still works after a deploy.
Here's the seven-step version that catches most breakages before they reach your customers.
Step 1: Product page → Add to cart
The smoke test starts where customers start. Open a product page (ideally your best-selling SKU so any inventory or variant issues surface), click Add to Cart, and confirm the cart updates.
What you're looking for:
- The button is clickable (no overlay blocking it)
- The cart count increments
- No JavaScript errors in the browser console
- Adding the item didn't trigger a 500 or a blank redirect
This step catches a common class of post-deploy checkout failures, usually from theme changes that restyle the button out of existence or from an app that injected a tracking script that throws a JavaScript exception and blocks the handler.
Step 2: Cart page → Proceed to checkout
Navigate to the cart, verify the correct item and quantity are there, then click through to checkout.
What you're looking for:
- Line items match what you added
- Totals calculate correctly (subtotal, shipping estimate, tax)
- Any applied discounts still apply
- The proceed-to-checkout button transitions to the checkout URL
The common failure here is an app that interferes with cart totals. A "you might also like" app that re-renders the cart. A tax-calculation app that times out. A currency converter that overwrites your displayed prices. Smoke test catches it.
Step 3: Shipping info submits
On the checkout form, enter test shipping information, a known-valid address you use for testing. Submit and confirm you progress to the next step.
What you're looking for:
- Form validation passes
- Address autocomplete works (if enabled)
- Shipping methods populate correctly
- No errors about "invalid postal code" on valid addresses
Failure mode to watch: a recent integration with an address-validation service rate-limits, times out, or starts rejecting addresses that used to pass. Or your shipping app fails to return any methods, leaving customers with no way to progress.
Step 4: Shipping method selection
After address submission, shipping methods should appear. Select one and proceed.
What you're looking for:
- At least one shipping method is offered
- Rates are reasonable (not $0 and not $999)
- Selection persists to the next step
- Any free-shipping thresholds are honored
This is where merchant-side shipping apps (ShipStation, Shopify Shipping, WooCommerce Shipping) often cause pain after updates. "No shipping methods available for your address" is a silent killer, customers see it, back out, never contact you.
Step 5: Payment step loads
Reach the payment page. Don't actually submit, just confirm the payment form loads and accepts input.
What you're looking for:
- Payment methods render (card form, Shop Pay, PayPal, etc.)
- Card number field is interactive
- Express checkout buttons (Apple Pay, Google Pay) appear on supported devices
- No console errors about missing API keys or CSP violations
Two common causes of payment-form breakage: an API key expired or got rotated on the payment provider side, or a Content Security Policy change blocks the payment iframe. Both produce silent failures, the form just doesn't render.
Step 6: Review step → Submit (dry run)
With a zero-total test order (a 100%-off discount plus free shipping, which still creates a real order you then cancel), you can run this step fully. Without one, stop at the review step.
What you're looking for:
- Order total matches expectations (items + shipping + tax)
- Discount codes apply correctly
- Terms-of-service checkbox works
- Submit button is enabled
If you're running this manually without a test order path, most of your smoke-test value ends here. If you have a way to complete test orders (a zero-total order, or your payment provider's test mode on a development store or staging copy), go through to the confirmation page.
Step 7: Confirmation page renders
After submission, the confirmation page should load with the order number, items, and totals.
What you're looking for:
- Order number is generated and displayed
- Line items match what was purchased
- Email address for confirmation is captured
- Tracking pixels fire on this page (Facebook Pixel Purchase event, GA4 purchase event, Google Ads conversion)
This last check, pixels fire on the thank-you page, is the one teams often forget. A "successful" checkout that didn't fire the conversion pixel is revenue you're still going to lose, just downstream in your attribution and your ad-platform learning.
Automating the 7 steps
If you run this checklist manually once a week, you'll catch many breakages early. But you'll miss things that happen Tuesday morning between your Monday and Friday checks.
The mechanical version of this checklist is automated checkout testing, a tool that records the flow once and replays it on a schedule. Tracefox replays steps 1 to 5 hourly (Business plan), daily (Pro), or weekly (Starter), stopping at the payment step unless you build the test to place a zero-total order, and alerts you with a screenshot and video when a scheduled run fails. Pixel firing on the thank-you page (step 7) still needs checking in your analytics tools.
When to run the smoke test manually anyway
Automation doesn't replace judgment. Run the manual version at these moments:
- Before any theme or plugin update. If your automated test is scheduled to run 6 hours from now, don't wait, walk through the checklist before you hit deploy.
- After payment provider API key rotation. A rotated key often silently fails client-side.
- After any third-party app install. Especially conversion-optimization apps, popups, and "social proof" widgets, they inject scripts into checkout.
- During high-traffic windows. Cyber Monday morning is the wrong time to find out.
The cost of not smoke-testing
A checkout broken for 24 hours on a store doing 100 orders/day at $80 AOV is $8,000 in missed revenue, and that's just the direct loss. Add the ad-platform learning lost to missed conversion events, the refunds and support costs from half-broken orders, and the trust damage with customers who saw the error, and the real cost is higher.
A smoke test takes a couple of minutes to run by hand. The automated version is a one-time setup and then runs unattended on a schedule. The math is very one-sided.
Start with the smoke test, expand later
Smoke testing is intentionally shallow. You're not verifying every edge case, you're verifying the critical path works. Once the smoke test is running reliably, layer in:
- Multi-viewport checks (the smoke test on desktop, mobile, and tablet, one test per viewport)
- Coupon-specific flows (does your flash sale code still apply?)
- Logged-in vs guest checkout
- Different shipping destinations (domestic vs international)
But if you don't have the 7-step smoke test running at all yet, start there. It's time well spent on checkout quality.
Want this running automatically? Start Tracefox free, set up your checkout test (record it with the Chrome extension on Pro and Business, or generate it from your store URL), and we'll replay it up to the payment step on a schedule and send a screenshot and video on failure, without you writing a line of code.