我通过创建以下文件在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 回答
看一下调度事件的
Mage_Checkout_Model_Cart::save()
:您可以使用
$cart = $observer->getEvent()->getCart();
访问购物车数据,使用$cart->getItems()
访问报价项目 .