这是我在这个页面上的第一篇文章,所以请不要打我太多:) 我想要结帐的事件太多了。其中一个工作正常,但其他没有。我不知道我的代码有什么问题。请帮忙。
事件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 :(得分:0)
首先,我会在观察者的开头放置一个Mage :: log()来检查当事件发生时函数是否运行