FunnelKit
FunnelKitBlogs

How to Test WooCommerce Checkout in 5 Steps (Without Charging a Card)

Updated:  Aug 5, 2026
Written by: 
Author: Editorial Team
Editorial Team
Author: Editorial Team Editorial Team

The FunnelKit Editorial Team is a group of WooCommerce experts with 10+ years of combined experience. We create actionable guides based on hands-on testing, industry research, and user feedback to help eCommerce businesses grow.

How to Test WooCommerce Checkout in 5 Steps (Without Charging a Card)

Testing your WooCommerce checkout takes about five minutes and it is the only way to know that the one thing your whole store depends on still works.

A broken checkout does not announce itself. A shop with the lights on and a jammed door does not get a knock either. People try the handle, walk to the next store, and nobody comes back to tell the owner.

From the inside, it looks like an ordinary quiet day with the site loads, traffic arrives, orders stop, and nothing on your dashboard mentions it.

According to the Baymard Institute, 15% of shoppers who abandoned for a fixable reason said the website had errors or crashed.

These shoppers do not email you. They just buy from somewhere else.

In this guide, we’ll cover four safe ways to test WooCommerce checkout without charging a real card, the five steps of a complete test, and the card numbers for successful and failed payments.

We'll also cover the three failures that test mode quietly hides. Let’s get into it.

What Does Checkout Testing Actually Mean?

Checkout testing means placing an order on your own store and following it all the way through payment authorization, order recording, stock adjustment, and emails delivered.

The order part is easy. The following-through part is where stores find their problems.

Most of this happens in test mode, which tells your payment processor to accept fake card numbers and return simulated results. What test mode does not do is make the order invisible.

ScenarioLive modeTest mode
Money movesYesNo
Gateway fees chargedYesNo
Order created in WooCommerceYesYes
Stock reducedYesYes
Counted in WooCommerce AnalyticsYesYes
Cards acceptedReal onlyTest cards only

That right-hand column is the part people get wrong. Test orders behave like real orders everywhere except the bank, which is why cleanup is Step 5 rather than an afterthought.

The reason to test on a schedule rather than once at launch is that almost nothing breaks a checkout deliberately.

WooCommerce, your theme, your gateway plugin, and your caching plugin all touch the same flow, and any one update can break it without changing anything you can see.

The failures land in three places: the payment step, the steps before it where shipping and tax get calculated, and the confirmation email that never arrives.

A test order is the only thing that walks all three.

4 Safe Ways to Place a Test Order (and What Each One Misses)

There are four safe ways to place a test order, and they are not interchangeable. Each one verifies a different slice of the flow.

Picking the wrong one is how store owners end up confident about a checkout that is still broken.

1. Gateway test/sandbox mode (the closest to real)

Test mode runs your checkout against the processor’s sandbox, so card validation, 3D Secure prompts, webhooks and status transitions fire exactly as they will in production.

It’s the only method that exercises the payment path end to end.

What it can’t tell you is whether your live account will take money because risk rules, currency approvals and KYC status are invisible from the sandbox.

2. Admin-only test gateway (fastest, skips the processor)

A test gateway creates a real order without contacting any processor when you’re checking fields, shipping rules, or a thank-you page.

FunnelKit Funnel Builder users will find its Test Gateway at FunnelKit ⇒ Global Settings ⇒ One Click Upsells ⇒ Gateways, visible to admins only.

3. Check payments or cash on delivery (free, no plugin or payment path)

Turn on Check payments or Cash on delivery at WooCommerce ⇒ Settings ⇒ Payments and order as normal.

Cheque and bank transfer land as On hold, COD as Processing.

Both reduce stock and send emails, so the order flow gets a real test. It just never touches a card.

4. A 100% off coupon (tests the flow, never touches the gateway)

Apply a 100%-off coupon and WooCommerce skips payment, because the total is zero.

Virtual products jump to Completed, physical ones to Processing.

Good for coupon logic and post-purchase automations, but useless for tax, shipping, or the gateway.

How to Test Your WooCommerce Order?

One running example carries through every step below: a $49 product, bought as a guest with a US address, then the same product bought again with a German address to check tax and zone-based shipping.

Two orders, five steps, about five minutes.

Step 1: Turn on test mode in your payment gateway

Every major gateway has a test mode, and each one hides it somewhere slightly different.

For WooPayments, go to Payments, then Settings, and tick Enable test mode. Confirm in the popup and save.

