diff --git a/app/code/Magento/Checkout/Model/Cart.php b/app/code/Magento/Checkout/Model/Cart.php index 4b411e61ddaf8..d5493e5ff1339 100644 --- a/app/code/Magento/Checkout/Model/Cart.php +++ b/app/code/Magento/Checkout/Model/Cart.php @@ -591,8 +591,8 @@ public function save() $this->getQuote()->getBillingAddress(); $this->getQuote()->getShippingAddress()->setCollectShippingRates(true); - $this->getQuote()->collectTotals(); $this->quoteRepository->save($this->getQuote()); + $this->getQuote()->collectTotals(); $this->_checkoutSession->setQuoteId($this->getQuote()->getId()); /** * Cart save usually called after changes with cart items. diff --git a/app/code/Magento/Quote/Model/Quote.php b/app/code/Magento/Quote/Model/Quote.php index 572d87d5f4bec..76f0c6f541f2a 100644 --- a/app/code/Magento/Quote/Model/Quote.php +++ b/app/code/Magento/Quote/Model/Quote.php @@ -2014,9 +2014,11 @@ public function removePayment() */ public function collectTotals() { + /* To fix null quote in observers if ($this->getTotalsCollectedFlag()) { return $this; } + */ $total = $this->totalsCollector->collect($this); $this->addData($total->getData()); diff --git a/app/code/Magento/Quote/Model/QuoteRepository/SaveHandler.php b/app/code/Magento/Quote/Model/QuoteRepository/SaveHandler.php index 12a71648690d4..0f12dca32c460 100644 --- a/app/code/Magento/Quote/Model/QuoteRepository/SaveHandler.php +++ b/app/code/Magento/Quote/Model/QuoteRepository/SaveHandler.php @@ -118,7 +118,8 @@ public function save(CartInterface $quote) } $this->processShippingAssignment($quote); - $this->quoteResourceModel->save($quote->collectTotals()); + $quote = $quote->collectTotals(); + $this->quoteResourceModel->save($quote); return $quote; }