2017-06-18 4 views
1

Je ne comprends pas le système d'événement Opencart. Par exemple, je veux passer commande à CRM externe, qui ont leur propre API. Je l'ai écrit dans le fichier /admin/controller/extension/module/mykmykpet_bitrix24.php Code suivant:Comment gérer un événement dans Opencart?

class ControllerExtensionModuleMykmykpetBitrix24 extends Controller{ 
    public function install(){ 
     $this->load->model('extension/event'); 
     $this->model_extension_event->addEvent('Bitrix24','catalog/model/checkout/order/addOrder/after','extension/module/mykmykpet_bitrix24/newOrderToCRM'); 
    } 

    public function uninstall(){ 
     $this->load->model('extension/event'); 
     $this->model_extension_event->deleteEvent('Bitrix24'); 
    } 
} 

Ensuite, pour la formation que j'ai écrit dans /catalog/controller/extension/module/mykmykpet_bitrix24.php suivant Code:

class ControllerExtensionModuleMykmykpetBitrix24 extends Controller{ 
    public function newOrderToCRM($orderID){ 
     mail("[email protected]","Hello from OpenCart Event",$orderID); 
    }  
} 

Ensuite, je place l'ordre de test et a obtenu cet e-mail: E-mail content

Mais pourquoi je suis arrivé là? J'attend un identificateur de commande, mais pas de chemin vers la méthode que j'ai utilisée. Où est mon erreur? Aidez-moi, s'il vous plaît.

Répondre

0

Vous devrez regarder dans $this->request pour order_id, mais je suis sûr qu'il sera là quelque part. Il ne sera pas transmis en tant que paramètre par le système d'événements.

1

OpenCart 2.3.0.2

Dans votre exemple order_id est dans le troisième paramètre. vous pouvez le tester avec votre journal:

public function newOrderToCRM($route = false, $order_info = false, $order_id = false){ 
    $this->log->write('Route: ' . $route); 
    $this->log->write('Order Info: '); 
    $this->log->write($order_info); 
    $this->log->write('Order ID: ' . $order_id); 
} 

une commande et puis vérifiez votre journal d'erreurs, Ceci est le résultat pour moi:

2018-01-05 17:04:17 - Route : caisse/commande/AddOrder

2018-01-05 17:04:17 - ordre info: 05/01/2018 17:04:17 - Array (informations ordre à l'intérieur tableau)

2018-01- 05 17:04:17 - ID de commande: 130