使用Liquid脚本Shopify Sort cart.items数组

使用Liquid脚本Shopify Sort cart.items数组,shopify,liquid,liquid-layout,Shopify,Liquid,Liquid Layout,我想对cart.liquid文件中的cart.items数组进行排序。然后我可以在表中按我期望的顺序显示时间 {% for item in cart.items sort_by:item.line_price %} <div class="row"> <div class="span12"> <h1>Your cart</h1> <form action="/cart" method="po

我想对cart.liquid文件中的cart.items数组进行排序。然后我可以在表中按我期望的顺序显示时间

    {% for item in cart.items sort_by:item.line_price %}
    <div class="row">
      <div class="span12">
      <h1>Your cart</h1>
      <form action="/cart" method="post" id="cartform">
        <table>
        </table>
      </form>
      </div>
    </div>
    {% endfor %}
但是代码不起作用,因为我不能在for语句中使用sort\u by:item.line\u price

如何使用内置功能对阵列进行排序

另一个问题是Shopify liquid不支持创建数组。如果我使用自己的算法对数组进行排序。但是如何将输出保存到新数组


非常感谢。

您可以将数据呈现为Javascript数据结构,然后对其进行排序。使用Javascript中的模板。handlebar.js在这方面效果很好。没有内置排序。

您可以将数据呈现到Javascript数据结构,然后对其进行排序。使用Javascript中的模板。handlebar.js在这方面效果很好。没有内置排序功能。

Shopify有一个用于哈希或drop数组的函数。您可以这样使用它:

{% assign cart_items = cart.items | sort: "line_price" %}
{% for item in cart_items %}
- {{item.title}} {{item.line_price}}<br/>
{% endfor %}
Shopify有一个用于散列或删除的数组。您可以这样使用它:

{% assign cart_items = cart.items | sort: "line_price" %}
{% for item in cart_items %}
- {{item.title}} {{item.line_price}}<br/>
{% endfor %}

好主意,我以前考虑过,它将适用于cart.liquid页面。但它不适用于新订单通知,因为电子邮件模板不支持JavaScript。好主意,我以前考虑过,它适用于cart.liquid页面。但它不适用于新订单通知,因为电子邮件模板不支持JavaScript。我可以使用自定义字段,如item.properties['tags']包含“[Hardware]”吗?不,我不这么认为,从阅读中可以看出,它也可能在Shopify内部使用,似乎不支持此语法。而且项目行\项目没有字段属性。产品标签仅在产品项中可用。产品。标签。项目没有属性字段。我可以访问item.properties['tags']。我已通过使用带分隔符的字符串存储cart.items的索引修复了此问题。它非常难看,但它可以工作。我可以使用自定义字段,如item.properties['tags']包含“[Hardware]”吗?不,我不这么认为,从阅读的来看,这可能也是Shopify内部使用的,似乎不支持这种语法。此外,items line\u items没有字段属性。产品标签仅在产品项中可用。产品。标签。项目没有属性字段。我可以访问item.properties['tags']。我已通过使用带分隔符的字符串存储cart.items的索引修复了此问题。这很难看,但它很管用。