用途:Metafields 用于在 Shopify 资源(商品、订单、客户、店铺)上存储默认架构之外的自定义数据,例如商品的洗涤说明。
主要概念:命名空间(namespace,如 my_app、global)、键(key,如 washing_instructions)、类型(type,如 single_line_text_field、number_integer、json)、所有者(owner,如商品 ID、店铺 ID)。
定义:建议尽可能使用 Metafield Definitions(固定 metafield),以便在后台 UI 中集成并保证标准处理。创建路径为 Settings > Custom Data > [资源] > Add definition,访问方式为 namespace.key。
Liquid 访问:前台可显示数据,例如 {{ product.metafields.my_app.washing_instructions }};文件或图片型可用 product.metafields.my_app.size_chart.value 配合 image_url 输出;可用 != blank 判断是否存在。
GraphQL 读取:通过 product 查询的 metafield(namespace, key) 获取 value 与 type。写入使用 metafieldsSet 变更,传入 ownerId、namespace、key、type、value 等变量,并检查 userErrors。
私有 Metafields:若需对其他应用和前台隐藏数据,可使用 Private Metafields,但无法通过 Liquid 直接访问,需使用 privateMetafield 查询与变更,且需要 read_private_metafields / write_private_metafields 作用域;该方式现今较少使用,应用专属数据更推荐 app_data metafields。
限制:资料未提供具体版本兼容性、速率限制或完整错误码说明,暂未提供。