我正在尝试使用Magento 1.7.0.2中的观察者来捕捉产品何时被添加到购物车中。
事件发生之后(我相信这是事件checkout_cart_add_product_complete)我想显示一个弹出窗口,其中概述了客户刚购买的产品,因为它可以在购物车的项目行中看到
我已经尝试构建一个可以捕获此事件的模块,但我找不到一种方法来测试我是否有相同的事件,我需要使用的模型或几乎任何东西。
到目前为止,我已经写了
public function checkoutCartAddProductComplete (Varien_Event_Observer $observer)
{
$product = $observer->getEvent()->getProduct();
$session = Mage::getSingleton("checkout/session")->addSuccess($message);
$message = $this->__('Changed! You added %s to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));
$session->addSuccess($message);
}
但是我从互联网上获取了这些代码,但它似乎没有起作用。
在\ app \ code \ core \ Mage \ Checkout \ controllers \ CartController.php(第205行)中有一些内容显示了eventDispatcher,然后是显示消息的代码 - 但是我不确定如何实际将其移植到一个模块,而不是复制整个文件并覆盖它。
我正在尝试将此作为一个模块,因此我可以将其用于各个项目,但它本身就是一个项目......
答案 0 :(得分:0)
你$ session变量的设置如下:
$session = Mage::getSingleton("checkout/session")->addSuccess($message);
但与此同时,$message
尚未确定。
因此,当您设置信息并尝试保存信息后,您实际上就是这样做了。
Mage::getSingleton("checkout/session")->addSuccess($message)->addSuccess($message);
从会话变量中删除->addSuccess($message);
,你应该没问题。