Настройки, определенные в областях веб-сайта, игнорируются


Начиная с одного месяца, я создал многоэтажную платформу под Magento 2. Все отлично работало в версии 2.1.2, но с тех пор, как я обновил его в 2.1.3 две недели назад у меня возникла большая проблема : Все настройки, определенные в областях веб-сайта, игнорируются. Например, если я установлю minimal order amount для одного из моих веб-сайтов, я могу нормально заказывать без каких-либо ограничений (не нормально). Но если бы я определил этот параметр в области по умолчанию, ограничение работа.

Author: LawCha, 2017-01-05

1 answers

Это основная ошибка в 2.1.3 - https://github.com/magento/magento2/issues/7943

Здесь есть решение этой проблемы - https://github.com/magento/magento2/blob/develop/app/code/Magento/Store/Model/Config/Processor/Fallback.php#L109

Чтобы сохранить переход по ссылке, вам нужно внести следующее изменение vendor/magento/module-store/Model/Config/Processor/Fallback.php

Измените это

/**
 * Retrieve Website Config
 *
 * @param array $websites
 * @param int $id
 * @return array
 */
private function getWebsiteConfig(array $websites, $id)
{
    foreach ($this->websiteData as $website) {
        if ($website['website_id'] == $id) {
            $code = $website['website_id'];
            return isset($websites[$code]) ? $websites[$code] : [];
        }
    }
    return [];
}

До

/**
 * Retrieve Website Config
 *
 * @param array $websites
 * @param int $id
 * @return array
 */
private function getWebsiteConfig(array $websites, $id)
{
    foreach ($this->websiteData as $website) {
        if ($website['website_id'] == $id) {
            $code = $website['code'];
            return isset($websites[$code]) ? $websites[$code] : [];
        }
    }
    return [];
}

Обратите внимание на строку

$code = $website['code'];

В идеале вы должны сделать это как исправление - см. http://jamescowie.me/blog/2016/12/Composer-Magento-Patches/

 4
Author: Paul, 2017-01-05 10:10:49