Shopify中Liquid代码写入Price.Liquid时出现除以零错误求助
解决方案
检查Price.Liquid的上下文对象
直接在Price.Liquid中,当前上下文的product对象可能和Snippet中存在差异。比如在变体价格模块场景下,上下文可能切换为variant而非product,导致product.metafields.custom.coverage无法读取到值。可以临时在Price.Liquid中添加{{ product | inspect }},确认当前product对象是否包含目标元字段。添加零值防御逻辑
给代码增加判断,避免因元字段为空或零触发除以零错误,修改后代码如下:{% if product.metafields.custom.coverage != blank and product.metafields.custom.coverage > 0 %} £{{ product.price | divided_by: product.metafields.custom.coverage | money_without_currency }} per m² {% else %} N/A per m² {% endif %}明确指定元字段的数据源
如果Price.Liquid中存在变体上下文,强制调用产品级别的元字段:{% assign target_product = variant.product | default: product %} {% if target_product.metafields.custom.coverage != blank and target_product.metafields.custom.coverage > 0 %} £{{ target_product.price | divided_by: target_product.metafields.custom.coverage | money_without_currency }} per m² {% endif %}验证元字段的命名准确性
确认元字段的命名空间是custom、键名是coverage,Liquid对大小写敏感,检查是否存在拼写错误。可以临时在Price.Liquid中输出{{ product.metafields.custom | inspect }},查看是否包含coverage键。
内容的提问来源于stack exchange,提问作者BebopVox
相关产品推荐
相关产品推荐

