Как переопределить функцию «addAction ()» в папке app \ code \ core \ Mage \ Checkout \ controllers - PullRequest
0 голосов
/ 23 марта 2011

Я пытаюсь добавить некоторые данные в переменную сеанса, когда продукт добавляется в корзину ...

Я пытался скопировать "CartController.php" в "app \ code \ core \ Mage"\ Checkout \ controllers "to" local \ Mage \ Checkout \ controllers ", но на самом деле он не перекрывает контроллер ..

Может ли кто-нибудь дать мне подсказку на это ..?

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Вы можете создать «Оберсервер событий» для запуска события.

Создайте следующие папки:

  • 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> 

создайте файл config.xml в папке / EventTest / etc и поместите следующее:

<?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> 

создайте файл класса модели Observer.php в каталоге / EventTest / Model и поместите следующее

<?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
}
}
0 голосов
/ 25 марта 2011

Я нашел это , это позволяет нам переопределить функцию addCction () CartController.php ... Это именно то, что мне нужно.

Надеюсь, это поможет кому-то нуждающемуся.

Балан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...