Amazon 店铺 Feeds 是 Linkfox Amazon Store 系列技能之一,与 linkfox-amazon-store-auth 等同属该系列。它依赖 linkfox-amazon-store-auth 进行选店(sellerId+region);也可直接 POST /spApi/developerProxy 传入 sellerId+region,由服务端解析 token(勿传 amzAccessToken,除非兼容旧调用)。该技能转发 GET / POST / DELETE 请求。
一、调用方式 API 端点:POST /spApi/developerProxy,不同操作通过请求体区分,完整参数、响应与错误码见 references/api.md。 Python 脚本方式:python scripts/<脚本名>.py '<JSON 参数>' [--inline],可用脚本见脚本一览。 成本约束:本工具会消耗算力;失败或空结果不得自动换关键词、翻页或连续试探;需要继续检索时应先向用户说明会产生额外消耗。
二、输出策略(脚本默认行为) 始终将完整响应写入 <cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-store-feeds-<timestamp>.json(<cwd> 为脚本执行时的工作目录,在 Claude Code 里即当前项目目录;<session> 取自环境变量 SESSION_ID,按用户任务自动聚合;禁止写入 /tmp,当前目录不可写则报错)。 响应体 ≤ 8 KB:落盘后把完整 JSON 打印到 stdout。 响应体 > 8 KB:落盘后 stdout 只输出摘要(顶层字段、常见计数如 total/costToken、最大列表字段的长度 + 前 3 条样本)。 加 --inline 可强制全量打印到 stdout(同样落盘)。 读数据建议:先看摘要判断是否足够;需要具体字段时优先用 jq 或 ConvertFrom-Json 从保存的 json 文件按需抽取,避免整份 JSON 进入上下文。
三、认证与算力问题的处理 发生以下异常情况时,采用 references/onboarding.md 引导解决问题:未配置 API Key(环境变量未配置 LINKFOX_AGENT_API_KEY,也未配置 LINKFOXAGENT_API_KEY);响应 401 或 402 状态码;响应提示算力或余额不足(消息含"算力余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值"或类似含义的内容)。
四、官方参考索引 涵盖的能力与对应文档包括:createFeedDocument、getFeedDocument、createFeed、getFeed、getFeeds、cancelFeed。
五、前置条件 依赖 linkfox-amazon-store-auth;运行 python scripts/check_auth_dependency.py,exit 42 时需先安装授权 skill。应用需具备 Feeds 相关角色;feedType 须与上传文件格式匹配(见 Amazon Feed Type Values 文档)。
六、典型工作流
- create_feed_document.py → 得到 feedDocumentId 与 url(上传地址)。
- upload_feed_document.py → 对 url 执行 PUT 上传 feed 文件(不经 developerProxy)。
- create_feed.py → 传入 inputFeedDocumentId、feedType、marketplaceIds。
- get_feed.py / get_feeds.py → 轮询 processingStatus(如 IN_QUEUE、IN_PROGRESS、DONE、FATAL)。
- 处理完成后用 get_feed_document.py 下载 resultFeedDocumentId 对应文档(再按返回 URL 自行下载结果文件)。
七、当前能力与接口对照 createFeedDocument:feeds/2021-06-30/documents,POST,脚本 create_feed_document.py。 getFeedDocument:feeds/2021-06-30/documents/{feedDocumentId},GET,脚本 get_feed_document.py。 createFeed:feeds/2021-06-30/feeds,POST,脚本 create_feed.py。 getFeed:feeds/2021-06-30/feeds/{feedId},GET,脚本 get_feed.py。 getFeeds:feeds/2021-06-30/feeds,GET,脚本 get_feeds.py。 cancelFeed:feeds/2021-06-30/feeds/{feedId},DELETE,脚本 cancel_feed.py。 上传文档内容:createFeedDocument 返回的 URL,PUT,脚本 upload_feed_document.py。 共享模块为 _spapi_feeds_common.py。
八、脚本示例 设置环境变量:export LINKFOXAGENT_API_KEY="<your-key>" 创建文档:python scripts/create_feed_document.py '{"sellerId":"A1...","region":"NA","contentType":"text/tab-separated-values; charset=UTF-8"}' 上传文档:python scripts/upload_feed_document.py '{"uploadUrl":"<from createFeedDocument>","contentType":"text/tab-separated-values; charset=UTF-8","filePath":"./inventory.tsv"}' 提交 Feed:python scripts/create_feed.py '{"sellerId":"A1...","region":"NA","feedType":"POST_FLAT_FILE_INVLOADER_DATA","marketplaceIds":["ATVPDKIKX0DER"],"inputFeedDocumentId":"<feedDocumentId>"}'
九、显示规则 先看 developerProxy.errcode / httpStatus;createFeedDocument 常为 201,createFeed 常为 202。getFeeds 分页:仅用上一页 nextToken 作为下一请求的 paginationToken 参数,Amazon 侧参数名为 nextToken(脚本字段名 nextToken)。upload 失败与 SP-API 网关无关,需检查 uploadUrl 是否过期、Content-Type 是否与 createFeedDocument 一致。网关 path 白名单需包含 feeds/2021-06-30/ 前缀。
十、重要限制 本 skill 不代替 Amazon 侧 feed 文件 schema 校验;feedType、TSV/XML 格式以官方为准。下载 getFeedDocument 返回的 url 内容需另行 HTTP GET(与 upload 类似,不经 developerProxy)。详见 references/api.md。
十一、Amazon SP-API 接口保护与重试指引 同一店铺连续收到 Amazon SP-API 的 400、403、404 或 429 时,网关会返回 450、453、454 或 459 并短暂冷却。这些自定义状态码不是 Amazon 原生状态,也不表示封号;目的是避免持续异常或高频调用扩大店铺风险。 450:对应 400,请求异常,范围是店铺+接口,60 秒内超过 3 次冷却 5 分钟,10 分钟内超过 4 次冷却 20 分钟,处理方式为停止原参数重试,检查必填字段、marketplace、ID、日期和请求体。 453:对应 403,店铺未授权,范围是该店铺全部接口,60 秒内超过 2 次冷却 5 分钟,10 分钟内超过 4 次冷却 30 分钟,处理方式为停止该店铺调用,检查授权、权限、店铺归属和区域。 454:对应 404,资源不存在,范围是店铺+接口,60 秒内超过 3 次冷却 5 分钟,10 分钟内超过 4 次冷却 30 分钟,处理方式为确认资源 ID、所属店铺/站点、资源状态和接口路径。 459:对应 429 限流中,范围是店铺+接口,首次冷却 15 秒,2 分钟内超过 2 次冷却 30 秒,3 分钟内超过 4 次冷却 2 分钟,处理方式为降低并发、分页和轮询频率并逐级退避。 应立即停止自动或并发重试,不得通过换脚本或重复创建任务绕过保护;优先遵循 retryAfter、blockedUntil,没有时按表中时长说明。450/453/454 必须先修正参数、授权或资源标识,冷却后最多谨慎重试一次;再次触发则停止调用。453 期间停止该店铺全部 SP-API。应保留已有 reportId、feedId 等任务 ID;写操作结果不确定时先查询状态,不直接重放。向用户先说明店铺保护,再给原因、处理和等待时间,不要只说“LinkFox 限流”或“服务器繁忙”。
十二、算力消耗规则 不消耗算力。
反馈信息:skillName 为 linkfox-amazon-store-feeds。