2013-02-18 55 views
0

我希望当客户注册产品(这是选择在后端)应该被添加到购物车。我已经这样做了:添加产品到客户登记在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); 

in AccountController.php in createPostAction()。

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

-Thnx提前。

回答

0

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

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

而这应该解决问题。

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

+0

雅它完成... thnx..ya我会实现它在观察员.... thnx为dat也... – ANKIT 2013-02-18 11:42:26

相关问题