我试图在我提出要求后想出如何编辑订单。 无论是否导出订单,我都创建了自定义属性。
我首先获得状态未导出的所有订单,在我导出后,我想将自定义属性更改为导出。
编辑/更新订单的REST请求是什么?我不断收到如下错误消息:
{"message":"%fieldName is a required field.","parameters":
{"fieldName":"entity"}
这是我的代码:
$json = array(
"entity_id" => $id,
"extension_attributes" => array(
"custom_export_attribute" => "exported",
)
);
$webapi = new ApiClient('https://dev.local.nl', self::$username, self::$password);
$response = $webapi->getClient()->request('PUT', '/rest/V1/orders/create', [
'headers' => [
'Authorization' => "Bearer " . $webapi->getToken(),
'Content-Type' => "application/json"
],
'body' => json_encode($json)
]);
return json_decode($response->getBody(), true);
我也尝试过:
$webapi->getClient()->request('PUT', '/rest/V1/orders/'.$id,
答案 0 :(得分:1)
要编辑/更新订单详细信息,Magento 2 /V1/orders
接受POST
请求方法。根据{{3}},它接受以下格式的请求正文(您可以在文档页面中找到整个JSON请求):
{
"entity": {
"entity_id": 0,
"extension_attributes": {
}
}
}
因此,您只需将$json
变量更新为:
$json = [
"entity"=> [
"entity_id" => $id,
"extension_attributes" => [
"custom_export_attribute" => "exported"
]
]
]
而不是使用POST
请求方法而不是PUT
来调用。在我的建议中,我更倾向于使用Magento 2 Dev Doc来创建新订单。