Question

I have setup a fresh Magento 2.1.3 installation with four websites that all have only one Store view. I want to set the locale on website level and leave the Store view level as 'Use Website' but instead of the website level the default level is used:

enter image description here

The Default Config is English, the website level (for the first website, but it's the same for the other websites) is set to Dutch but the Store view level shows English instead of Dutch.

When opening the website frontend in a browser, it runs with English language settings. After changing the Store view level to Dutch, the website language settings are Dutch as expected. But I would rather like to make the settings on the highest possible level.

This behavior is the same with all the other settings as well like Base URL, currencies, etc.

Has this changed from Magento 1 to Magento 2 or is there another setting that influence this?

Was it helpful?

Solution

This seems to be a bug in Magento 2.1.3.

https://github.com/magento/magento2/issues/7815 https://github.com/magento/magento2/issues/7840

The problem is here Magento\Store\Model\Config\Processor\Fallback::getWebsiteConfig(). This line $code = $website['website_id']; should be replaced with $code = $website['code']; As a workaround you can create your own module and extend the Fallback class using di.xml, but since almost all methods and properties has a 'private' scope, you will need to override them all.

After changing 'website_id' to 'code' the website value is used instead of the default value.

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top