Here's a quick step by step of what's been happening.
- The user adds a product to their basket/cart and proceeds to the checkout. They may choose to Register, Checkout as Guest or Login with an existing account.
- Customer Logs in with existing account.
- They get taken to a page informing them that their shopping cart is now empty. Yet in the top right the link for My Ca开发者_StackOverflowrt still reads (1 item) next to it. Clicking this link just loads the same 'Shopping Cart is Empty' page.
Some other tests I did showed the following: User logs in, adds 3 items to his cart, but logs out before going to checkout. He comes back to the site at a later date and starts a fresh order for just 1 product, choosing to login at checkout. Upon doing so his cart cart displays the 3 items from his previous session (his new product missing), yet the My Cart link reads (4 items) next to it.
Does anyone know what might be causing the items to vanish from the cart during this transition from not being logged in to being logged in?
I have seen this problem before on servers that are uhosin.session.encryptrunning the suhosin patch. I'm assuming that you are running a secure cart (if not you should) what is most likely happening here is that your session is being lost each time you change between http and https.
When you switch between the HTTP and HTTPS, your HTTP session is not being passed to the HTTPS session. This can be resolved by placing the following in your .htaccess or php.ini file:
php_value suhosin.session.encrypt Off
Let me know if it works or if you are still having the same problem, remember to restart your server once you have made the changes.
I solved it.
Turns out the ZetaPrints OrderApproval module was installed and was overriding part of the checkout page.
Apparantly it was something that had been added, decided it was no longer needed and then forgotten about.
I disabled it and flushed the cache and got my old checkout page back.
All working again.
For me, it was a matter of Cooke Session Control and setting my 'Cookie domain' value as such:
.mydomain.com
Yes, with a period in front.
精彩评论