You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SP API SDK查询亚马逊库存JSON上传状态及相关问题

解决方案

一、用SDK查询Feed状态

你的代码已创建CreateFeedSpecification,但缺少提交Feed和轮询状态的步骤,补充代码如下:

// 创建Feed,提交处理请求
$createFeedResponse = $feedsApi->createFeed($createFeedSpecification);
$feed = $createFeedResponse->dto();
$feedId = $feed->feedId;

// 轮询查询Feed状态(建议设置30秒间隔,避免频繁请求)
do {
    sleep(30);
    $getFeedResponse = $feedsApi->getFeed($feedId);
    $feedStatus = $getFeedResponse->dto()->processingStatus;
    echo "当前Feed状态:{$feedStatus}\n";
} while (!in_array($feedStatus, ['DONE', 'FAILED', 'CANCELLED']));

// 处理完成后获取结果文档
if ($feedStatus === 'DONE') {
    $resultDocId = $getFeedResponse->dto()->resultFeedDocumentId;
    $getFeedDocResponse = $feedsApi->getFeedDocument($resultDocId);
    $resultDocument = $getFeedDocResponse->dto();
    // 下载并打印处理结果(包含错误信息或成功提示)
    $resultContent = $resultDocument->download();
    echo "Feed处理结果:{$resultContent}\n";
}

说明:Feed处理需要时间,轮询是必要的。结果文档会明确告知失败原因(比如字段错误、SKU不存在等),能直接定位库存未更新的问题。

二、JSON payload字段必填性

  • productType:对于JSON_LISTINGS_FEED的PARTIAL_UPDATE操作,属于必填项,必须与该SKU在亚马逊后台的产品类型完全一致,否则Feed会处理失败。
  • attributes:在你的场景中(更新库存fulfillment_availability),该字段是必填项,库存更新的核心数据都在这个节点下。
  • 额外注意:lead_time_to_ship_max_days要求是数字类型,你的payload里用了字符串"5",建议改为数字5,这可能是库存未更新的原因之一。

三、不使用SDK上传库存的简便方法

可以直接通过HTTP请求完成,用Postman、curl等工具即可执行,步骤如下:

1. 获取LWA访问令牌

向亚马逊LWA接口发送POST请求,获取access_token:

curl -X POST "https://api.amazon.com/auth/o2/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token&client_id=你的LWA_CLIENT_ID&client_secret=你的LWA_CLIENT_SECRET&refresh_token=你的LWA_REFRESH_TOKEN"

2. 创建Feed文档

向SP API的Feed文档接口发送POST请求,拿到feedDocumentId和上传URL:

curl -X POST "https://sellingpartnerapi-eu.amazon.com/feeds/2021-06-30/documents" \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{"contentType": "application/json"}'

3. 上传Feed内容

向拿到的上传URL发送PUT请求,上传你的JSON payload:

curl -X PUT "{上传URL}" \
  -H "Content-Type: application/json" \
  -d '{你的完整JSON payload}'

4. 提交Feed处理

向SP API的Feed接口发送POST请求,提交Feed处理:

curl -X POST "https://sellingpartnerapi-eu.amazon.com/feeds/2021-06-30/feeds" \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{"marketplaceIds": ["你的市场ID"], "inputFeedDocumentId": "{feedDocumentId}", "feedType": "JSON_LISTINGS_FEED"}'

5. 轮询Feed状态

定期向Feed详情接口发送GET请求,直到处理完成:

curl -X GET "https://sellingpartnerapi-eu.amazon.com/feeds/2021-06-30/feeds/{feedId}" \
  -H "Authorization: Bearer {access_token}"

处理完成后,可通过返回的resultFeedDocumentId下载结果文档,查看处理详情。


内容的提问来源于stack exchange,提问作者wharfdale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:05:54