2013-09-03 3 views
2

Это мой первый пост на этой странице, поэтому, пожалуйста, не слишком сильно меня поразите :) Я хочу иметь слишком события для оформления заказа. Один из них отлично работает, а другой нет. Я не знаю, что не так в моем коде. Пожалуйста помоги.Обновление корзины наблюдателя не работает

Событие checkout_cart_product_add_after - работает хорошо, но checkout_cart_update_items_after - не работает.

config.xml

<events> 
     <checkout_cart_product_add_after> 
      <observers> 
       <tim_checkout_model_observer> 
        <type>singleton</type> 
        <class>Tim_Checkout_Model_Observer</class> 
        <method>applyTotalPrice</method> 
       </tim_checkout_model_observer> 
      </observers> 
     </checkout_cart_product_add_after> 
     <checkout_cart_update_items_after> 
      <observers> 
       <tim_checkout_model_observer> 
        <type>singleton</type> 
        <class>Tim_Checkout_Model_Observer</class> 
        <method>applyTotalPrices</method> 
       </tim_checkout_model_observer> 
      </observers> 
     </checkout_cart_update_items_after> 
    </events> 

Tim_Checkout_Model_Observer

public function applyTotalPrice(Varien_Event_Observer $observer) 
{ 
    $item = $observer->getQuoteItem(); 
    if ($item->getParentItem()) { 
     $item = $item->getParentItem(); 
    } 
    if(Mage::helper('checkout/calculator')->isBarrelProduct($item->getProduct())){ 
     $specialPrice = Mage::helper('checkout/calculator')->getProductWorth($item->getProduct()); 
     if ($specialPrice > 0) { 
      $item->setCustomPrice($specialPrice); 
      $item->setOriginalCustomPrice($specialPrice); 
      $item->getProduct()->setIsSuperMode(true); 
     } 
    } 

} 

public function applyTotalPrices(Varien_Event_Observer $observer) 
{ 

    foreach ($observer->getCart()->getQuote()->getAllVisibleItems() as $item) { 
     if ($item->getParentItem()) { 
      $item = $item->getParentItem(); 
     } 
     if(Mage::helper('checkout/calculator')->isBarrelProduct($item->getProduct())){ 
      $specialPrice = Mage::helper('checkout/calculator')->getProductWorth($item->getProduct()); 
      if ($specialPrice > 0) { 
       $item->setCustomPrice($specialPrice); 
       $item->setOriginalCustomPrice($specialPrice); 
       $item->getProduct()->setIsSuperMode(true); 
      } 
     } 
    } 
} 

Я думаю, что это не работает метод applyTotalPrices, но я не знаю, как отлаживать наблюдателей?

ответ

0

Сначала я бы поставил Mage :: log() в начале наблюдателя, чтобы проверить, работает ли функция, когда происходят события

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