我想使用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已更改。
有人可以帮助我解决这个问题吗?
答案 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。