我已经在“ sales_order_place_before”事件上添加了一个观察者,并希望在处理付款之前自定义总数。但是我已经尝试了很多改变报价价格,但它行不通。

有人有什么主意吗??

有帮助吗?

解决方案

您需要在总数(mage_sales_model_quote_address_total_grand)之后添加新的收集器。它必须修改由Grand Total Collector设定的总和。

我在乌克兰的Mageconf会议上谈到了这样的案子。视频和幻灯片尚不可用,但是您可以 下载演示模块 这是在会议上描述的。有一个总收集器来计算包装价格的示例。

您可以修改我的演示总计收集器,以便在总收集器之后插入收集过程(请参阅 config.xml 在模块中 ETC 目录 - 删除 <before>subtotal</before> 然后使用节点 <after>grand_total</after> 相反)并修改 搜集() 仅将总数设置为预定义值的方法:

$address->setGrandTotal($someValue);
$address->setBaseGrandTotal($someBaseValue);

或者,您可以将此模块保持原样,但要在其中设置负数。因此,总的收藏家将减去它们,并根据需要降低总价值。同样在这种情况下,客户将能够看到您的负值(将其提供给他们 拿来() 方法),并了解为什么降低了大总数。

玩得开心 :)

其他提示

您不必制作一个新的总体对象或添加总和作为虚拟产品

请观察

Mage_Sales_Model_Quote_Address_Total_Abstract Mage_Sales_Model_Order_Invoice_Total_Abstract Mage_Sales_Model_Order_Creditmemo_Total_Abstract

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top