我们使用一个内部应用程序(通过 Google Apps 脚本),通过对亚马逊列表 api 的 PATCH 调用来更新亚马逊上的库存数量。这已经稳定了相当长一段时间,但昨天所有调用都开始失败,并显示 InvalidInput 错误代码 400,指出:
“零售市场中的 Ascent 商家不支持所请求的操作。”
其他 SP Api 调用似乎工作正常,对 Listings api 的 GET 调用仍然成功,但 PATCH 和 DELETE 请求均失败并出现相同的错误。
代码:
function PatchAmazonAPI(path, body) {
var access_token = AccessToken();
var role_request = signRoleCredentialsRequest({role: role_arn, id: user_access_id, secret: user_secret});
var creds = XmlService.parse(role_request).getRootElement().getChildren()[0].getChildren()[1].getChildren();
var role_creds = {
id: creds[0].getText(),
secret: creds[1].getText(),
security_token: creds[2].getText()
};
var req_params = {
api_path: path,
method: 'PATCH',
query: {
marketplaceIds: 'ATVPDKIKX0DER'
}
};
req_params.body = body;
return(JSON.parse(signAPIRequest(access_token, role_creds, req_params, 'na')));
}
JSON 正文:
var body = {
"productType": "PRODUCT",
"patches": [
{
"op": "replace",
"operation_type": "PARTIAL_UPDATE",
"path": "/attributes/fulfillment_availability",
"value": [
{
"fulfillment_channel_code": "DEFAULT",
"quantity": 2
}
]
}
]
};
路径网址:
/listings/2021-08-01/items/{{merchant_id}}/{{msku}}
错误信息:
{ errors:
[ { code: 'InvalidInput',
message: 'The operation requested is not supported for Ascent merchants in retail marketplaces.',
details: '' } ] }
API 的错误。
如果您遇到同样的问题,请在 Github 上评论:
https://github.com/amzn/ sell-partner-api-docs/issues/3712
并打开开发者支持案例以帮助解决问题:
https://sellercentral.amazon.com/gp/mws/contactus.html?ld=NSGoogle