Группа клиентов Magento не меняется по порядку

У меня следующая проблема: когда клиент размещает заказ, я хочу изменить группу клиентов:

Мой 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() , как ни странно, если я размещаю другой заказ с тем же клиентом, второй заказ показывает правильную группу. Как я могу обновить группу при оформлении первого заказа?

Заранее спасибо :)


person asdasdKitten    schedule 27.07.2015    source источник
comment
как насчет $customer-›setGroupId($selectedgroup); $клиент-›сохранить();?   -  person Rakesh Shewale    schedule 27.07.2015


Ответы (1)


Вы также должны обновить customer_group_id в своем заказе следующим образом:

$order = $observer['order'];
$order->setData('customer_group_id',$selectedgroup)->save();
person Antonino Bonumore    schedule 27.07.2015
comment
Да! Вот оно! Спасибо, вы сделали мой день! - person asdasdKitten; 27.07.2015
comment
Я рад этому. Радоваться, веселиться! - person Antonino Bonumore; 27.07.2015