当前位置:主页 > 展馆模型 >

揭秘Shopify&Shopline Metafields(全网首发&最全)

2024-01-11 13:19

眼中脚下路,心中要有宏图。

大家好,我是跨境男孩Riven。

如果你正在做跨境电商独立站业务,你可能会发现在产品和产品分类页面上,装修显示的信息类型比较有限。

但使用Shopify或SHOPLINE建站的话,有Metafields功能,可根据需求自定义元字段。

从而可以实现对店铺功能或样式的定制、或做差异化、丰富页面内容进行SEO等,这都有助于改善商店的用户体验并最终带来更多销售。

什么是 Metafields元字段?

Metafields翻译成中文就是”元字段”,这个听起来相当技术性的名称,其实可以简单理解成"自定义字段",元字段服务的核心目的:提供额外信息。

Metafields 是一种将额外信息添加到 Shopify & SHOPLINE 资源(例如商品、博客、订单等)上的数据扩展方式。

独立站卖家有个性化装修店铺的需求,而Shopify 的主数据可能默认不支持很多字段及数据类型。

可能会有人说,将所有内容都放在产品描述字段中就行,用不上Metafields。

但随后你可能意识到它只是被视为静态文本,因此对导航、过滤器等没有真正的用处;另一个问题是,要在数百种产品、视觉或信息方面发挥个性化等也是不可能的。

那么Metafields就应运而生,可用于为Shopify&SHOPLINE店铺创建并展示额外的变量,以及存储特定的信息(如规格、尺寸表、可下载文档、发布日期、图像或部件号等)实现对店铺功能或样式的定制。

独立站卖家使用元字段,只需单击几下即可轻松创建和复用自定义数据。

然后,可以将它们添加到在线商店并进行设计,而无需任何编码。

同时开发者也能利用Metafields OpenAPI,存储扩展数据到平台,包括B端和C端、或私有应用数据等使用场景。

