以编程方式删除项目时,Magento 2.3 迷你购物车不会重置

问题描述

当前我使用 magento 2.3

我在 \Magento\Checkout\Model\Cart aroundRemoveItem() 函数中做了一个插件

例如,我添加了产品 A(数量 1)和产品 B(数量 1)。 当我删除 A 时,aroundRemoveItem() 函数将帮助我以编程方式删除 B,这将使购物车为空。

在结帐/购物车页面中测试工作正常。

但是当我在迷你购物车中删除 A 时,结果是清空了购物车,但似乎购物车部分没有重置,所以迷你购物车仍然显示数字 1(即 B)和一个空购物车。

即使我尝试刷新页面,此错误仍然发生。

我的问题是如何让迷你车知道 B 已被移除?

解决方法

我发现了问题。

当 sidebar->updateQuoteItem() 被调用时,我对 save() 函数进行了第二次调用。 这使得引用的数据出错。

解决方案:尽量只保存一个。