2013-02-18 2 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); 

в AccountController.php в createPostAction().

Но он не отображается, но всякий раз, когда клиент покупает что-либо, он добавляется в корзину. Я делаю что-то неправильно ...?

-Thnx заранее.

ответ

0

Проблема в том, что объект цитаты в сеансе уже собрал итоговые значения и не будет делать это снова, когда корзина будет сохранена. Из-за этого счетчик позиций котировки равен нулю, даже если элемент котировки был успешно добавлен и сохранен. Измените код следующим образом:

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

И это должно решить проблему.

Предложение: не было бы лучше реализовать эту функцию в наблюдателе, слушая событие customer_register_success?

+0

Ya его сделано ... thnx..ya я реализую его в наблюдателе .... thnx для этого тоже ... – ANKIT

Смежные вопросы