Shopping Cart is empty if payment process fails??

10 лет назад
Hi,

When a user clicks through to a payment process such as paypal and for what ever reason the payment fails and they are sent back to the site the shopping cart is emptied. This is because the cart is converted to an order before the user is sent to the payment processor. Is it possible to revert the order back so the items are back in the shopping cart, this way the user will not have to re populate their cart before they try again?

Thanks
10 лет назад
I solved it by calling Reorder in OrderManager which populates the cart again with the items that is included in a specific order, you need the orderid of the old order to implement this.
7 лет назад
Hi,

We are facing the same problem.  What we did was to save OrderId in session when it was first created in the almighty OrderProcessingService.PlaceOrder().  Remove the OrderId from session in PayPal's PDTHandler if payment was completed.  So in the case when payment was failed,  we will find OrderId in session in ShoppingCartController.Cart().   If that happens, we redirect user to OrderDetail and prompt them to finish the order.  This is by no means an elegant solution.  I'd appreciate any suggestions for this problem..:)

@Andrei, can we have a work item for this issue?


Thanks,
6 лет назад
Can people please reveal their fixes for this it must be affecting everyone who use redirect payment processors?
Thanks
6 лет назад
We moded both the sagepay plugin and paypal so that it cancels the order, send the customer a cancalation email and then they can reorder.

We decided to go down this route as it was an easyer way then messing about.

Also makes more sence then rebuilding the cart. Not seen many ecoms sites that rebuild the cart if the order process failes.

Not sure I can post all the moded code here as my boss may not aprove.
6 лет назад
Not really a great solution is it?
I get loads of people go to the redirect payment screen then go back to to the PaymentMethod screen and trying a different payment option.
If they have to rebuild the cart I'm going to lose a load of customers here.

My present solution (on 3.0) is to not clear the cart after an order and then clean out old carts that are more then 48 hours old in a database script. I'm not saying its perfect either but I reckon I lose less business this way as we have customers shopping with us every couple of months rather then daily.

I'm in the process of upgrading to 3.3 and wanted to see if anyone has a more elegant solution?

I also hate the order confirmation that people get on a broken redirect payment order it causes us endless customer queries.

Rob
6 лет назад
As I said we moded the sage pay plugin so that it behaved like the paypal standard going to the payment process on confirmation. Not before.

I know I like nop but it dose have it issues, just been thinking why can't the way the payment gateways work be standardised.

So that on confirm it askes for payment and not befor.

As I saud when I moded our version of the sage pay plug in it took me 3 days of messing with it to get it to work.

It just a sugestion but a bit of standadisation on the payment system would not go a miss. All in all I am very impressed with the way our nop site is working.
6 лет назад
Do you not still get the issue of empty cart on incomplete orders.
What do you do is a person failed in the PayPal Standard when they come back to the website is the cart not empty?
6 лет назад
playblue wrote:
Do you not still get the issue of empty cart on incomplete orders.
What do you do is a person failed in the PayPal Standard when they come back to the website is the cart not empty?


We also got inhouse software that attempts to filter out cancled orders. But as far as I know there is no way to monitor sage pay / paypal or any other system when it gose to the payment provider and it times out, or they just close the browser.  

There no 100% way of dealing with this, unless you ask the Nop Dev team to move cart items to the order system on confirmation from the payment provider.

It just seems a lot of work to rebuild the shopping cart if the order screws up.

In our case we only have a limmited number of products so for us it not so mutch of an issue as we sell specalist software for dyslexia screening that created by our in-house dev team.

I can see it been a problem for others. I may have a look in my spare time at a plug-in to sort this issue out but as I said for now looks like you may have to live with it, unless you go in to the code and made changes it your self.

But what you would have to do is cancle the current order, read the last order and then rebuild the cart for the given customer.

Sounds easy but in practice not sure how easy it would be till I have look at it my self.
5 лет назад
This stinks doesn't it.  In our Sage Pay plugin we went to a lot of effort to make sure that didn't happen, and the customer could recover their cart.  The other kicker is it will reserve the stock in the failed order.  So you need to take care of that too (i.e., Cancel that order to release the stock back).

Our Sage Pay plugin takes care of all of that