活动只运行一次。我通过观察者在事件checkout_quote_init 中添加购物车后,在报价中添加自定义值 它工作正常,但如果客户登录并下订单,那么在第一顺序值插入报价但在第二次观察员没有运行。
<checkout_quote_init>
<observers>
<youva_custom>
<type>singleton</type>
<class>custom/observer</class>
<method>setqoutevalue</method>
</youva_custom>
</observers>
</checkout_quote_init>
public function setqoutevalue($observer) {
$event = $observer->getEvent();
$_quote = $event->getQuote();
$_quote->setCustomevalue($customevalue);
$_quote->save();
}
答案 0 :(得分:0)
如果您查看调度您正在使用的事件的代码,您会看到这个(Mage_Checkout_Model_Session::getQuote()
):
if (!$this->getQuoteId()) {
if ($customerSession->isLoggedIn() || $this->_customer) {
$customer = ($this->_customer) ? $this->_customer : $customerSession->getCustomer();
$quote->loadByCustomer($customer);
$this->setQuoteId($quote->getId());
} else {
$quote->setIsCheckoutCart(true);
Mage::dispatchEvent('checkout_quote_init', array('quote'=>$quote));
}
}
这意味着只有在创建报价时才会调度该事件。并且仅当用户未登录时。这意味着如果会话中已存在引用ID,则不会分派事件。
您可能想要使用其他事件。例如checkout_cart_product_add_after