我有以下问题:当客户下订单时,我想更改客户组:
我的config . xml:
<sales_order_place_before>
<observers>
<kat_customer_save_observer>
<type>singleton</type>
<class>Kat_Customer_Model_Observer</class>
<method>customerSaveBefore</method>
</kat_customer_save_observer>
</observers>
</sales_order_place_before>
我Observer.php class Kat_Customer_Model_Observer extends Mage_Core_Model_Abstract
{
public function customerSaveBefore($observer) {
$selectedgroup= 5;
$order = $observer['order'];
$customer = $order->getCustomer();
$customer->setData('group_id', $selectedgroup)->save();
}
}
问题是,在执行观察者之后,如果我查看后端,客户信息中的客户组是正确的,但是如果我查看订单信息,它显示的是旧的客户组。我还尝试插入order->save(),奇怪的是,如果我向同一客户下另一个订单,第二个订单显示正确的组。我下第一个订单时如何更新群组?
提前感谢:)
您还应该像这样更新订单中的customer_group_id:
$order = $observer['order'];
$order->setData('customer_group_id',$selectedgroup)->save();