Jump to content
Mac Fly

Order missing after paypal payment received

Recommended Posts

We are having some issues with Papal and orders not recording in the backend.

Received a Paypal email saying payment received. On checking the orders page there is no sign of the order. I can see the IPN in the paypal log with all the usual details but no record of the order in the database.  The order numbers have continued on past the number that has disappeared but this is really unusual given that the payment was processed correctly.  

Normally if the customer goes to paypal and the shop does not receive payment confirmation the order will sit at "preparing paypal standard" but in this case the order has disappeared altogether following a sucessful payment.

Anyone else having this issue and if so have you found out what's causing it? 

We've had it happen twice in the last two weeks. Prior to this is was a months ago so very intermittent. 

 

Paypal app version v5.018

Running 2.3.4 bootstrap with latest paypal module installed.

Share this post


Link to post
Share on other sites

Have you got an up-to-date certificate in the ext directory? See

 


For a new install or if your store isn't mobile-friendly, get the community-supported responsive osCommerce (Phoenix).

here: on the official osc download page

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Share this post


Link to post
Share on other sites

Check the settings within the paypal account - if the return URL is wrong you will get that effect if the customer returns to the site before the IPN arrives.

Do you still get any paypal orders which do work? Do you get logs of notify_sync events?


For a new install or if your store isn't mobile-friendly, get the community-supported responsive osCommerce (Phoenix).

here: on the official osc download page

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Share this post


Link to post
Share on other sites

It all works as normal 99.99% of the time. We have about 60 - 70 orders per day with about 50% coming from Paypal.

Yes we receive the notify_sync events in the logs. Sometimes this comes back before the IPN and visa versa and all works as it should. 

In the most recent case we only received the IPN in the logs but no record of the order on the orders page. There must be some sort of glitch in the database to cause the order to erase itself rather than update. Very hard to debug.

 

Seems it has happened to others in the past with the same version of oscommerce and paypal app. ( thread is archived, hence this new one ) 

 

 

 

Share this post


Link to post
Share on other sites

The IPN signal came back 21 seconds after payment was received in the Paypal backend and there was no other order within 5 minutes either side so no conflicts there.

Share this post


Link to post
Share on other sites
1 hour ago, Mac Fly said:

It all works as normal 99.99% of the time. We have about 60 - 70 orders per day with about 50% coming from Paypal.

Yes we receive the notify_sync events in the logs. Sometimes this comes back before the IPN and visa versa and all works as it should. 

In the most recent case we only received the IPN in the logs but no record of the order on the orders page. There must be some sort of glitch in the database to cause the order to erase itself rather than update. Very hard to debug.

 

Seems it has happened to others in the past with the same version of oscommerce and paypal app. ( thread is archived, hence this new one ) 

 

The other thread's not much help though, is it.

I believe the only way for the order to disappear is for the customer to come back to checkout_payment before the IPN hits. This could happen in the normal flow if they hit an error in checkout_process (eg. because of the cert) or it could also happen if they somehow (eg. with the back button or another open tab) get there by themselves.

To get to the bottom of it, I think you're going to have to start digging through the site access logs and figure out what path they took through the site pages. If we know that we might stand a chance of deducing the cause.


For a new install or if your store isn't mobile-friendly, get the community-supported responsive osCommerce (Phoenix).

here: on the official osc download page

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Share this post


Link to post
Share on other sites

It's a remote possibility but the Order may be in the database without a numeric status. 

No numeric status means it would not show in the Order List, but everything else would be normal (emails sent, paypal received etc).


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites
2 minutes ago, burt said:

It's a remote possibility but the Order may be in the database without a numeric status. 

No numeric status means it would not show in the Order List, but everything else would be normal (emails sent, paypal received etc).

I've only seen this when there was a glitch on the edit order page but it's definitely worth checking.

It's a good idea to create an order status record with id 0 and suitable text (eg. error - needs manual reset) to prevent orders disappearing from the list.


