如何解决在事件查看器中更新sales_flat_quote_item后,Magento V1.9正在超时运行
我尝试在Magento V1.9中将其他信息(来自第三方系统)保存到sales_flat_quote_item
数据库中。
观察者工作正常。
应该更新的数据已更新,但是每次以“内部服务器错误500”结尾时,即使我在die()
之后添加了$quoteItem->save();
当我对$quoteItem->save();
进行注释时,没有超时
config.xml
<events>
<sales_quote_item_save_commit_after>
<observers>
<MyCompany_MyProject_salesQuoteItemSaveCommitAfter>
<type>singleton</type>
<class>MyCompany_MyProject_Model_Observer</class>
<method>salesQuoteItemSaveCommitAfter</method>
</MyCompany_MyProject_salesQuoteItemSaveCommitAfter>
</observers>
</sales_quote_item_save_commit_after>
</events>
Observer.php
/**
* @param Varien_Event_Observer $observer
*/
public function salesQuoteItemSaveCommitAfter($observer)
{
//var_dump($post); die();
$quoteItem = $observer->getEvent()->getItem();
//var_dump($quoteItem->getId()); echo die();
if (!$quoteItem->getId()) {
//quote not saved in the database
return $this;
}
//var_dump($quoteItem->getId()); die();
$quoteItem->setPriceInclTax($post['my_custom_price']);
$quoteItem->save();
return $this;
}
解决方法
是的,
在每次引用报价实体后,都会在事件中启动事件sales_quote_item_save_commit_after,在代码中$ quoteItem-> save();在观察者重新启动后立即启动,依此类推:这会创建无限循环。
在这种情况下,您可以改为使用sales_quote_item_save_before事件或执行检查以确认是否已记录PriceInclTax字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。