For Stripe, copy your test publishable and secret keys from the Stripe dashboard under Developers, then API keys, paste them into your gateway plugin, and switch the plugin to test mode.

Some Stripe plugins, including the free FunnelKit Stripe plugin, add an admin-only test mode.

That one is worth knowing about because it keeps live customers on the live gateway while you test on the same site, which removes the usual reason people avoid testing on production.

The free FunnelKit Stripe plugin adds an admin-only test mode

For PayPal, create sandbox buyer and merchant accounts in the PayPal Developer portal, connect the sandbox merchant account in WooCommerce PayPal Payments, and enable sandbox mode.

You need both accounts, because the sandbox simulates the buyer side as well as the seller side.

If you run more than one gateway, switch test mode on for each separately. A clean Stripe test tells you nothing about PayPal.

Note: For the full connection walkthrough, see our guide to integrating Stripe with WooCommerce.

Step 2: Place the order the way a customer would

Open your store in an incognito window. Admin sessions skip caching rules and guest checkout logic, which hides exactly the problems you are looking for.

Add the product to the cart, go to checkout, and fill the form in as a first-time buyer.

Use the US address, pick the successful test card from the table below, and place the order.

Add the product to the cart, go to checkout, and fill the form in as a first-time buyer.

Then run it again with the German address. Different tax rules, different shipping zone, different code path.

Do one of the two on a real phone rather than a desktop browser squeezed to phone width, because express payment sheets only render properly on the actual device.

One successful test order proves your checkout works for one person, on one device, in one country, paying one way.

Step 3: Break it on purpose

Most checkout problems that cost real money happen when something fails and the store handles the failure badly.

Put the same product through checkout three more times using the decline cards below, and watch what the customer sees each time.

A clear message naming the problem keeps the shopper on the page and lets them try another card. A blank screen or a silent reload sends them away.

In Baymard’s data, 8% of shoppers abandoned because their card was declined, and how your checkout handles that moment is the only part of it you control.

Check that failed attempts leave no paid order behind and that the cart survives the retry.

test declined card errors on your woocommerce checkout page

If you sell in Europe, run the 3D Secure card too.

Authentication opens a separate window, and themes with aggressive popups or scroll-locking break it more often than you would expect.

Step 4: Verify what actually happened

This is the step people skip, and it is where broken checkouts live. Landing on the thank you page proves the browser got a response. It does not prove anyone got paid.

Take the US order and the German order from Step 2 and check all six on each:

  • Order status: Under WooCommerce then Orders, the order reads Processing or Completed, not Pending payment.
  • Gateway dashboard: The transaction appears in Stripe, PayPal, or WooPayments with a matching amount.
  • Stock: The product count dropped by the quantity ordered.
  • Customer email: The confirmation landed in a real inbox, not just a mail log.
  • Admin email: The new order notification reached your store address.
  • Totals: Shipping, tax, and any discount on the order record match what the checkout page showed.

If the order status and the gateway dashboard disagree, stop there. That mismatch is the earliest sign of a webhook problem, which is the failure covered further down.

Note: If confirmation emails are the part that fails, see our guide to testing WooCommerce emails.

Step 5: Clean up and switch test mode off

Test orders count. They sit in your order list, they move stock, and they land in Analytics, so leaving them there quietly distorts your revenue reporting.

Trash both test orders, put the two units of stock back, and check your reports afterward.

Clean up your woocommerce test orders

On stores running High-Performance Order Storage, orders live in dedicated tables rather than in posts, so remove them through the WooCommerce Orders screen rather than any post-based tool.

Then turn test mode off on every gateway you enabled it on, and place one small real order to confirm live mode is back.

Skipping this is the most expensive mistake in checkout testing, because the store will happily keep taking orders that nobody ever paid for.

WooCommerce Test Card Numbers

These are Stripe’s test cards, which cover WooPayments too. It runs on Stripe underneath.

Use any future expiry (12/34), any CVC, any postal code. They work only with test keys.

Card numberResult
4242 4242 4242 4242Successful payment (Visa)
5555 5555 5555 4444Successful payment (Mastercard)
3782 8224 6310 005Successful payment (American Express)
4000 0000 0000 0002Generic decline
4000 0000 0000 9995Insufficient funds
4000 0000 0000 9987Lost card
4000 0000 0000 9979Stolen card
4000 0000 0000 0069Expired card
4000 0000 0000 0127Incorrect CVC
4000 0000 0000 0119Processing error
4000 0000 0000 6975Exceeds velocity limit
4000 0000 0000 32203D Secure authentication required

