2017-04-14 15 views
1

シンプルなカスタムフィールドの整数値を各製品に追加するために、無料の「メタフィールドエディタ」を使用して簡単なShopifyストアがあります。一部の商品には3のメタ値があり、他の商品には2または1があります。多くの商品にはメタ価値がありません。私たちは、各製品のメタフィールド値を降順(重み付けされた順序)で検索結果に表示できるようにしたいと考えています。ただし、メタ値を設定して検索結果やコレクションページに表示することはできますが、カスタムメタフィールドで商品を注文またはソートするのは簡単ではありません。検索結果ページでは、私は {{item.metafields.important.important}}これまでのところ、私はこの方法Shopify - カスタムフィールドによる商品の注文

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

を使用して製品を注文しようとしてい しかし、この結果を使用してカスタムメタ値を呼び出すことができますよ結果はnullです。 カスタムフィールドの順番で商品を表示する方法を教えてください。

答えて

1

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> 

それから注文

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

     $wrapper.find('.product_block').sort(function (a, b) { 
      return +b.dataset.imp - +a.dataset.imp; 
     }) 
     .appendTo($wrapper); 
    } 
降順にデータ属性によってノードを並べ替えるために、単純なjQueryの機能を使用しました

これは誰かに役立つことを願っています!

0

いいえ。動作しません。固定フィルターのみがソート順に影響します。管理パネルのコレクションページから製品を手動で並べ替えることができます。

関連する問題