我已经计算了循环之前的总订单价格,通过在输出中打印来验证该值。下面提到的是相同的代码块:
{% assign total_items_price = 0 %}
{% for line_item in line_items %}
{%assign total_items_price = total_items_price | plus:line_item.price %}
{% endfor %}
以下是我为进一步计算而实施的方案:
尝试将每个商品的价格除以total_items_price,但输出为0.即使我将其转换为货币格式,结果仍然相同:
{{ line_item.price | divided_by:total_items_price }}
{{ line_item.price | divided_by:total_items_price | money }}
我也使用了多个数学过滤器但结果是0:
{{line_item.price | divide_by:total_items_price |时间:discounts_amount}} {{line_item.price | divide_by:total_items_price |次:discounts_amount |钱}}
变量/属性的值(line_item.price,total_items_price,discounts_amount)在通过UI打印验证的for循环内可用。如果我使用一些硬编码值而不是属性/变量,它会给出正确的输出。例如:
{{ line_item.price | divided_by:5 }} //gives the correct output
答案 0 :(得分:0)
也许您可以使用forloop.length值。由于循环中没有任何条件语句,因此不需要手动索引。
HTH
答案 1 :(得分:0)
您应该尝试在line_item.price上使用数学过滤器。
{% assign total_items_price = 0 %}
{% for line_item in line_items %}
{% assign total_items_price = total_items_price | plus: line_item.price %}
{{ line_item.price | times: 1.0 | divided_by: total_items_price }}
{% endfor %}
注意"次:1.0"在第4行的line_item.price之后应用过滤器。