openart:无法以编程方式更新订单


Opencart: Cannot update order programmatically

我正在开发openart上的支付网关扩展。扩展已全部完成,并按计划工作。

有一件事似乎不太管用,那就是更新订单。

我正在尝试更新订单如下:

$this->load->model('checkout/order');       
$this->model_checkout_order->update($orderid, 2, 'Processing', true);

$orderid变量包含一个有效的订单id,该记录也可以在数据库中找到,但它没有更新订单。我错过什么了吗?

Opencart版本。1.5.x

谢谢

您的订单状态应该大于零,因为模型有此检查

 $order_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "language l ON (o.language_id = l.language_id) WHERE o.order_id = '" . (int)$order_id . "' AND o.order_status_id > '0'");

好了,我有办法解决这个问题了。在这里添加信息。

我一开始就错过了"确认"API。必须先确认,否则无法更新。

// 2 is for status 'Processing'
$this->model_checkout_order->confirm($this->session->data['order_id'], 2);

之后更新订单状态就没有问题了