Before you scale traffic to a Shopify store, run a checkout testing checklist — a structured pass of real test orders across the combinations your customers actually use. The reason is simple: scaling multiplies any checkout leak. A payment method that fails on one browser, a discount that double-applies, a shipping rate that shows the wrong total — each is a rounding error at ten orders a day and a serious loss at a thousand. Testing once, on your own phone, in your home country, with one card, tells you almost nothing about what your paid traffic will hit. This checklist works as a matrix by dimension — devices, browsers, payments, currencies, taxes, shipping, discounts, validation and tracking — so you find the leak before your ad budget does.
Why test before you scale
A checkout that “works for me” and a checkout that works for everyone your ads reach are two different things. When you spend to send cold traffic, you buy the full spread of real conditions at once: older phones, uncommon browsers, foreign cards, shoppers who paste an expired code, buyers in a country your tax settings never handled. At small volume those edge cases are invisible. At scale they compound — and because you’re now paying per click, every abandoned checkout is money you spent to reach someone who then couldn’t buy. The math is unforgiving: a leak that costs you 2% of orders is tolerable on organic traffic and expensive on a five-figure ad budget. That’s why the checkout is the last thing to lock down before you scale, not the first thing you assume is fine. If you’re already seeing the symptom, our guide to a low Shopify checkout conversion rate covers diagnosis.
How to place test orders on Shopify
There are two honest ways to test, and a complete pass uses both.
Bogus Gateway (test mode). Shopify’s built-in test gateway lets you complete a real checkout flow without charging a card. In Settings → Payments, you can activate the Bogus Gateway (or switch a supported provider like Shopify Payments into test mode). You then place orders using Shopify’s documented test card numbers to simulate a success, a decline, or a processing error. This is ideal for functional checks: does the flow complete, does the total calculate correctly, does the confirmation fire, does the order land in admin. Remember to turn test mode off before you go live — and delete test orders so they don’t pollute your analytics.
A few small real orders, then refund. Test mode does not exercise every real-world path. Wallets (Apple Pay, Google Pay, Shop Pay), some third-party gateways, real 3-D Secure prompts, live tax and duty calculation, and real payout behavior only show up with a genuine transaction. So place a handful of small real orders through each live payment method, confirm they behave, then refund them. Yes, you may absorb a small processing fee — treat it as the cheapest QA you’ll ever buy. Use both tools: Bogus Gateway for breadth, real-then-refunded orders for the paths test mode can’t reach.
The checklist — a test matrix by dimension
Work through every dimension below and change one variable at a time so you know exactly which one breaks. Don’t just tick “passed” — record the charged total, the discount applied, the shipping shown, and any error for each run.
| Dimension | What to test | What a pass looks like |
|---|---|---|
| Devices | Desktop, mobile (iOS + Android), tablet; a smaller/older phone if you can | Layout usable, buttons tappable, no field cut off, completes on each |
| Browsers | Chrome, Safari, Firefox, Edge; in-app browsers (Instagram, Facebook, TikTok) | No JS errors, wallets appear where supported, completes on each |
| Payment methods | Card, PayPal, and every gateway you’ve enabled | Each method charges the correct total and confirms |
| Wallets / accelerated checkout | Shop Pay, Apple Pay, Google Pay express buttons | Buttons appear on the right devices and complete in one flow |
| Currencies / countries | Home market + each country you sell to | Correct currency, price rounding, and a valid shipping option appear |
| Taxes / duties | A domestic order and an international one | Tax shows correctly; duties/import fees behave as intended per market |
| Shipping rates | Each zone, each rate type (flat, weight, carrier-calculated) | The expected rate shows; no “no rates available” dead end |
| Shipping thresholds | Just below and just above a free-shipping threshold | Free shipping unlocks at the right subtotal, not before or after |
| Discounts | Valid code, expired code, wrong code, automatic discount | Valid applies, invalid is rejected cleanly, total is correct |
| Discount combinations | Code + automatic, two stacked offers, code on a bundle/gift | Only the intended stacking happens; margin isn’t given away |
| Required fields / validation | Blank required fields, bad email, bad postcode, long names | Clear inline errors; no silent failure or lost cart |
| Error / decline handling | Declined test card, gateway timeout, 3-D Secure prompt | Shopper sees a helpful message and can retry, not a dead screen |
| Confirmation page | Complete an order and read the whole thankyou page | Correct total, order number, email received, order in admin |
| Tracking / analytics | Watch GA4 + ad pixels fire on purchase | One purchase event, correct value and currency, no duplicates |
That last row matters as much as the checkout itself. If the sale completes but the purchase event never reaches GA4 or your ad platform, you’ll scale blind and your optimization will fight bad data — see checkout started but no purchase for the tracking-side failure modes.
Edge cases worth including
The default matrix catches most leaks. These edge cases catch the expensive ones:
- Out-of-stock mid-checkout — what happens when an item sells out while it’s in the cart.
- Quantity and inventory limits — max-per-order rules, and quantity breaks or bundles at the boundary where the discount tier changes.
- Mixed carts — a discounted item plus a full-price item, or a free-gift offer plus a paid item, to confirm the totals stay correct.
- Address edge cases — PO boxes, long unicode names, regions with unusual postcode formats, a billing address different from shipping.
- Abandoned-then-resumed — start checkout, leave, return via the recovery email link.
- Multiple discounts — the classic margin leak; walk through how to run multiple discounts on Shopify if you stack offers, and pressure-test whether any combination can be exploited for a near-zero total.
- Slow connection — throttle the network and confirm the checkout doesn’t double-submit or time out.
How to record results
A test you can’t reproduce isn’t a test. Keep a simple log — a spreadsheet is fine — with one row per run and columns for date, device, browser, country, payment method, discount, expected total, actual total, result, and notes. Screenshot anything that looks wrong: the price, the error, the confirmation. Structured records do three things: they show you the pattern (a failure that only appears on iOS Safari with PayPal is obvious in a table and invisible in your memory), they let you verify a fix by re-running the exact failing combination, and they give whoever fixes it enough to act without guessing.
Common mistakes
- Testing once, on one device. The store owner’s phone, home Wi-Fi, one card — the narrowest possible slice of what your traffic will be.
- Only using test mode. Bogus Gateway won’t surface wallet, real-3DS or live-tax problems. Add a few real-then-refunded orders.
- Ignoring the tracking row. A checkout that converts but doesn’t report the purchase makes you scale on broken data.
- Changing several things at once, so you never learn which variable broke the order.
- Testing at launch and never again. Every new app, theme edit or checkout extension can reintroduce a leak — re-run the matrix after changes.
- Leaving test orders in analytics, which quietly distorts your conversion and revenue numbers.
When to get help
Run the matrix yourself first — most stores find at least one leak they didn’t know about. Get help when the checkout keeps passing but conversion still lags (the failure is likely an intermittent device, country or payment combination you haven’t reproduced), when discount and bundle logic is complex enough that stacking is hard to reason about, or simply when you’re about to commit real ad budget and want a second, independent pass before you do. That’s what a Shopify conversion audit or hands-on Shopify development is for — finding the leak on our time instead of your ad spend.
About to scale traffic to your store? Send us your store URL — we’ll run a full checkout QA across devices, payments, currencies and discounts, and tell you what would break before your ad budget finds it. Get a free profit audit.