- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-06-2017
02:54 AM
03-06-2017
02:54 AM
How to redirect customer to cart in beforeSavePaymentInformationAndPlaceOrder
In my plugin i have added an call to an remote api call. And if there is an error the customer needs to be redirected back to the cart and show the error.
I have this code but it doesnt work as expected.
try { $this->_stock->reserveRemoteStock(); } catch (\Magento\Framework\Exception\LocalizedException $e) { if ($this->_session->getUseNotice(true)) { $this->_messageManager->addNotice($e->getMessage()); } else { $messages = array_unique(explode("\n", $e->getMessage())); foreach ($messages as $message) { $this->_messageManager->addError($message); } } $url = $this->_session->getRedirectUrl(true); if ($url) { return $this->resultRedirectFactory->create()->setUrl($url); } else { $cartUrl = $this->_objectManager->get('Magento\Checkout\Helper\Cart')->getCartUrl(); return $this->resultRedirectFactory->create()->setUrl($this->_redirect->getRedirectUrl($cartUrl)); } } catch (\Exception $exc) { throw new LocalizedException(__($exc->getMessage())); }
Thank you for your help.
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-09-2017
02:35 PM
03-09-2017
02:35 PM
Re: How to redirect customer to cart in beforeSavePaymentInformationAndPlaceOrder
Instead return... throw an exception like:
throw new \Magento\Framework\Exception\CouldNotSaveException( __('Please agree to all the terms and conditions before placing the order.') );
Also, I saw that in your lines like:
return $this->resultRedirectFactory...
...are missing ->sendResponse(); at the end of line.
If this response was helpful to you, consider giving kudos to this post.
If this response solved your problem, click accept as solution to help others solve this issue
If this response solved your problem, click accept as solution to help others solve this issue
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-14-2017
01:05 AM
03-14-2017
01:05 AM
Re: How to redirect customer to cart in beforeSavePaymentInformationAndPlaceOrder
Thank you for your answer, when I throw an exception I dont get redirected, I stay at the last step of the checkout (payment). The ->sendResponse(); was the trick of redirecting. But now all error messages are not displayed.
I Thought I could use the \Magento\Framework\Message\ManagerInterface for that. Or I'm doing something wrong there.