UA EN
Telegram

Articles · 2026-11-08

OpenCart: where orders with online payment go missing

A customer writes: “I placed an order yesterday”, but the admin shows nothing. Or the payment provider shows a payment, but no order appeared on the site. Usually the order didn’t vanish, it’s just hidden. I recently recovered orders like this for an ocStore shop covering the whole time the site had been running.

How OpenCart stores unfinished orders

When a customer clicks “Confirm order” with online payment, OpenCart creates the order in the database right away, but with status 0. These orders don’t show up in the regular admin list. They are the Missing Orders.

The status changes to a normal one when the payment provider notifies the site about the payment. If that notification never arrives, the order stays at status 0 for good, even though the money has been charged.

How to find them

In the order list (Sales → Orders), pick “Missing Orders” in the status filter. You’ll see everything customers started but never confirmed: genuinely abandoned carts and orders whose payment the site never “heard” about.

Compare them with your payment provider’s statements for the same period. Matches by amount and time are your lost sales.

Why the site doesn’t get the payment notification

  • wrong callback URL (server URL) in the LiqPay, Stripe, PayPal or other provider dashboard, for example an old address after moving to HTTPS or another domain;
  • a redirect on that URL: http to https or non-www to www; providers don’t always follow redirects;
  • server protection blocks the request: a firewall, Cloudflare, anti-bot rules, admin protection;
  • a PHP error in the payment module: after a PHP or module update the handler crashes and the status never changes;
  • the customer closed the tab before returning to the site, and the module only updates the status on the “Thank you” page.

How to fix it for good

  • check the callback URL both in the provider dashboard and in the module settings;
  • turn on the payment module log and see whether requests from the provider arrive at all;
  • make sure the status is changed by the server-to-server callback, not only when the customer comes back;
  • set up a notification to the manager about new missing orders with online payment, and check them daily.

Paid orders you’ve already lost can be recovered: find them among the missing orders, match them with statements and move them to the right status so they reach your CRM, e-mail and Telegram.

Related: a cart that forgets products

Another common complaint: the customer comes back a day later and the cart is empty. In OpenCart a guest cart is tied to the session, and its lifetime depends on PHP and server settings. You can extend it so customers return to a full cart; in one store I set it to 60 days.

If orders or payments go missing in your store, that’s a website support task: the cause is usually found in hours, not days. To win back customers who never paid, there is also a module for abandoned and unpaid orders.

FAQ

Can I just delete the missing orders?

You can, but match them with payments first. There may be paid orders among them that the site never saw.

Is this only an OpenCart thing?

Many platforms create an order before payment, but OpenCart and ocStore hide these orders from the main list by default, so they often go unnoticed.

Rather not dig into it yourself?

Tell me what is happening with your site, and I’ll reply with the cause and a fix estimate within a day.

Service: Website support & maintenance →

Telegram
Telegram Call