This morning we've had another order on the site that hasn't written to database so I fear the solution recommended above isn't the cause, although I do believe that it's still sensible to have this fix.
What else could be causing this?
PayPal Merchant Technical Support have confirmed that IPN notifications are on, and working, and are recommending that we speak to the cart application developers.
If the database isn't being updated, despite successful payment at PayPal, it does suggest an issue with either confirm.php or pp_confirm.php does it not? Customers have said, albeit it has been vague, that "the page said that the payment had not gone through" which we're having to assume is our checkout_failure.php page but why is it directing to that page if the payment has been successful?
In a lot of cases, customers have then run through the process again only to discover that they've been charged twice.
We just can't get eCart to work on this website, and it's now very seriously affecting the client's business.
I'd really appreciate your help with this. Thank you.