2013-04-29 3 views
0

J'utilise paypal comme passerelle et je pensais éditer l'IPN listener et mettre à jour le groupe de clients à partir de là en fonction du résultat paypal.Magento - changer le groupe de clients sur la commande réussie

Existe-t-il une façon plus «Magento» de faire cela, comme les méthodes de remplacement, et si oui, où ferais-je cela?

Répondre

2

L'observateur d'événement aurait du sens ici. Je ne sais pas si l'événement paypal_payment_transaction_save_after fonctionnerait ici; vérifier l'ordre après l'enregistrement pour un paiement IPN réussi fonctionnerait.

0

Pour quelqu'un d'autre à la recherche de cette fonctionnalité, voici ce que je faisais:

Pour remplacer les Magento 1.7.0.2 routines paypal j'ai copié

/app/code/core/Mage/Paypal/

à

/app/code/local/Mage/Paypal/

J'ai ensuite ajouté la méthode suivante pour /app/code/local/Mage/Paypal/Model/Ipn.php

protected function _changeUserGroup($group){ 

    $invoice_id = $this->_request['invoice']; 

    // get the resource model 
    $resource = Mage::getSingleton('core/resource'); 

    // retrieve the read connection 
    $read = $resource->getConnection('core_read'); 

    // get the customer_id for the invoice from the database 
    $customer_id = (int) $read->fetchOne($read->select()->from('sales_flat_order','customer_id')->where("increment_id='$invoice_id'")->limit(1)); 

    // retrieve the write connection 
    $write = $resource->getConnection('core_write'); 

    // raw query 
    $query = "UPDATE customer_entity SET group_id = $group WHERE entity_id = $customer_id"; 

    // execute the query 
    $write->query($query); 

} 

Vous pouvez ensuite appeler cette méthode à quelque point que vous voulez dans la procédure IPN en fonction de votre objectif. J'ai trouvé http://fishpig.co.uk/blog/direct-sql-queries-magento.html utile pour les appels de base de données.

Questions connexes