我无法理解Opencart事件系统。例如,我想将订单推送到具有自己的API的外部CRM。我在文件 /admin/controller/extension/module/mykmykpet_bitrix24.php 中写了下一段代码:
empty
接下来,我在 /catalog/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');
}
}
接下来,我下了测试订单并收到了这封电子邮件: E-mail content
但为什么我这样做?我等待订单识别器,但不是我使用的方法的路径。我的错误在哪里?请帮帮我。
答案 0 :(得分:0)
您必须在$this->request
查看order_id,但我确定它会在某处。它不会被事件系统作为参数传递。
答案 1 :(得分:0)
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 - 路线:结帐/订单/ addOrder
2018-01-05 17:04:17 - 订单信息:2018-01-05 17:04:17 - 数组(数组内的订单信息)
2018-01-05 17:04:17 - 订单ID:130