Проблема с моим наблюдателем, когда клиент выходит из системы
Я создаю своего наблюдателя для изменения цены на странице корзины
Мой config.xml является
<events>
<checkout_cart_product_add_after>
<observers>
<brain_priceedit_model_observer>
<type>singleton</type>
<class>Brain_Priceedit_Model_Observer</class>
<method>updatePrice</method>
</brain_priceedit_model_observer>
</observers>
</checkout_cart_product_add_after>
</events>
И мой Observer.php является
public function updatePrice( Varien_Event_Observer $obs )
{
$quote = $obs->getEvent()->getQuote();
$item = $obs->getQuoteItem();
$product_id=$item->getProduct_id();
$_product=Mage::getModel('catalog/product')->load($product_id);
$newprice=$_product->getPrice();
echo$price=$newprice*10;
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
$item->getProduct()->setIsSuperMode(true);
}
Этот наблюдатель работает, когда клиент входит в систему, но когда клиент не входит в систему, он показывает ошибку, подобную этой
2 answers
Вместо этого вы можете использовать событие checkout_cart_product_add_after
для изменения или обновления цены в корзине
Здесь я могу просто показать вам небольшой пример
In your /app/code/local/{namespace}/{yourmodule}/etc/config.xml:
<config>
<frontend>
<events>
<checkout_cart_product_add_after>
<observers>
<your_event_name>
<class>{{modulename}}/observer</class>
<method>updatePrice</method>
</your_event_name>
</observers>
</checkout_cart_product_add_after>
</events>
</frontend>
, А затем создайте класс наблюдателя в /app/code/local/namespace/modulename/Model/Observer.php
<?php
class namespace_modulename_Model_Observer
{
public function updatePrice(Varien_Event_Observer $obs)
{
// Get the quote item
$item = $obs->getQuoteItem();
// Set the custom price
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
// Enable super mode on the product.
$item->getProduct()->setIsSuperMode(true);
}
}
Это просто идея, возможно, вы лучше знаете, как использовать observer.
Надеюсь, это вам обязательно поможет.
Я нашел решение.Есть проблемы с функцией сохранения и идентификатором продукта
Удалить $quote_item->save();
и
Изменить на $quote_item->getProductId();
с $quote_item->getProduct_id();