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);

Вопросы:

  1. Как сформулировать $данные, чтобы они были правильными (пункты[0] ->статус от ожидающего до обработки)
  2. Правильно ли в противном случае мой запрос на ввод? (например. могу ли я использовать поиск в качестве запроса)

Итак, чтобы быть предельно ясным, я не пытаюсь создать новый порядок, а изменяю существующий порядок. Также будут оценены примеры, которые приведут пример запроса API REST "для чайников". Спасибо.

Author: Prince Patel, 2017-12-30

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 продемонстрирован здесь

 0
Author: Kamal Singh, 2017-12-31 05:06:46