来源中的信息
发生了什么
Shopify 官方开发者更新说明,POS 11.15 起,类型为 Percentage 的折扣,其 Discount.amount 返回百分比数值:例如,$200 商品上的 25% 折扣返回 amount: 25;POS 11.14 及更早版本返回抵扣金额 50。
变更适用于购物车级和商品行级的手动、应用及自动百分比折扣,并影响 Cart API 当前状态与订阅、多个折扣字段及 cartLineItem contextual API。
该行为适用于所有 POS UI extensions API 版本,保留旧 api_version 不会维持旧返回方式;FixedAmount 和 Code 类型的折扣不变,包括 type 为 Code 的百分比折扣码。
官方建议根据 Discount.type 判断 amount 的含义,并检查金额展示、节省金额计算、忠诚度积分和 bulkCartUpdate 等工作流;支持 POS 11.14 及更早版本的扩展需兼容旧行为。
经营影响
为什么重要
同一个字段在新旧 POS 版本中代表不同含义,扩展若把百分比数值当作货币金额处理,可能让前台展示或依赖该值的计算失真。
影响范围不只在折扣显示:如果扩展把购物车状态传回 bulkCartUpdate,折扣分配值也可能被错误地再次解释为百分比。
这是面向全球 POS UI 扩展的行为变更说明,不代表所有商家都会受影响;是否需要处理,取决于商家是否使用相关扩展及其折扣处理逻辑。
编辑观察
分析判断
这次变更的核心机制是 amount 的语义随 POS 版本改变,而不是折扣率本身改变;因此依赖该字段的代码应先识别 Discount.type,再决定按比例还是金额解释。证据来自 Shopify 单一官方更新说明,未提供独立验证。
商家层面的风险取决于扩展是否将 Percentage 的 amount 用于货币展示、优惠金额计算、积分或购物车回写;受影响的商家应优先核对这些具体路径,而非仅确认扩展能否加载。现有证据没有量化错误发生频率或经营损失。
兼容决策应以实际运行的 POS 版本和折扣类型为边界:POS 11.15 及以上验证新语义,仍支持 11.14 及更早版本时保留旧行为处理;官方说明旧 api_version 不构成规避方式,但没有给出各设备升级进度。
适用范围
对卖家的影响
使用 POS UI 扩展处理百分比折扣的商家,可能需要开发者检查金额展示、折扣节省额、忠诚度积分及集成计算是否依赖 Discount.amount。
若扩展通过 bulkCartUpdate 回写购物车,需重点验证百分比折扣的分配值是否会被重复或错误解释。
使用 FixedAmount 或 Code 类型折扣的相关逻辑不在此次行为变化范围内;不过,Code 类型的百分比折扣码也应按其 Code 类型与更新说明区分处理。
行动建议
现在应该做什么
- 1
盘点受影响的 POS 扩展逻辑
this-week请扩展开发者确认是否读取 Percentage 类型的 Discount.amount,并检查货币展示、优惠计算、积分及购物车回写。
- 2
按版本与折扣场景验证
this-week在 POS 11.15 或更新版本测试购物车级、商品行级及自动百分比折扣;若仍支持 11.14 或更早版本,也验证旧行为兼容。
- 3
确认设备升级覆盖情况
monitor记录仍运行旧版 POS 的设备,避免将新旧版本的 amount 值按同一语义处理。
暂时不要做什么
- 不要假设保留较旧的 POS UI extensions api_version 就能维持旧的 amount 返回行为。
- 不要把所有折扣类型都按此次变更处理;官方说明 FixedAmount 和 Code 类型保持不变。
来源与依据
证据与来源
来源可能仅提供标题或摘要。请结合下方具体证据范围阅读;链接与流程校验不等于独立事实核验。内部置信值是工作流信号,不代表事实正确的概率。
- 01来源链接
Shopify POS 11.15 corrects the value returned by Discount.amount for Percentage discounts to match the Cart API contract. Extensions that used this value as money need to update their logic. What changed A 25% discount on a $200 line item now returns amount: 25. POS 11.14 and earlier returned amount: 50, the monetary amount deducted. This applies to cart-level and line-item percentage discounts, including manual, app-applied, and automatic discounts exposed with type: 'Percentage'. It affects the Cart API's current state and subscriptions, lineItems[].discounts, cartDiscount, cartDiscounts, and the cartLineItem contextual API. This fix also prevents a percentage discount's monetary allocation from being reinterpreted as a percentage when an extension passes cart state back through bulkCartUpdate. FixedAmount and Code discounts are unchanged, including percentage-based discount codes exposed with type: 'Code'. Who's affected The change applies to all POS UI extensions API versions. Keeping an older api_version does not preserve the previous behavior. What to do Check Discount.type before interpreting amount, and update currency displays, savings calculations, loyalty points, and int
Shopify Developer Changelog · 流程状态: single-source
获取时间: 2026年10月8日 00:07 UTC
Claim is bounded to the ingested title or summary; no source body or quotation is retained.