Events in Magento erstellen / Event-Observer
Ihr möchtet in Magento auf diverse Ereignisse (Events) reagieren? Z.B. eine E-Mail versenden nach einer bestimmten Aktion? Dazu gibt es in Magento den Event-Observer, welchen ihr wie folgt verwenden könnt (Beispiel zur Erweiterung eines Moduls):
In der config.xml des Moduls fügt folgenden Eintrag hinzu:
<config> ... <events> <checkout_onepage_controller_success_action> <observers> <fly2marsmedia_limitededition_model_order> <type>singleton</type> <class>fly2marsmedia_limitededition_model_order</class> <method>saveLimitedEdition</method> </fly2marsmedia_limitededition_model_order> </observers> </checkout_onepage_controller_success_action> </events> ... </config>
In diesem Beispiel erweitern wir die Classe Mage_Checkout_Modul_Type_Onepage um eine Aktion nach dem speichern auszuführen. In dem Beispiel haben wir die Klasse Fly2marsMedia_LimitedEdition_Model_Checkout_Onepage unter /app/code/local/Fly2MarsMedia/LimitedEdition/Model/Checkout abgelegt und erstellen dort die Funktion checkout_type_onepage_save_order_after() welche automatisch durch Magento nach dem Speichern der Bestellung aufgerufen wird mit einem beliebigen Code.
Solltet ihr ein Neues Modul erstellen, nicht vergessen dieses durch die entsprechende Config-XML unter app/etc/modules anzulegen (in diesem Fall /app/etc/modules/Fly2marsMedia_LimitedEdition.xml), der Vollständigkeit halber der Inhalt der Datei:
<?xml version="1.0"?> <config> <modules> <Fly2marsMedia_LimitedEdition> <active>true</active> <codePool>local</codePool> </Fly2marsMedia_LimitedEdition> </modules> </config>