Questions tagged «event-observer»

事件/观察者用于与Magento动态协作,而无需更改核心代码。

2
review_save_after事件观察器未正确运行
我正在使用Magento 1.8版本。我写了一个观察者,当管理员保存状态为“已批准”的产品评论时必须运行该观察者。而且我为具有multiselect的每个产品创建了一个等级属性,并且每次管理员保存产品评论时,它应该自动更新。 注意:评论在报告/评论/产品评论中。 etc / Config.xml代码: <review_save_after> <observers> <efkadminhtml> <class>efkadminhtml/observer</class> <method>ratingsUpdate</method> </efkadminhtml> </observers> </review_save_after> 模式/观察者代码 public function ratingsUpdate(Varien_Event_Observer $observer) { $object = $observer->getEvent()->getObject(); $statusId = $object->getStatusId(); if($statusId == 1) { $common = Mage::getSingleton('catalog/common'); $attribute = $common->getAttribute('ratings'); Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); $productId = $object->getEntityPkValue(); $product = Mage::getModel('catalog/product')->load($productId); $avgRating = Mage::getBlockSingleton('efkreports/product_allReviews')->getAvgReview($product->getId()); Mage::log($avgRating); Mage::log($attribute->getOptionId(round($avgRating))); $product->setRatings($attribute->getOptionId(round($avgRating))); //$product->setRatings(round($avgRating)); …

4
sales_order_save_commit_after事件触发两次?
我注册了sales_order_save_commit_after事件观察者,以在收到新订单时得到通知。此方法正常运行,但该事件以相同的顺序连续两次触发。 我的config.xml <sales_order_save_commit_after> <observers> <unique_sales_order_save_commit_after> <type>singleton</type> <class>mymodule/observer</class> <method>export</method> </unique_sales_order_save_commit_after> </observers> </sales_order_save_commit_after> 如何检查是第一次还是其他更好的活动? 更新资料 我也尝试了该sales_order_invoice_pay事件(在SO上找到),但这不是对我触发的。

3
观察订单状态变化
似乎默认情况下没有订单状态事件,那么您通常如何观察订单状态变化?我看到两种可能性:a)覆盖销售/订单模型以创建状态更改的自定义事件b)观察订单保存事件并查看其中的状态 是其中一种方式还是有更好的选择? 编辑:感谢您到目前为止的答案。情况要复杂一些。我想根据当前状态向订单添加信息。现在是问题所在:在save_before事件中,我仍然具有旧状态,而现在没有新状态,因为在销售/订单模型中,_beforeSave()方法如下: parent::_beforeSave(); $this->_checkState(); //... 因此,事件是在parent::_beforeSave();BUT中处理的,但订单状态实际上是在$this->_checkState();此(这是自动更改,例如,如果您创建发票,则如果没有货,状态将移至处理中) 我也不能使用save_after事件,因为我想保存某事。按顺序执行,可能会破坏一切以在save_after事件中调用保存。 有任何想法吗?我现在唯一的想法是$this->_checkState();在观察者之前在save_before中复制行为,以找出状态最终将是...
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.