linkfox-amazon-store-listings について
`linkfox-amazon-store-listings` は、Amazon ストアの商品出品と関連 API を扱うスキルです。出品者 SKU の管理に加え、出品制限の確認や Product Type 定義の取得にも対応します。
主な機能
- 01出品情報の取得と一覧検索
- 02出品の作成・部分更新・削除
- 03ASIN の出品制限確認
- 04Product Type の検索と定義取得
活用シーン
- 01出品者 SKU の出品情報を確認
- 02条件に合う出品を検索
- 03商品出品を更新または削除
- 04ASIN の制限と Product Type 定義を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ linkfox-ai/ linkfox-skills --skill linkfox-amazon-store-listingsインストール後、Claude Code で/linkfox-amazon-store-listingsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api.mdonboarding.mdscripts/_spapi_listings_common.pycheck_auth_dependency.pydelete_listings_item.pyget_definitions_product_type.pyget_listings_item.pyget_listings_restrictions.pyonboarding.pypatch_listings_item.pyput_listings_item.pysearch_definitions_product_types.pysearch_listings_items.py詳細
Amazon 店铺 Listings 与相关 API
本 skill 与 linkfox-amazon-store-auth、linkfox-amazon-store-report 同属 Amazon Store 系列:依赖 linkfox-amazon-store-auth 选店(sellerId+region);直接 POST /spApi/developerProxy 传入 sellerId+region,由服务端解析 token(勿传 amzAccessToken,除非兼容旧调用)。转发上游 GET、PATCH、PUT 或 DELETE。
| 操作 | 官方参考 |
|---|---|
| 单条刊登 | getListingsItem |
| 检索列表 | searchListingsItems |
| 部分更新刊登 | patchListingsItem |
| 创建 / 全量更新刊登 | putListingsItem |
| 删除刊登 | deleteListingsItem |
| 刊登限制(ASIN) | getListingsRestrictions |
| 搜索 product type | searchDefinitionsProductTypes |
| 获取 product type 定义 | getDefinitionsProductType |
调用方式
- API 端点:
POST /spApi/developerProxy(不同操作通过请求体区分;完整参数/响应/错误码见references/api.md) - Python 脚本:
python scripts/<脚本名>.py '<JSON 参数>' [--inline](可用脚本见上文脚本一览) - 成本约束:本工具会消耗算力;失败/空结果不得自动换关键词、翻页或连续试探;需要继续检索时先向用户说明会产生额外消耗。
输出策略(脚本默认行为):
- 始终将完整响应写入
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json(<cwd>为脚本执行时的工作目录,在 Claude Code 里即当前项目目录;<session>取自环境变量SESSION_ID,按用户任务自动聚合;禁止写入 /tmp,当前目录不可写则报错) - 响应体 ≤ 8 KB:落盘后把完整 JSON 打印到 stdout
- 响应体 > 8 KB:落盘后 stdout 只输出摘要(顶层字段、常见计数如
total/costToken、最大列表字段的长度 + 前 3 条样本) - 加
--inline强制全量打印到 stdout(同样落盘)
读数据建议:先看摘要判断是否足够;需要具体字段时优先用 jq或ConvertFrom-Json或ConvertFrom-Json 从保存的 json 文件按需抽取,避免整份 JSON 进入上下文。
解决认证和算力问题
发生以下异常情况时,采用 references/onboarding.md 引导解决问题:
异常情况
- 未配置API Key:环境变量未配置
LINKFOX_AGENT_API_KEY,也未配置LINKFOXAGENT_API_KEY。 - 响应401或402状态码
- 响应提示算力或余额不足:消息含"算力余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值",或类似含义的内容。
Prerequisites(必须先读)
本 skill 依赖 linkfox-amazon-store-auth。流程与 linkfox-amazon-store-report 相同:
- 运行
python scripts/check_auth_dependency.py;若 exit code 42 且 stderr 含DEPENDENCY_MISSING:,请先安装linkfox-amazon-store-auth。 - 不要在本 skill 内绕过依赖实现授权或令牌逻辑。
Current Capabilities
| 能力 | Path 要点 | 脚本 |
|---|---|---|
| 获取单条 Listing | listings/2021-08-01/items/{sellerId}/{sku} + Query | scripts/get_listings_item.py |
| 搜索刊登列表 | listings/2021-08-01/items/{sellerId} + Query(无路径尾段 SKU) | scripts/search_listings_items.py |
| 部分更新 Listing(PATCH) | 同 get 路径 + Query + JSON body | scripts/patch_listings_item.py |
| 创建 / 全量更新 Listing(PUT) | 同 get 路径 + Query + body;marketplaceIds 仅 1 个 | scripts/put_listings_item.py |
| 删除 Listing(DELETE) | 同 get 路径 + Query(marketplaceIds 仅 1 个) | scripts/delete_listings_item.py |
| 刊登限制 | listings/2021-08-01/restrictions + Query(asin、sellerId、marketplaceIds 等) | scripts/get_listings_restrictions.py |
| 搜索 Product Type | definitions/2020-09-01/productTypes + Query | scripts/search_definitions_product_types.py |
| 获取 Product Type 定义 | definitions/2020-09-01/productTypes/{productType} + Query;marketplaceIds 仅 1 个 | scripts/get_definitions_product_type.py |
searchListingsItems 下 identifiers / variationParentSku / packageHierarchySku 三者互斥(仅该接口;见 references/api.md)。searchDefinitionsProductTypes 下 keywords 与 itemName 互斥。
Quick Parameters
getListingsItem(単一)
| フィールド | 必須 | 説明 |
|---|---|---|
| sellerId | はい | 認可済み Seller ID |
| region | はい | NA / EU / FE |
| sku | はい | 出品者 SKU(ASIN ではありません) |
| marketplaceIds | はい | 1 つのみの marketplace id を推奨します |
| includedData / issueLocale | いいえ | references/api.md を参照してください |
searchListingsItems(一覧)
| フィールド | 必須 | 説明 |
|---|---|---|
| sellerId | はい | 認可済み Seller ID |
| region | はい | NA / EU / FE |
| marketplaceIds | はい | 1 つのみの marketplace id を推奨します |
| identifiers + identifiersType | いいえ | 最大 20 個です。variationParentSku、packageHierarchySku と併用できません |
| variationParentSku / packageHierarchySku | いいえ | identifiers とは併用できません |
| 時間範囲 / ステータス / 並べ替え / ページネーション | いいえ | createdAfter、lastUpdatedBefore、withStatus、sortBy、pageSize(≤20)、pageToken など。references/api.md を参照してください |
patchListingsItem(部分更新)
| フィールド | 必須 | 説明 |
|---|---|---|
| sellerId | はい | 認可済み Seller ID |
| region | はい | NA / EU / FE |
| sku | はい | 出品者 SKU |
| marketplaceIds | はい | 配列またはカンマ区切り文字列。スクリプトが Query に追加します |
| productType | はい | Amazon product type |
| patches | はい | 少なくとも 1 件の JSON Patch(op、path など) |
| includedData / mode / issueLocale | いいえ | references/api.md を参照してください |
putListingsItem(作成 / 全件更新)
| フィールド | 必須 | 説明 |
|---|---|---|
| sellerId | はい | 認可済み Seller ID |
| region | はい | NA / EU / FE |
| sku | はい | 出品者 SKU |
| marketplaceIds | はい | ちょうど 1 つの marketplace id |
| productType | はい | Amazon product type |
| requirements | はい | LISTING | LISTING_PRODUCT_ONLY | LISTING_OFFER_ONLY |
| attributes | はい | 対象の product type schema に準拠する必要があります |
| includedData / mode / issueLocale | いいえ | references/api.md を参照してください |
deleteListingsItem(削除)
| フィールド | 必須 | 説明 |
|---|---|---|
| sellerId | はい | 認可済み Seller ID |
| region | はい | NA / EU / FE |
| sku | はい | 出品者 SKU |
| marketplaceIds | はい | ちょうど 1 つの marketplace id |
| issueLocale | いいえ | references/api.md を参照してください |
getListingsRestrictions
| フィールド | 必須 | 説明 |
|---|---|---|
| sellerId | はい | storeTokens と Query に使用します |
| region | はい | NA / EU / FE |
| asin | はい | カタログ ASIN |
| marketplaceIds | はい | 配列またはカンマ区切り文字列 |
| conditionType / reasonLocale | いいえ | references/api.md を参照してください |
searchDefinitionsProductTypes
| フィールド | 必須 | 説明 |
|---|---|---|
| sellerId | はい | storeTokens に使用します |
| region | はい | NA / EU / FE |
| marketplaceIds | はい | 配列またはカンマ区切り文字列 |
| keywords または itemName | いいえ | 両方を同時に指定できません(空でない場合は相互排他) |
| locale / searchLocale | いいえ | references/api.md を参照してください |
getDefinitionsProductType
| フィールド | 必須 | 説明 |
|---|---|---|
| sellerId | はい | storeTokens に使用します |
| region | はい | NA / EU / FE |
| productType | はい | 例:LUGGAGE(path に設定します) |
| marketplaceIds | はい | ちょうど 1 つの id |
| querySellerId | いいえ | 上流の Query sellerId(出品者専用 schema)が必要な場合は指定します。通常、sellerId と同じ値です |
| productTypeVersion / requirements / requirementsEnforced / locale | いいえ | references/api.md を参照してください |
Scripts
scripts/get_listings_item.py— 単一 listing。scripts/search_listings_items.py— 一覧を検索します。scripts/patch_listings_item.py— PATCH による部分更新。scripts/put_listings_item.py— PUT による作成または全件更新。scripts/delete_listings_item.py— DELETE による出品削除。scripts/get_listings_restrictions.py— GET による出品制限の取得。scripts/search_definitions_product_types.py— GET による product type の検索。scripts/get_definitions_product_type.py— GET による product type JSON Schema の取得。scripts/check_auth_dependency.py— 依存関係の確認。
例:
export LINKFOXAGENT_API_KEY="<your-key>"
python scripts/get_listings_item.py '{"sellerId":"A1...","region":"NA","sku":"MY-SKU","marketplaceIds":["ATVPDKIKX0DER"]}'
python scripts/search_listings_items.py '{"sellerId":"A1...","region":"NA","marketplaceIds":["ATVPDKIKX0DER"],"identifiers":["B0XXXXXXXX"],"identifiersType":"ASIN"}'
python scripts/patch_listings_item.py '{"sellerId":"A1...","region":"NA","sku":"MY-SKU","marketplaceIds":["ATVPDKIKX0DER"],"productType":"LUGGAGE","patches":[{"op":"replace","path":"/attributes/item_name","value":[{"value":"New Title","marketplace_id":"ATVPDKIKX0DER"}]}]}'
python scripts/put_listings_item.py '{"sellerId":"A1...","region":"NA","sku":"MY-SKU","marketplaceIds":["ATVPDKIKX0DER"],"productType":"LUGGAGE","requirements":"LISTING","attributes":{"item_name":[{"value":"Title","marketplace_id":"ATVPDKIKX0DER"}]}}'
python scripts/delete_listings_item.py '{"sellerId":"A1...","region":"NA","sku":"MY-SKU","marketplaceIds":["ATVPDKIKX0DER"]}'
python scripts/get_listings_restrictions.py '{"sellerId":"A1...","region":"NA","asin":"B0XXXXXXXX","marketplaceIds":["ATVPDKIKX0DER"]}'
python scripts/search_definitions_product_types.py '{"sellerId":"A1...","region":"NA","marketplaceIds":["ATVPDKIKX0DER"],"keywords":["luggage"]}'
python scripts/get_definitions_product_type.py '{"sellerId":"A1...","region":"NA","productType":"LUGGAGE","marketplaceIds":["ATVPDKIKX0DER"],"querySellerId":"A1..."}'
Display Rules
- items 类接口:路径含 卖家 SKU 时强调非 ASIN;searchListingsItems 路径仅到
sellerId。 - 展示网关结果时说明
errcode/httpStatus;成功后再解析body(listing/searchResult/patchResult/putResult/deleteResult/restrictionsResult/productTypesSearchResult/productTypeDefinitionResult)。 - searchListingsItems 多页:从
searchResult取下一页 token(字段名以 Amazon 响应为准),传入pageToken。 - restrictions / definitions 路径与 items 不同;1005 时需为
listings/2021-08-01/restrictions与definitions/2020-09-01/productTypes等前缀分别配置白名单(以运维为准)。 - patch / put / delete 为写操作;delete 须谨慎;put 为全量
attributes;patch 仅顶层属性可 patch(以官方为准)。
Important Limitations
- marketplaceIds:get / searchListingsItems 脚本对多 id 常仅取第一个;put / delete / getDefinitionsProductType 多于 1 个即报错;patch、restrictions、searchDefinitionsProductTypes 行为见
references/api.md。 - searchListingsItems:
pageSize≤ 20;identifiers≤ 20。 - patch:
patches至少 1 条;JSON Patch 的delete与 deleteListingsItem 接口不同;Vendor 对部分 patch 可能 400。 - put:LISTING_OFFER_ONLY 对 Vendor 400。
- 白名单:
listings/.../items、listings/.../restrictions、definitions/2020-09-01/productTypes均须按需放行。
Amazon SP-API 接口保护与重试指引
同一店铺连续收到 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,没有时按表中时长说明。 - 450/453/454 必须先修正参数、授权或资源标识,冷却后最多谨慎重试一次;再次触发则停止调用。453 期间停止该店铺全部 SP-API。
- 保留已有
reportId、feedId等任务 ID;写操作结果不确定时先查询状态,不直接重放。 - 向用户先说明店铺保护,再给原因、处理和等待时间。可回复:“为保护您的亚马逊店铺安全,检测到 Amazon SP-API 连续返回{原因},当前已进入短暂保护。请先{处理动作},预计{等待时间}后再试;这不代表封号,也不是套餐或算力限制。”不要只说“LinkFox 限流”或“服务器繁忙”。
算力消耗规则
不消耗算力。
Feedback: 见 references/api.md 中 Feedback API,skillName:linkfox-amazon-store-listings。
更多跨境 skill:LinkFox Skills