J'ai trois sites Web sur une installation Magento, chacun a son propre domaine.
Maintenant, en raison de la sécurité du navigateur Web, vous ne pouvez pas accéder aux cookies d'un autre domaine, ni aux sessions.
D'une manière ou d'une autre, je dois pouvoir transmettre des données temporaires entre deux magasins différents avec des domaines différents.
Mon cas d'utilisation spécifique:
J'utilise GeoIP pour déclencher une redirection vers le magasin de pays correct, mais je dois également pouvoir remplacer manuellement cela. Maintenant, pour le moment, j'ai un problème où je remplace manuellement le magasin actuel avec un cookie, mais lorsque je suis redirigé vers l'autre magasin, il n'y a pas de cookie sur l'autre magasin, il tombe donc en arrière et recherche les utilisateurs magasin basé sur GeoIP. Cependant, cela crée alors une boucle infinie redirigeant entre trop de magasins.
Cela se fait en déterminant le code du site Web pour le magasin dans lequel je veux utiliser index.php
avec un module personnalisé et en exécutant Magento avec le bon code. Cela gère alors toutes les redirections, etc. pour moi.
la source
Réponses:
Vous pouvez partager des
frontend
cookies entre le site Web magento avec différents domaines en utilisant cette solution ainixon.me/set-cookie-on-cross-domains .Vous devez créer un
cookies.php
fichier avec le code suivantet dans le modèle magento, vous devrez ajouter le code suivant après la
<body>
balisela source
Redirigez simplement avec
?SID=yourSessionId
puis vous pouvez simplement l'utiliser sur l'autre vue de la boutique.la source
\Mage_Core_Model_Session_Abstract::setSessionId()
il suffit donc de vérifier quand l'ID de session est défini et de le définir.Assurez
Use SID in frontend
- vous simplement qu'il est activé.Tout ...
Mage::getUrl()
$this->_redirectUrl($url);
ouMage::app()->getFrontController()->getResponse()->setRedirect()
Contiendra alors le respect
SID
.Si vous utilisez
files
pour le stockage de session, assurez-vous simplement que le répertoire est communsymlinked
; si vous utilisez Memcache / Redis / DB, ce n'est pas un problème.-
Notez simplement qu'il existe de nombreuses façons gracieuses de gérer la redirection GeoIP plus haut que Magento. Vous pouvez le faire au niveau du serveur Web (vérifier la présence de votre cookie "sans redirection" respectif).
la source
Dans votre administrateur, accédez à Configuration> Web> Session> Utiliser SID sur le frontend et activez.
Lorsque vous passez d'un site à un autre, passez la session en l'incluant dans l'url (à utiliser
&
si vous l'utilisez déjà?
pour un$_GET
paramètre)la source