PayPal has no test cards. You just have to log in with a sandbox personal account instead.

Run at least three: one success, one decline, one 3D Secure. Checkouts that break in production usually break on the second and third.

Running the Test Order

Add the product to the cart, go to checkout, fill in details using an address you can receive email at, choose your test payment method, enter 4242 4242 4242 4242 and place the order.

Watch for the thank-you page and an order number. If the page hangs or reloads blank, read your logs before going further.

This is the order we run first on every store, because everything below depends on it working.

Test as a guest and as a logged-in customer

Guest and account checkout follow different paths: account creation, saved addresses, saved cards.

A store only ever tested by a logged-in admin is one where guest checkout breaks quietly.

Test a second shipping zone and tax region

Change the shipping country to one outside your default zone.

That catches missing shipping methods, tax that doesn’t recalculate on address change, and zones with nothing configured.

Test on mobile and in Safari

Run the same order on a phone. Field zoom and a sticky header covering the pay button are mobile-only faults, and wallet buttons often refuse to render there at all.

Give Safari its own pass too because payment iframes and cookie handling behave differently.

What Test Mode Won’t Catch (and How to Find It)

Test mode proves your checkout works. It does not prove your store takes money. These four failures pass every test order and still cost revenue, and we’ve watched all four run for weeks on stores whose owners had tested properly on launch day.

Webhook returns 200, but the order stays pending

The gateway confirms the payment, sends the webhook, gets a 200 back and the order never leaves Pending payment.

This is because a caching layer, security plugin or redirect rule swallowed the request after the response. There’s no error to find.

Look for the gap between gateway and WooCommerce instead, and check pending orders older than an hour.

Webhook returns 200, but the order stays pending

Emails that send but never arrive

Confirmation emails get logged as sent, accepted by the receiving server, then dropped or spam-filed.

WooPayments test emails carry a [Test] prefix, which changes spam scoring, so mail that arrives in testing can still be filtered in production.

Send at least one to a corporate domain.

[Screenshot: a WooCommerce email log showing “sent” beside an empty inbox]

Async methods that are pending by design

SEPA Direct Debit, iDEAL, BACS and some 3D Secure flows resolve the payment moves to processing asynchronously and succeed minutes or days later.

An order pending six hours might be correct, or might be a dead webhook.

Test those methods deliberately and note how long they normally take, so you have a baseline to judge against.

Failed checkouts that are card-testing fraud

A spike in failed orders reads like a broken checkout. Sometimes it’s a bot running stolen cards through yours, burning gateway fees and putting your account at risk.

The tell is volume: dozens of attempts from few IPs, tiny amounts, mismatched billing details.

Our guide to WooCommerce carding attacks covers confirming and stopping it.

Testing the Blocks Checkout vs the Classic Checkout

The Checkout block is the default on new stores. It has a different rendering path with different rules.

Open your checkout page in the editor: a Checkout block means Blocks, a [woocommerce_checkout] shortcode means classic.

Three things need their own pass on Blocks:

  • Payment method registration: Gateways must register with the Store API to appear. One that works on the shortcode checkout can be silently absent from the block, which reads to the shopper as you don’t accept that card.
  • Custom fields: Fields added through the old woocommerce_after_order_notes-style hooks don’t render in the block; they need the Additional Checkout Fields API. Re-test every one after switching.
  • Validation and coupons: Block validation runs client-side against the Store API, so error messages, coupon application and shipping recalculation all behave differently.

If something broke right after you switched, temporarily swapping the block for the shortcode is the fastest way to locate the fault.

Note: if the page won’t render at all, see our guide to fixing a WooCommerce checkout page that won’t load.

7 Best Practices to Follow During WooCommerce Checkout Testing

When testing the WooCommerce checkout process, adhering to best practices is crucial to ensure thorough evaluation and optimization.

Here’s a deeper dive into some key best practices:

  • Test after every plugin or theme update

Establish a routine testing schedule to maintain the reliability and functionality of the checkout process.

Regular testing lets you promptly identify and address issues, preventing potential disruptions to the customer experience.

WooCommerce, payment gateway plugins, and your theme interact closely. An update to any one of them can break the checkout flow.

Make it a habit to run through at least one full test order after every update cycle.

  • Never test payment gateways in live mode on your production site

Always use a staging site for your initial tests.

If you must test briefly on your live site, enable test mode for the shortest possible time and disable it immediately afterward.

