嗨我想写一个钩子。 我做了一个名为BEST SELLER的类别和一个名为BESTSELLER的属性(是/否)(默认为NO)(一般情况下)。 当我将BEST SELLER类别分配给任何产品时,我想写一个钩子,它必须将属性BESTSELLER更改为YES,当我们从BEST SELLER类别中删除产品时,它必须将BESTSELLER属性值更改为NO。 但是我发现在magento v-1.7.0.2中没有像catalog_product_save_before和catalog_product_save_after这样的事件。 任何帮助请快速回复。
答案 0 :(得分:12)
catalog_product_save_before
和catalog_product_save_after
可用,您将无法直接找到它。
如果您尝试搜索Core文件而不是找不到它。因为Magento正在为所有模型save_before
和save_after
使用动态事件调度。查看文件Mage_Core_Model_Abstract
,您会找到以下行:
Mage::dispatchEvent($this->_eventPrefix.'_save_before', $this->_getEventData());
Mage::dispatchEvent($this->_eventPrefix.'_save_after', $this->_getEventData());
现在查看Mage_Catalog_Model_Product
文件。您将找到值为catalog_product
protected $_eventPrefix = 'catalog_product';
因此,目录产品的$this->_eventPrefix
在模型的调度事件中将为catalog_product_save_before
和catalog_product_save_after
。
这适用于扩展Mage_Core_Model_Abstract