API REST для Magento 2 -> ПОМЕСТИТЬ пример (PHP)
Я новичок в API REST Magento 2 (это также мой первый пост на этом форуме, всем привет), но в течение прошедшего дня я смог получить информацию, используя ее в своей серверной системе. Запросы на получение достаточно просты, но я изо всех сил пытаюсь собрать правильный запрос.
Что мне нужно сделать дальше, так это обновить статус заказа с ожидающего на обработку,, но я просто не могу понять, как создать правильный массив для кодирования. Я бесконечно Гуглил это до такой степени, что я почти сдался. Существует миллион примеров того, как извлекать информацию из Magento, но практически ничего о том, как вносить обновления.
Вот мой код:
(часть аутентификации опущена - это отлично работает)
$icrement_id = "000000003";
$requestUrl='http://www.example.com/rest/V1/orders?searchCriteria[filter_groups][0][filters][0][field]=increment_id&searchCriteria[filter_groups][0][filters][0][value]='.$increment_id;
$ch = curl_init($requestUrl);
// Set status to processing
$data_json = [
"items"=> [
"state"=> "processing"
]
];
$data_json = json_encode($data);
print '<br>JSON data: '.$data_json;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $headers, 'Content-Length: ' . strlen($data_json)));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// Execute the query
$result = curl_exec($ch);
// Decode the result
$result= json_decode($result);
print_r($result);
Вопросы:
- Как сформулировать $данные, чтобы они были правильными (пункты[0] ->статус от ожидающего до обработки)
- Правильно ли в противном случае мой запрос на ввод? (например. могу ли я использовать поиск в качестве запроса)
Итак, чтобы быть предельно ясным, я не пытаюсь создать новый порядок, а изменяю существующий порядок. Также будут оценены примеры, которые приведут пример запроса API REST "для чайников". Спасибо.
1 answers
Согласно документации в Magento Swagger Api вы должны использовать http://www.example.com/rest/V1/orders
API с POST
запросом для обновления деталей заказа. Вот пример запроса curl:
$entity_id = 3;
$request_url='http://www.example.com/rest/V1/orders';
$data_json = [
"entity"=> [
"entity_id" => $entity_id,
"state" => "processing",
"status" => "Processing"
]
];
$data_string = json_encode($data_json);
$ch = curl_init($request_url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$response = curl_exec($ch);
$response = json_decode($response);
print_r($response);
curl_close($ch);
В случае, если вы хотите обновить детали заказа с помощью increment_id
, вам придется создать свой собственный API, который принимает increment_id
в качестве входных данных для обновления деталей заказа. Один из примеров API cutom продемонстрирован здесь