Magento API订单ID与增量ID

时间:2010-07-12 15:18:48

标签: php magento

我发现Magento API中有两种不同的订单属性。

order_id和order_increment_id。对于样本订单,它们可以是order_increment_id = 100000080和order_id = 81。

问题是:它们之间有什么区别?他们被认为是如何使用的?在网上商店用户界面中,我看到我的订单有“订单号”= 100000080.什么是order_id属性?

5 个答案:

答案 0 :(得分:12)

我已经使用magento API近一年了,可以向您保证,您需要使用的唯一ID是order_increment_id。它在order.info调用中用作主ID。发票和货件API也是如此 - 它们也使用适当的增量ID作为主要增量ID。

我认为order_id与entity_id相同,是用于将所有eav表连接在一起的sales_order表中的主键。它在内部使用magento,但使用API​​时你不必担心它。

答案 1 :(得分:4)

我猜order_increment_id用于向客户显示,order_id供内部使用。人们发现低阶id很奇怪,他们习惯于在查看订单ID时看到10位左右。

答案 2 :(得分:1)

Silvo所说的是真的,这就是为什么有一个名为getLastRealOrderId()的方法;

答案 3 :(得分:1)

Silvo所说的是正确的,但在某些情况下,在API中引用了order_id,并且这是您必须返回订单的唯一参考。

例如,如果您生成了SalesOrderInvoices或SalesOrderShipments的列表,那么从列表中的对象返回到订单的引用将作为order_id而不是order_increment_id给出。虽然您可以通过SalesOrderInfoRequest直接从order_increment_id获取SalesOrderEntity,但您需要使用带有" order_id"的过滤器的SalesOrderListRequest来搜索该order_id。

答案 4 :(得分: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>

在用户界面中,您会看到000000277的{​​{1}}和275的{​​{1}}