2015-07-27 1 views
0

J'ai le problème suivant: lorsqu'un lieu de client un ordre que je veux changer le groupe de clients:Magento Groupe client ne change pas pour

Mon 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> 

Mon 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(); 
    } 
} 

le problème est que, après l'observateur est exécuté si je regarde dans le back-end, le groupe de clients dans les informations des clients est la bonne, mais si je regarde dans les informations de commande, il montre l'ancien groupe de clients. J'ai aussi essayé d'insérer order-> save(), bizarrement si je passe une autre commande chez le même client, le second ordre montre le bon groupe. Comment puis-je mettre à jour le groupe lors de la première commande?

Merci à l'avance :)

+0

environ $ comment Client-> setGroupId (selectedgroup de $); $ client-> save() ;? –

Répondre

1

Vous devriez également mettre à jour customer_group_id dans votre commande comme ceci:

$order = $observer['order']; 
$order->setData('customer_group_id',$selectedgroup)->save(); 
+0

Oui! C'était ça! Merci, tu as fait ma journée! – asdasdKitten

+0

Je suis content pour ça. S'amuser! –