metafield
附加到父对象的元字段。
要了解如何访问特定对象上的元字段,请浏览元字段。
元字段支持多种数据类型,这决定了存储在元字段中的信息类型。您还可以使用元字段过滤器以特定于类型的格式输出元字段内容 。
您不能在 handlebars 中创建元字段。元字段只能通过以下方式创建:
- 在Shopline后台
- 通过 open api
参数
如果元字段是 list 类型返回true,否则返回 false。
元字段的类型。
| 可选值 |
|---|
| single_line_text_field |
| multi_line_text_field |
| product_reference |
| collection_reference |
| variant_reference |
| page_reference |
| file_reference |
| number_integer |
| number_decimal |
| date |
| date_time |
| url_reference |
| json |
| boolean |
| color |
| weight |
| volume |
| dimension |
| rating |
| list |
| money |
元字段的值。
下表概述了每种元字段类型的值格式:
| 类型 | 返回值 |
|---|---|
| 字符串 |
| 商品 Object |
| 商品分类 Object |
| SKU Object |
| 页面 Object |
| 媒体 Object |
| 数字 |
| 日期 |
| url 字符串 |
| JSON object |
| 布尔值 |
| 颜色 Object |
| 度量 Object |
| 评分 Object |
| 值列表 |
| 货币 Object |
访问元字段
元字段的访问路径由两层组成:
- 命名空间 - 一组元字段以防止冲突。
- key - 元字段名称。
鉴于此,您可以使用以下语法访问元字段对象:
{{ resource.metafields.namespace.key }}
Type: {{ product.metafields.demo_namespace.demo_key.type }}
Value: {{ product.metafields.demo_namespace.demo_key.value }}
在元字段表达式中使用变量
{{ assign 'key' 'demo_key' }}
{{ assign 'demoMetafield' (get key product.metafields.demo_namespace) }}
Type: {{ demoMetafield.type }}
Value: {{ demoMetafield.value }}
访问 json 类型的元字段
json 类型元字段的 value 属性会返回一个JSON对 象。
Weight: {{ product.metafields.info.weight.value.numeric }}
{{#each product.metafields.info.weight.value as |property|}}
{{capitalize @key}}: {{property}}
{{/each}}
访问 list 类型的元字段
list 类型元字段的 value 属性会返回一个数组。您可以遍历数组以访问值。
Type: {{ product.metafields.info.multiple.type }}
{{#each product.metafields.info.multiple.value as |item|}}
{{ item.product.title }}
{{/each}}
如果 list 是 single_line_text_field 类型,您也可以通过索引直接访问数组中的项目。
Type: {{ product.metafields.info.descriptions.type }}
First description in list: {{ product.metafields.info.descriptions.value.[0] }}
Last description in list: {{ last product.metafields.info.descriptions.value }}
OS2.0及以下版本主题注意事项:
由于实现机制的不同,在OS2.0及以下主题使用元字段会有以下限制:
-
仅支持单个值类型的元字段,暂不支持 list 多个值类型
-
暂不支持参考类型的元字段
-
metafields前的资源对象必须为固定的字段名,不可自定义资源 字段 商品 product.metafields 商品分类 collection.metafields 商品款式 variant.metafields 页面 page.metafields 客户 customer.metafields 博客 article.metafields 博客集合 blog.metafields 订单 order.metafields {{!-- 正确 --}}
{{ product.metafields.information.pickup_locations.value }}
{{!-- 错误 --}}
{{ assign 'p' product }}
{{ p.metafields.information.pickup_locations.value }}
{{!-- 正确 --}}
{{#each collection.products as |product|}}
{{ product.metafields.information.pickup_locations.value }}
{{/each}}
{{!-- 错误 --}}
{{#each collection.products as |p|}}
{{ p.metafields.information.pickup_locations.value }}
{{/each}} -
取值表达式的格式必须满足
${ownerResource}.metafields.${namespace}.${key}.(value|type){{!-- 错误 --}}
{{ assign 'mf' product.metafields }}
{{ mf.information.pickup_locations.value }}
{{!-- 错误 --}}
{{ assign 'ns' product.metafields.information }}
{{ ns.pickup_locations.value }}