分析阅读约 2 分钟

Amazon 价格:你的报价与 Featured Offer

使用匹配的上下文、已知运费以及一个经过测试、能保留缺失数据的离线模型,把你的 Amazon 报价与 Featured Offer 进行比较。

本页内容

在计算你的 Amazon 报价与 Featured Offer 价格之间的差距之前,先确认两次观察描述的是同一个商品、同一个站点和同一个选定的顾客上下文。让卖家身份和价格组成部分始终附在各自的观察记录上。如果运费或所需报价未知,就暂缓比较。

这是一份面向已授权卖家工具开发者的诊断方法。可下载的模型会在计算促销前的商品价加已知运费小计之前,把这个决定显式化。所有示例记录都是合成数据。固定范围是 US/USD、Consumer、New、单件;没有数量字段,所以单件输入是你的适配器必须强制执行的一个假设。

更低的商品价可能产生更高的小计

在第一个合成案例中,你的卖家是 seller-A。两条记录使用相同的 ASIN、NON_PRIME 会员身份、代表性位置和配送服务标签,观察时间相差 30 秒:

观察商品价已知运费小计卖家
你的报价$19.00$4.00$23.00seller-A
选定的 Featured Offer$21.00$0.00$21.00seller-B

模型计算 (19 + 4) - (21 + 0) = +2.00 USD。你的商品价更低,但你按定义得到的小计高出 2 美元。输出为正表示你的小计更高;为负表示更低。已知的零运费是证据;缺失的运费不能用零代替。

第二个案例中两位卖家的商品价都是 20 美元,已知运费都是 0 美元。差距为 0.00,而 featured_is_own_sellerfalse:选定的 Featured Offer 仍然属于 seller-B。第三个案例把该卖家改为 seller-A,返回 true。价格相等和卖家身份回答的是两个不同的问题。

这些结果解释的是所提供的记录。它们不解释 Amazon 为什么选中某条报价,也不能确定一个会胜出的价格。

选择能回答你问题的那份响应

字段名叫「price」并不足以说明来源。按记录所回答的问题来选择记录:

问题合适的证据在比较中的角色
我的卖家/SKU 报告的是哪条报价?getListingsItem 显式请求的 offers,限定到站点和报价类型自有报价观察
所选细分中哪条报价是 featured?来自 getCompetitiveSummaryfeaturedBuyingOptions,限定到 ASIN/站点Featured Offer 观察
价格最低的报价有哪些?检索指南中单独的 lowestPricedOffers 数据另一个问题;不能替代 featured 数据
报告了什么外部价格参考?日本以外为 CompetitivePrice;日本为 CompetitivePriceThreshold外部零售商参考;见迁移公告
什么价格可能让我的报价成为 featured?Featured Offer Expected Price,即 FOEP计算出的指导值,与观察到的报价是两回事

FOEP 描述的是促销前计算出的商品标价。Amazon 明确不提供 Featured Offer 保证,因为竞争报价和针对具体顾客的配送能力都可能影响选择。

自有一侧要显式请求 offersgetListingsItem 默认只返回 summaries。在关联竞争数据之前,先校验卖家/SKU 请求上下文,并把所选站点的 SKU 映射到预期 ASIN。选择适用的 B2C 报价和受众。Listings Items 模型把这些报价字段与 summary 分开存放。

仅凭这份响应并不能提供本模型所需的全部运费、会员身份和位置上下文。你的适配器需要为这些字段提供单独取证的输入。在它们已知之前,保留自有价格,但让这次小计比较保持未定论。

把可比性变成显式契约

模型接受的是规范化记录,而不是原始 Amazon 响应。它的完整案例文件展示了确切的结构。每一对记录独立于两次观察声明一个 expected_own_seller_id,然后提供来源类型、卖家、ASIN、站点、币种、成色、顾客类型、会员身份、位置、配送服务、时间戳和价格组成部分。

