如何完全使用Liquid实现遍历产品变体并存储数据到变量?
纯Liquid实现产品变体库存数据存储
要完全用Liquid实现你原来的功能,核心是利用Liquid的assign标签和merge过滤器构建存储变体库存数据的对象,具体实现如下:
{% assign variants_with_inventory_data = {} %} {% for variant in product.variants %} {% comment %} 创建单个变体的库存数据对象 {% endcomment %} {% assign variant_inventory = { "inventory_quantity": variant.inventory_quantity, "inventory_policy": variant.inventory_policy, "inventory_management": variant.inventory_management, "inventory_item_id": 0 } %} {% comment %} 将单个变体数据合并到总对象中,以变体ID作为键 {% endcomment %} {% assign variants_with_inventory_data = variants_with_inventory_data | merge: { variant.id: variant_inventory } %} {% endfor %}
代码说明:
- 先用
{% assign %}初始化空对象variants_with_inventory_data,用于存储所有变体的库存数据。 - 遍历
product.variants时,为每个变体创建单独的库存数据对象variant_inventory,包含你需要的字段。 - 使用
merge过滤器将当前变体的键值对(键为变体ID,值为库存数据对象)合并到总对象中,完成数据累积存储。
如果需要将这个Liquid对象转换为和原JS代码结构一致的JSON格式,可使用json过滤器输出:
{{ variants_with_inventory_data | json }}
内容的提问来源于stack exchange,提问作者Wakil Ahmed
相关产品推荐
相关产品推荐

