我發現在Magento API中有兩個不同的訂單屬性可用。Magento API訂單ID與增量ID
order_id和order_increment_id。對於示例訂單,它們可以是order_increment_id = 100000080和order_id = 81。
問題是:它們之間有什麼區別?他們如何被認爲是使用?在網上商店用戶界面中,我看到我的訂單具有「訂單號」= 100000080.什麼是order_id屬性?
我發現在Magento API中有兩個不同的訂單屬性可用。Magento API訂單ID與增量ID
order_id和order_increment_id。對於示例訂單,它們可以是order_increment_id = 100000080和order_id = 81。
問題是:它們之間有什麼區別?他們如何被認爲是使用?在網上商店用戶界面中,我看到我的訂單具有「訂單號」= 100000080.什麼是order_id屬性?
我一直在使用magento API近一年,現在可以向你保證你唯一需要使用的ID是order_increment_id。它被用作order.info調用中的主ID。發票和裝運API也是如此 - 它們也使用適當的增量ID作爲主要API。
我認爲與entity_id相同的order_id是sales_order表中用於將所有eav表連接在一起的主鍵。它在magento內部使用,但使用API則無需擔心。
我想order_increment_id用於顯示給客戶,而order_id是供內部使用的。人們發現低階ID奇怪,他們習慣看到10個數字左右時查看訂單ID。
什麼西爾沃說過是真的,這就是爲什麼有方法稱爲getLastRealOrderId();
什麼西爾沃說是正確的,但有一些情況下,在API中引用order_id是唯一的參考你必須回到訂單。
例如,如果您生成了SalesOrderInvoices或SalesOrderShipments的列表,那麼從列表中的對象返回到訂單的引用將作爲order_id給出,而不是order_increment_id。雖然您可以直接通過SalesOrderInfoRequest從order_increment_id獲取SalesOrderEntity,但您需要通過使用帶有「order_id」過濾器的SalesOrderListRequest來搜索該order_id。
對於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中,您將看到000000277
爲275
和000000276
爲276
對於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
答案是不正確的Magento 2.1。真的Magento 2.1使用'entity_id'作爲肥皂調用 – burzhuy 2017-02-01 11:50:51
正如其他地方所提到的,如果您正在獲取salesOrderShipments,則需要按order_id而不是increment_id進行過濾。在我們的系統中,我們都存儲這兩個都是因爲都需要 – David 2017-06-23 07:14:50