如何在magento结账前设置自定义总计?

时间:2010-12-06 06:36:06

标签: php events magento checkout

我在“sales_order_place_before”活动中添加了观察员,并希望在处理付款之前自定义总计。但是我已经尝试了很多来改变报价,但它没有用。

有没有人有任何想法?

2 个答案:

答案 0 :(得分:14)

你需要在总计一个之后添加新的收集器(Mage_Sales_Model_Quote_Address_Total_Grand)。它必须修改由总收集者设置的总和。

我在乌克兰的MageConf会议上谈到了这样一个案例。视频和幻灯片尚不可用,但您可以在会议中描述download demo-module。有一个总收集器的例子来计算包装价格。

您可以修改我的演示总收集器,以便它将被插入收集过程AFTER Grand total collector(请参阅模块 etc 目录中的 config.xml - remove {{ 1}}节点然后使用<before>subtotal</before>代替)并修改 collect()方法只是为了将总计设置为预定义值:

<after>grand_total</after>

或者您可以保留此模块,但在其中设置负数。因此,总收藏家将减去它们并按您的意愿降低总价值。同样在这种情况下,客户将能够看到您的负值(在 fetch()方法中给出它们),并了解为什么总计降低了。

玩得开心:)

答案 1 :(得分:0)

您不能创建新的总对象或将总和添加为虚拟产品

请注意

Mage_Sales_Model_Quote_Address_Total_Abstract Mage_Sales_Model_Order_Invoice_Total_Abstract Mage_Sales_Model_Order_Creditmemo_Total_Abstract

查看实现总对象所需的内容。您还可能需要扩展费率对象