建好 metafield 定义但商品上取不到值怎么查
现象#
在 Settings > Custom data 建了 custom.material 定义并 pin 到商品页,编辑页能看到输入框,但查 metafield(namespace: "custom", key: "material") 返回 null。
原因#
- 定义只是 schema,值要按 owner 单独写,建定义不会给任何商品赋值
- ownerType 选成 ProductVariant 时,商品级 metafield 查询永远为空
- metafieldsSet 不带 type 且没有匹配定义时,写入直接失败
- pin 只影响后台展示位置,不改变 API 与 Liquid 的可见性
处理步骤#
- 用
metafieldDefinitions(ownerType: PRODUCT, first: 50)核对 namespace、key、type - 查值改成
product(id: $id){ metafield(namespace: "custom", key: "material"){ value } } - 写入用
metafieldsSet,显式带ownerId与type - 批量写每 25 条一批,超过上限整次请求会被拒绝
- 确认
userErrors为空后再读一次,验证值真的落库
验收标准#
商品编辑页该字段有值,GraphQL 返回非 null 的 value,CSV 导出对应列不再为空。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。