我无法理解Opencart事件系统。例如,我希望将订单推送到具有自己API的外部CRM。我在文件/admin/controller/extension/module/mykmykpet_bitrix24.php中编写了下一步代码:
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');
    }
}接下来,为了培训,我用/catalog/controller/extension/module/mykmykpet_bitrix24.php Next代码编写了以下内容:
class ControllerExtensionModuleMykmykpetBitrix24 extends Controller{
    public function newOrderToCRM($orderID){
        mail("mykmykpet@mykmykpet.xyz","Hello from OpenCart Event",$orderID);
    }    
}接下来,我下了测试订单,收到了以下电子邮件:电子邮件内容
但我为什么要这么做?我等待一个订单标识符,而不是我使用的方法的路径。我的错误在哪里?帮帮我求你了。
发布于 2018-01-05 16:12:01
OpenCart 2.3.0.2
在您的示例中,order_id位于第三个参数中。您可以用日志测试它:
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);
}下订单,然后检查您的错误日志,这是我的结果:
2018-01-05 17:04:17 -路线:结帐/订购/订购 2018-01-05 17:04:17 -订单信息: 2018-01-05 17:04:17 -数组(数组中的订单信息) 2018-01-05 17:04:17 -订单编号: 130
https://stackoverflow.com/questions/44617644
复制相似问题