मैं साझा कार्ट के साथ एक मल्टी स्टोर सेटअप करने की कोशिश कर रहा हूं। हालाँकि, कभी-कभी उपयोगकर्ता लॉगिन काम नहीं करता है।
Store Switcher
ठीक काम करता है, लेकिन दृश्यपटल User Login
2 और 3 पर Store
मुझे क्लिक करने के लिए की आवश्यकता है Sign In
लॉगिन करने के लिए बटन को दो बार।
मेरे पास इन सेटअपों के साथ सेटअप मल्टी स्टोर हैं:
मल्टी डोमेन (वर्चुअल होस्ट)
मैं एक का उपयोग कर रहा हूँ Website
। साइट में तीन होंगे Stores
। डोमेन नाम एक साझा आधार डोमेन साझा करेंगे। अतिरिक्त स्टोर उप-डोमेन का उपयोग करेंगे ।
मैंने मूलभूत आधार डोमेन के रूप में magento2.com बनाया ।
मैंने दूसरी दुकान के रूप में store2.magento2.com बनाया ।
मैंने 3rd स्टोर के रूप में store3.magento2.com बनाया ।
रूट श्रेणियां और परीक्षण उत्पाद
मैंने Store2 रूट श्रेणी और Store3 रूट श्रेणी बनाई । मैंने प्रत्येक रूट श्रेणी के तहत उप श्रेणियां भी बनाईं।
मैंने प्रत्येक उप श्रेणी में एक परीक्षण उत्पाद जोड़ा।
स्टोर और दृश्य
मैंने मुख्य वेबसाइट स्टोर और डिफ़ॉल्ट स्टोर व्यू पर कुछ भी नहीं बदला ।
मैंने 2 स्टोर के लिए Store2 और Store View 2 बनाया ।
मैंने 3 स्टोर के लिए Store3 और Store View 3 बनाया ।
के लिए store2 , मैं सेट store2 के रूप में Name
और चयनित store2 रूट श्रेणी के रूप में Root Category
।
के लिए स्टोर दृश्य 2 , मेरे द्वारा चुने गए store2 के रूप में Store
प्रयोग किया जाता स्टोर दृश्य 2 के रूप में Name
, और प्रवेश किया store2 के रूप में Store Code
।
3rd के लिए Store
, मैंने Store3 को के रूप में Name
और Store3 रूट श्रेणी के रूप में चुना Root Category
।
के लिए स्टोर दृश्य 3 , मेरे द्वारा चुने गए Store3 के रूप में Store
प्रयोग किया जाता स्टोर दृश्य 3 के रूप में Name
, और प्रवेश किया store3 के रूप में Store Code
।
URL और कुकी सेटिंग
Configuration
अब स्क्रीन शो के तहत 5 विकल्प Store View
ड्रॉप-डाउन:
Default Config
Main Website
Default Store View
- स्टोर व्यू २
- स्टोर देखें 3
मैं के लिए URL और कुकी सेटिंग्स बदल Default Store View
, स्टोर दृश्य 2 , और स्टोर दृश्य 3 ।
मैं के लिए यूआरएल या कुकी सेटिंग परिवर्तन नहीं किया Default Config
और Main Website
।
के लिए Default Store View
, मैं बदल गया Cookie Path
।
के लिए स्टोर दृश्य 2 , मैं बदल गया Base URL
और Cookie Path
।
के लिए स्टोर दृश्य 3 , मैं बदल गया Base URL
और Cookie Path
।
खाता साझा करना
उपयोगकर्ता खातों और शॉपिंग कार्ट को कई दुकानों के बीच साझा करने के लिए, मैंने Share Customer Accounts
"प्रति वेबसाइट" से ग्लोबल अंडर में बदल दिया Default Config
।
.htaccess बदल जाता है
मैंने .htaccess
प्रोजेक्ट रूट डायरेक्टरी में फ़ाइल के शीर्ष पर इन पंक्तियों को जोड़ा ।
#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 बदलाव
का उपयोग करते हुए Store Switcher
, कभी-कभी स्टोर 2/3 से डिफ़ॉल्ट पर स्विच करने के लिए दो बार क्लिक करने की आवश्यकता होती है। इसे ठीक करने के लिए, मुझे $_COOKIE['store']
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);
उपयोगकर्ता लॉगिन कभी-कभी दो बार क्लिक करने की आवश्यकता होती है
उपरोक्त सेटअप के साथ, Store Switcher
ठीक काम कर रहा है। Cart
लॉग-इन और लॉग-इन दोनों उपयोगकर्ताओं के लिए सभी 3 स्टोर्स में खरीदारी साझा की जाती है।
हालांकि, स्टोर 2 और स्टोर 3 पर , फ्रंटएंड user login
कभी-कभी उसी लॉगिन पृष्ठ पर वापस रीडायरेक्ट करता है। यदि मैं Sign In
पुनर्निर्देशित लॉगिन पृष्ठ पर बटन दबाता हूं (इस बटन को क्लिक करने के लिए 2 बार), तो मुझे लॉगिन करने दें।
क्या इस समस्या के समाधान का कोई तरीका है?
अपडेट: अक्षम करना Cache
मैंने कमांड लाइन से कैशिंग को अक्षम कर दिया:
php bin/magento cache:disable
अक्षम कैश के साथ, स्टोर 2 और स्टोर 3user login
पर बहुत अधिक स्थिर हो गया। यह अभी भी 10 में से 1 लॉगिन पृष्ठ पर वापस भेज दिया गया है, लेकिन इस बदलाव ने लॉगिन को बेहतर काम करने के लिए बनाया है।
हालाँकि, पूरी साइट धीमी हो गई !!!
क्या user login
मल्टी Store
सेटअप पर सही तरीके से प्रदर्शन करने के लिए कैश को ठीक से कॉन्फ़िगर करने का एक तरीका है ?