Напишу как подменить родной контроллер в Magento, своим, без изменения родного кода магазина.
На примере подмены контроллера для корзины.
1.Сначала нужно создать непосредственно файлы модуля
1. Magento/app/code/local/MyNameSpace/MyModule/etc/config.xml
2. Magento/app/code/local/MyNameSpace/MyModule/controllers/Checkout/CartController.php
3. Magento/app/etc/modules/MyNameSpace_All.xml
2. Cоздаем /etc/config.xml в нашем модуле
<?xml version="1.0"?>
<config>
<modules>
<MyNameSpace_MyModule>
<version>0.1.0</version>
</MyNameSpace_MyModule>
</modules>
<global>
<rewrite>
<!-- Это имя класса для Вашего контроллера -->
<mynamespace_mymodule_checkout_cart>
<from><![CDATA[#^/checkout/cart/#]]></from>
<!-- Путь к родному контроллеру который требуется подменить
- to - путь к нашему контрллеру
-->
<to>/mymodule/checkout_cart/</to>
</mynamespace_mymodule_checkout_cart>
</rewrite>
</global>
<!--
- Если Вы хотите переписать admin контроллер, то нужно написать admin вместо frontend
-->
<frontend>
<routers>
<mynamespace_mymodule>
<use>standard</use>
<args>
<module>MyNameSpace_MyModule</module>
<frontName>mymodule</frontName>
</args>
</mynamespace_mymodule>
</routers>
</frontend>
</config>
3. Изменение /app/code/local/MyNameSpace/MyModule/controllers/Checkout/CartController.php
Это наш контролер
2. # Controllers are not autoloaded so we will have to do it manually:
3. require_once 'Mage/Checkout/controllers/CartController.php';
4. class MyNameSpace_MyModule_Checkout_CartController extends Mage_Checkout_CartController
5. {
6. # Overloaded indexAction
7. public function indexAction()
8. {
9. # Just to make sure
10. error_log('Yes, I did it!');
11. parent::indexAction();
12. }
13.}
4. Создаем конфиг файл, чтобы наш модуль активировался /app/etc/modules/MyNameSpace_All.xml
<?xml version="1.0"?>
<config>
<modules>
<MyNameSpace_MyModule>
<active>true</active>
<codePool>local</codePool>
</MyNameSpace_MyModule>
</modules>
</config>
5. И последнее модифицирование файла, для того чтобы все блоки в родном контроллере, адекватно работали и в нашем созданом
Magento/app/design/frontend/[myinterface]/[mytheme]/layout/checkout.xml
<mynamespace_mymodule_checkout_cart_index>
<update handle="checkout_cart_index"/>
</mynamespace_mymodule_checkout_cart_index>
Вот собственно и все, после всех манипуляций, все должно заработать