Shopify 商品与变体

建好 metafield 定义但商品上取不到值怎么查

现象#

在 Settings > Custom data 建了 custom.material 定义并 pin 到商品页,编辑页能看到输入框,但查 metafield(namespace: "custom", key: "material") 返回 null。

原因#

  • 定义只是 schema,值要按 owner 单独写,建定义不会给任何商品赋值
  • ownerType 选成 ProductVariant 时,商品级 metafield 查询永远为空
  • metafieldsSet 不带 type 且没有匹配定义时,写入直接失败
  • pin 只影响后台展示位置,不改变 API 与 Liquid 的可见性

处理步骤#

  1. 用 metafieldDefinitions(ownerType: PRODUCT, first: 50) 核对 namespace、key、type
  2. 查值改成 product(id: $id){ metafield(namespace: "custom", key: "material"){ value } }
  3. 写入用 metafieldsSet,显式带 ownerId 与 type
  4. 批量写每 25 条一批,超过上限整次请求会被拒绝
  5. 确认 userErrors 为空后再读一次,验证值真的落库

验收标准#

商品编辑页该字段有值,GraphQL 返回非 null 的 value,CSV 导出对应列不再为空。

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