使用Magento Observers显示添加到购物车的最后一项的弹出窗口

时间:2013-05-22 14:29:06

标签: magento magento-1.7

我正在尝试使用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,然后是显示消息的代码 - 但是我不确定如何实际将其移植到一个模块,而不是复制整个文件并覆盖它。

我正在尝试将此作为一个模块,因此我可以将其用于各个项目,但它本身就是一个项目......

1 个答案:

答案 0 :(得分:0)

你$ session变量的设置如下:

$session = Mage::getSingleton("checkout/session")->addSuccess($message);

但与此同时,$message尚未确定。

因此,当您设置信息并尝试保存信息后,您实际上就是这样做了。

Mage::getSingleton("checkout/session")->addSuccess($message)->addSuccess($message);

从会话变量中删除->addSuccess($message);,你应该没问题。

相关问题