Install
openclaw skills install @linkfox-ai/linkfox-amazon-store-feeds亚马逊店铺 Feed 批量数据提交与处理状态管理。用于创建 Feed 文档、向预签名地址上传 Feed 内容、提交库存或 Listing 等批量文件、查询或列出 Feed、获取结果文档以及取消 Feed。用户提到亚马逊 Feed、批量更新库存或商品、提交 Listing Feed、POST_FLAT_FILE、feedType、feedDocumentId、feedId、Feed 处理状态、Feed 结果、取消 Feed、Feeds API 时触发。即使未明确说“Feed”,只要希望通过亚马逊 SP-API 批量提交结构化商品或库存数据,也应触发此技能;单个 Listing 的增删改查使用 linkfox-amazon-store-listings。
openclaw skills install @linkfox-ai/linkfox-amazon-store-feeds本 skill 与 linkfox-amazon-store-auth 等同属 Amazon Store 系列:依赖 linkfox-amazon-store-auth 选店(sellerId+region);直接 POST /spApi/developerProxy 传入 sellerId+region,由服务端解析 token(勿传 amzAccessToken,除非兼容旧调用)。转发 GET / POST / DELETE。
POST /spApi/developerProxy(不同操作通过请求体区分;完整参数/响应/错误码见 references/api.md)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,当前目录不可写则报错)total/costToken、最大列表字段的长度 + 前 3 条样本)--inline 强制全量打印到 stdout(同样落盘)读数据建议:先看摘要判断是否足够;需要具体字段时优先用 jq或ConvertFrom-Json 从保存的 json 文件按需抽取,避免整份 JSON 进入上下文。
发生以下异常情况时,采用 references/onboarding.md 引导解决问题:
LINKFOX_AGENT_API_KEY,也未配置 LINKFOXAGENT_API_KEY。| 能力 | 文档 |
|---|---|
| createFeedDocument | createFeedDocument |
| getFeedDocument | getFeedDocument |
| createFeed | createFeed |
| getFeed | getFeed |
| getFeeds | getFeeds |
| cancelFeed | cancelFeed |
linkfox-amazon-store-auth;运行 python scripts/check_auth_dependency.py,exit 42 时需先安装授权 skill。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 自行下载结果文件)。| 能力 | path | method | 脚本 |
|---|---|---|---|
| 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"}'
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。nextToken 作为下一请求的 paginationToken 参数名在 Amazon 侧为 nextToken(脚本字段名 nextToken)。uploadUrl 是否过期、Content-Type 是否与 createFeedDocument 一致。feeds/2021-06-30/ 前缀。feedType、TSV/XML 格式以官方为准。references/api.md。同一店铺连续收到 Amazon SP-API 的 400、403、404 或 429 时,网关会返回 450、453、454 或 459 并短暂冷却。这些自定义状态码不是 Amazon 原生状态,也不表示封号;目的是避免持续异常或高频调用扩大店铺风险。
| 状态与 message | 范围 | 触发与冷却 | 处理 |
|---|---|---|---|
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,没有时按表中时长说明。reportId、feedId 等任务 ID;写操作结果不确定时先查询状态,不直接重放。不消耗算力。
Feedback: skillName:linkfox-amazon-store-feeds。
更多跨境 skill:LinkFox Skills