Magento: Override Models

You can override model in Magento in following way.
Steps to override Model in Magento:
1) When we override the model in the module, we should not change the core model files directly. To do this, we add following xml in config.xml inside our custom module:
<config>
<global>
<models>
<catalog>
<rewrite>
<product>Mynamespace_Catalog_Model_Product</product>
</rewrite>
</catalog>
<product_resource>
<rewrite>
<product>Mynamespace_Catalog_Model_Resource_Product</product>
<product_collection>Mynamespace_Catalog_Model_Resource_Product_Collection</product_collection>
</rewrite>
</product_resource>
</models>
</global>
</config>

2) We create a new custom class in our model folder in our custom module.
For Model to be overrided: app/code/local/Mynamespace/Catalog/Model/Product.php
<?php
class Mynamespace_Catalog_Model_Product extends Mage_Catalog_Model_Product
{
}

For Resource Model to be overrided: app/code/local/Mynamespace/Catalog/Model/Resource/Product.php
<?php
class Mynamespace_Catalog_Model_Resource_Product extends Mage_Catalog_Model_Resource_Product
{
}

For Collection Model to be overrided: app/code/local/Mynamespace/Catalog/Model/Resource/Product/Collection.php
<?php
class Mynamespace_Catalog_Model_Resource_Product_Collection extends Mage_Catalog_Model_Resource_Product_Collection
{
}

Thats's it! You have overrided the core models.
Note: We can only override the classes for which objects can be created. We can not override the abstract classes for which no object is created.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s