Magento观察员没有查看产品详细信息

时间:2014-05-20 17:34:10

标签: php magento magento-1.8

我通过创建以下文件

在magento中创建了自定义checkout_cart_save_before观察者

应用的/ etc /模块/ Cart_Override.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Cart_Override>
            <codePool>local</codePool>
            <active>true</active>
            <depends>
                <Mage_Contacts />
            </depends>
        </Cart_Override>
    </modules>
</config>

应用/代码/本地/购物车/覆盖的/ etc / config.xml中

<?xml version="1.0"?>
<config>
    <global>
        <models>
            <cartoverride>
                <class>Cart_Override_Model</class>
            </cartoverride>
        </models>
        <events>
            <checkout_cart_save_before>
                <observers>
                    <cart_override_qty_observer>
                        <type>singleton</type>
                        <class>Cart_Override_Model_Qtyc_Observer</class>
                        <method>checkout_cart_save_before</method>
                    </cart_override_qty_observer>
                </observers>
            </checkout_cart_save_before>     
        </events>
    </global>
</config>

app / code / local / Cart / Override / Model / Qtyc / Observer.php

class Cart_Override_Model_Qtyc_Observer extends Varien_Event_Observer
{

    public function checkout_cart_save_before($observer)
    {
        $action  = Mage::app()->getFrontController()->getAction();
        $product = $observer->getProduct();
        echo "<pre>";
        print_r($product);
        echo "</pre>";
        die();
    }

}

观察者工作正常,当我点击添加到购物车按钮时,它将转到checkout_cart_save_before功能。但是我无法使用checkout_cart_save_before函数

中的以下代码从观察者那里获得产品值
$product = $observer->getProduct();

我必须添加一些东西才能从product details参数中获取observer?....任何猜测?

1 个答案:

答案 0 :(得分:4)

查看调度事件的Mage_Checkout_Model_Cart::save()

 Mage::dispatchEvent('checkout_cart_save_before', array('cart'=>$this));

您可以使用$cart = $observer->getEvent()->getCart();$cart->getItems()的报价项访问购物车数据。