Paylaşılan alışveriş sepeti ile çoklu mağaza kurmaya çalışıyorum. Ancak, kullanıcı girişi bazen çalışmaz.
Store Switcher
Cezası çalışır, ancak önyüzü User Login
2 ve 3. üzerine Store
tıklayın açmamı Sign In
giriş için iki kez düğmeye.
Bu kurulumlarla çoklu mağazalar kurdum:
Çoklu Alan Adı (Sanal Ana Makineler)
Ben kullanıyorum Website
. Sitede üç tane olacak Stores
. Alan adları, ortak bir temel alan adını paylaşır. Ek mağazalar alt alan adlarını kullanacaktır .
Varsayılan temel etki alanı olarak magento2.com'u oluşturdum .
İkinci mağaza olarak store2.magento2.com'u oluşturdum .
3. mağaza olarak store3.magento2.com'u oluşturdum .
Kök Kategorileri ve Test Ürünleri
Oluşturduğum mağaza2 Kök Kategori ve Store3 Kök Kategori . Ayrıca her Kök Kategorisi altında alt kategoriler oluşturdum.
Her alt kategoriye bir test ürünü ekledim.
Mağazalar ve Görünümler
Ana Web Sitesi Mağazası ve Varsayılan Mağaza Görünümünde hiçbir şeyi değiştirmedim .
2. mağaza için Store2 ve Store View 2'yi oluşturdum .
3. mağaza için Store3 ve Store View 3'ü oluşturdum .
İçin mağaza2 , belirlediğim mağaza2 olarak Name
ve seçilen mağaza2 Kök Kategori olarak Root Category
.
İçin Mağaza Görünüm 2 , ben seçilmiş mağaza2 olarak Store
, kullanılan Mağaza Görünüm 2 olarak Name
ve girilen mağaza2 olarak Store Code
.
Üçüncü olarak Store
, Store3'ü olarak ayarladım Name
ve Store3 Kök Kategorisi olarak seçtimRoot Category
.
İçin Mağaza Görünüm 3 , ben seçilmiş Store3 olarak Store
, kullanılan Mağaza Görünüm 3 olarak Name
ve girilen store3 olarak Store Code
.
URL ve Çerez ayarı
Configuration
Ekran şimdi gösterileri altında 5 seçenek Store View
açılır:
Default Config
Main Website
Default Store View
- Mağaza Görünümü 2
- Mağaza Görünümü 3
Ben URL ve Çerez ayarları değişti Default Store View
, Mağaza Görünüm 2 ve Mağaza Görünüm 3 .
Ben için URL veya Çerez ayarlarını değiştirmek ETMEDİ Default Config
ve Main Website
.
Çünkü Default Store View
ben değiştim Cookie Path
.
İçin Mağaza Görünüm 2 , değiştim Base URL
ve Cookie Path
.
İçin Mağaza Görünüm 3 , değiştim Base URL
ve Cookie Path
.
Hesap paylaşımı
Hisse kullanıcı hesapları ve birden mağazalar arasında alışveriş sepeti için, ben değiştim Share Customer Accounts
için "Başına Sitesi" dan Küresel altında Default Config
.
.htaccess değişikliği
Bu satırları .htaccess
proje kök dizinindeki dosyanın üstüne ekledim .
#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
index.php değişikliği
Kullanılması Store Switcher
, bazen varsayılan mağaza2 / 3'ten anahtarına iki kez tıklamanız gerekmektedir. Bunu düzeltmek için $_COOKIE['store']
, index.php için değerini sıfırlamak zorunda kaldı :
<?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);
Kullanıcı girişi bazen iki kez tıklamayı gerektirir
Yukarıdaki kurulum ile, Store Switcher
iyi çalışıyor. Alışveriş Cart
, hem giriş yapmış hem de giriş yapmamış kullanıcılar için 3 Mağaza arasında paylaşılır.
Ancak, Mağaza2 ve Mağaza3'te , kullanıcı arabirimiuser login
bazen aynı giriş sayfasına yeniden yönlendirir. Yeniden Sign In
yönlendirilen giriş sayfasındaki düğmeye basarsam (bu düğmeyi tıklamak için 2. kez), giriş yapalım.
Bu problemi düzeltmenin bir yolu var mı?
Güncelleme: devre dışı bırakma Cache
Komut satırından önbelleğe almayı devre dışı bıraktım:
php bin/magento cache:disable
Önbellek devre dışı bırakıldığında user login
, Store2 ve Store3'te çok daha kararlı hale geldi. Yine de 10 denemeden giriş sayfası 1'e yeniden yönlendirildi, ancak bu değişiklik girişin daha iyi çalışmasını sağladı.
Ancak, tüm site yavaş oldu !!!
Önbelleği, user login
çoklu Store
kurulumda doğru şekilde çalışacak şekilde yapılandırmanın bir yolu var mı ?