Magento 2 Обновление акций через Rest API - PullRequest
0 голосов
/ 24 мая 2018

Я использую этот код для обновления своих акций Magento 2 через API;но есть ошибка разрешения, даже учетные данные в порядке, а роль пользователя - «администратор».

Может ли кто-нибудь мне помочь?

Сообщение об ошибке:

string (366) "Запрещено. У вас нет прав доступа к / rest / V1 / products / 10001001 / stockItems / 1 на этом сервере. Кроме того, при попытке использовать ErrorDocument для обработки запроса была обнаружена ошибка 403 Forbidden.

И мой код:

<?php
$url = "https://www.example.com/";
$token_url=$url."rest/V1/integration/admin/token";
$ch = curl_init();
$data = array("username" => "xxxx", "password" => "xxxx");
$data_string = json_encode($data);
$ch = curl_init($token_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))
);
$token = curl_exec($ch);
$adminToken=  json_decode($token);

$skus = array(
  '10001001' => 10,
  '10001004' => 8
);

foreach ($skus as $sku => $stock) {
  $requestUrl='https://www.example.com/rest/V1/products/' . $sku . '/stockItems/1';
  $sampleProductData = array(
          'qty' => $stock
  );

$productData = json_encode(array('product' => $sampleProductData));
$setHaders = array('Content-Type:application/json','Authorization:Bearer '.$adminToken);

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $requestUrl);
curl_setopt($ch,CURLOPT_POSTFIELDS, $productData);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_HTTPHEADER, $setHaders);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

  var_dump($response);
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...