I am a student making my final project to graduate. i am new to Magento 2 but have tried working with it's API using PHP.
I am trying to write some code that updates the order status. however this error keeps getting in the way. i have tried online but have no luck in uncovering the underlying issue. This is said error:
["message"]=> string(59) ""%fieldName" is required. Insert it and try again.["parameters"]=> array(1) { ["fieldName"]=> string(13) "statusHistory" }
what is going wrong? what am i missing? what can i do to avoid this error in the future?
<?php $id = "000000002"; $ch = curl_init("<base_url>/rest/all/V1/orders/{$id}/comments"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Accept: application/json', 'Content-Type: application/json', 'Authorization: Bearer <token>', ]); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array([ "statusHistory"=> [ "comment"=> "string", "created_at"=> "string", "entity_id"=> 0, "entity_name"=> "string", "is_customer_notified"=> 0, "is_visible_on_front"=> 0, "parent_id"=> 0, "status"=> "string", "extension_attributes"=> [] ] ]))); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLINFO_HEADER_OUT, true); curl_exec($ch); // $info = curl_getinfo($ch); // print_r($info['request_header']); $response = curl_exec($ch); $decoded_response = json_decode($response,true); curl_close($ch); var_dump($decoded_response); ?>
if you want to change the order status
Check this api {{your url}}rest/V1/orders and apply following params to update status
{ "entity": { "entity_id": orderid, "state":"processing", "status": "processing" } }
You are Sending POST Request so you also have to send data in POST request in json format like :{ "id": {}}
And have to set
Content-Type:application/json
in http header.