Multi-сайт и несколько просмотров магазина без "хранить код на URL" magento 2.3
Сейчас я пытаюсь настроить магазин Magento, у меня проблема в том, что должно быть два магазина - один для розничных продавцов и один для конечных покупателей на разных языках.
Я не хотел бы использовать функцию "хранить код для URL-адресов", потому что представления магазина всегда должны иметь другое имя, а также в отношении URL-адресов SEO.
Я создал два магазина для этого:
- b2b (b2b.domain.com)
- b2c (www.domain.com)
Оба магазина имеют два вида магазина каждый
- {store_code} _en (domain.com/en/)
- {store_code} _es (domain.com/es/)
Следующие решения уже были протестированы, но, к сожалению, безуспешно: https://www.dckap.com/blog/how-to-setup-multiple-stores-in-magento2/ https://gist.github.com/thagxt/0f605f0a8a95c79302db0d2f04383788
С обоими решениями я получаю следующее сообщение:
Exception: Notice:
Undefined index: b2b in {path}vendor/magento/module-store/Model/StoreResolver/ReaderList.php on line 50 in {path}vendor/magento/framework/App/ErrorHandler.php:61 Stack trace:
#0 {path}vendor/magento/module-store/Model/StoreResolver/ReaderList.php(50): Magento\Framework\App\ErrorHandler->handler(8, 'Undefined index...', '/html/magentobl...', 50, Array)
#1 {path}vendor/magento/module-store/Model/StoresData.php(64): Magento\Store\Model\StoreResolver\ReaderList->getReader('b2b')
#2 {path}vendor/magento/module-store/Model/StoreResolver.php(138): Magento\Store\Model\StoresData->getStoresData('b2b', 'b2b_de')
#3 {path}vendor/magento/module-store/Model/StoreResolver.php(97): Magento\Store\Model\StoreResolver->getStoresData()
#4 {path}vendor/magento/module-store/Model/StoreManager.php(157): Magento\Store\Model\StoreResolver->getCurrentStoreId() #5 {path}generated/code/Magento/Store/Model/StoreManagerInterface/Proxy.php(119): Magento\Store\Model\StoreManager->getStore(NULL)
#6 {path}vendor/magento/module-store/Model/Resolver/Store.php(30): Magento\Store\Model\StoreManagerInterface\Proxy->getStore(NULL)
#7 {path}vendor/magento/framework/App/Config/ScopeCodeResolver.php(49): Magento\Store\Model\Resolver\Store->getScope(NULL)
#8 {path}vendor/magento/framework/App/Config.php(69): Magento\Framework\App\Config\ScopeCodeResolver->resolve('stores', NULL)
#9 {path}vendor/magento/module-developer/Model/Logger/Handler/Debug.php(63): Magento\Framework\App\Config->getValue('dev/debug/debug...', 'stores')
#10 {path}vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(31): Magento\Developer\Model\Logger\Handler\Debug->isHandling(Array)
#11 {path}vendor/monolog/monolog/src/Monolog/Logger.php(344): Monolog\Handler\AbstractProcessingHandler->handle(Array)
#12 {path}vendor/magento/framework/Logger/Monolog.php(48): Monolog\Logger->addRecord(400, 'Notice: Undefin...', Array)
#13 {path}vendor/monolog/monolog/src/Monolog/Logger.php(707): Magento\Framework\Logger\Monolog->addRecord(400, 'Notice: Undefin...', Array)
#14 {path}vendor/magento/framework/App/Bootstrap.php(263): Monolog\Logger->error('Notice: Undefin...')
#15 {path}de/index.php(42): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor)) #16 {main}
У кого-нибудь еще была идея, как это сделать?
Большое спасибо
0 ответов
Вы должны добавить 2 магазина как ВЕБ-САЙТЫ, а не МАГАЗИНЫ:
- URL для веб-сайта 1: www.domain.com
- URL для сайта 2: b2b.domain.com
Затем добавьте для каждого сайта магазин с той же корневой категорией.
После этого вы должны добавить 2 представления магазина для каждого: английский и испанский. У вас будет следующая структура:
-www.domain.com->store 1->en
-www.domain.com->store 1->sp
-b2b.domain.com->store 2->eng
-b2b.domain.com->store 2->esp
Коды просмотра магазина должны быть уникальными, поэтому я добавил eng и esp для просмотра второго магазина.
Затем добавьте в свой.htaccess следующее:
SetEnvIf Host ^(.*)domain\.com MAGE_RUN_CODE=en
SetEnvIf Host ^(.*)domain\.com MAGE_RUN_TYPE=store
SetEnvIf Host ^(.*)b2b.domain\.com MAGE_RUN_CODE=eng
SetEnvIf Host ^(.*)b2b.domain\.com MAGE_RUN_TYPE=store
Если вы хотите установить представление магазина по умолчанию на испанский, измените en и eng на sp и esp.
Успех!