用途
本技能用于通过 Keepa Product Request API 按 ASIN 获取亚马逊商品详情,帮助亚马逊卖家和分析师针对一个或多个 ASIN、跨多个亚马逊站点获取结构化商品数据。
主要能力
给定一个或多个 ASIN 和站点,返回较完整的商品信息,包括:价格、标题、Item Highlights(itemHighlights,若有)、主图、上架日期、材质、重量、尺寸、销售排名、月销量(当前及最多 12 个月历史)、FBA 费用、评分、评论数、类目树等。
要点:
- 单次请求最多查询 5 个 ASIN,用逗号分隔。
- domain 参数为数字站点 ID(如 1 = Amazon.com 美国),不是国家代码。
- history 设为 1 时包含历史销量数据(最多近 12 个月月销、30/90/180 天平均销售排名);设为 0 只返回当前商品信息。
- products[].itemHighlights 是与标题分离的短商品信息字符串,可能为 null、空白或缺失;无需额外请求参数,在 history=0 时也可返回。
- 响应不包含完整商品描述或评论内容。Item Highlights 不等同于五点描述(特征)或完整描述。
参数说明
domain(必填):数字亚马逊站点 ID,映射为:1=Amazon.com(美国)、2=Amazon.co.uk(英国)、3=Amazon.de(德国)、4=Amazon.fr(法国)、5=Amazon.co.jp(日本)、6=Amazon.ca(加拿大)、8=Amazon.it(意大利)、9=Amazon.es(西班牙)、10=Amazon.in(印度)、11=Amazon.com.mx(墨西哥)、12=Amazon.com.br(巴西)。用户未指定站点时默认 1(美国)。
asin(必填):一个或多个亚马逊标准识别号,多个用逗号分隔,单次最多 5 个,字符串总长度上限 300 字符。
history(可选):是否包含历史数据(近 12 个月月销、30/90/180 天平均销售排名)。设为 1 包含历史,0(默认)仅基本信息。
使用方式
调用方式:
- API 端点:POST /keepa/productRequest(完整参数/响应/错误码见 references/api.md)
- Python 脚本:python scripts/keepa_product_detail.py '<JSON 参数>' [--inline]
成本约束:本工具会消耗算力;同一会话同一参数组合默认只调用一次,脚本带 24h 本地缓存。失败/空结果不得自动换关键词、翻页或改邮编连续试探;需要继续检索时先向用户说明会产生额外消耗。
输出策略(脚本默认行为):
- 始终将完整响应写入 <cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-keepa-product-request-<timestamp>.json(<cwd> 为脚本执行时的工作目录;<session> 取自环境变量 SESSION_ID,按用户任务自动聚合;禁止写入 /tmp,当前目录不可写则报错)
- 响应体 ≤ 8 KB:落盘后把完整 JSON 打印到 stdout
- 响应体 > 8 KB:落盘后 stdout 只输出摘要(顶层字段、常见计数如 total/costToken、最大列表字段的长度 + 前 3 条样本)
- 加 --inline 强制全量打印到 stdout(同样落盘)
读数据建议:先看摘要判断是否足够;需要具体字段时优先用 jq 或 ConvertFrom-Json 从保存的 json 文件按需抽取,避免整份 JSON 进入上下文。
使用示例:
- 单个 ASIN 查询(美国站,基本信息):{"asin": "B0088PUEPK", "domain": "1"}
- 单个 ASIN 含历史销量:{"asin": "B0088PUEPK", "domain": "1", "history": 1}
- 批量查询多个 ASIN(德国站):{"asin": "B0088PUEPK,B00U26V4VQ,B07M68S376", "domain": "3", "history": 1}
- 日本站查询:{"asin": "B09V3KXJPB", "domain": "5", "history": 0}
- 多 ASIN 竞品对比(美国站,含销量历史):{"asin": "B0CXYZ1234,B0CXYZ5678,B0CXYZ9012,B0CXYZABCD", "domain": "1", "history": 1}
认证和算力问题
发生以下异常情况时,采用 references/onboarding.md 引导解决:
- 未配置 API Key:环境变量未配置 LINKFOX_AGENT_API_KEY,也未配置 LINKFOXAGENT_API_KEY。
- 响应 401 或 402 状态码。
- 响应提示算力或余额不足:消息含"算力余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值",或类似含义的内容。
展示规则
- 数据清晰呈现:用结构化表格展示商品详情,将相关字段(如尺寸、销售数据)分组便于阅读。
- 价格与货币:始终将价格与货币一起显示(如 "$29.99 USD")。响应中的 currency 字段表示当地货币。
- 销售趋势:含历史数据时,用表格呈现 12 个月销售趋势或描述走势(增长、下降、稳定)。
- 尺寸与重量:适当将毫米值转换为更直观的单位(如同时显示 mm 和英寸,或 mm 和 cm);注意重量单位为克。
- 不可用数据:值为 0 或 -1 的字段表示数据不可用,不要作为实际测量值显示,应标注 "N/A" 或省略。
- 图片显示:若存在 imageUrl,展示商品图片以帮助用户识别商品。
- 错误处理:查询失败时根据响应解释问题并建议修正(如无效 ASIN 格式、不支持的站点)。
- 大批量结果:批量查询多个 ASIN 时,先给出汇总表,再按需提供单个商品详情。
- Item Highlights:从完整响应的 products[].itemHighlights 读取,不要只依赖 stdout 摘要或表格列。将其原值单独于标题显示。若缺失、为 null 或空白,标注 "未返回/不可用";不要推断亚马逊 listing 缺少该项,也不要从标题、五点描述或描述重建。
适用场景
适用于按 ASIN 获取商品数据的场景:单个 ASIN 查询、单独查询 Item Highlights、价格查询、月销量查询、多 ASIN 对比、历史销量分析、类目/分类查询、尺寸重量等物理规格查询、FBA 费用估算、上架日期查询、FBA/FBM 配送方式判断等。
不适用于:搜索词/关键词分析(应使用 ABA 数据工具)、完整商品描述或评论文本、生成新的 listing 文案(可支持获取已有标题和 itemHighlights)、广告/PPC 活动数据、卖家账号或店铺级分析、无具体 ASIN 的商品调研(如"找到厨房类目趋势商品")、价格历史图表或随时间变化的 Buy Box 历史(仅有当前和平均排名数据)。
边界判断:当用户说"商品调研"或"竞品分析"时,若其有具体 ASIN 并想要结构化商品数据(价格、销量、尺寸、类目),本技能适用;若其想要关键词级分析、无具体 ASIN 的市场整体趋势或广告指标,本技能不适用。
限制
- 不返回完整商品描述或评论:API 可返回简短 Item Highlights,但不可返回完整商品描述文本或评论内容。
- Item Highlights 可用性:需要后端部署透传 itemHighlights 且有可用上游数据,不要承诺每个 ASIN 都有值。
- 单次请求最多 5 个 ASIN。
- asin 字符串长度上限 300 字符。
- 历史数据可选:仅当 history 设为 1 时才返回月销历史。
- 数据时效性:lastUpdate 字段表示商品数据最后刷新时间。
算力消耗规则
按动态规则计费:消耗算力 = 0.045 × 本次商品详情查询消耗的 Keepa token。
重要:本技能的服务按倍数动态计算,可能一次性消耗大量算力,必须提醒用户,由用户决定是否继续。
反馈
当出现以下情况时,通过 Feedback API 自动检测并报告反馈:本技能描述的功能或目的与实际行为不符、结果与用户意图不符、用户对本技能表达不满或称赞、你认为可改进之处。按 references/api.md 调用反馈 API,不要打断用户流程。