Cart still full after order completion

I am using Paypal payment standard as my credit card payment portal, I have noticed that even thought the payment is completed successfully the customers cart remains full of the products they have just selected and paid for.



i.e. in admin panel their cart remains as an active/abandoned cart and when the customer returns to the shop they have a full cart.



Any solutions to this?

This happens when customer doesn’t return to the shop after paypal payment, it’s a common problem.

[quote name=‘E.Qi.Librium’]This happens when customer doesn’t return to the shop after paypal payment, it’s a common problem.[/QUOTE]



Thanks for the reply.



This seems odd because if CS Cart is aware that the order has completed and issues the invoice as such presumably it has registered that payment has been made?

Yes you’re right, but this issue has been dicussed many times before and they haven’t found any solution, we have to empty those carts manually :?

[QUOTE]This happens when customer doesn’t return to the shop after paypal payment, it’s a common problem.[/QUOTE]



If you can use Paypal “Express Payments” rather than the antiquated Paypal Standard payment method, then this age old problem with the customers not returning to your site to complete the transaction will no longer be an issue!

[quote name=‘Struck’]If you can use Paypal “Express Payments” rather than the antiquated Paypal Standard payment method, then this age old problem with the customers not returning to your site to complete the transaction will no longer be an issue![/QUOTE]



And what’s the difference between these two on the client side?

[QUOTE]And what’s the difference between these two on the client side?[/QUOTE]



The main difference/benefit to all is that the customer is no longer required to click the stupid return to store to complete the transaction link! :wink:

[quote name=‘Struck’]The main difference/benefit to all is that the customer is no longer required to click the stupid return to store to complete the transaction link! ;)[/QUOTE]



Well not true. With Paypal Express the user must have or create a paypal account. With Standard they can just enter in credit card info w/o having to have/create a paypal account.

Oh well then, I prefer the standard as most of my costumers don’t have a paypal account, I’m lucky they even have internet :rolleyes:

[quote name=‘whiplash13’]With Paypal Express the user must have or create a paypal account. With Standard they can just enter in credit card info w/o having to have/create a paypal account.[/QUOTE]



That is pretty much the benefit, I think some customers are a bit put off by the need to create a papal account v’s just using their credit card, especially for one off purchases.



Would be nice to have a fix for this problem because i am finding almost all purchases have active carts remaining.

If you change the order status from Open to Processed, does the cart get removed?

[quote name=‘tbirnseth’]If you change the order status from Open to Processed, does the cart get removed?[/QUOTE]



All the orders in question already had a status of processed, which is what makes it puzzling because if the cart knew that the payment had been made then why leave the items in the cart?

Would report it as a bug then…

After working closely with help desk for the past few weeks it appears that they have now developed a solution to this problem.



NB. The version of CS Cart that I am using is 2.1.2 and if you make any changes don’t forget to backup first just in case.



The following code was replaced in the “class.session.php” file in the “core” directory of CS-Cart installation.



[COLOR=“DarkGreen”]static function reset_id($id = null)

{

if ($id == self::get_id()) {

return $id;

}

// session_destroy kills our handlers,

// [url]PHP :: Bug #32330 :: session_destroy, "Failed to initialize storage module", custom session handler

// so we set them again

self::set_handlers();

if (!empty($id)) {

self::set_id($id);

}



self::start();

return self::get_id();

}[/COLOR]





Replaced with



[COLOR=“darkgreen”]static function reset_id($id = null)

{

if ($id == self::get_id()) {

return $id;

}

if (!defined(‘NO_SESSION’)) {

session_destroy();

}

// session_destroy kills our handlers,

// [url]PHP :: Bug #32330 :: session_destroy, "Failed to initialize storage module", custom session handler

// so we set them again

self::set_handlers();

if (!empty($id)) {

self::set_id($id);

}



self::start();

return self::get_id();

}[/COLOR]





Also the “paypal.php” file was modified and I have attached the file to this message but I have had to add the extension “.txt” to be able to upload it. Help desk say it is enough to just upload it in the “payment” directory of CS-Cart installation, after removing the “.txt” extension that I added of course.

paypal.php.txt

Made the changes and tested on our sandbox account. Didn’t refresh back to our cart nor did it clear the cart contents.

Anyone else get this working based on the above methods?

Thanks