Magento使用REST更新库存

Magento使用REST更新库存,magento,magento-1.7,Magento,Magento 1.7,我遵循本页的说明,我有以下代码: $oauthClient->setToken($_SESSION['token'], $_SESSION['secret']); $resourceUrl = $apiUrl.'/stockitems/429'; $productData = json_encode(array( 'qty' => 982, 'is_in_stock' => 1 )); $headers = arr

我遵循本页的说明,我有以下代码:

$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());
我不知道我做错了什么?

谢谢您的回复。

您使用的是POST而不是PUT。HTTP Post用于在Magento中创建项目,但如果您按id更新项目(或库存、图像等),则必须使用PUT。

您使用的是Post而不是PUT。HTTP Post用于在Magento中创建项目,但如果您按id更新项目(或库存、图像等),则必须使用PUT。

更新项目数量的另一种方法是使用以下有效负载调用/products/:id API,method=PUT:

{"stock_data" : {"qty" : "123"}}

更新项目数量的另一种方法是使用以下有效负载调用/products/:id API,method=PUT:

{"stock_data" : {"qty" : "123"}}

确保您已分配给管理员用户REST角色

逐步配置权限:

  • 系统->Web服务->REST-角色->创建新角色
  • 系统->Web服务->REST-消费者->创建消费者->复制要在应用程序中使用的密钥和密码
  • 系统->权限->用户->休息角色->选择并保存角色

确保您已分配给管理员用户REST角色

逐步配置权限:

  • 系统->Web服务->REST-角色->创建新角色
  • 系统->Web服务->REST-消费者->创建消费者->复制要在应用程序中使用的密钥和密码
  • 系统->权限->用户->休息角色->选择并保存角色

看起来身份验证失败了,您是否成功进行了身份验证?身份验证顺利进行,我获得了所有其他信息,因此我正确登录。看起来身份验证失败了,您是否成功进行了身份验证?身份验证顺利进行,我获得了所有其他信息,因此我正确登录。