2

这是我的问题:

当我将电子课程(无运费)和常规产品(有运费)添加到我的购物车并在结账时选择运费时,报价中会设置成本。如果我在设置后离开结帐,然后删除有运费的产品,运费仍然在报价中设置,我无法取消设置......即使删除报价中的所有项目。

我试图弄清楚如何在从购物车中删除产品后取消设置运输方式并重新计算总数。

4

2 回答 2

17

报价和送货地址模型中缓存了一些东西,因此如果您更改 qoute 项目或送货,您必须这样做以使 Magento 重新计算总计:

    $quote->setTotalsCollectedFlag(false);
    $quote->getShippingAddress()->unsetData('cached_items_all');
    $quote->getShippingAddress()->unsetData('cached_items_nominal');
    $quote->getShippingAddress()->unsetData('cached_items_nonnominal');
    $quote->collectTotals();

它对我有用。Magento 通常会在任何报价更改后将客户重定向到购物车或另一个页面,因此通常它必须在每次页面加载时计算一次总计。

于 2012-10-15T01:26:48.010 回答
1

如果您以编程方式执行此操作,则可以尝试以下操作:

$quote->collectTotals()
$quote->getShippingAddress()->collectTotals()
于 2011-04-15T06:26:09.197 回答