通过 LinkFox /spApi/developerProxy 调用 SP-API A+ Content Management v2,实现亚马逊店铺 A+ 内容(增强图文页)管理,属于 linkfox-amazon-store-auth 与 linkfox-amazon-store-listings 同系列。
本 skill 与 linkfox-amazon-store-auth、 linkfox-amazon-store-listings 等同属 Amazon Store 系列:依赖 auth 选店( sellerId + region);直接 POST /spApi/developerProxy 传入 sellerId + region,由服务端解析 token(勿传 amzAccessToken,除非兼容旧调用)。转发上游 GET 或 POST。
操作官方参考搜索文档列表searchContentDocuments新建文档createContentDocument获取文档(内容/元数据)getContentDocument更新文档updateContentDocument列出 ASIN 关联listContentDocumentAsinRelations替换 ASIN 关联postContentDocumentAsinRelations校验文档与 ASINvalidateContentDocumentAsinRelations按 ASIN 查发布记录searchContentPublishRecords提交审核/发布postContentDocumentApprovalSubmission暂停前台展示postContentDocumentSuspendSubmission
POST /spApi/developerProxy(不同操作通过请求体区分;完整参数/响应/错误码见 references/api.md)python scripts/<脚本名>.py '<JSON 参数>' [--inline](可用脚本见上文脚本一览)输出策略(脚本默认行为):
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-store-aplus-content-<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。本 skill 依赖 linkfox-amazon-store-auth。
python scripts/check_auth_dependency.py;若 exit code 42 且 stderr 含 DEPENDENCY_MISSING:,请先安装 linkfox-amazon-store-auth。能力Path 要点脚本搜索 A+ 文档aplus/2020-11-01/contentDocuments + marketplaceId``scripts/search_content_documents.py创建 A+ 文档同上 POST + body contentDocument``scripts/create_content_document.py获取单篇文档.../contentDocuments/{contentReferenceKey} + includedDataSet(必填,至少 1 项)scripts/get_content_document.py更新文档同上 POST + bodyscripts/update_content_document.py列出关联 ASIN.../contentDocuments/{key}/asins``scripts/list_content_document_asin_relations.py全量替换关联 ASIN.../asins POST + body asinSet``scripts/post_content_document_asin_relations.py校验与 ASIN 的可用性.../contentAsinValidations POSTscripts/validate_content_document_asin_relations.py发布记录(按 ASIN).../contentPublishRecords + asin``scripts/search_content_publish_records.py提交审核.../approvalSubmissions POSTscripts/post_content_document_approval_submission.py暂停展示.../suspendSubmissions POSTscripts/post_content_document_suspend_submission.py
注意: postContentDocumentAsinRelations 为 全量替换 asinSet;从集合中移除 ASIN 会导致该 ASIN 上内容被 suspend(以 Amazon 行为为准)。详见 references/api.md。
字段必填说明sellerId是已授权 Seller ID(与 storeTokens 一致)region是NA / EU / FEmarketplaceId 或 marketplaceIds是目标站点;数组时脚本仅取 第一个
多数操作需要 contentReferenceKey(来自 searchContentDocuments 等)。官方说明该 key 非永久链接、未来可能变化。
字段必填说明includedDataSet是至少一项; CONTENTS、 METADATA(可并存)
字段必填说明asin是长度 ≥ 10
scripts/search_content_documents.pyscripts/create_content_document.pyscripts/get_content_document.pyscripts/update_content_document.pyscripts/list_content_document_asin_relations.pyscripts/post_content_document_asin_relations.pyscripts/validate_content_document_asin_relations.pyscripts/search_content_publish_records.pyscripts/post_content_document_approval_submission.pyscripts/post_content_document_suspend_submission.pyscripts/check_auth_dependency.py示例:
bash
export LINKFOXAGENT_API_KEY="<your-key>"
python scripts/search_content_documents.py '{"sellerId":"A1...","region":"NA","marketplaceId":"ATVPDKIKX0DER"}'
python scripts/get_content_document.py '{"sellerId":"A1...","region":"NA","marketplaceId":"ATVPDKIKX0DER","contentReferenceKey":"YOUR_KEY","includedDataSet":["CONTENTS","METADATA"]}'
python scripts/post_content_document_asin_relations.py '{"sellerId":"A1...","region":"NA","marketplaceId":"ATVPDKIKX0DER","contentReferenceKey":"YOUR_KEY","asinSet":["B0XXXXXXXXXX"]}'
python scripts/search_content_publish_records.py '{"sellerId":"A1...","region":"NA","marketplaceId":"ATVPDKIKX0DER","asin":"B0XXXXXXXXXX"}'
python scripts/post_content_document_approval_submission.py '{"sellerId":"A1...","region":"NA","marketplaceId":"ATVPDKIKX0DER","contentReferenceKey":"YOUR_KEY"}'
errcode / httpStatus;成功后再解析 developerProxy.body 或各脚本附带的 *Response 字段。contentReferenceKey 与前台「A+ ID」不一定一致。aplus/2020-11-01/ 须在网关 developerProxy 放行; 1005 需运维配置。contentDocument 结构复杂,须符合 Amazon 官方模型;本 skill 只做透传,不内置模板校验。marketplaceId(与 Listings 的 marketplaceIds 不同)。同一店铺连续收到 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: 见 references/api.md, skillName: linkfox-amazon-store-aplus-content。
更多跨境 skill: LinkFox Skills