Saya mencoba menyiapkan multi store dengan keranjang bersama. Namun, login pengguna terkadang tidak berfungsi.
The Store Switcherbekerja dengan baik, tetapi frontend User Loginpada 2 dan 3 Storemengharuskan saya untuk mengklik Sign Intombol dua kali untuk login.
Saya memiliki pengaturan multi store dengan pengaturan ini:
Multi Domain (Host Virtual)
Saya menggunakan satu Website. Situs ini akan memiliki tiga Stores. Nama domain akan berbagi satu domain basis umum. Toko tambahan akan menggunakan subdomain .
Saya membuat magento2.com sebagai domain basis default.
Saya membuat store2.magento2.com sebagai toko ke-2.
Saya membuat store3.magento2.com sebagai toko ke-3.
Kategori Root dan Produk Uji
Saya membuat Kategori Root Store2 dan Kategori Root Store3 . Saya juga membuat sub kategori di bawah setiap Kategori Root.
Saya menambahkan satu produk uji untuk setiap sub kategori.
Toko dan Tampilan
Saya TIDAK mengubah apa pun di Toko Situs Web Utama dan Tampilan Toko Default .
Saya membuat Store2 dan Store View 2 untuk toko ke-2.
Saya membuat Store3 dan Store View 3 untuk toko ke-3.
Untuk Store2 , saya mengatur Store2 sebagai Namedan memilih Kategori Root Store2 sebagai Root Category.
Untuk Store View 2 , saya memilih Store2 sebagai Store, menggunakan Store View 2 sebagai Name, dan memasukkan store2 sebagai Store Code.
Untuk tanggal 3 Store, saya menetapkan Store3 sebagai Namedan memilih Kategori Root Store3 sebagai Root Category.
Untuk Store View 3 , saya memilih Store3 sebagai Store, menggunakan Store View 3 sebagai Name, dan memasukkan store3 sebagai Store Code.
Pengaturan URL dan Cookie
The ConfigurationLayar sekarang menunjukkan 5 pilihan di bawah Store Viewdrop-down:
Default ConfigMain WebsiteDefault Store View- Tampilan Toko 2
- Tampilan Toko 3
Saya mengubah pengaturan URL dan Cookie untuk Default Store View, Tampilan Toko 2 , dan Tampilan Toko 3 .
Saya TIDAK mengubah pengaturan URL atau Cookie untuk Default Configdan Main Website.
Karena Default Store Viewsaya berubah Cookie Path.
Untuk Tampilan Toko 2 , saya berubah Base URLdan Cookie Path.
Untuk Tampilan Toko 3 , saya berubah Base URLdan Cookie Path.
Berbagi Akun
Untuk berbagi akun pengguna dan keranjang belanja di antara beberapa toko, saya mengubah Share Customer Accountsdari "Per Situs Web" menjadi Global di bawah Default Config.
.htaccess berubah
Saya menambahkan baris ini di bagian atas .htaccessfile di direktori root proyek.
#Multi store setting
SetEnvIf Host magento2.com MAGE_RUN_CODE=default
SetEnvIf Host magento2.com MAGE_RUN_TYPE=store
SetEnvIf Host ^magento2.com MAGE_RUN_CODE=default
SetEnvIf Host ^magento2.com MAGE_RUN_TYPE=store
SetEnvIf Host store2.magento2.com MAGE_RUN_CODE=store2
SetEnvIf Host store2.magento2.com MAGE_RUN_TYPE=store
SetEnvIf Host ^store2.magento2.com MAGE_RUN_CODE=store2
SetEnvIf Host ^store2.magento2.com MAGE_RUN_TYPE=store
SetEnvIf Host store3.magento2.com MAGE_RUN_CODE=store3
SetEnvIf Host store3.magento2.com MAGE_RUN_TYPE=store
SetEnvIf Host ^store3.magento2.com MAGE_RUN_CODE=store3
SetEnvIf Host ^store3.magento2.com MAGE_RUN_TYPE=store
perubahan index.php
Menggunakan Store Switcher, kadang-kadang diperlukan untuk mengklik dua kali untuk beralih dari store2 / 3 ke default. Untuk memperbaikinya, saya harus mereset nilai $_COOKIE['store']di index.php:
<?php
/**
* Application entry point
*
* Example - run a particular store or website:
* --------------------------------------------
* require __DIR__ . '/app/bootstrap.php';
* $params = $_SERVER;
* $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'website2';
* $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
* $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
* \/** @var \Magento\Framework\App\Http $app *\/
* $app = $bootstrap->createApplication('Magento\Framework\App\Http');
* $bootstrap->run($app);
* --------------------------------------------
*
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
try {
require __DIR__ . '/app/bootstrap.php';
} catch (\Exception $e) {
echo <<<HTML
<div style="font:12px/1.35em arial, helvetica, sans-serif;">
<div style="margin:0 0 25px 0; border-bottom:1px solid #ccc;">
<h3 style="margin:0;font-size:1.7em;font-weight:normal;text-transform:none;text-align:left;color:#2f2f2f;">
Autoload error</h3>
</div>
<p>{$e->getMessage()}</p>
</div>
HTML;
exit(1);
}
// Fix store switcher bug on switching to the default store
if ( isset($_SERVER['MAGE_RUN_TYPE']) == 'store' && isset($_SERVER['MAGE_RUN_CODE']) ) {
if ( !empty($_SERVER['MAGE_RUN_CODE']) ) {
$_COOKIE['store'] = $_SERVER['MAGE_RUN_CODE'];
}
}
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
Login pengguna terkadang harus mengklik dua kali
Dengan pengaturan di atas, Store Switcherberfungsi dengan baik. Belanja Cartdibagi di antara ketiga Toko untuk pengguna yang masuk dan tidak masuk.
Namun, pada Store2 dan Store3 , frontend user loginterkadang dialihkan kembali ke halaman login yang sama. Jika saya menekan Sign Intombol pada halaman login yang dialihkan (kali ke-2 untuk mengklik tombol ini), mari saya login.
Adakah cara untuk menyelesaikan masalah ini?
Perbarui: nonaktifkan Cache
Saya menonaktifkan caching dari baris perintah:
php bin/magento cache:disable
Dengan cache yang dinonaktifkan, user loginpada Store2 dan Store3 menjadi jauh lebih stabil. Itu masih diarahkan kembali ke halaman login 1 dari 10 upaya, tetapi perubahan ini membuat login berfungsi lebih baik.
Namun, seluruh situs menjadi lambat !!!
Apakah ada cara untuk mengonfigurasi cache dengan benar untuk membuatnya user loginbekerja dengan benar pada multi- Storesetup?


















