The number of orders that hit a Failed status in the last 24 hours, the fastest signal that a payment gateway, extension, or checkout step is dropping live sales.
At a glance
When a customer reaches OpenCart’s checkout but the order does not complete, OpenCart records it with a failed or unfinished order status rather than a confirmed one. This card counts those in a rolling 24-hour window. A handful is normal background noise (mistyped cards, abandoned final steps). A sudden cluster means something broke: a gateway declined batch, an SSL or API credential expired, or an extension conflict knocked out the place-order step. The trigger is >5 in 24 hours.
Calculation
Worked example
A Spanish supplements merchant on OpenCart 3.0 normally sees one or two failed orders a day, well below the>5 trigger. On 14 May 26 their card reads 23 failed orders in 24 hours.
What’s interesting here:
- The failures cluster in one window. Seventeen of the 23 failures landed between 08:00 and 12:00. A clustered failure is almost always a single root cause, not 23 unlucky customers. The shape points straight at a window, not a trend.
- The cause was an expired payment API credential. The store’s primary card gateway rotated its API key overnight and the merchant had not updated the module. Every card payment in the morning window declined at the gateway and OpenCart logged each as failed. After 12:00 a developer pasted the new key and confirmations resumed.
- The card fired the alert at roughly 09:30, once the morning cluster crossed
>5. That is hours before the merchant would have noticed from a quiet sales total, and before the lunchtime peak made it worse. Speed is the whole point of a 24-hour window on a Key Metrics card. - The money at stake is on a sibling card. Twenty-three failed orders at a roughly 35 euro average order value is around 800 euros of attempted sales that did not collect. Revenue at Risk (live) puts the currency figure next to the count.
- The fix loop is short. Confirm the cluster, check the error log for gateway decline messages, verify the gateway credential and SSL, then watch the count fall. Once new orders confirm again the rolling 24-hour figure decays as the bad window ages out.
Sibling cards merchants should reference together
Reconciling against OpenCart
Where to look in OpenCart admin: Sales → Orders, then filter by Order Status to your Failed status and set the date range to the last day. OpenCart also has a Missing Orders filter (orders withorder_status_id = 0, started but never confirmed) which captures many failed checkouts. Reports → Sales → Orders can be grouped by status for a periodic view. The underlying rows live in oc_order with the status in order_status_id and the history in oc_order_history.
Other OpenCart views that look like the same number but are not:
- Sales → Orders default view: hides
order_status_id = 0(missing) orders unless you explicitly filter for them, so the default list understates failures. - Reports → Sales: aggregates confirmed sales and usually excludes failed and missing orders entirely.
- Dashboard order count tile: typically counts confirmed orders only.
Cross-connector note: when a payment processor connector is linked (for example Stripe or PayPal), a failed-order spike on this card should correlate with a decline-rate rise on the processor. If OpenCart shows failures but the processor shows clean authorisations, the break is between checkout and the gateway (an extension or credential issue), not at the gateway itself.
Known limitations / merchant FAQs
What counts as a failed order in OpenCart? An order that started checkout but never reached a confirmed status: gateway declines, processing errors, and customers who dropped at the final place-order step. OpenCart writes the order row early and assigns a failed or missing status when it does not complete. This card counts those created in the last 24 hours. Is a small number of failed orders normal? Yes. One or two a day from mistyped cards and last-step abandonment is background noise. That is why the trigger is>5 in 24 hours, not >0. The signal is a cluster, not the occasional failure.
What is the difference between failed and cancelled?
Failed orders never confirmed. Cancelled orders confirmed and were then voided by the merchant or customer. They are separate statuses and separate cards. For cancellations see Cancellation Rate.
My count spiked, where do I start?
Look at the timing first. A clustered spike points to a single cause: an expired gateway credential, an SSL or API failure, or an extension conflict on the checkout. Check the error log for decline messages and the conflicts card for a recent collision.
Why does the admin show fewer failed orders than this card?
The default Sales → Orders list hides missing orders (order_status_id = 0). Many failed checkouts live there. Filter explicitly for the Failed status and Missing Orders to see the full set, and remember this card may sum multiple stores.
Can an extension conflict cause failed orders?
Yes, directly. A conflict on a checkout or payment template can break the place-order step or hide a payment button, so customers cannot complete. Watch this card alongside Extension / Modification Conflicts after any core update.
How much money is this costing me?
This card is a count. For the currency value of the failed orders, see Revenue at Risk (live), which multiplies the failed and unconfirmed orders by their order totals.
Why does the number fall on its own after I fix the cause?
Because it is a rolling 24-hour window. Once new orders confirm again, the failed window from earlier ages out hour by hour and the count decays back to baseline without any further action.