题
是否有一个事件可以创建一个观察者,因为加载产品要么使用 getModel
还是通过收藏?
我拥有的确切用例是我有一个自定义产品属性,但是为了返回正确的结果,需要进一步的逻辑,这是基于其他因素的?然后,我计划在加载后计算此逻辑并将其存储在另一个成员中。如果有人有替代方案,我也会感谢此建议。
解决方案
您不需要观察者就可以做到这一点。您可以使用属性 backend_model
处理您的逻辑。
如果您用属性指定后端_model,然后扩展 Mage_Eav_Model_Entity_Attribute_Backend_Abstract
在您的后端模型类中的课程您可以使用 afterLoad
, beforeSave
, afterSave
, beforeDelete
或者 afterDelete
执行自己的逻辑的方法。
使用 backend_model
是实施这种逻辑的正确方法,是本机洋红色属性在其具有相似要求的地方的方式。
其他提示
可悲的是,看起来您可能必须在这里使用两个:(
产品: catalog_product_load_after
收藏: catalog_product_collection_load_after
收集事件为您提供一个“集合”对象。您可以循环浏览此问题,并在产品级别上进行更改。如果您将代码移至助手或使用相同的助手 Observer.php
对于这两个事件,您应该能够限制重复代码的数量。
尝试
<catalog_product_load_after>
<observers>
...
看 https://stackoverflow.com/questions/15763829/magento-load-product-event-observer