Перенаправить клиента в другой магазин перед оформлением заказа - magento 2 - PullRequest
0 голосов
/ 13 февраля 2020

Как правильно перенаправить клиента в другой магазин перед оформлением заказа. Если покупатель пытается оформить заказ и если магазин не верен, то перед открытием страницы оформления заказа необходимо изменить магазин покупателя.

Я смог добиться этого с помощью события:

    <event name="controller_action_predispatch_checkout_index_index">
        ...
    </event>

И код для перенаправления:

   ....
   $store = $this->storeManager->getStore($customer->getStore());
   $path = $store->getBaseUrl().'checkout';
   $this->responseFactory->create()->setRedirect($path)->sendResponse();
   exit();

Проблема: Клиент успешно перемещен в другой магазин и получил доступ к оформлению заказа, но проблема в том, что сводка по сумме заказа с итогами корзины не перезагружается, а цены все еще те, что были в предыдущем магазине, только после обновления страницы sh цены на корзину изменились на цены из этого нового магазина.

Как я могу немедленно получить правильные итоговые суммы при оформлении заказа без необходимости обновления sh страницы

1 Ответ

0 голосов
/ 13 февраля 2020

Ответьте на мой вопрос после дальнейшего изучения:

Я только что изменил идентификатор магазина цитат в корзине:

            ...
            $store = $this->storeManager->getStore($customer->getStore());
            $quote = $this->quoteRepository->getActive($this->cart->getQuote()->getId());
            $quote->setStoreId($store->getId());
            $quote->setDataChanges(true);
            $this->quoteRepository->save($quote);
            $quote = $this->quoteRepository->getActive($this->cart->getQuote()->getId());
            $this->cart->setQuote($quote)->save();
            ...
...