Magento 我如何覆盖“引用”;addAction();app\code\core\Mage\Checkout\controllers下的函数

Magento 我如何覆盖“引用”;addAction();app\code\core\Mage\Checkout\controllers下的函数,magento,Magento,我试图在将产品添加到购物车时向会话变量添加一些数据 我尝试将“app\code\core\Mage\Checkout\controllers”下的“CartController.php”复制到 “local\Mage\Checkout\controllers”,但它实际上并没有覆盖控制器 有人能给我一些提示吗 非常感谢。您可以创建一个“Event Oberserver”来触发事件 创建以下文件夹: app/code/local/[myMagento]/EventTest/etc app/cod

我试图在将产品添加到购物车时向会话变量添加一些数据

我尝试将“app\code\core\Mage\Checkout\controllers”下的“CartController.php”复制到 “local\Mage\Checkout\controllers”,但它实际上并没有覆盖控制器

有人能给我一些提示吗

非常感谢。

您可以创建一个“Event Oberserver”来触发事件

创建以下文件夹:

  • app/code/local/[myMagento]/EventTest/etc
  • app/code/local/[myMagento]/EventTest/Model
在/EventTest/Model目录下创建一个文件,如myMagento_EventTest.xml,并放置以下内容:

<?xml version="1.0"?>
     <config>
       <modules>
         <myMagento_EventTest>
            <active>true</active>
            <codePool>local</codePool>
        </myMagento_EventTest>
      </modules>
   </config> 
<?xml version="1.0"?>
      <config>
        <modules>
          <myMagento_EventTest>
          <version>0.1.0</version>
          </myMagento_EventTest>
        </modules>
        <frontend>
         <events>
            <checkout_cart_product_add_after>
                <observers>
                   <myMagento_EventTest_Model_Observer>
                      <type>singleton</type>
                      <class>myMagento_EventTest_Model_Observer</class>
                      <method>MyTestMethod</method>
                   </myMagento_EventTest_Model_Observer>
               </observers>
            </checkout_cart_product_add_after>
        </events>
      </frontend>
     </config> 

真的
地方的
在/EventTest/etc文件夹下创建config.xml文件,并放置以下内容:

<?xml version="1.0"?>
     <config>
       <modules>
         <myMagento_EventTest>
            <active>true</active>
            <codePool>local</codePool>
        </myMagento_EventTest>
      </modules>
   </config> 
<?xml version="1.0"?>
      <config>
        <modules>
          <myMagento_EventTest>
          <version>0.1.0</version>
          </myMagento_EventTest>
        </modules>
        <frontend>
         <events>
            <checkout_cart_product_add_after>
                <observers>
                   <myMagento_EventTest_Model_Observer>
                      <type>singleton</type>
                      <class>myMagento_EventTest_Model_Observer</class>
                      <method>MyTestMethod</method>
                   </myMagento_EventTest_Model_Observer>
               </observers>
            </checkout_cart_product_add_after>
        </events>
      </frontend>
     </config> 

0.1.0
独生子女
myMagento\u事件测试\u模型\u观察者
MyTestMethod
在/EventTest/model目录下创建模型类文件observer.php,并放置以下内容

<?php

class myMagento_EventTest_Model_Observer {
public function MyTestMethod($observer) {
$event = $observer->getEvent(); //Fetches the current event
$product = $event->getProduct();
$eventmsg = "Current Event Triggered : " . $event->getName() . "
Currently Added Product : " . $product->getName();
//Adds Custom message to shopping cart
echo Mage::getSingleton("checkout/session")->addSuccess($eventmsg);
//Your Custom Logic Here
//you can use print_r($product) here to get more details
}
}
我发现,这使我们能够覆盖CartController.php addAction()函数。。。这正是我需要的

希望这能帮助有需要的人


巴兰

谢谢你的逻辑。。实际上,我正在尝试传递addtocart url中的一些参数,如“”,并在“CartController.php”中的“addAction”中检索此myparams。。。所以我需要覆盖这个控制器。。如果我将此控制器复制到本地文件夹,它将不工作。。关于这个问题的任何建议???@balanv正如您在最后的代码部分中所看到的,您应该在其中编写您的业务逻辑。你为此做了什么吗?对不起,我对addAction一无所知。当产品添加到购物车时,我需要存储一些自定义参数,我会在url中发送这些参数。。。无论如何,谢谢你的Eventlistener示例。。我可以在需要的地方用这个。。。。谢谢奥乌兹·切勒克德姆