亚马逊-店铺数据上传

内容来源:clawhub · 原始地址 · 查看安装指南

原始内容


name: linkfox-amazon-store-feeds description: 亚马逊店铺 Feeds(与 linkfox-amazon-store-auth / report / listings / pricing / orders 同系列),经 /spApi/developerProxy 调用 SP-API Feeds v2021-06-30:createFeedDocument、getFeedDocument、createFeed、getFeed、getFeeds、cancelFeed;另含 upload_feed_document 向预签名 URL 上传内容。当用户提到亚马逊 Feed、提交库存/Listing Feed、POST_FLAT_FILE、feedType、feedDocumentId、feedId、取消 Feed、查询 Feed 处理状态、Feeds API、SP-API 上传文件 时触发。

Amazon 店铺 Feeds

本 skill 与 linkfox-amazon-store-auth 等同属 Amazon Store 系列:先 POST /spApi/storeTokens,再 POST /spApi/developerProxy 转发 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(同样落盘)

读数据建议:先看摘要判断是否足够;需要具体字段时优先用 jqConvertFrom-Json 从保存的 json 文件按需抽取,避免整份 JSON 进入上下文。

解决认证和积分问题

发生以下异常情况时,采用以下措施来处理:

异常情况

  • 未配置API Key:环境变量未配置 LINKFOX_AGENT_API_KEY,也未配置 LINKFOXAGENT_API_KEY
  • 响应401或402状态码
  • 响应提示积分或余额不足:消息含"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值",或类似含义的内容。

措施

官方参考索引

能力 文档
createFeedDocument createFeedDocument
getFeedDocument getFeedDocument
createFeed createFeed
getFeed getFeed
getFeeds getFeeds
cancelFeed cancelFeed

Prerequisites

  1. 依赖 linkfox-amazon-store-auth;运行 python scripts/check_auth_dependency.py,exit 42 时需先安装授权 skill。
  2. 应用需具备 Feeds 相关角色;feedType 须与上传文件格式匹配(见 Amazon Feed Type Values 文档)。

典型工作流

  1. create_feed_document.py → 得到 feedDocumentIdurl(上传地址)。
  2. upload_feed_document.py → 对 url PUT 上传 feed 文件(不经 developerProxy)。
  3. create_feed.py → 传入 inputFeedDocumentIdfeedTypemarketplaceIds
  4. get_feed.py / get_feeds.py → 轮询 processingStatus(如 IN_QUEUE、IN_PROGRESS、DONE、FATAL)。
  5. 处理完成后用 get_feed_document.py 下载 resultFeedDocumentId 对应文档(再按返回 URL 自行下载结果文件)。

Current Capabilities

能力 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


Scripts 示例

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>"}'

Display Rules

  1. 先看 developerProxy.errcode / httpStatus;createFeedDocument 常为 201,createFeed 常为 202
  2. getFeeds 分页:仅用上一页 nextToken 作为下一请求的 paginationToken 参数名在 Amazon 侧为 nextToken(脚本字段名 nextToken)。
  3. upload 失败与 SP-API 网关无关,检查 uploadUrl 是否过期、Content-Type 是否与 createFeedDocument 一致。
  4. 网关 path 白名单需包含 feeds/2021-06-30/ 前缀。

Important Limitations

  • 本 skill 代替 Amazon 侧 feed 文件 schema 校验;feedType、TSV/XML 格式以官方为准。
  • 下载 getFeedDocument 返回的 url 内容需另行 HTTP GET(与 upload 类似,不经 developerProxy)。
  • 详见 references/api.md

积分消耗规则

不消耗积分。

Feedback: skillNamelinkfox-amazon-store-feeds


更多跨境 skill:LinkFox Skills