For a new install or if your store isn't mobile-friendly, get the community-supported responsive osCommerce (Phoenix).

here: on the official osc download page

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Share this post


Link to post
Share on other sites
1 minute ago, BrockleyJohn said:

It's a good idea to create an order status record with id 0 and suitable text (eg. error - needs manual reset) to prevent orders disappearing from the list.

It maybe an idea to add such a thing into Core.  Thoughts ?


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

Thank you both for the replies. It could very well be caused by the actions of the customer. I'll take a look at the access logs 

Share this post


Link to post
Share on other sites
29 minutes ago, burt said:

It maybe an idea to add such a thing into Core.  Thoughts ?

It might be easier just to remove the requirement that the order status exist. 

LEFT JOIN orders_status s ON o.orders_status = s.orders_status_id AND s.language_id = " . (int)$languages_id . " WHERE 

Also consider the case where the missing order status is not 0. 


Always back up before making changes.

Share this post


Link to post
Share on other sites
14 minutes ago, ecartz said:

It might be easier just to remove the requirement that the order status exist. 


LEFT JOIN orders_status s ON o.orders_status = s.orders_status_id AND s.language_id = " . (int)$languages_id . " WHERE 

Also consider the case where the missing order status is not 0. 

that's more owner-proof


For a new install or if your store isn't mobile-friendly, get the community-supported responsive osCommerce (Phoenix).

here: on the official osc download page

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Share this post


Link to post
Share on other sites
Posted (edited)
2 hours ago, BrockleyJohn said:

it could also happen if they somehow (eg. with the back button or another open tab) get there by themselves.

Looking at the logs this is exactly what happened. They have somehow got back to checkout_payment page after they completed payment on Paypal and got back to this page before the IPN causing the order to delete. 

Most likely they used the back button.

Next question is how can we stop this from happening? 

 

A message on the paypal page after payment is made to say ' DO NOT USE BACK BUTTON' would probably do the trick

Edited by Mac Fly

Share this post


Link to post
Share on other sites

If you were to change the paypal code not to delete the order but create a new one every time in checkout_payment, it wouldn't happen but you will end up with many more Preparing status orders than you already have.

You could try putting up a message telling people not to hit Back after paying, but it may affect confidence in your checkout.

If people have just started doing this, it may reflect an issue with Paypal's platform being slow or glitchy right now and that might sort itself out with a bit of luck.


For a new install or if your store isn't mobile-friendly, get the community-supported responsive osCommerce (Phoenix).

here: on the official osc download page

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Share this post


Link to post
Share on other sites
Posted (edited)
36 minutes ago, BrockleyJohn said:

If you were to change the paypal code not to delete the order but create a new one every time in checkout_payment, it wouldn't happen but you will end up with many more Preparing status orders than you already have.

I'd rather not do this. I'd end up manually checking all orders that are Preparing status to see if Payment was received in our Paypal account. Too much work for 1 / 1000 chance of the issue happening. 

36 minutes ago, BrockleyJohn said:

You could try putting up a message telling people not to hit Back after paying, but it may affect confidence in your checkout.

I meant for Paypal to have this on their page after payment is made, the one with the countdown timer to return to site. This is pretty much a standard notice on a lot of Payment providers payment complete pages. It could even be already there. I'll check later. If not I'll send them an email though wouldn't have high hopes for a response. 

 

36 minutes ago, BrockleyJohn said:

If people have just started doing this, it may reflect an issue with Paypal's platform being slow or glitchy right now and that might sort itself out with a bit of luck.

Don't think it's new issue. The previous thread above is from 2017.

Thank you all for your replies and time.

Edited by Mac Fly

Share this post


Link to post
Share on other sites

Just ran a test to see if i could replicate the problem. Using the back button after payment was paid on Papal i was able to get back to checkout_payment page but the IPN got back before me so order didn't erase. 

There is no message on paypal page to say do not use back button. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×