问候,在Magento我想触发一个事件,一旦订单被设置为处理(通过网关确认或手动),例如:如果一般客户(ID 1)花费超过100美元并且付款已经确认,请设置他的团体成绩为4(银牌VIP,按促销规则全球获得2%折扣)
我会给予赏金,但我想在2天之前得到答案O_o
我会给予赏金,但我想在2天之前得到答案O_o
编辑:到目前为止我收到的答案只是一个部分答案,我也发现链接非常混乱,我不清楚什么是最小设置,我有什么配置创建等…我也在尝试了解如何获得付费客户ID /型号.
您应该首先在app / code / local中创建自己的模块.
例如,创建Moak / Vip目录.它将是您模块的根.
例如,创建Moak / Vip目录.它将是您模块的根.
为了让Magento知道它存在,在etc / modules中创建一个名为Moak_Vip.xml的文件,其内容如下:
<?xml version="1.0"?> <config> <modules> <Moak_Vip> <active>true</active> <codePool>local</codePool> <self_name>Moak VIP module</self_name> </Moak_Vip > </modules> </config>
然后,在您的模块目录中,您需要以下结构和文件:
> etc / config.xml
> Model / Observer.PHP
config.xml定义您的模块并为给定事件声明您的事件侦听器(当一个页面结帐过程完成时发送checkout_onepage_controller_success_action,在确认付款时发送sales_order_payment_pay).
您不需要任何数据库设置,因为您不会保存任何新实体.
因此,您的配置文件应如下所示:
<?xml version="1.0"?> <config> <modules> <Moak_Vip> <version>0.1.0</version> </Moak_Vip> </modules> <global> <models> <moak> <class>Moak_Vip_Model</class> </moak> </models> <events> <sales_order_payment_pay> <observers> <moak_observer> <type>singleton</type> <class>moak/observer</class> <method>checkVipCustomer</method> </moak_observer> </observers> </sales_order_payment_pay > </events> </global> </config>
现在,您的Observer方法checkVipCustomer应该接收一个事件对象,您可以从中检索有关订单,客户的所有信息……并执行您喜欢的修改.
在app / code / core / Mage /…/ Model /中查看Magento模型类
了解如何浏览这些对象.
示例:
<?PHP class Moak_Vip_Model_Observer { public function checkVipCustomer($event) { $order = $event->getInvoice()->getOrder(); // Mage_Sales_Model_Order /* - Check order amount - Get customer object - Set Group id - $customer->save(); */ return $this; } }
注意我没有测试过我在这里编写的任何代码,所以要小心处理!希望它有所帮助,Magento有一个艰难的学习曲线……祝好运 !