/** * Reinitialize cart quote state * * @return $this */ protected function reinitializeState() { $quote = $this->getQuote()->setCheckoutMethod(''); $this->_checkoutSession->setCartWasUpdated(true); // TODO: Move this logic to Multishipping module as plug-in. // reset for multiple address checkout if ($this->_checkoutSession->getCheckoutState() !== Session::CHECKOUT_STATE_BEGIN && $this->_checkoutSession->getCheckoutState() !== null) { $quote->removeAllAddresses()->removePayment(); $this->_checkoutSession->resetCheckout(); } return $this; }
/** * Initialize cart quote state to be able use it on cart page * * @return $this */ public function init() { $quote = $this->getQuote()->setCheckoutMethod(''); if ($this->_checkoutSession->getCheckoutState() !== Session::CHECKOUT_STATE_BEGIN) { $quote->removeAllAddresses()->removePayment(); $this->_checkoutSession->resetCheckout(); } if (!$quote->hasItems()) { $quote->getShippingAddress()->setCollectShippingRates(false)->removeAllShippingRates(); } return $this; }
/** * Map STEP_SELECT_ADDRESSES to Cart::CHECKOUT_STATE_BEGIN * @param \Magento\Checkout\Model\Cart $subject * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function beforeSave(\Magento\Checkout\Model\Cart $subject) { if ($this->checkoutSession->getCheckoutState() === State::STEP_SELECT_ADDRESSES) { $this->checkoutSession->setCheckoutState(\Magento\Checkout\Model\Session::CHECKOUT_STATE_BEGIN); } }