首页 文章

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

提问于
浏览
2

我通过创建以下文件在magento中创建了自定义 checkout_cart_save_before observer

app/etc/modules/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>

app/code/local/Cart/Override/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();

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

1 回答

  • 4

    看一下调度事件的 Mage_Checkout_Model_Cart::save()

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

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

相关问题