예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /**
  * 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);
     }
 }