【分享】Shopify 元字段、元对象傻傻分不清?快速带你了解上手
简单聊聊
最近重新梳理产品分类时,我又遇到了没有好好使用元字段的案例:很多人宁愿做多个模板逐个定制,也不会使用元字段。这一期就来细说 Metafield 的作用。
先用一句话记住它们的区别
在 Shopify 后台整理产品时,你可能会同时看到产品元字段、类别元字段和元对象。这三个名字很像,但负责的事情并不相同。
- 产品元字段(Product metafield):保存在某个产品上的额外数据;
- 类别元字段(Category metafield):Shopify 根据标准产品类别提供的属性;
- 元对象(Metaobject):可以独立建立、重复引用的一整份结构化资料。
如果只记一句话,可以记住:元对象负责保存可以复用的资料,产品元字段负责把资料或某个值连接到产品,类别元字段则是 Shopify 根据产品类别提供给你的标准属性。
产品元字段:给产品增加默认字段以外的信息
Shopify 默认的产品资料已经包括标题、描述、图片、价格、库存、SKU、供应商和标签等字段。但是实际经营时,这些内容通常不够用。
例如一家户外用品店可能还需要记录:
- 产品材质;
- 适用人群;
- 使用场景;
- 重量和尺寸;
- 包装内容;
- 安装方式;
- 兼容型号;
- 定制周期。
这些额外信息就可以使用产品元字段保存。进入 Shopify 后台的 Settings > Custom data > Products,可以创建自己的元字段定义。例如创建:
名称:安装位置Namespace and key:custom.installation_position类型:Single line text创建完成后,每个产品编辑页都会出现这个字段。不同产品可以填写不同内容,例如“车把”“车架”或“座管”。相比把信息直接写死在主题模板里,元字段让数据留在产品本身,后续更换主题或调整页面模块时也更容易继续使用。

产品元字段支持文本、数字、重量、尺寸、颜色、图片、文件、URL、产品引用、集合引用和元对象引用等类型。创建时不要为了方便全部选择文本。如果记录的是重量,就使用重量类型;如果需要选择多个固定资料,就选择引用或列表。字段类型越准确,后续筛选、主题读取和应用联动越可靠。
元对象:把一整套资料建立成可以复用的资料卡
元对象不是某个产品上的单独参数,它更像一张可以反复使用的结构化资料卡。
例如一家自行车配件店希望管理“适配品牌”,可以创建一个名为 Compatible Brand 的元对象定义,并设置这些字段:
品牌名称品牌 Logo品牌简介官方网站接着分别建立 Shimano、SRAM、Trek 等元对象条目。以后产品页、品牌导航、博客或专题模块需要展示这些品牌时,都可以引用同一份资料。如果 Logo 或简介发生变化,只需要修改对应的元对象条目,不需要进入几十个产品模板逐个替换。
这就是元对象最大的价值:**一份资料,多处引用,统一维护。**它很适合管理品牌、车型、安装方式、产品组件、FAQ、材质说明、作者、门店和服务项目等重复出现的内容。

产品元字段与元对象如何连接
建立好元对象以后,还需要让产品知道自己应该引用哪一条资料。此时可以创建一个产品元字段,并把类型设置为 Metaobject reference。
例如先建立元对象条目:
组件:Computer Mount再创建产品元字段:
名称:产品组件Namespace and key:custom.component类型:Metaobject reference之后进入产品编辑页,就可以在“产品组件”字段中选择 Computer Mount。多个产品可以引用同一条元对象资料,但并不会复制出多份内容。当元对象中的图片或描述更新时,读取这条资料的页面也可以使用更新后的内容。

引用类型还分为单个引用和列表引用。一个产品只有一个主要组件时,使用 Metaobject reference;确实需要同时关联多个组件时,才使用 List of metaobject references。不要因为列表看起来更灵活就默认使用列表,否则 Liquid 读取和后台维护都会变复杂。
类别元字段:Shopify 根据标准分类提供的属性
类别元字段不是店主自由创建的普通字段,而是 Shopify 根据标准产品分类提供的特殊属性。
例如你把产品类别设置为某种自行车配件后,Shopify 可能提供颜色、材质、适用自行车类型或兼容品牌等类别元字段。不同类别拥有的字段并不完全相同,因为服装、电子产品和自行车配件需要描述的属性本来就不一样。

