Порядок в Magento API и идентификатор приращения - PullRequest
11 голосов
/ 12 июля 2010

Я обнаружил, что в Magento API есть два разных свойства порядка:

order_id и order_increment_id.Для заказа образца они могут быть что-то вроде order_increment_id = 100000080 и order_id = 81.

Вопрос в том, в чем разница между ними?Как они считаются использованными?В пользовательском интерфейсе интернет-магазина я вижу, что мой заказ имеет "Order #" = 100000080. Для чего нужно свойство order_id?

Ответы [ 5 ]

12 голосов
/ 12 июля 2010

Я работаю с magento API уже почти год и могу заверить вас, что единственным идентификатором, который вам нужно использовать, является order_increment_id. Он используется в качестве основного идентификатора в вызове order.info. То же самое верно для API счетов и отгрузки - они также используют соответствующий идентификатор приращения в качестве основного.

Order_id, который, как я считаю, совпадает с entity_id, является первичным ключом в таблице sales_order, используемым для объединения всех таблиц eav. Он используется внутри magento, но при работе с API вам не нужно беспокоиться об этом.

4 голосов
/ 12 июля 2010

Я думаю, order_increment_id используется для отображения клиенту, а order_id для внутреннего использования. Люди находят младшие идентификаторы странными, они привыкли видеть примерно 10 цифр при просмотре идентификаторов.

1 голос
/ 08 сентября 2016

То, что говорит Сильво, верно, однако есть некоторые обстоятельства, когда order_id упоминается в API и является единственной ссылкой, которую вы должны вернуть к заказу.

Например, если вы сгенерировали список SalesOrderInvoices или SalesOrderShipments, тогда ссылка на заказ из объектов в списке указывается как order_id, а не order_increment_id.В то время как вы можете получить SalesOrderEntity из order_increment_id напрямую через SalesOrderInfoRequest, вам нужно будет найти этот order_id с помощью SalesOrderListRequest с фильтром для order_id.

1 голос
/ 18 июля 2010

То, что сказал silvo, верно, и поэтому существует метод с именем getLastRealOrderId ();

0 голосов
/ 01 февраля 2017

Для magento 2.1 (возможно, поведение не совпадает с другими версиями?!) Вы должны использовать 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 для 275 и 000000276 для 276

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...