Domanda

C'è un singolo evento che posso creare un osservatore per questo viene generato quando un prodotto viene caricato sia utilizzando getModel o attraverso una raccolta?

Il caso d'uso esatto che ho è che ho un attributo di prodotto personalizzato, ma al fine di restituire il risultato corretto, più logica che deve essere fatto, che è basata su altri fattori? Sto quindi pensando di calcolare questa logica dopo il carico e riporlo in un altro membro. Se qualcuno ha un'alternativa sarei anche grato per questo consiglio.

È stato utile?

Soluzione

Non è necessario un osservatore per fare questo. È possibile utilizzare l'backend_model attributo per gestire la logica.

Se si specifica un backend_model con l'attributo e si estende la classe Mage_Eav_Model_Entity_Attribute_Backend_Abstract all'interno della vostra classe del modello backend è possibile utilizzare i metodi afterLoad, beforeSave, afterSave, beforeDelete o afterDelete per eseguire la propria logica.

Uso della backend_model è il modo corretto per implementare questo tipo di logica ed è il modo nativo attributi Magento farlo dove hanno requisiti similiar.

Altri suggerimenti

Purtroppo sembra che si potrebbe essere necessario utilizzare due qui: (

del prodotto: catalog_product_load_after
Collezione: catalog_product_collection_load_after

L'evento di raccolta ti dà un oggetto 'raccolta' con cui lavorare. È possibile scorrere questa e apportare le modifiche a livello di prodotto. Se si sposta il codice in un aiuto o di utilizzare lo stesso per entrambi gli eventi Observer.php allora si dovrebbe essere in grado di limitare la quantità di codice duplicato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top