Shopify - 按自定义字段订购产品
Shopify - Order Products By Custom Field
我们有一个简单的 Shopify 商店,使用免费 "Meta Fields Editor" 为每个产品添加一个简单的自定义字段整数值。有些产品的元价值为 3,有些为 2 或 1。许多产品根本没有元价值。我们希望能够通过为每个产品输入的元字段值按降序(加权排序)显示搜索结果中的产品。然而,尽管能够设置元值并将它们显示在搜索结果和 collections 页面中,Shopify 并不能使通过自定义元字段订购或排序产品变得容易。在搜索结果页面中,我可以使用调用自定义元值
{{item.metafields.important.important}}
到目前为止,我已经尝试使用这种方法订购产品
{% assign products = collection.products | sort:
'item.metafields.important.important' %}
{% for product in products %}
{{ product.title }}
{% endfor %}
但这会导致空结果。
如果有人能提供有关如何按自定义字段顺序显示产品的任何见解,我们将不胜感激!
没有。不起作用。只有固定过滤器会影响排序顺序。您可以从管理面板的 collection 页面手动对产品进行排序。
在尝试找到 Liquid 解决方案后,我终于能够使用自定义元字段和 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>
然后我使用一个简单的jQuery函数按数据属性降序对节点进行排序
var $wrapper = $('#product_list');
$wrapper.find('.product_block').sort(function (a, b) {
return +b.dataset.imp - +a.dataset.imp;
})
.appendTo( $wrapper );
}
希望这对某人有所帮助!
我们有一个简单的 Shopify 商店,使用免费 "Meta Fields Editor" 为每个产品添加一个简单的自定义字段整数值。有些产品的元价值为 3,有些为 2 或 1。许多产品根本没有元价值。我们希望能够通过为每个产品输入的元字段值按降序(加权排序)显示搜索结果中的产品。然而,尽管能够设置元值并将它们显示在搜索结果和 collections 页面中,Shopify 并不能使通过自定义元字段订购或排序产品变得容易。在搜索结果页面中,我可以使用调用自定义元值 {{item.metafields.important.important}} 到目前为止,我已经尝试使用这种方法订购产品
{% assign products = collection.products | sort:
'item.metafields.important.important' %}
{% for product in products %}
{{ product.title }}
{% endfor %}
但这会导致空结果。 如果有人能提供有关如何按自定义字段顺序显示产品的任何见解,我们将不胜感激!
没有。不起作用。只有固定过滤器会影响排序顺序。您可以从管理面板的 collection 页面手动对产品进行排序。
在尝试找到 Liquid 解决方案后,我终于能够使用自定义元字段和 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>
然后我使用一个简单的jQuery函数按数据属性降序对节点进行排序
var $wrapper = $('#product_list');
$wrapper.find('.product_block').sort(function (a, b) {
return +b.dataset.imp - +a.dataset.imp;
})
.appendTo( $wrapper );
}
希望这对某人有所帮助!