4

我需要一个在产品加载之前/之后调用的 magento 事件/观察者。我想由该观察者更改/附加产品名称。

我使用了 catalog_product_load_after 事件

但它不起作用,当您从搜索加载产品时,它也不会调用主页上的产品,如畅销产品等。

基本上是一个函数/观察者/事件,每次在magento前端加载产品时都会调用它,无论它是加载在主页还是搜索页面上。

4

1 回答 1

9

catalog_product_load_after事件有效,每次加载产品时都会触发。如果当您认为产品未加载或事件已被您的商店的自定义更改更改时,它没有触发。

重要的是,请注意,如果您正在加载产品集合,则不会catalog_product_load_after触发该事件(因为在这种情况下,您当然不是在加载产品,而是在加载包含产品的集合)。类别和搜索结果页面不会单独加载每个产品,而是加载过滤后的产品集合,这就是您没有看到事件触发的原因。您可以考虑使用允许您拉取集合并从观察者方法内部遍历它的事件。catalog_product_collection_load_after

<?php
class NameSpace_Module_Model_Observer
{
    public function observerMethod($observer)
    {
        foreach ($observer->getCollection() as $product):
            ...
        endforeach;
    }
}
于 2013-04-19T14:06:12.087 回答