慕容的工作随笔

慕容的工作随笔

记录学习和工作

Magento的event机制

比如要在place order时执行自己附加的操作(如MaxMind提供的minFraud 检测),我总是不太希望覆盖Order的place方法。Magento提供了Event机制优雅地处理这样的事情。

就以上面提到的minFraud检测(http://www.maxmind.com/app/ccv),我希望在Place Order完成后执行检测并将结果存储。
首先Magento在Order的place方法里抛出了名字为sales_order_place_after的事件,所以可以捕获这个事件Hook自己附加的代码。

  1. 在etc/config.xml中增加如下标签
    <config> <global> <events> <sales_order_place_after> <observers> <cartz_mypayment_order_place_after_observer> <type>singleton</type> <class>myorder/order_place_after_observer</class> <method>fraudCheck</method> </cartz_mypayment_order_place_after_observer> </observers> </sales_order_place_after> </events> </global></config>
    注: cartz_mypayment_order_place_after_observer是无关紧要的,可以定义任何唯一名
  2. 定义类models/order/place/after/observer
    <?phpclass NextDigital_NDPayment_Model_Order_Place_After_Observer{ public function fraudCheck($observer){// $order = $observer->getEvent()->getOrder(); Mage::log(‘Fraud Check Here’); return $this; }}

评论 (0)

还没有评论,来做第一个吧。

发表评论

提交后需管理员审核通过后显示