title: how to update cart total after change item price with observer?
body: <p>I want to add some free gift to cart , so I create an observer, the code is:</p>
  
  <pre><code>&lt;?php
   class Free_Checkout_Model_Observer
  {
      public function modifyPrice(Varien_Event_Observer $observer)
      {
          $event = $observer-&gt;getEvent();
          $quote = Mage::getModel('checkout/session')-&gt;getQuote();
          $quote_item = $event-&gt;getQuoteItem();
          $productId  = $event-&gt;getQuoteItem()-&gt;getProduct()-&gt;getId();
  
          $product        = Mage::getModel('catalog/product')-&gt;load($productId);
          $productData    = $product-&gt;getData();
  
          if($productData['gift']){
              $new_price = 0;
              $quote_item-&gt;setOriginalCustomPrice($new_price);
              $quote_item-&gt;setCustomPrice($new_price);
              $quote_item-&gt;save();
          }
  
      }
  
  
  }
  </code></pre>
  
  <p>but when I add an item to cart , in the shopping cart,  the subtotal is 0, is anyone tell me how to solve this issue?
  when I add one more item or refresh the shopping cart page, the subtotal is correct</p>