我无法在magento中找到catalog_product_save_after和catalog_product_save_before

1 events observers magento magento-1.7

嗨,我想写一个钩子.我做了一个名为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这样的事件.任何帮助请快速回复.

Kal*_*esh 12

简答

catalog_product_save_before并且catalog_product_save_after可用,您将无法直接找到它.

答案很长

如果您尝试在Core文件中搜索而不是找不到它.因为Magento的使用动态事件调度对于所有的模型save_beforesave_after.查看文件Mage_Core_Model_Abstract,您将找到以下行:

Mage::dispatchEvent($this->_eventPrefix.'_save_before', $this->_getEventData());
Mage::dispatchEvent($this->_eventPrefix.'_save_after', $this->_getEventData());
Run Code Online (Sandbox Code Playgroud)

现在查看Mage_Catalog_Model_Product文件.您将找到带有值的受保护方法eventPrefixcatalog_product

protected $_eventPrefix      = 'catalog_product';
Run Code Online (Sandbox Code Playgroud)

因此,$this->_eventPrefix对于目录的产品将是catalog_product_save_beforecatalog_product_save_after在模型的调度事件.

这适用于所有正在扩展的模型的保存操作 Mage_Core_Model_Abstract