【发布时间】:2021-02-13 22:48:54
【问题描述】:
我尝试将附加信息(来自第三方系统)保存到 Magento V1.9 中的sales_flat_quote_item db。
观察者工作正常。
应该更新的数据已经更新,但每次都以“内部服务器错误 500”结束,即使我在 $quoteItem->save(); 之后添加了 die()
当我评论$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;
}
【问题讨论】:
-
我想我知道为什么会超时。我认为在事件观察者的情况下,由于引用项的更改并一次又一次地回忆事件,它会进入一个无休止的循环。
标签: php magento magento-1.9 observers