在magento的客户注册中将产品添加到购物车

时间:2013-02-18 10:29:36

标签: magento

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

$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提前。

1 个答案:

答案 0 :(得分:0)

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

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

这应该可以解决问题。

建议:在听customer_register_success事件的观察者中实现此功能会不会更好?

相关问题