Synthetic Industry

Troubleshooting guide · updated 2026-10-11

What a WooCommerce test-order script should cover before an update reaches your live store

A practical set of checkout cases to run on a staging copy before updating, with what to record for each and what a pass does and does not prove.

A script is a list of journeys with an expected result for each

After a bad update, owners usually test by placing one order and seeing it work. One order proves one path. A test-order script is a short, fixed list of journeys, each with the result you expect, that you run in the same way before and after an update. Its value is comparison: the same eight cases pass on Tuesday and fail on Wednesday, so the update is the suspect. Keep the list small enough to run in half an hour, and write the expected result before you run it.

Run it on a staging copy, as the WooCommerce conflict-testing guidance advises, so a failed test cannot cost live sales. Take a backup first, and disable browser caching while testing so a stale page cannot hide the real result.

  • Same cases, same order, same test data every time.
  • Expected result written first.
  • Evidence recorded: order number, status, total, screenshot.

The cases worth including

Pick journeys that carry money or customers. Each should name the product, the shopper type, the address and the payment method, so a different person can repeat it.

  • A guest buying a simple product with a test card: the order reaches Processing with the right total and stock drops once.
  • A signed-in customer buying a variable product: the exact size and colour chosen is the variation in the cart.
  • One address for each shipping zone you serve, and one you do not: methods and costs match your table.
  • A coupon you actually use: the discount line and total are right.
  • A declined test card: no paid order remains and stock is returned, since Failed orders return stock.
  • The order confirmation email, with customer email routed to a test address.
  • The payment provider's delivery log for the test payment: the confirmation shows delivered with a success status.
  • If you sell subscriptions: a test renewal, on a gateway that supports changing the renewal date.

Preparing the copy so a test cannot hurt anyone

A staging copy often inherits live settings. Before running anything, switch payments to test mode with test keys you enter yourself, turn off customer emails or route them to a test inbox, and confirm no live fulfilment or accounting connection will fire. Check that stock changes on the copy cannot reach a live feed. If the copy is not reachable from the internet, provider confirmations cannot arrive, so a test of the confirmation path needs a copy on a public address.

  • Test-mode keys entered by you; never share live keys.
  • Customer emails off or redirected.
  • No live feeds connected to the copy.

Reading the result: what a pass proves, and what it does not

A pass means the agreed cases worked on the copy with the updates you applied there. It does not prove live checkout, because live differs in caching, keys, host rules and real cards. After applying updates on live, place one real order of your own and check it. A fail is only useful if you can isolate it, so when a case fails, follow the conflict-testing steps on the copy: switch to a default theme, deactivate plugins other than WooCommerce and the ones involved, retest, then reactivate one at a time. Must-use plugins and drop-ins that a host installs cannot be switched off directly and may still be the cause; ask the host.

What a script cannot replace

It does not monitor your store between updates, back it up, or detect a compromise. If you find unknown admin users or an altered payment form, stop testing and treat it as a security incident first. Pricing, design and performance changes are separate work.

How the paid services use it

The standing service built on this guide applies your pending updates to a copy each month, runs your agreed script before and after, and sends an apply or hold recommendation with evidence; you decide and you update live. The recovery project uses the same script as its acceptance checklist. In both, a pass is reported as a pass on the agreed cases only.

Sources and limits

  • WooCommerce documentation: How to test for conflicts Checked 2026-10-11.
    • A staging clone or a backup protects the live store while testing for conflicts.
    • Testing steps include switching to a default theme, deactivating plugins other than WooCommerce and the extensions involved, retesting and reactivating plugins one at a time.
    • Must-use plugins and drop-ins cannot be switched off directly but may cause a conflict, and browser caching should be disabled while testing.
  • WooCommerce documentation: Order statuses Checked 2026-10-11.
    • Processing means paid with stock deducted, Failed returns stock to inventory, and On hold is typical for delayed-notification methods.
    • A scheduled job deletes inactive Draft orders created by block-based checkout.
  • WooCommerce documentation: Setting up shipping zones Checked 2026-10-11.
    • Each customer matches only one shipping zone, first match from the top of the list.
  • WooCommerce documentation: Variable products Checked 2026-10-11.
    • Variations without prices do not show in the store.