Hello, i was just working on a similar problem at my client on VM2 but this also concenrs VM1. The empty cart is most probably a result of any of these:
- some part of the script saves an escape character | into the session (incorrectly encoded shipping on VM1)
- your session size is too small as defined in the database (jos_session, column data is normally of type TEXT which is limited to 64kb)
On VM2 the 64kb on my client's system was equivalent to 16 products, in VM1 it may be a little bit more depending on other data being saved in session.
The problem of the empty cart problem after ... (login, going to checkout, etc..) is mostly caused by the session being larger then the 64kb. The solution is to alter the jos_session (change to your prefix) table with this:
ALTER TABLE `jos_session` CHANGE `data` `data` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
Which will change the data type from TEXT (64kb) to MEDIUMTEXT (16mb)
To check your current sizes in your live shop, you can run this sql in the phpMyAdmin which will return number of bytes of the largest data in your session
SELECT MAX(LENGTH(data)) FROM jos_session;
Best Regards,
Stan