Shopify Functions

Shopify Function 取不到 variant 字段与行属性

现象#

输入查询只写了 cart.lines { merchandise { id } },函数里读不到 sku 与商品 metafield;补了 attributes 之后,每条行的自定义属性又都是空数组。

原因#

  • merchandise 是联合类型,不写 ... on ProductVariant 就只能拿到 id
  • 行属性在 line.attributes,购物车级属性在 cart.attributes
  • 属性只在顾客填写或脚本写入后存在,未填写的行直接读 value 会抛错
  • 国家要从 localization.country.isoCode 取,buyerIdentity 未登录时是 null

处理步骤#

  1. 把 merchandise 展开成 ... on ProductVariant { id sku product { id } }
  2. 按 key 取属性:gift: attribute(key: "_gift") { value },不要遍历数组
  3. 对 attribute 结果判空,缺失时走默认分支而不是直接读 value
  4. 市场判断用 localization.country.isoCode,别混用 buyerIdentity
  5. 回放时把 input.json 与线上日志的同一字段对照,确认片段已生效

验收标准#

日志的 input 里每行都能看到 sku、商品 metafield 值与 _gift 属性,切换市场后函数走对应国家分支。

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