如下图,在产品详情页(https://www.allbirds.com/products/womens-tree-flyers )拓展添加产品亮点功能信息。

Metafields的组成部分

资源对象(OwnerResource):元字段所归属的资源类型,或称为"所有者资源类型"。例如商品(products)、自定义页面(pages)等。

所有者资源 ID(OwnerId):元字段所归属的资源对象ID,例如商品A的ID:1605898661

命名空间(NameSpace)一组元字段的容器。通过命名空间对元字段进行分组,可防止商家的元字段与具有相同键名的其他元字段发生冲突。

秘钥(Key)该元字段的键值。

数据类型(Type)元字段存储的数据类型,例如单行文本、URL、整数等。

值(Value)要存储在元字段中的数据。无论元字段的数据类型如何,该值始终存储为字符串。

名称(Name)元字段的名称。

描述(Description)该元字段定义的描述信息。

Metafields使用流程图

如何创建元字段定义?

从你的Shopify 后台,点击 设置 >自定义数据 菜单,然后选择你要定义的元字段资源类型(将元字段分配到的页面类型)。

为了演示,我来给商品(Products)创建一个元字段。

对于每种类型的自定义数据,必须先创建一个元字段定义Shopify的每个资源(即页面类型)有 200 个元字段定义的硬性限制。正常情况下,不会超出此限制。

图中个人认为是 Shopify中文版本翻译错误,Custom data 应该是翻译成”自定义数据”;

点击【自定义数据】- 【产品】-【添加定义】,就可以看到以下内容:

名称(name)

此元字段的名称,仅在商家管理后台和Metafields组件中可见。尽管如此,还是给它起一个容易识别的名字。

当你输入想定义的元字段名称时,Shopify下拉框可能会建议你使用标准元字段。标准定义已针对其特定用例进行了预先配置,并自动与你的主题和应用程序集成。

个人建议尽可能使用标准元字段。不过我在这篇文章教程中,还是创建自定义元字段来展示。

命名空间和密钥(namespace.key)

存储元字段的容器和秘钥,它遵循一个简单的[namespace].[key]结构,在同一资源对象下是一个唯一的标识符字符串。

你可以使用相同的命名空间将不同的键组合在一起。

这也仅供参考,但与元字段名称(Name)不同,你在编辑器为其编写自定义代码时,会使用它来引用元字段。

当你为自定义字段指定名称时,Shopify 会自动生成命名空间和组合键,但你可以将其编辑为更易于管理的内容。

描述(Description)

可以在定义的元字段旁边显示简短说明或解释。通常使用它来帮助店铺运营知道如何输入正确的值。

数据类型(Type)

你可以为元字段输入值,选择不同的数据类型进行定义。对于许多类型,你可以选择是将输入作为单个值,还是作为值列表(多个值)。

以下是截至 2023 年 Shopify 支持的内容类型的完整列表,SHOPLINE Metafields基本也都支持。

这是非必填,你可以使用它来将输入值限制在特定范围内。选项将根据你选择的数据类型而有所不同。

比如下方示例元字段,位于navigation名称空间中并命名为jewelry. 它接受 从3 个枚举值中选择一个。

如何对商品等元字段进行赋值?

在 Shopify 后台进入某产品详情页面,然后向下滚动到底部,你就会看到Metafields元字段组件区域。

单击其中之一,系统就会提示输入一个值。如果它被定义为列表,还可以选择添加新的列表项。

实际上,你需要什么类型的元字段、多少个元字段,都取决于你销售的产品、C端透出以及后端系统集成是否需要。

这是一个珍珠项链商品详情页示例:

如何在前台显示 Shopify&SHOPLINE 元字段?

随着 Online Store 2.0 的全面推出并与大多数主题兼容,编辑主题以显示元字段非常简单,无需任何编码。

首先,通过点击 【在线商店 > 模板 >自定义】进入主题编辑器:

然后,选择需要显示元字段的页面类型。这次演示以产品页面的默认模板为例:

进入对应页面后,在需要显示元字段的位置添加新的文本块、可折叠行也行:

直接单击“插入动态源”图标,然后单击所需的元字段定义。

给该组件添加静态文本,根据需要设置样式,并调用metafields动态源。

如果元字段含多个值,它会自动格式化为 HTML 列表元素。

现在可以保存主题并在实时店面中查看,创建的元字段会动态插入到每个产品页面。

Shopify 元字段的条件可见性优化

现在已成功将新元字段添加到店铺,访问者可以看到额外的信息。

直到发布新产品对应的该元字段的值为空的时候,看起来会有点奇怪,如下图:

这是因为引用的metafields动态源数据是空的。但块的其余部分只是很好的旧静态文本。

至少有两种方法可以解决这个问题:

1.为没有元字段值的产品创建一个新模板并完全删除该块(Block)

2.要求每个产品的该metafields都赋值

但这两种方式都同样麻烦。

要解决此问题,我们建议与开发人员聊下看看加个判断条件实施可见性。

或者你可以编写一个基本的 Liquid 代码段,参考以下方法进行操作:

首先,打开主题代码编辑器:

代码文件夹中,找到product.json文件,并找到文本块:

复制引号中的文本。作为参考,示例文本块如下所示:

下面是支持的颜色:

{{ product.metafields.custom._color | metafield_tag }}

点击查看更多。

获取你的代码并将其粘贴到JSON 转义工具中,就会更清晰。输出如下所示:

下面是支持的颜色:

{{ product.metafields.custom._color | metafield_tag }}

点击查看更多。

product.metafields.custom._color 现在,让我们添加一个简单的条件语句,以仅在非空白即已填写的情况下显示整个代码段:

{% if product.metafields.custom._color != blank %}

下面是支持的颜色:

{{ product.metafields.custom._color | metafield_tag }}

点击查看更多。

{% endif %}

返回到你的主题代码编辑器,这次点击添加一个【自定义liquid】块:

复制新代码片段(带 {% if product.metafields.custom._color != blank %} ),并将其粘贴到新创建的块中:

此时再看,只有在设置了产品元字段时,才会显示文本块。删除其他文本块并保存主题,就可以生效。

如何批量添加或编辑 Shopify 元字段

将元字段添加到单个产品或集合很容易。但是,如果你有数百个元字段,则单独编辑每个元字段来添加或更新元字段会很耗时。

Shopify 提供了批量编辑功能,允许一次对多个产品或系列进行更改。方法如下:

使用 Shopify 的编辑器批量编辑元字段

在 Shopify 后台 - 【产品】,然后选择所有产品。如果有超过 50 种产品,可以点“选择该商店中的所有产品”按钮:

然后在弹出的框中点击“批量编辑” :

然后将进入批量编辑器页面。单击右上角的列:

向下滚动到底部,并选择要编辑的元字段定义(注意此处只显示Pin的元字段,后续跨境男孩再继续讲解Pin相关的逻辑)。

现在就可以同时为多个产品添加或编辑metafields值了,记得完成后要保存。

使用第三方应用程序

批量编辑器足以用于首次设置元字段。但如果你需要经常更新数千种产品,还是比较麻烦。

这里跨境男孩Riven推荐使用 免费版的Matrixify APP,可以导出专门管理元字段的电子表格

1.使用 Matrixify 批量导出你的产品,在一列显示资源ID、第二列显示 URL handle。

2.为你要更新的每个元字段创建一个新列,格式为 Metafield:namespace.key[type],例如此处我新增的 Metafield: custom._color [single_line_text_field] 列

3.为元字段进行赋值;

4.然后使用 Matrixify 将其导回 Shopify,将每个字段值分配给正确的元字段。

以下是跨境男孩Riven测试的电子表格:

导入成功后,在Shopify后台的商品详情页进行验证,如下图:

最后的想法

虽然 Metafields 功能非常强大,配置和显示动态信息非常简单,Metafields在定制化和扩展性方面具有很大的优势,但也存在一些局限性或弊端:

1. 技术门槛:使用Metafields需要一定的技术知识,包括对Shopify&SHOPLINE的API和数据结构的了解。这可能对非技术背景的商家或初学者造成一定的困扰。

2. 限制性:在某些方面,Metafields的功能可能有一定限制。例如,Metafields的数量和大小可能受到限制,这可能会对某些具有大量数据或复杂需求的商家造成问题。

3. 更新和维护:随着商店的发展和需求的变化,管理和维护Metafields可能变得复杂。特别是在处理大量产品或多个应用程序集成时,确保Metafields的一致性和准确性可能需要额外的努力。

4. 兼容性:Metafields可能不适用于所有Shopify应用或主题。某些应用或主题可能不支持或不完全兼容Metafields功能,这可能限制了其在某些场景下的使用。

虽然Metafields存在一些挑战和限制,但对于那些需要扩展和个性化其商店的商家来说,它仍然是一个有价值的工具。要克服这些问题,建议商家在使用Metafields之前深入了解其功能和使用方法,并确保具备适当的技术能力或寻求专业帮助。

发现Shopify Metafields的Bug

1. 通过metafieldSet接口去赋值,商家仅读状态的mf,mf数据在在资源详情页的metafields 组件中不会显示。

2.Shopify在元字段定义列表,统计的元字段也是有bug的;外面资源列表统计的总mf数含privite,而实际里面列表是没展示的。两边数据不一致,有歧义。

3. Shopify 官方 Dawn主题的 bug,控件调用显示动态源的icon有兼容问题。(本篇正文中我有提到)

4.设置的metafields和metaObjects菜单,英文是:custom data,中文是"自定义数据",不是"客户数据"。元字段和元对象翻译成自定义数据会更好吧。(本篇正文中我有提到)

5.Metafields Value存储的应该是JSONString,而不是JSON object。文档和实际接口测试存储的数据不一致。

希望后续Shopify 产研优化下。

最后,敲重点,欢迎大家使用SHOPLINE建站,关于Metafileds的需求可以给我反馈。

如果大家在使用Shopify或SHOPLINE Metafields过程中有任何疑问,也可以找跨境男孩咨询交流。