Shopify Function 取不到 variant 字段与行属性
现象#
输入查询只写了 cart.lines { merchandise { id } },函数里读不到 sku 与商品 metafield;补了 attributes 之后,每条行的自定义属性又都是空数组。
原因#
- merchandise 是联合类型,不写
... on ProductVariant就只能拿到 id - 行属性在
line.attributes,购物车级属性在cart.attributes - 属性只在顾客填写或脚本写入后存在,未填写的行直接读 value 会抛错
- 国家要从
localization.country.isoCode取,buyerIdentity 未登录时是 null
处理步骤#
- 把 merchandise 展开成
... on ProductVariant { id sku product { id } } - 按 key 取属性:
gift: attribute(key: "_gift") { value },不要遍历数组 - 对 attribute 结果判空,缺失时走默认分支而不是直接读 value
- 市场判断用
localization.country.isoCode,别混用 buyerIdentity - 回放时把 input.json 与线上日志的同一字段对照,确认片段已生效
验收标准#
日志的 input 里每行都能看到 sku、商品 metafield 值与 _gift 属性,切换市场后函数走对应国家分支。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。