You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dawn主题main-product.liquid获取变体元字段失败,求排查Liquid代码

代码问题分析及修复建议

你的代码存在三个核心问题:

  • 元字段归属对象错误:你要获取的是**变体(variant)**的元字段,但代码里用了product.metafields,这是调用产品级别的元字段,和变体元字段完全无关,自然拿不到值。
  • 元字段调用语法错误:正确的元字段调用格式是对象.metafields.命名空间.字段键(比如variant.metafields.my_fields.custom_value)或者用方括号语法对象.metafields['命名空间']['字段键']。你写的product.metafields namespace.key缺少必要的点号分隔,而且多余的| json过滤器完全用错了位置——这个过滤器是把Liquid对象转成JSON字符串,不是用来赋值元字段的。
  • 变体上下文缺失:要获取变体元字段,必须先定位到具体的变体对象,比如当前选中的变体或者遍历的某个变体,直接用product对象根本触达不到变体的元字段。

修复后的示例代码

如果要展示当前选中变体的元字段:

{% assign current_variant = product.selected_or_first_available_variant %}
{% if current_variant.metafields.namespace.key %}
  Value: {{ current_variant.metafields.namespace.key }}
{% endif %}

如果要遍历所有变体并展示各自的元字段:

{% for variant in product.variants %}
  <p>变体 {{ variant.title }} 的自定义字段值: {{ variant.metafields.namespace.key | default: '无值' }}</p>
{% endfor %}

注意:把代码里的namespace和key替换成你实际使用的元字段命名空间和字段键。

内容的提问来源于stack exchange,提问作者oscp oscp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 20:39:53