Есть ли хороший способ загрузить категорию из другого корня / магазина в текущем магазине magento 2? - PullRequest
0 голосов
/ 29 апреля 2019

У нас есть два магазина с разными корневыми категориями. Требуется показать категории из другого корня в текущем магазине.

Способ, которым это обрабатывалось в Magento 1, был создан отдельный маршрутизатор для соответствия пути категории, который при сопоставлении отправляет запрос на «просмотр» действия контроллера категории.

Хитрость здесь в том, что перед тем, как мы вызовем initCateogory, мы устанавливаем хранилище в другое хранилище, к которому принадлежит эта категория, после загрузки категории мы возвращаемся к current_store.

Мы пробовали подобное в Magento 2, однако, похоже, что страница категории загружается, но с пустыми данными.

Метод initCategory возвращает правильную категорию, метод execute возвращает данные страницы. Однако по какой-то причине файл product.phtml никогда не используется.

//match method of router.php
public function match(\Magento\Framework\App\RequestInterface $request)
    {

        //after match criteria
        {
            $request->setModuleName('series');
            $request->setControllerName('category');
            $request->setActionName('view');
            $request->setControllerModule('catalog');
            $request->setParam('id', '111111');

            return $this->actionFactory->create(
                'Magento\Framework\App\Action\Forward',
                ['request' => $request]
            );

        }
    }

// from my view.php 
 protected function _initCategory()
    {
        $_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $store_manager =  $_objectManager->get(\Magento\Store\Model\StoreManagerInterface::class);
        $current_store = 1;
        $other_store =2;
        $store_manager->setCurrentStore($other_store);
        $category = parent::_initCategory();
        $store_manager->setCurrentStore($current_store);

        return $category;

}

Он должен загрузить категорию, однако он показывает пустую страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...