2013-05-08 22 views
2

我正在Opencart上開發支付網關擴展。該擴展全部按計劃完成並正常工作。Opencart:無法以編程方式更新訂單

有一件事似乎並沒有在更新訂單。

我想如下更新訂單:

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

$orderid變量包含一個有效的訂單id,該記錄也可以在數據庫中找到,但它沒有更新的順序。我在這裏錯過了什麼嗎?

Opencart ver。 1.5.x的

謝謝

+0

您錯過了「$ orderid」中的「r」檢查它。如果我是儀式,它應該像下面這樣$ this-> model_checkout_order-> update($ orderid,2,'Processing',true); – 2013-05-08 06:53:47

+0

感謝@ManigandanArjunan指點,但在這裏輸入問題時,這只是一個錯字。實際的代碼是好的:) – Arfeen 2013-05-08 06:55:15

回答

1

好吧,我已經得到了解決這個問題。在這裏添加信息。

我在第一個地方錯過了「確認」API。必須先確認,否則不會更新。

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

之後,我在更新訂單狀態時沒有遇到任何問題。

1

您的訂單狀態應該是大於零,因爲模型有這個檢查

$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'"); 
+0

是@zoonman的權利。 API的第二個參數實際上是訂單狀態ID。我已經提供了「2」的硬性價值。 – Arfeen 2013-05-08 06:56:33