2010-07-12 67 views
11

我發現在Magento API中有兩個不同的訂單屬性可用。Magento API訂單ID與增量ID

order_id和order_increment_id。對於示例訂單,它們可以是order_increment_id = 100000080和order_id = 81。

問題是:它們之間有什麼區別?他們如何被認爲是使用?在網上商店用戶界面中,我看到我的訂單具有「訂單號」= 100000080.什麼是order_id屬性?

回答

12

我一直在使用magento API近一年,現在可以向你保證你唯一需要使用的ID是order_increment_id。它被用作order.info調用中的主ID。發票和裝運API也是如此 - 它們也使用適當的增量ID作爲主要API。

我認爲與entity_id相同的order_id是sales_order表中用於將所有eav表連接在一起的主鍵。它在magento內部使用,但使用API​​則無需擔心。

+0

對於SOAP API,這是正確的。如果您使用的是REST API,它需要實體ID,而不是增量ID。 http://devdocs.magento.com/guides/m1x/api/rest/Resources/Orders/sales_orders.html – txyoji 2016-02-04 22:18:14

+0

答案是不正確的Magento 2.1。真的Magento 2.1使用'entity_id'作爲肥皂調用 – burzhuy 2017-02-01 11:50:51

+0

正如其他地方所提到的,如果您正在獲取salesOrderShipments,則需要按order_id而不是increment_id進行過濾。在我們的系統中,我們都存儲這兩個都是因爲都需要 – David 2017-06-23 07:14:50

4

我想order_increment_id用於顯示給客戶,而order_id是供內部使用的。人們發現低階ID奇怪,他們習慣看到10個數字左右時查看訂單ID。

1

什麼西爾沃說過是真的,這就是爲什麼有方法稱爲getLastRealOrderId();

1

什麼西爾沃說是正確的,但有一些情況下,在API中引用order_id是唯一的參考你必須回到訂單。

例如,如果您生成了SalesOrderInvoices或SalesOrderShipments的列表,那麼從列表中的對象返回到訂單的引用將作爲order_id給出,而不是order_increment_id。雖然您可以直接通過SalesOrderInfoRequest從order_increment_id獲取SalesOrderEntity,但您需要通過使用帶有「order_id」過濾器的SalesOrderListRequest來搜索該order_id。

0

對於magento 2.1(其他版本的pehaps行爲不一樣?!),你應該使用entity_id。我檢查了它的SOAP API。有時entityId看起來像incrementId,這可能會導致誤解。

例如

  • 我嘗試調用SalesOrderRepositoryV1GetList與參數id=275
  • 接受訂貨具有<entityId>275</entityId> <incrementId>000000276</incrementId>
  • 我嘗試調用SalesOrderRepositoryV1GetList與參數 id=000000276
  • 接收訂單<entityId>276</entityId> <incrementId>000000277</incrementId>

在UI中,您將看到000000277275000000276276