4

製品のロード前後に呼び出す magento イベント/オブザーバーが必要です。そのオブザーバーで製品名を変更/追加したい。

catalog_product_load_after イベントを使用しました。

しかし、検索から製品をロードすると機能しません。また、ベストセラー製品などのホームページにある製品を呼び出すこともできません.

基本的に、製品がホームページまたは検索ページにロードされるかどうかにかかわらず、製品がマジェントフロントエンドにロードされるたびに呼び出される関数/オブザーバー/イベント。

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 に答える