这是我的问题:
当我在购物车中添加电子课程(不发货)和普通产品(已发货)并在结帐时选择送货时,费用会在报价中设置。如果我在设置完之后离开结账,然后删除已发货的产品,运费仍然在报价中设置,我无法取消设置...即使删除报价中的所有项目。
我正在尝试弄清楚如何取消运输方法并在从购物车中移除产品后重新计算总数。
答案 0 :(得分:15)
在报价和送货地址模型中缓存了一些内容,因此如果您更改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通常会在更改报价后将客户重定向到购物车或其他页面,因此通常每页加载时必须计算一次总计。
答案 1 :(得分:1)
如果你是以编程方式进行的,那么你可以试试这个:
$quote->collectTotals()
$quote->getShippingAddress()->collectTotals()