>Magento Event and Rewrite

Magento Event and Rewrite

Event – Observer system in Magento

When an event gets fired on one side (such as a customer login, load or save in a model, etc.), observers on another side listen for specific events and execute certain logic when specific event is fired.

 – To dispatch an event, we use code

 – To listen to an event, we declare in file NameSpace/YourModule/etc/config.xml



In which:

global: Scope – which can also be global, frontend, adminhtml

event_name: Name of the event that you are listening to, which is declared in function Mage::dispatchEvent();

unique_id: This must be unique in all running module on the site

class: Class will be called when event_name is listened

method: This is the function to be called in class

Then run this code when the event is listened


In this code, $observer is a variable which is passed in function Mage::dispatchEvent(); (variable_one, variable_two)

Refer some default events by Magento:



Magento Events Cheat Sheet 1.9

Magento 1.x Events Reference

Magento Overriding Class

Sometimes we need to modify some core functionality of Magento code. However, this action is not encouraged, as it could lead to losses in changes after upgrading Magento to the latest version. Following are two options for changing the core functionality of Magento code.

1. Copy core file to coodpool local by following the instruction

For example, when modify file app/code/core/Mage/Customer/Model/Customer.php, copy file to app/code/local/Mage/Customer/Model/Customer.php and then make changes. At this time, Magento will conduct the code in codepool local file instead of core file

Pros and Cons of this method

Pros:    + This method is fast

              + Changes won’t  be lost after upgrading Magento

Cons:   + You have to copy the whole file while changing only one function

              + Some necessary changes of the code core may not be received when upgrading Magento to the latest version

2. Write Module to Rewrite

a. Rewrite Blocks

 – Declare rewrite in file NameSpace/YourModule/etc/config.xml 


 – Create class as declaring in file config.xml



b. Rewrite Helpers

Similar to block, we perform in 2 steps

 – Declare rewrite


– Create class app/code/local/NameSpace/YourModule/Helper/Customer/Data.php


c. Rewrite Models

 – Declare rewrite (model and resource model)


– Create class app/code/local/NameSpace/YourModule/Model/Customer.php 



d. Rewrite Controllers

Rewrite controller is a little different from the classes above

 – Declare in file etc/config.xml:

frontend controller


admin controller


– Declare class controller needed to rewrite

Frontend controller


          Admin controller


Pros and Cons of this method

Pros:    + Edit only one function needed to rewrite

              + Restrict maximum number of problems when upgrading Magento to the lastest version

Cons:   + Complicated declaration and config.

< Previous Post
Next Post >