Почему increment_id изменился при обновлении статуса заказа с помощью rest api? - PullRequest
0 голосов
/ 30 августа 2018

Я хочу обновить статус заказа, чтобы завершить использование webapi

вот мой код тестирования:

$data = array (
        'entity' =>
        array (
            'entity_id' => $id,
            'status' => 'complete',
        ),
    );

    $this->generateApiToken();

    $ch = curl_init("https://$this->link/rest/V1/orders/");
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array( "Content-Type: application/json",
                                                "Authorization: Bearer " . json_decode($this->token) ));

    $cusJsonData = curl_exec($ch);

и когда этот код выполняется, статус обновляется корректно, но значение increment_id изменилось.

Может кто-нибудь помочь мне с этой проблемой?

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Я только что выполнил это на v2.2.5 и объяснил это ошибкой в ​​API Magento.

Чтобы обойти это, вам нужно указать оригинал increment_id вместе с entity_id при обновлении статуса.

Ваш JSON должен выглядеть примерно так:

{
  "entity": {
    "entity_id":23,
    "increment_id":"0000000153",
    "state":"processing",
    "status":"processing"
  }
}

Кроме того, не уверен, почему требуются state и status, я просто приписываю это ужасному API Magento.

0 голосов
/ 01 сентября 2018

Пожалуйста, обратитесь ниже URL для Magento 2 API. Я полагаю, что такого специфического API для обновления статуса заказа не существует.

URL: https://devdocs.magento.com/swagger/#/

Перейдите в salesOrderRepositoryV1 или salesOrderManagementV1.

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