2017-04-14 47 views
1

我們有一個簡單的Shopify商店,使用免費的「Meta Fields Editor」爲每個產品添加一個簡單的自定義字段整數值。有些產品的元值爲3,其他爲2或1.許多產品根本沒有元值。我們希望能夠按照降序(加權排序)爲每個產品輸入的元字段值在搜索結果中顯示產品。但是,儘管可以設置元值並將其顯示在搜索結果和集合頁面中,但Shopify並不容易通過自定義元字段對產品進行排序或排序。在搜索結果頁,我能夠調用使用 {{item.metafields.important.important}} 到目前爲止,我已經嘗試使用這種方法Shopify - 通過自定義字段訂購產品

{% assign products = collection.products | sort: 
'item.metafields.important.important' %} 
{% for product in products %} 
    {{ product.title }} 
{% endfor %} 

訂購的產品,但這一結果自定義元值在空結果中。 任何人都可以給我如何以自定義字段的順序顯示產品的任何洞察力將不勝感激!

回答

1

試圖找到液體解決方案後,我終於能夠使用自定義metafields和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); 
    } 
由數據屬性的節點進行排序

希望這可以幫助別人!

0

沒有。不起作用。只有固定的過濾器會影響排序順序。您可以在管理面板中手動對收集頁面中的產品進行排序。