【发布时间】:2015-01-09 21:06:29
【问题描述】:
我一直在使用以下方法为产品应用自定义价格:
使用事件“checkout_cart_product_add_after”并分别为其创建函数。
在那个函数中,我使用了 $item->setCustomPrice($value) 方法。
该产品以自定义价格成功添加到购物车,并且一切正确。包括适用的税款和总额。 但是,当我在购物车中更新相同的产品数量并设置另一个自定义价格时,事情就不那么顺利了。
我正在使用事件“checkout_cart_save_after”,做与我之前提到的完全相同的事情,但遇到了以下问题:
如果我在 Magento 的后台“显示目录中的产品价格:含税”中选择以下税收选项,则价格不会被修改。
如果我不包括目录产品价格税,价格会更新。但是,总计仍使用旧的自定义价格。
我不知道我是否为此使用了错误的事件。目前我觉得我唯一的解决方案是删除产品并以新的自定义价格将其再次添加到购物车中。我认为这不是正确的方法。
提前感谢所有花时间研究这个问题的人。 如果我不清楚我的问题,我很乐意澄清任何问题。
编辑
我将添加更多可能有帮助的细节:
FOREACH($observer->getCart()->getQuote()->getAllVisibleItems() AS $item){
$productPrice = $item->getProduct()->getPrice();
$discountValue = 20; //This will be a custom value that I load with a Web Service
$value = $productPrice - ($productPrice * $discountValue / 100);
$item->setCustomPrice($value);
$item->setOriginalCustomPrice($value);
}
这适用于我的第一次自定义价格更新,而不是前面提到的我的购物车更新。
【问题讨论】: