Saya memiliki tiga situs web pada instalasi Magento, masing-masing memiliki domain sendiri.
Sekarang karena keamanan browser-web Anda tidak dapat mengakses cookie dari domain lain, atau sesi.
Entah bagaimana saya harus bisa mengirimkan data sementara antara dua toko yang berbeda dengan domain yang berbeda.
Kasus penggunaan khusus saya:
Saya menggunakan GeoIP untuk memicu pengalihan ke toko negara yang benar, namun saya juga harus dapat menimpanya secara manual. Sekarang pada saat ini saya memiliki masalah di mana saya secara manual menimpa toko saat ini dengan cookie, namun ketika saya dialihkan ke toko lain, tidak ada cookie di toko lain, jadi itu jatuh kembali dan mencari pengguna toko berdasarkan GeoIP. Namun ini kemudian membuat loop infinity mengarahkan antara terlalu toko.
Ini dilakukan dengan mencari tahu kode situs web untuk toko yang ingin saya gunakan index.php
dengan modul khusus dan menjalankan Magento dengan kode yang benar. Ini menangani semua pengalihan dll untuk saya saat itu.
sumber
Jawaban:
Anda dapat berbagi
frontend
cookie antara situs web magento dengan domain yang berbeda menggunakan solusi ainixon.me/set-cookie-on-cross-domains .Anda perlu membuat
cookies.php
file dengan kode berikutdan dalam templat magento Anda perlu menambahkan kode berikut setelah
<body>
tagsumber
Arahkan saja dengan
?SID=yourSessionId
Anda dapat menggunakannya pada tampilan toko lain.sumber
\Mage_Core_Model_Session_Abstract::setSessionId()
jadi cukup periksa kapan id sesi diatur dan atur.Pastikan saja
Use SID in frontend
diaktifkan.Apa saja ...
Mage::getUrl()
$this->_redirectUrl($url);
atauMage::app()->getFrontController()->getResponse()->setRedirect()
Maka akan berisi rasa hormat
SID
.Jika Anda menggunakan
files
untuk penyimpanan sesi, pastikan direktori itu umumsymlinked
; jika Anda menggunakan Memcache / Redis / DB, ini bukan masalah.-
Perlu diketahui, ada banyak cara anggun untuk menangani pengalihan GeoIP lebih jauh dari Magento. Anda bisa melakukannya di tingkat server web (memeriksa keberadaan masing-masing cookie "tanpa redirect").
sumber
Di admin Anda, buka Konfigurasi> Web> Sesi> Gunakan SID di Frontend dan aktifkan.
Ketika pergi dari satu situs ke situs lainnya, melewati sesi dengan memasukkan ini dalam url (gunakan
&
jika Anda sudah menggunakan?
untuk$_GET
parameter)sumber