2

我目前正在尝试使用此代码将产品添加到我的购物车。

  $quote = $this->_session->getQuote();
  $quote->addProduct($product);
  $this->_cartRepository->save($quote);

当我在新会话中执行此操作时,产品价格和小计显示为 0.00,但在摘要中小计和订单总计是正确的。编辑产品数量后,价格都正常运行。

我曾尝试使用$quote->collectTotals();,但这并没有带来明显的变化。

如何更新购物车,以便在打开购物车页面时显示产品价格?

4

2 回答 2

0

您需要从数据库重新加载报价以使所有 collectTotals 标志都为空。

/** @var \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */
$quoteRepository->get($quoteId);
$quote->addProduct($product, $request);
$quote->collectTotals()->save();

Magento\Quote\Model\Quote::collectTotalsMagento\Quote\Model\Quote\Address\Total\Subtotal::collect

于 2020-11-24T19:23:35.660 回答
0

试试这个代码:

use Magento\Checkout\Model\Cart as Quote;

class Add {   

   protected $quote = null;

   public function __construct( Quote $quote){
        $this->quote = $quote;            
   }

   public function test(\Magento\Catalog\Model\Product $product){
        $options = ['qty'=> 1];          
        $this->quote->addProduct($product, $options);
        //OR  $this->quote->addProductsByIds([$product->getId()]);

        $this->quote->save();
   }
}

或者

   public function test(\Magento\Catalog\Model\Product $product){
        $quote = $this->_objectManager->get(\Magento\Checkout\Model\Cart:class);
        $options = ['qty'=> 1];          
        $quote->addProduct($product, $options);
        //OR  $quote->addProductsByIds([$product->getId()]);

        $quote->save();
   }
于 2019-08-21T15:04:15.937 回答