According to a widely shared Reddit cautionary tale, one store owner lost $1,300 in orders after forgetting to disable WooPayments test mode on their live site.

  • Test with real customer scenarios, not just ideal conditions

Ensure your testing covers all aspects of the checkout process, such as checkout form validation, tax calculation, payment gateway integration, and order processing.

Comprehensive test coverage helps identify potential issues across various stages of the checkout journey.

Place orders as a guest user, as a logged-in customer, with a coupon applied, with a different currency, from a mobile device, and with a slow internet connection.

The more scenarios you cover, the fewer surprises your customers will encounter.

  • Set up business automation tools

Utilize automation tools to streamline the testing process and improve the efficiency of your WooCommerce store.

The automated testing framework helps execute test cases such as order confirmation, shipment-tracking emails, and post-purchase emails.

Configure email or Slack notifications for new orders so you notice immediately if orders suddenly stop coming in.

A sudden drop in orders is often the first sign of a broken checkout that customers won't bother to report.

  • Integrate user feedback and keep a testing log

Incorporating user feedback into your testing process helps you gain insights into real-world user experiences.

Conduct usability testing or gather feedback through surveys to identify users’ pain points and areas for improving the checkout process.

Document what you tested, when you tested it, and what the outcome was. A simple spreadsheet works.

This helps you track recurring issues, demonstrate due diligence, and quickly identify when something has broken.

  • Scalability and performance testing

Conduct scalability and performance testing to assess how the system handles peak traffic and load testing to measure responsiveness and resource utilization.

Compressing images, removing unnecessary scripts, and leveraging WooCommerce caching techniques can significantly reduce load times and improve the user experience.

Chrome, Safari, Firefox, and Edge all render checkout forms and payment elements differently.

A JavaScript error that only affects Safari, or a CSS issue that only breaks the layout in Firefox, can go unnoticed if you only test in one browser.

Prioritize Safari on iOS and Chrome on Android, since they account for the majority of mobile traffic.

Use tools like Google PageSpeed Insights or GTmetrix to monitor your checkout page load time and fix any performance bottlenecks.

  • A/B test multiple variations

Experiment with different checkout layouts, template designs, and optimization features using A/B testing.

FunnelKit lets you split-test multiple variants of your WooCommerce checkout page and compare their performance to identify the optimal configuration that maximizes conversions.

Frequently Asked Questions

How do I run a test transaction in WooCommerce?

Enable test mode in your payment gateway settings under WooCommerce payment settings, then place an order on your site using the test card numbers provided by your gateway. For Stripe, use 4242 4242 4242 4242 with any future date and any CVC. The transaction will go through as a simulated payment without charging real money.

What are some common pitfalls to avoid during checkout testing?

Some common pitfalls to avoid during checkout testing include overlooking mobile responsiveness, ignoring security vulnerabilities, neglecting to test different payment and shipping options, and failing to analyze performance metrics.

How do I know if my WooCommerce checkout is working properly?

You can know if your WooCommerce checkout is working properly by regularly running through the entire purchase flow yourself. Place an order, check that order confirmation emails, and review the transaction in your payment gateway dashboard.

If you want ongoing monitoring without manual testing, set up order alerts to be notified of every new order. If orders suddenly stop arriving during a period when you normally get sales, that is a strong signal that something has broken.

You can also use tools like Google Analytics tracking to monitor your checkout conversion rate over time. A sudden drop in conversion rate often points to a checkout issue.

How do I test PayPal in WooCommerce?

Create a sandbox account at PayPal Developer, then switch your WooCommerce PayPal plugin to sandbox mode and enter the sandbox API credentials. Place a test order and complete the payment using your sandbox buyer account. Verify the payment in both WooCommerce orders and the PayPal sandbox dashboard. See our PayPal testing section above for more details on testing both the redirect and smart button checkout flows.

What happens if I forget to disable test mode on my live store?

Customers will be able to place orders and will see a confirmation page as if everything worked normally. However, no real payment is processed.

You will end up with orders in your WooCommerce dashboard that have no associated payment, and you will need to manually contact each customer to collect payment. This is one of the most common and costly WooCommerce mistakes.

Can I test the checkout without installing anything?

Yes. Enable Check payments or Cash on delivery under WooCommerce > Settings > Payments, then place an order with that method.

It takes about a minute and verifies order creation, emails, and the thank you page, though it never contacts a payment processor.

Can I test WooCommerce checkout on mobile?

