Shopify Webhooks

订单 webhook 读不到 selling_plan_id 怎么办

现象#

代码里读 line_items[].selling_plan_id 得到 undefined,订阅订单被当成一次性购买,续费提醒全部漏发。

原因#

  • selling_plan_id 自 2026-10 版才出现在订单 webhook 的 line_items 上,旧版本没有
  • include_fields 只列了 id 与 quantity,该字段被裁掉,读出来自然是 undefined
  • 一次性购买的行该字段为 null,用真值判断会混淆 null 与字段不存在
  • 它只是计划的 id,不含配送周期与金额,当订阅合同用会算错续费日

处理步骤#

  1. 把订阅的 api_version 升到 2026-10 后重新 deploy 抓包
  2. 在 include_fields 里显式加 line_items.selling_plan_id
  3. 代码按 lineItem.selling_plan_id ?? null 读取,区分 null 与缺字段
  4. 需要周期与金额时用 sellingPlan 或 sellingPlanAllocation 回查
  5. 下笔订阅测试单,比对 webhook 与 Admin API 返回的 plan id

验收标准#

订阅订单的 line_items 里 selling_plan_id 有值且与后台计划 id 一致,一次性订单为 null。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。