У меня следующая проблема: когда клиент размещает заказ, я хочу изменить группу клиентов:
Мой 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();
Других решений пока нет …