2017-07-26 1 views
0

J'ai une section "Produits connexes" sur ma page de produit. En ce moment, il montre des produits qui sont liés par "collection". Est-il possible de montrer des produits connexes qui ont le même tag?Afficher les produits connexes par étiquette (Shopify)

Ceci est mon related-products.liquid code.

Merci.

{% assign number_of_products = 4 %} 
{% assign number_of_products_to_fetch = number_of_products | plus: 1 %} 

{% if collection == null or collection.handle == 'frontpage' or collection.handle == 'all' %} 
    {% assign found_a_collection = false %} 
    {% for c in product.collections %} 
     {% if found_a_collection == false and c.handle != 'frontpage' and c.handle != 'all' and c.all_products_count > 1 %} 
     {% assign found_a_collection = true %} 
     {% assign collection = c %} 
     {% endif %} 
    {% endfor %} 
{% endif %} 

{% if collection and collection.products_count > 1 %} 
    <div class="related"> 
     <h1>You Might Also Like</h1> 
     <div class="products clearfix"> 
     {% assign current_product = product %} 
     {% assign current_product_found = false %} 

     {% for product in collection.products limit: number_of_products_to_fetch %} 
      {% if product.handle == current_product.handle %} 
       {% assign current_product_found = true %} 
      {% else %} 
       {% unless current_product_found == false and forloop.last %} 
        <li> 
        <a href="{{ product.url | within: collection }}" class="product__image" title="{{ product.title | escape }}"> 
         <img src="{{ product.featured_image.src | img_url: '350x350' }}" alt="{{ product.featured_image.alt | escape }}"> 
        </a> 
        </li> 
       {% endunless %} 
      {% endif %} 
     {% endfor %} 
     </div> 
    </div> 
{% endif %} 
+0

Les produits marqués que vous souhaitez afficher dans la collection? –

Répondre

0

Changeons votre boucle qui traverse la collection d'éléments, et ne tient pas compte des éléments qui sont pas marqués.

 {% for product in collection.products limit: number_of_products_to_fetch %} 
     {% if product.handle == current_product.handle %} 
      {% assign current_product_found = true %} 
     {% else %} 
      {% unless current_product_found == false and forloop.last %} 
      {% if current_product_found.tags contains 'best-tag-ever' %} 
       <li> 
       <a href="{{ product.url | within: collection }}" class="product__image" title="{{ product.title | escape }}"> 
        <img src="{{ product.featured_image.src | img_url: '350x350' }}" alt="{{ product.featured_image.alt | escape }}"> 
       </a> 
       </li> 
      {% endif %} 
      {% endunless %} 
     {% endif %} 
    {% endfor %} 

Remarque! Cela ne fera que traverser la collection fournie. Cela signifie que les produits qui apparaîtront doivent être a) inclus dans cette collection, et b) être marqués avec 'best-tag-ever'. Si vous souhaitez afficher les produits de l'ensemble du magasin au lieu de ladite collection, vous pouvez échanger cette collection pour la collection all qui contient tous les produits de votre boutique.

+0

Je ne veux pas coder en dur l'étiquette ou la collection, je veux juste shopify pour montrer les produits liés à ce produit spécifique. – chrisbedoya