Frage

Gibt es ein einzelnes Ereignis, für das ich einen Beobachter erstellen kann getModel Oder durch eine Sammlung?

Der genaue Anwendungsfall, den ich habe, ist, dass ich ein benutzerdefiniertes Produktattribut habe, aber um das richtige Ergebnis zurückzugeben, muss eine weitere Logik durchgeführt werden, die auf anderen Faktoren basiert? Ich plane dann, diese Logik nach dem Laden zu berechnen und in einem anderen Mitglied zu speichern. Wenn jemand eine Alternative hat, wäre ich auch für diesen Rat dankbar.

War es hilfreich?

Lösung

Sie brauchen keinen Beobachter, um dies zu tun. Sie können das Attribut verwenden backend_model um Ihre Logik zu bewältigen.

Wenn Sie ein Backend_Model mit Ihrem Attribut angeben und das erweitern Mage_Eav_Model_Entity_Attribute_Backend_Abstract Klasse in Ihrer Backend -Modellklasse Sie können die verwenden afterLoad, beforeSave, afterSave, beforeDelete oder afterDelete Methoden zur Ausführung Ihrer eigenen Logik.

Verwendung der backend_model Ist die richtige Art, diese Art von Logik zu implementieren, und ist, wie native Magento -Attribute es dort tun, wo sie ähnliche Anforderungen haben.

Andere Tipps

Leider sieht es so aus, als müssten Sie vielleicht zwei hier verwenden :(

Produkt: catalog_product_load_after
Sammlung: catalog_product_collection_load_after

Mit dem Sammelveranstaltung können Sie ein "Sammlung" -Objekt arbeiten. Sie können dies durchschlagen und Ihre Änderungen auf Produktebene vornehmen. Wenn Sie Ihren Code in einen Helfer verschieben oder dasselbe verwenden Observer.php Für beide Ereignisse sollten Sie in der Lage sein, die Menge des doppelten Codes zu begrenzen.

Versuchen

<catalog_product_load_after>
     <observers>
      ...

Sehen https://stackoverflow.com/questions/15763829/magento-load-product-event-observer

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top