Yes, it's quite important to test the checkout process on mobile devices. Use a real mobile device or your browser's responsive design mode to test the full checkout flow on smaller screens. Pay attention to form field usability, button sizes, payment form rendering, and express checkout options like Apple Pay and Google Pay, which are mobile-specific payment methods.

What should I do if I encounter errors during testing?

If you encounter errors during testing, document them thoroughly and collaborate with developers or support teams to resolve them as soon as possible.

How do I test Apple Pay in WooCommerce?

Make sure you’ve set up the Stripe gateway plugin for WooCommerce and connected it to your store. Then, enable the express checkout option.

Open Safari on your device and test the purchase. Here’s a complete guide to setting up Apple Pay in your WooCommerce store.

Can I automate this instead of doing it by hand?

Yes. CheckView runs scheduled browser tests against your real checkout and alerts you with screenshots when a step fails.

Teams with development resources build the same thing with Playwright or Cypress against a staging copy.

Either approach catches what uptime monitoring misses, since a checkout page can return a perfectly healthy 200 while the order never completes.

Turn One Test Order Into an Early Warning System

Five minutes and two test orders tell you whether the thing your entire store depends on is working.

The part that matters is Step 4, because checking the order status, the gateway record, and the email delivery is what separates a real test from a reassuring one.

If you are going to test the checkout regularly, it is worth testing a checkout built to convert.

FunnelKit Funnel Builder replaces the WooCommerce default with a mobile-first checkout page, express payment options, and the test gateway you just used to verify it.

It’s a complete bang for your buck for testing and optimizing your WooCommerce store to generate massive revenue.

Start testing your WooCommerce checkout to ensure an optimized shopping experience on your store.

Related Blogs
woocommerce transactional emails - FunnelKit

Editorial Team

WooCommerce Transactional Emails: 3 Ways to Customize Them

WooCommerce transactional emails are the most-read messages your store will ever send. Most stores leave them on the default template and never look again. Buy a coffee at almost any...

How to Add a WooCommerce Mini Cart to Your Store (Step-by-Step)

Editorial Team

How to Add a WooCommerce Mini Cart to Your Store (Step-by-Step)

A WooCommerce mini cart is a compact cart summary that shows product details, quantities, and totals without sending shoppers to a separate cart page. You can set it up as...

WooCommerce Ajax Add to Cart - FunnelKit

Editorial Team

How to Enable Ajax Add to Cart in WooCommerce (2026

WooCommerce Ajax add to cart removes the page reload from the one click that matters most. Without it, buying from your store feels like a shop where the cashier empties...

Published by: Editorial Team
The Editorial Team at FunnelKit (formerly WooFunnels) is a passionate group of writers and copy editors. We create well-researched posts on topics such as WordPress automation, sales funnels, online course creation, and more. We aim to deliver content that is interesting and actionable.
Thank you for reading. Stay connected with us on the Facebook group, X (Twitter), LinkedIn and YouTube channel for more tips to help grow your business.
Join Over 40,300+ Sellers Increasing Profits with FunnelKit! 🚀
Join FunnelKit
FunnelKit Checkout gives you beautiful, ready-to-use WooCommerce checkout templates, embed order forms, one-page checkouts, and more.
Join FunnelKit
Related Blogs
woocommerce transactional emails - FunnelKit

Editorial Team

WooCommerce Transactional Emails: 3 Ways to Customize Them

WooCommerce transactional emails are the most-read messages your store will ever send. Most stores leave them on the default template and never look again. Buy a coffee at almost any...

How to Add a WooCommerce Mini Cart to Your Store (Step-by-Step)

Editorial Team

How to Add a WooCommerce Mini Cart to Your Store (Step-by-Step)

A WooCommerce mini cart is a compact cart summary that shows product details, quantities, and totals without sending shoppers to a separate cart page. You can set it up as...

WooCommerce Ajax Add to Cart - FunnelKit

Editorial Team

How to Enable Ajax Add to Cart in WooCommerce (2026

WooCommerce Ajax add to cart removes the page reload from the one click that matters most. Without it, buying from your store feels like a shop where the cashier empties...

Ready to Transform Your Store?
Join 40,300+ successful store owners who trust FunnelKit to power their businesses.
Conversion Optimized Checkout Pages
Increase Revenue with Smart Upsells
Capture Emails & Recover Abandoned Carts
Automate Winbacks & Repeat Sales
995+ 5 star reviews on WordPress.org
Transform your store to power your business with FunnelKit
🚀 Maximize Your Profit with FunnelKit – Highest Rated with 995+ 5-Star Reviews
Get Started