Tengo tres sitios web en una instalación de Magento, cada uno tiene su propio dominio.
Ahora, debido a la seguridad del navegador web, no puede acceder a cookies de otro dominio, ni a sesiones.
De alguna manera, necesito poder pasar datos temporales entre dos tiendas diferentes con dominios diferentes.
Mi caso de uso específico:
Estoy usando GeoIP para activar una redirección a la tienda de países correcta, sin embargo, también necesito poder anular esto manualmente. Ahora, en este momento, tengo el problema de que estoy anulando manualmente en la tienda actual con una cookie, sin embargo, cuando soy redirigido a la otra tienda, no hay ninguna cookie en la otra tienda, por lo que retrocede y busca a los usuarios tienda basada en GeoIP. Sin embargo, esto crea un bucle infinito que redirige entre las tiendas.
Esto se hace averiguando el código del sitio web para la tienda que quiero usar index.php
con un módulo personalizado y ejecutando Magento con el código correcto. Esto maneja todos los redireccionamientos, etc. para mí entonces.
fuente
Respuestas:
Puede compartir
frontend
cookies entre el sitio web de magento con diferentes dominios utilizando esa solución ainixon.me/set-cookie-on-cross-domains .Necesita crear un
cookies.php
archivo con el siguiente códigoy en la plantilla de magento deberá agregar el siguiente código después de la
<body>
etiquetafuente
Simplemente redirija con y
?SID=yourSessionId
luego puede usarlo en la otra vista de la tienda.fuente
\Mage_Core_Model_Session_Abstract::setSessionId()
así que solo verifique cuándo está establecida la identificación de la sesión y configúrela.Solo asegúrese de que
Use SID in frontend
esté habilitado.Ninguna ...
Mage::getUrl()
$this->_redirectUrl($url);
oMage::app()->getFrontController()->getResponse()->setRedirect()
Entonces contendrá el respeto
SID
.Si está utilizando el
files
almacenamiento de sesión, solo asegúrese de que el directorio sea comúnsymlinked
; Si está utilizando Memcache / Redis / DB, esto no es una preocupación.-
Solo tenga en cuenta que hay muchas formas elegantes de manejar la redirección GeoIP más arriba que Magento. Puede hacerlo en el nivel del servidor web (verificando la presencia de su respectiva cookie "sin redireccionamiento").
fuente
En su administrador, vaya a Configuración> Web> Sesión> Usar SID en Frontend y habilítelo.
Cuando vaya de un sitio a otro, pase la sesión incluyéndola en la url (úsela
&
si ya la usó?
para un$_GET
parámetro)fuente