session collistion, try to disable reverse proxy if you have any like varnish, remove SID from url and toggle the settings in system->config->web->seccion validation settings
I dont think we have a reverse proxy, I dont have anything like varnish installed.
The SID is required because we have 3 store views. Would turning this off stop users from being able to switch stores easilly?
I believe this issue is also related;
The checkout cart: Is remembering only 1 setting/country,
So if you change from USA to Canada, it keeps the USA shipping method (for logged out users only)
When someone is logged in; theres no issues with shopping cart, no issues with checkout.
It seems to be only for logged-out users.
______________________________
Some others metioned its 1 of 2 things wrong: Cookies or Session issue - Heres some settings
______________________________
-Persistent Shopping Cart
Enable: Yes
Lifetime: 31536000
Enable Remeber Me: Yes
Remeber Me Deafult Value: Yes
Clear Persistence on Logout: No
Persist Shopping Cart: Yes
System -> Config -> Web
Session Cookie Management:
Cookie Lifetime; 3600
Cookie Path; BLANK
Cookie Domian; BLANK
Use HTTP only: NO
Cookie Restriction Mode; NO
Session Validation Settings:
All 4 validate set to NO
Use SID on Frontend: NO
public_html/app/code/local/Mage/Core/Model/Session/Abstract/Varien.php
// 'domain' => $cookie->getConfigDomain(), // 'secure' => $cookie->isSecure(), // 'httponly' => $cookie->getHttponly()
---the below code from Varien.php has (the above code) commented out. Because if its not, admin login, and userlogin dont work.
class Mage_Core_Model_Session_Abstract_Varien extends Varien_Object { const VALIDATOR_KEY = '_session_validator_data'; const VALIDATOR_HTTP_USER_AGENT_KEY = 'http_user_agent'; const VALIDATOR_HTTP_X_FORVARDED_FOR_KEY = 'http_x_forwarded_for'; const VALIDATOR_HTTP_VIA_KEY = 'http_via'; const VALIDATOR_REMOTE_ADDR_KEY = 'remote_addr'; /** * Configure and start session * * @param string $sessionName * @return Mage_Core_Model_Session_Abstract_Varien */ public function start($sessionName=null) { if (isset($_SESSION) && !$this->getSkipEmptySessionCheck()) { return $this; } // getSessionSaveMethod has to return correct version of handler in any case $moduleName = $this->getSessionSaveMethod(); switch ($moduleName) { /** * backward compatibility with db argument (option is @deprecated after 1.12.0.2) */ case 'db': $moduleName = 'user'; /* @var $sessionResource Mage_Core_Model_Resource_Session */ $sessionResource = Mage::getResourceSingleton('core/session'); $sessionResource->setSaveHandler(); break; case 'user': // getSessionSavePath represents static function for custom session handler setup call_user_func($this->getSessionSavePath()); break; case 'files': //don't change path if it's not writable if (!is_writable($this->getSessionSavePath())) { break; } default: session_save_path($this->getSessionSavePath()); break; } session_module_name($moduleName); $cookie = $this->getCookie(); if (Mage::app()->getStore()->isAdmin()) { $sessionMaxLifetime = Mage_Core_Model_Resource_Session::SEESION_MAX_COOKIE_LIFETIME; $adminSessionLifetime = (int)Mage::getStoreConfig('admin/security/session_cookie_lifetime'); if ($adminSessionLifetime > $sessionMaxLifetime) { $adminSessionLifetime = $sessionMaxLifetime; } if ($adminSessionLifetime > 60) { $cookie->setLifetime($adminSessionLifetime); } } // session cookie params $cookieParams = array( 'lifetime' => $cookie->getLifetime(), 'path' => $cookie->getPath(), // 'domain' => $cookie->getConfigDomain(), // 'secure' => $cookie->isSecure(), // 'httponly' => $cookie->getHttponly() );
.HTACCESS Settings
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 month" ExpiresByType image/jpeg "access 1 month" ExpiresByType image/gif "access 1 month" ExpiresByType image/png "access 1 month" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType application/javascript "access plus 1 year" ExpiresByType image/x-icon "access 1 year" ExpiresByType font/truetype "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType application/x-font-woff "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" ExpiresDefault A0 </IfModule>
this proably requires someone to look into yur server, but if you have to comment that 3 lines to make magento work, there must be something wrong with your cookie settings.