2016-12-05 7 views
0

私はmagento CE 1.9を使用していますが、問題が起きています:チェックアウトコントローラーで製品を取り出した後、もう1つ、この商品の価格はTEMPORARILY = 0になります。 チェックアウトの次のステップで価格が復元されるため(または私がカートに戻った場合)、私は一時的に言います。ここでMagento - コントローラーで製品を取り除くと価格が下がります

は私の抜粋です:

// Remove 
$cartHelper = Mage::helper('checkout/cart'); 
    $items = $cartHelper->getCart()->getItems(); 
    foreach ($items as $item) { 
    if ($item->getProduct()->getId() == $product_id_01) { 
     $itemId = $item->getItemId(); 
     $cartHelper->getCart()->removeItem($itemId)->save(); 
     break; 
    } 
    } 

// Add 
$product = Mage::getModel('catalog/product')->load($product_id_02); 
    $cart = Mage::getModel('checkout/cart'); 
    $cart->init(); 
    $cart->addProduct($product, 1); 
    $cart->save(); 

私は引用符を使用して製品を追加する場合それは同じです。 誰でもこの問題を解決するアイデアはありますか?

UPDATE

$ cartHelper-> getCart()であると思われる - > removeItem($のitemId) - >()保存します。

が原因です。実際には、私が - > save()を削除すると正常に動作します。 理由がわかりません。お使いのコントローラで

答えて

0

あなたがthisを参照することができ、このコード

 $product = Mage::getModel('catalog/product')->load(id); 
     $this->_getCart()->addProduct($product,1)->save(); 
     $this->_getSession()->setCartWasUpdated(true); 

を試してみてください。

+0

いいえ、問題は同じです。 – AltitudeK

0

私たちは、次のコードを試してみることをお勧めします:

$productInstance = Mage::getModel('catalog/product')->load(id); 
    $cart = Mage::getModel('checkout/cart'); 
    $cart->init(); 
    $cart->addProduct($productInstance, 1); 
    $cart->getQuote()->setTotalsCollectedFlag(false); 
    $cart->save(); 
    Mage::getSingleton('checkout/session')->setCartWasUpdated(true); 

は、それが解決しない場合はお知らせを。

+0

あなたの答えはThanxですが、動作しません。ちなみに、setCartWasUpdated()は、ワンページチェックアウトのajaxを続行するのではなく、カートにリダイレクトするので、必要ありません。 – AltitudeK

0

$ cartHelper-> getCart()であると思われる - > removeItem($のitemId) - >()保存します。

が原因です。実際には、私が - > save()を削除すると正常に動作します。 理由がわかりません。

関連する問題