0

我希望当客户注册产品(在后端选择)时应该将其添加到购物车中。我已经这样做了:

$product = Mage::getModel('catalog/product')
                            ->setStoreId(Mage::app()->getStore()->getId())
                            ->load(154);

$cart = Mage::getSingleton('checkout/cart');
$cart->addProduct($product, 1)->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);

在 createPostAction() 中的 AccountController.php 中。

但它没有显示,但每当客户购买任何东西时,它都会被添加到购物车中。我做错了什么……?

-Thnx 提前。

4

1 回答 1

0

问题是,会话中的报价对象已经收集了总计,并且在保存购物车时不会再次这样做。因此,即使已成功添加并保存了报价项目,报价的项目计数也为零。像这样修改你的代码:

$cart->product($product, 1);
$cart->getQuote()->setData('totals_collected_flag', false);
$cart->save();

这应该可以解决问题。

customer_register_success一个建议:在监听事件的观察者中实现这个功能不是更好吗?

于 2013-02-18T11:19:09.180 回答