OrderGuard
paid orders that never reached the supplier

How to find the paid print on demand orders nobody is making

There is a failure worse than an error message, and it is the one with no message at all. The customer paid, the money is in your account, and the order is sitting in your shop while nobody makes it. You find out when the customer complains.

Why this one is silent

Your supplier does not receive orders. It comes and fetches them, on its own schedule, through the WooCommerce REST API, authenticating with an API key. If those visits stop, nothing in WooCommerce raises an alarm: the order is paid and waiting, which is a perfectly normal state, and it stays that way forever.

Meanwhile the customer is waiting for a shirt that nobody has started.

You can find these orders yourself, today, with no credentials

WooCommerce records a last used date for every REST API key, and your supplier authenticates with one. That gives you everything you need:

  1. Find when the supplier last came

    WooCommerce, then Settings, then Advanced, then REST API. Look at the key your supplier uses and read its last used date. If it is weeks old, you already know.

  2. List the paid orders placed after that date

    Any order that is paid, still awaiting fulfilment, was placed after that last visit, and has been sitting for more than a day, was collected by nobody. Those are your stranded orders.

  3. Add up the money in them

    This is the number that decides how urgent this is. It is usually larger than people expect, because the failure is silent and compounds quietly for weeks.

None of this happens at the supplier, so none of it needs supplier credentials. It is all in your own database.

What to do with the ones you find

How to stop it happening again

The honest answer is that the official integrations give you nothing here: no retry, no queue, no alert. We read the source of one of them and there is no retry logic anywhere in it. Until that changes, the only defence is to check regularly, or to run something that checks for you and tells you when an order has been waiting too long.

Confirm it on your own store in under a minute

OrderGuard is a free diagnostic plugin. It runs six checks against your own site and tells you, in plain language, which of these causes is yours. It asks for no API keys, contacts no external service, and writes nothing to your products or orders.

It also names the paid orders your supplier never collected, and adds up the money sitting in them. That one runs entirely on your own database.

Get the free plugin

Questions people ask about this

How long should an order wait before I treat it as stranded?

More than a day past the supplier's last visit is a reasonable line. Suppliers usually fetch several times a day, so a gap of over 24 hours is already unusual.

Could the orders have been collected and rejected at the supplier instead?

Yes, and that is a different problem with a different fix. What you can prove from your own server is whether anyone came to collect them at all. Whether a collected order was then accepted is only answerable in the supplier's dashboard.

Does this affect shops that use the official plugin correctly?

It affects any shop where the supplier fetches orders over the REST API, which is how these integrations work. Doing everything right on your side does not protect you from a firewall rule that changed.