Question

Y at-il un seul événement que je peux créer un observateur qui est déclenché lorsque le produit est chargé soit en utilisant getModel ou à travers une collection?

Le cas d'utilisation exacte est à moi est que j'ai un attribut de produit personnalisé, mais pour retourner le résultat correct, en outre une logique qui doit être fait qui est basée sur d'autres facteurs? Je prévois ensuite de calculer cette logique après le chargement et le stocker dans un autre membre. Si quelqu'un a une solution de rechange, je serais également reconnaissant de cet avis.

Était-ce utile?

La solution

Vous n'avez pas besoin d'observateur pour ce faire. Vous pouvez utiliser le backend_model d'attribut pour gérer votre logique.

Si vous spécifiez un backend_model avec votre attribut et vous étendez la classe Mage_Eav_Model_Entity_Attribute_Backend_Abstract au sein de votre classe de modèle back-end, vous pouvez utiliser les afterLoad, beforeSave, afterSave, beforeDelete ou méthodes afterDelete pour exécuter votre propre logique.

Utilisation du backend_model est la bonne façon de mettre en œuvre ce genre de logique et comment natif attributs Magento faire où ils ont des exigences similiar.

Autres conseils

Malheureusement, il semble que vous pourriez avoir à utiliser deux ici: (

Produit: catalog_product_load_after
Collection: catalog_product_collection_load_after

L'événement de collection vous donne un objet « collection » pour travailler avec. Vous pouvez faire une boucle à travers cela et faire vos changements au niveau des produits. Si vous déplacez votre code dans une aide ou utilisez alors la même Observer.php pour les deux événements que vous devriez être en mesure de limiter la quantité de code en double.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top