Magento, Safari y problemas con las cookies.
Configuración   Sistema   Administracion de Magento

 

Desde Soloraf nos comentaron que algunos clientes estaban teniendo problemas para acceder a su cuenta dentro de la tienda. Según los foros, había que utilizar .soloraf.es en la configuración de las cookies de magento. A esta configuración se accede desde Sistema -> configuración ->web -> cookies.  Al hacer esto, todos los clientes  podían entrar en su cuenta excepto los que utilizaban Internet Explorer. Uno de los clientes nos comentó que estaba utilizando IE9 en Windows 8. Buscamos soluciones en los foros y aconsejaban utilizar 

modificando el fichero head.phtml que se encuentra en /app/design/frontend/default/tema/template/page/html/head.phtml. Esta solución no arregló nada. Activamos en la configuración de la sesion de cookies cambiando el dominio de la cookie de soloraf.es en vez de .soloraf.es y la entrada a la cuenta  con IE volvió a funcionar.

Para ver ver si el problema era del navegador o realmente producido por Magento, hicimos una prueba con una tienda que conocemos que está realizada en la misma versión de  Magento y nos dimos de alta con Safari. Seguidamente accedimos a nuestra cuenta sin problemas.

Comparamos las cookies de las tiendas y nos dimos cuenta de que la cookie de magento “frontend” estaba duplicada. Una para el dominio tienda.com y otra para .tienda.com. La diferencia que había con Soloraf era que las cookies tenían el mismo valor en tienda.com y en soloraf, tenían diferente valor.

El problema viene de la renovación de session que efectúa magento en el proceso de login. Parece ser que Safari, con los dominios sin www, no genera bien la cookie.

Para solucionarlo, copiamos el  fichero /app/code/core/Mage/Customer/Model/Session.php a /app/code/local/Mage/Customer/Model/Session.php ( esto lo hacemos para no modificar nada del núcleo de magento)  y en la linea 208 empieza el procedimiento Login. Comentamos la linea donde regenera la sesión.

Como podéis ver hemos comentado la linea donde regenera la sesión del usuario. De esta forma Safari genera las dos cookies “frontend” con el mismo valor para .soloraf.es y soloraf.es. Esto nos ha “vuelto” a enseñar que cualquier cambio en una web, por pequeño que sea, debe de ser comprobado en la mayor cantidad de navegadores y sistemas operativos.