Ich habe drei Websites in einer Magento-Installation, jede hat ihre eigene Domain.
Aufgrund der Sicherheit des Webbrowsers können Sie weder auf Cookies von einer anderen Domain noch auf Sitzungen zugreifen.
Irgendwie muss ich in der Lage sein, temporäre Daten zwischen zwei verschiedenen Speichern mit unterschiedlichen Domänen zu übertragen.
Mein spezieller Anwendungsfall:
Ich verwende GeoIP, um eine Weiterleitung zum richtigen Länderspeicher auszulösen, muss dies jedoch auch manuell überschreiben können. Im Moment habe ich das Problem, dass ich das aktuelle Geschäft manuell mit einem Cookie überschreibe. Wenn ich jedoch zum anderen Geschäft umgeleitet werde, gibt es im anderen Geschäft kein Cookie, sodass es zurückfällt und die Benutzer nachschlägt Speicher basierend auf GeoIP. Dies erzeugt dann jedoch eine Endlosschleife, die zwischen zu Speichern umleitet.
Dazu ermitteln Sie den Website-Code für das Geschäft, in dem ich index.php
ein benutzerdefiniertes Modul verwenden möchte, und führen Magento mit dem richtigen Code aus. Dies behandelt dann alle Weiterleitungen usw. für mich.
quelle
Antworten:
frontend
Mit dieser Lösung ainixon.me/set-cookie-on-cross-domains können Sie Cookies zwischen Magento-Websites mit verschiedenen Domains teilen .Sie müssen eine
cookies.php
Datei mit dem folgenden Code erstellenIn der Magento-Vorlage müssen Sie nach dem
<body>
Tag den folgenden Code hinzufügenquelle
Weiterleiten mit
?SID=yourSessionId
dann können Sie es einfach in der anderen Store-Ansicht verwenden.quelle
\Mage_Core_Model_Session_Abstract::setSessionId()
Überprüfen Sie einfach, wann die Sitzungs-ID festgelegt ist, und legen Sie sie fest.Stellen Sie einfach sicher, dass
Use SID in frontend
aktiviert ist.Irgendein ...
Mage::getUrl()
$this->_redirectUrl($url);
oderMage::app()->getFrontController()->getResponse()->setRedirect()
Wird dann den Respekt enthalten
SID
.Wenn Sie
files
für die Sitzungsspeicherung verwenden, stellen Sie einfach sicher, dass das Verzeichnis allgemein istsymlinked
. Wenn Sie Memcache / Redis / DB verwenden, ist dies kein Problem.- -
Beachten Sie, dass es viele elegante Möglichkeiten gibt, die GeoIP-Umleitung weiter oben als bei Magento zu handhaben. Sie können dies auf Webserver-Ebene tun (indem Sie das Vorhandensein Ihres jeweiligen "No-Redirect" -Cookies überprüfen).
quelle
Gehen Sie in Ihrem Administrator zu Konfiguration> Web> Sitzung> SID im Frontend verwenden und aktivieren.
Wenn Sie von einer Site zur anderen wechseln, übergeben Sie die Sitzung, indem Sie diese in die URL aufnehmen (verwenden
&
Sie diese Option, wenn Sie sie bereits?
für einen$_GET
Parameter verwenden).quelle