在把真实观察数据放入该结构之前,先做以下检查:

  1. 校验单条响应。 批量信封成功并不代表每个成员都成功。检查每个成员的状态、正文、ASIN、站点和请求的数据集。保留失败、缺失和不完整的观察。Pricing 模型定义了逐成员状态和可选数据集。
  2. 选择预期的上下文。 Featured Offer 按会员身份和区域上下文分段。可选的 sampleLocation 代表该分段内的一个位置,而不是对每位购物者的精确配送报价。只保留来源真正能证实的内容。
  3. 保留未知的组成部分。 Pricing 的 listingPrice 不含运费、Points 和促销;配送选项是可选的估算值。因此同一个模型不能为「悄悄把缺失运费当作免运费」提供理由。
  4. 让计算保持窄范围。 Amazon 警告返回的促销可能遗漏正在进行的促销。这个小计不含税费、Amazon Points、优惠券资格、完整的促销覆盖和配送质量。它不是结账总额。促销覆盖范围

可执行程序检查的是规范化后的会员身份、位置和服务字符串是否严格相等。这些是受信任的标签,不是 Amazon 上下文等价的证明。它同样信任适配器给出的来源、卖家和商品标签。上下文未知时使用 null;两个编造的 unknown 字符串会制造虚假的信心。USSTANDARD 是实验标签,不是原始站点 ID,也不是声称的 Amazon 配送选项值。

运行模型并检查暂缓项

解压完整比较 ZIP,在包含 compare.py 的目录中打开终端,然后运行:

sh
python3 -B compare.py
python3 -B compare.py --csv
python3 -B -m unittest -v test_compare.py

不需要任何软件包或账户凭据。README 记录了契约;compare.py测试套件可以分别查看。把 stdout 与记录的 JSONCSV 矩阵进行比较。

在默认策略下,14 个合成案例产生 3 次比较和 11 次暂缓:

案例结果解释
商品价更低,小计更高比较;+2.00按定义的自有小计更高
小计相等,卖家不同比较;0.00,卖家标志 false金额一致并不能识别出你的卖家
小计相等,卖家相同比较;0.00,卖家标志 true选定的记录识别出你的卖家
运费缺失;会员身份/位置/币种不匹配;自有卖家错误五次暂缓补齐缺失的证据或修正错误的关联
Featured Offer 失败或缺失两次暂缓保留不可用的观察
用外部参考、FOEP 或最低价替代三次暂缓改用 Featured Offer 证据
两次观察相隔 360 秒一次暂缓超出默认的时间偏差策略

暂缓项没有计算出的小计或差距:JSON 使用 null,CSV 使用空单元格。无效输入则会让命令以非零退出码停止。要做实验,编辑一份 cases.json 的副本并传入 --cases your-cases.json;CSV 只是输出,不是输入格式。

默认的最大偏差是300 秒(含),可用 --max-skew-seconds 配置。它检查的是两次观察时间之间的距离。它既不检查绝对时效,也不检查 Amazon 的新鲜度:两条同样陈旧的记录也可以比较。在把结果用于实际运营之前,请另行选择证据时效策略。

方法: ipvolt 在 AI 辅助下准备了本分析,核对了一手来源,并于 2026 年 9 月 16 日使用 CPython 3.14.7 运行了离线模型和 14 个通过的测试。源码目标为 Python 3.11+;该次记录的运行没有在 3.11 上执行。没有测试任何卖家账户、API 响应映射或零售价格采集。

对于已提交价格与你自己观察到的商品信息不一致的情况,请参阅 Amazon 商品信息更新:已接受不等于已生效。要在商品事件之后安排持久的刷新,请使用配套的 SP-API 通知指南。在做出定价决策之前,让这次比较的结果始终附带其两次观察和所声明的小计基准。

ipvolt 仍在开发中。加入早期访问名单,在访问开放时收到一封邮件。没有别的。

参考来源

  1. getListingsItem
  2. Listings Items API 2021-08-01 model, pinned revision
  3. getCompetitiveSummary
  4. Retrieve featured offers for a batch of ASINs
  5. Product Pricing API 2022-05-01 model, pinned revision
  6. Competitive-price migration and Japan exception
  7. getFeaturedOfferExpectedPriceBatch

标签:ProxiesTroubleshooting