1

このページhttp://www.magentocommerce.com/api/rest/Resources/inventory.html#RESTAPI-Resource-StockItems-HTTPMethod-PUT-stockitems--idの指示に従いました。このコードがあります。

$oauthClient->setToken($_SESSION['token'], $_SESSION['secret']);
$resourceUrl = $apiUrl.'/stockitems/429';
$productData = json_encode(array(
        'qty'           => 982,
        'is_in_stock'   => 1
    ));
$headers = array('Content-Type' => 'application/json');
$oauthClient->fetch($resourceUrl, $productData, OAUTH_HTTP_METHOD_POST, $headers);
print_r($oauthClient->getLastResponseInfo());

しかし、私はリターンを得る

[message:protected] => Invalid auth/bad request (got a 401, expected HTTP/1.1 20X or a redirect)

私はこのようなXMLで試しました:

$oauthClient->setToken($_SESSION['token'], $_SESSION['secret']);
$resourceUrl = $apiUrl.'/stockitems/429';
$productData = '<?xml version="1.0"?>
    <magento_api>
        <qty>99</qty>
    </magento_api>';
$headers = array('Content-Type' => 'text/xml');
$oauthClient->fetch($resourceUrl, $productData, OAUTH_HTTP_METHOD_POST, $headers);
print_r($oauthClient->getLastResponseInfo());

エラーが表示されます:

[message:protected] => Invalid auth/bad request (got a 405, expected HTTP/1.1 20X or a redirect)

私は何が間違っているのか分かりませんか?
お返事ありがとうございます。

4

3 に答える 3

1

アイテムの数量を更新する別の方法は、/products/:id API、メソッド = PUT、次のペイロードを呼び出すことです。

{"stock_data" : {"qty" : "123"}}
于 2015-10-09T13:53:00.297 に答える
0

管理者ユーザーの REST ロールに割り当てられていることを確認してください。

アクセス許可の段階的な構成:

  • システム -> Web サービス -> REST - ロール -> 新しいロールの作成
  • システム -> Web サービス -> REST - コンシューマー -> コンシューマーの作成 -> アプリで使用するキーとシークレットをコピー
  • システム -> 権限 -> ユーザー -> REST ロール -> ロールを選択して保存
于 2016-03-03T15:56:42.847 に答える
0

PUT の代わりに POST を使用しています。HTTP Post は Magento でアイテムを作成するために使用されますが、ID によってアイテム (またはインベントリ、画像など) を更新する場合は、PUT を使用する必要があります。

于 2013-10-07T22:48:05.087 に答える