为什么使用rest api更新订单状态时,increment_id更改了?

时间:2018-08-30 17:44:49

标签: php magento2

我想使用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);

并且在运行此代码时,状态正确更新,但是增量ID已更改。

有人可以帮助我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

请参考以下URL,获取Magento 2 API。我想没有这样的特定API可以更新订单状态以完成操作。

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

转到salesOrderRepositoryV1或salesOrderManagementV1。

答案 1 :(得分:0)

我刚刚在v2.2.5上有了它,并将其归结为Magento API中的一个错误。

要解决此问题,在进行状态更新时,您需要指定原始的set()increment_id

您的JSON应该看起来像这样:

entity_id

此外,不确定为什么需要{ "entity": { "entity_id":23, "increment_id":"0000000153", "state":"processing", "status":"processing" } } state,我只是将其归因于Magento的糟糕API。