这些字段属于 Shopify 的标准产品分类体系,能够帮助 Shopify 更准确地理解商品,也可能与 Search & Discovery、变体选项、Google & YouTube 和其他应用共享商品属性。随着 Shopify 的 AI 和自动化能力发展,结构清晰的标准数据也比散落在描述中的一段文字更容易被系统读取。
所以,即使你准备建立自己的产品元字段,也不要忽略 Shopify 已经提供的类别元字段。**标准字段能够准确表达的内容,优先填写标准字段;标准字段无法满足的业务资料,再用自定义产品元字段补充。**相同信息不要在多个地方填出互相矛盾的版本。
有时集合页筛选器会出现 Bicycle Parts、Bicycle Small Parts 等名称,但你在产品标签里找不到它们。这些内容可能来自产品的标准分类及其父级结构,并不一定是你手动添加的标签。遇到这种情况,应先检查产品类别和 Search & Discovery 的筛选来源,而不是继续添加重复标签。
用在产品页前台:一个模板展示不同卖点
元字段最直接的用途,是让同一个产品模板根据不同产品显示不同内容。
例如产品页有“核心规格”模块,主题可以通过动态源连接材质、重量、安装位置和包装内容。产品 A 填写铝合金和 120 克,产品 B 填写不锈钢和 180 克;前台使用的是同一个模块,但展示的是各自产品的数据。
这样就不需要为了每个产品复制一份模板,也不会因为修改公共排版而逐个调整产品页。真正需要定制的应该是数据内容,而不是不断复制页面结构。
如果主题编辑器支持动态源,可以直接点击字段旁的动态源图标连接元字段。如果主题没有对应模块,也可以使用少量 Liquid 读取。
单个普通元字段可以这样判断和展示:
{% if product.metafields.custom.material.value != blank %} <div class="product-material"> <strong>Material:</strong> {{ product.metafields.custom.material.value }} </div>{% endif %}如果产品元字段引用的是一个元对象,可以先取得它的 value:
{% assign component = product.metafields.custom.component.value %}
{% if component != blank %} <h3>{{ component.title }}</h3> <p>{{ component.description }}</p>{% endif %}如果字段类型是元对象列表,则需要循环:
{% for component in product.metafields.custom.components.value %} <h3>{{ component.title }}</h3>{% endfor %}上面的代码只是解释读取逻辑。真正修改主题前要检查主题已有的 section、snippet 和 JavaScript,避免重复输出或破坏原有样式。

用在 Search & Discovery:让集合页筛选来自真实产品数据
当产品数量增加后,客户需要通过材质、颜色、尺寸、兼容型号或使用场景筛选商品。安装 Shopify 的 Search & Discovery 后,可以在筛选器中选择受支持的产品属性、类别元字段和产品元字段。
例如把 custom.material 加入筛选器后,填写了 Aluminum、Titanium 和 Carbon Fiber 的产品,就可以在集合页形成对应筛选项。客户选择某个材质时,系统会筛选出字段值匹配的产品。
要让筛选器好用,后台数据必须统一。不要在不同产品中分别填写 Titanium、titanium、Ti 和“钛合金”,否则很容易形成多个意思相同的筛选项。适合固定选项的数据,应尽量使用列表、颜色、标准类别字段或元对象引用,而不是让每个人自由输入文本。

用在 JSON-LD:数据填好还要正确映射
产品元字段和类别元字段还可以为产品页的 JSON-LD 提供更完整的数据。例如产品后台已经填写材质和重量,可以在主题的 Product 结构化数据中读取,并映射到符合 Schema.org 规范的属性。
{% if product.metafields.custom.material.value != blank %} "material": {{ product.metafields.custom.material.value | json }},{% endif %}这里最重要的不是“把所有元字段都塞进 JSON-LD”,而是确认该属性是否属于 Product 支持的标准字段、值的格式是否正确,以及页面前台是否也能让客户看到相同信息。
例如 material、brand 和部分重量信息有对应的 Schema 表达方式;某些没有独立标准属性的业务资料,可以根据实际情况考虑 additionalProperty。不能自己创造一个 Google 和 Schema.org 都不认识的字段名,也不能为了 SEO 输出页面上不存在或不真实的数据。
修改后应使用 Google Rich Results Test 和 Schema Markup Validator 检查输出结果。结构化数据的作用是帮助搜索引擎理解页面,它不能替代产品描述、前台规格、GMC Feed 或真实的客户价值。

最后应该怎么选择
如果仍然分不清,可以按下面的方式判断:
| 需求 | 更适合使用 |
|---|---|
| 每个产品有不同的重量、尺寸或包装内容 | 产品元字段 |
| Shopify 已按产品类别提供材质、颜色等字段 | 类别元字段 |
| 一份品牌、车型或 FAQ 资料需要多处复用 | 元对象 |
| 产品需要选择一条可复用资料 | 元对象引用类型的产品元字段 |
| 一个产品需要关联多条资料 | 元对象列表引用 |
对新手来说,不需要一开始建立几十个字段。先选一类产品,列出客户购买前最需要了解的五到八项信息,再检查哪些属于 Shopify 已提供的类别元字段,哪些需要自定义产品元字段,哪些内容值得建立成元对象重复使用。
元字段不是单纯为了让后台资料更丰富,它连接着产品页展示、集合页筛选、应用数据和结构化信息。把数据从一开始整理正确,后面调整主题、优化 SEO 或扩展产品线时,都会少做很多重复工作。