質問

オブザーバーを作成できるイベントはありますか? getModel またはコレクションを通して?

私が持っている正確なユースケースは、カスタム製品属性を持っていることですが、正しい結果を返すには、他の要因に基づいてさらにロジックを実行する必要がありますか?その後、ロード後にこのロジックを計算し、別のメンバーに保存することを計画しています。誰かが代替手段を持っているなら、私はこのアドバイスにも感謝します。

役に立ちましたか?

解決

これを行うにはオブザーバーは必要ありません。属性を使用できます backend_model ロジックを処理します。

属性でbackend_modelを指定し、拡張する場合 Mage_Eav_Model_Entity_Attribute_Backend_Abstract バックエンドモデルクラス内のクラスあなたは afterLoad, beforeSave, afterSave, beforeDelete また afterDelete 独自のロジックを実行する方法。

を使用して backend_model この種のロジックを実装する正しい方法であり、ネイティブのMagento属性が同様の要件がある場合にそれを行う方法です。

他のヒント

悲しいことに、ここで2つを使用する必要があるように見えます:(

製品: 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

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top