Shopify-按自定义字段订购产品

Shopify-按自定义字段订购产品,shopify,custom-fields,Shopify,Custom Fields,我们有一个简单的Shopify商店,使用免费的“元字段编辑器”向每个产品添加一个简单的自定义字段整数值。某些产品的元值为3,其他产品的元值为2或1。许多人根本就没有元价值。我们希望能够通过按降序(加权排序)为每个产品输入的元字段值,在搜索结果中显示产品。然而,尽管Shopify能够设置元值并在搜索结果和集合页面中显示它们,但它并不能使按自定义元字段订购或排序产品变得容易。在搜索结果页面中,我可以使用 {{item.metafields.important.important} 到目前为止,我已经

我们有一个简单的Shopify商店,使用免费的“元字段编辑器”向每个产品添加一个简单的自定义字段整数值。某些产品的元值为3,其他产品的元值为2或1。许多人根本就没有元价值。我们希望能够通过按降序(加权排序)为每个产品输入的元字段值,在搜索结果中显示产品。然而,尽管Shopify能够设置元值并在搜索结果和集合页面中显示它们,但它并不能使按自定义元字段订购或排序产品变得容易。在搜索结果页面中,我可以使用 {{item.metafields.important.important} 到目前为止,我已经尝试使用这种方法订购产品

{% assign products = collection.products | sort: 
'item.metafields.important.important' %}
{% for product in products %}
   {{ product.title }}
{% endfor %}
但这会导致空结果。
任何人都可以给我在如何显示定制领域的产品顺序的任何见解将不胜感激

没有。不起作用。只有固定过滤器影响排序顺序。您可以从管理面板的集合页面手动对产品进行排序。

在尝试找到液体解决方案后,我终于能够使用自定义元字段和jQuery解决此问题。在Shopify集合模板中,我添加了一个数据属性,以便与每个产品一起使用,如下所示:

<div id="product_list">
<div data-imp="{{product.metafields.important.important}}" class="product_block" /> PRODUCT #1 </div>
<div data-imp="{{product.metafields.important.important}}" class="product_block" /> PRODUCT #2 </div>
</div>
希望这对别人有帮助

var $wrapper = $('#product_list');

        $wrapper.find('.product_block').sort(function (a, b) {
            return +b.dataset.imp - +a.dataset.imp;
        })
        .appendTo( $wrapper );
    }