Magento 2: उपयोगकर्ता लॉगिन को कभी-कभी मल्टी स्टोर सेटअप पर दो बार लॉगिन करने की आवश्यकता होती है


9

मैं साझा कार्ट के साथ एक मल्टी स्टोर सेटअप करने की कोशिश कर रहा हूं। हालाँकि, कभी-कभी उपयोगकर्ता लॉगिन काम नहीं करता है।

Store Switcherठीक काम करता है, लेकिन दृश्यपटल User Login2 और 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ड्रॉप-डाउन:

  1. Default Config
  2. Main Website
  3. Default Store View
  4. स्टोर व्यू २
  5. स्टोर देखें 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सेटअप पर सही तरीके से प्रदर्शन करने के लिए कैश को ठीक से कॉन्फ़िगर करने का एक तरीका है ?


नमस्ते क्या आप इस मुद्दे को ठीक करने में सक्षम थे ?? मैं भी अपनी साइट पर इसी मुद्दे का सामना कर रहा हूँ। एकल वेबसाइट के तहत दुकानों के बीच लॉगिन विवरण साझा नहीं किए जाते हैं। क्या आप कृपया अपना समाधान साझा कर सकते हैं
ज़मूज़

जवाबों:


0

हम स्टोर स्विचर बनाने और नए कॉन्फ़िगरेशन के साथ थोड़ा और स्थिर लॉगिन करने में कामयाब रहे।

उरल्स में स्टोर कोड जोड़ें

सबसे बड़ा परिवर्तन Add Store Code to Urls"हाँ" के लिए सेट किया गया था ।

स्टोर =>
सेटिंग अनुभाग में कॉन्फ़िगरेशन =>
चयन Default Config=>
सामान्य अनुभाग में वेब =>
यूआरएल विकल्प => "हां" में
  बदलें।Add Store Code to Urls

यहां छवि विवरण दर्ज करें

 

कुकी डोमेन निकालें

फिर, हमने कॉन्फ़िगरेशन पृष्ठ Cookie Domainसे Store2 और Store3 से मान निकाल दिया ।

स्टोर =>
विन्यास सेटिंग्स में अनुभाग =>
का चयन store2 या Store3 =>
सामान्य अनुभाग => में वेब
डिफ़ॉल्ट कुकी सेटिंग =>
  से मान निकालें Cookie Domainऔर इसे खाली छोड़ दें

यहां छवि विवरण दर्ज करें

 

से कस्टम कोड निकालें .htaccessऔरindex.php

फिर, हमने कस्टम कोड लाइन्स फ़ॉर्म को हटा दिया .htaccessऔर index.php

नए कॉन्फ़िगरेशन के साथ, इन फ़ाइलों पर अनुकूलन की अब आवश्यकता नहीं थी। यह बहुत अच्छा है, क्लीनर कोड।

 

इन परिवर्तनों के बाद, स्टोर स्विचर, साझा खरीदारी कार्ट और उपयोगकर्ता लॉगिन बहुत अधिक स्थिर हो गया। इन परिवर्तनों को करने के बाद सुनिश्चित करें कि आप कैश को साफ़ करें।

 

Magento2 कोर उन्नयन और इसके प्रभाव पर .htaccessऔरindex.php

कॉन्फ़िगरेशन और फ़ाइल परिवर्तन करने से पहले, हमने Magento2 कोर को 2.1.0 से 2.1.3 तक उन्नत किया composer। (संदर्भ: अद्यतन २.१.२ २.१.३ के लिए )

हमें यकीन नहीं है कि यह इस मल्टी स्टोर कॉन्फ़िगरेशन के लिए एक आवश्यक हिस्सा होगा, लेकिन हमने यह उम्मीद करते हुए कहा कि साइट 2.1.3 से नवीनतम के साथ अधिक स्थिर होगी

हमारे पास 3 फ़ाइलें संशोधित थीं जो कोर और मॉड्यूल फ़ाइलों का हिस्सा थीं (इन फ़ाइलों को हमारे Git संस्करण नियंत्रण द्वारा अनदेखा किया गया है):

  1. .htaccess
  2. index.php
  3. देव / उपकरण / ग्रन्ट / कॉन्फिग / थीम.ज (हमारे कस्टम थीम सीएसएस संकलित करने के लिए ग्रंट कॉन्फिग फाइल)

जब हमने Magento2 को अपग्रेड किया, तो ये फाइलें 2.1.3 की प्रारंभिक स्थिति में रीसेट हो जाती हैं। हमें अपने .htaccessऔर index.phpफ़ाइलों को मैन्युअल रूप से साफ़ करने की आवश्यकता नहीं थी । फ़ाइल सामग्री स्वचालित रूप से नवीनीकरण द्वारा रीसेट कर दी गई थी। यह एक सकारात्मक पक्ष प्रभाव था।

लेकिन इसका बुरा दुष्प्रभाव भी हुआ। ग्रंट कॉन्फिग फ़ाइल में हमारा कस्टम कोड कोर अपग्रेड द्वारा रीसेट और मिटा दिया गया था। हमें इस फ़ाइल पर अपने कस्टम कोड लाइनों को मैन्युअल रूप से पुनर्स्थापित करना था।

मैं इस कोर उन्नयन और विन्यास / फ़ाइल परिवर्तन करने से पहले फ़ाइल और DB बैकअप लेने की सलाह देता हूं।


जावास्क्रिप्ट को कम करने में मदद मिल सकती है

जेएस को न्यूनतम करने से हमारी साइट पर पूरी साइट और अधिक स्थिर हो गई।

स्टोर =>
विन्यास सेटिंग्स अनुभाग में =>
का चयन करें Default Config=>
उन्नत अनुभाग में डेवलपर =>
JavaScript सेटिंग =>
  सेट Merge JavaScript Filesकरने के लिए "हाँ" =>
  सेट Enable JavaScript Bundlingकरने के लिए "हाँ" =>
  सेट Minify JavaScript Filesकरने के लिए "हाँ" =>
तो, कैशे

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.