我通过创建以下文件
在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
?....任何猜测?
答案 0 :(得分:4)
查看调度事件的Mage_Checkout_Model_Cart::save()
:
Mage::dispatchEvent('checkout_cart_save_before', array('cart'=>$this));
您可以使用$cart = $observer->getEvent()->getCart();
和$cart->getItems()
的报价项访问购物车数据。