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