2017-04-14 2 views
1

Wir haben einen einfachen Shopify-Shop, der den kostenlosen "Meta-Felder-Editor" verwendet, um jedem Produkt einen einfachen, benutzerdefinierten Feld-Integer-Wert hinzuzufügen. Einige Produkte haben einen Metawert von 3, andere 2 oder 1. Viele haben überhaupt keinen Metawert. Wir möchten die Produkte in den Suchergebnissen nach dem Meta-Feldwert anzeigen können, das für jedes Produkt in absteigender Reihenfolge eingegeben wurde (gewichtete Reihenfolge). Trotz der Fähigkeit, Meta-Werte festzulegen und sie auf Suchergebnisseiten und Auflistungsseiten anzuzeigen, macht es Shopify nicht einfach, Produkte nach einem benutzerdefinierten Meta-Feld zu sortieren oder zu sortieren. In der Suchergebnisseite Ich bin der benutzerdefinierten Meta-Wert mit {{}} item.metafields.important.important Ich habe bisher anrufen können versucht, die Produkte zu bestellen mit dieser MethodeShopify - Produkte nach benutzerdefiniertem Feld bestellen

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

Aber diese Ergebnisse in null Ergebnissen. Jeder Einblick, den jemand mir geben kann, wie man Produkte in der Reihenfolge eines kundenspezifischen Feldes anzeigt, würde sehr geschätzt werden!

Antwort

1

Nach dem Versuch, eine Liquid-Lösung zu finden, konnte ich dieses Problem mit benutzerdefinierten Metafields und jQuery lösen. In der Sammlung Vorlage Shopify, fügte ich ein Datenattribut mit jedem Produkt wie so aufgenommen werden:

<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> 

Dann habe ich eine einfache Funktion jQuery die Knoten zu sortieren, indem Daten, um

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

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

Hoffe das hilft jemandem!

0

Nein. Funktioniert nicht. Nur feste Filter beeinflussen die Sortierreihenfolge. Sie können die Produkte manuell von der Sammlungsseite im Admin-Panel aus sortieren.

Verwandte Themen