Ad

Related Products Not Showing Correctly

- 1 answer

I am trying to generate related products in one of my shopify store, its showing on some products but mostly not, what I want is, display related product first by matching vendor/brand, if not found then show the products of same category:

Can anybody please suggest how to handle this?

<div class="related-products row">
{% assign vendor = product.vendor %}
{% assign vendor_handle = vendor | handleize %}

{% assign handle = product.handle %}
<h4 style="text-align:left;">More in this collection</h4>
{% assign counter = '' %}
{% for product in collections[vendor_handle].all_products %}
  {% if vendor == product.vendor and counter.size < 4 and handle != product.handle %}
  {% capture temp %}{{ counter }}*{% endcapture %}
  {% assign counter = temp %}
  <div class="col-md-3 col-sm-3 col-xs-12">
    <div class="reveal">
      <a target="_blank" rel="nofollow noreferrer" href="{{ product.url | within: collection }}" title="{{ product.title }}">
        <img src="{{ product.images.first | product_img_url: 'large' }}" class="img-responsive" alt="{{ product.title }}" />
      </a>
    </div>
    <a target="_blank" rel="nofollow noreferrer" href="{{ prod.url | within: collection }}" title="{{ prod.title | escape }}">
        {{ product.title | escape }}
    </a>
  </div>
  {% endif %} 
{% endfor %}
</div>
Ad

Answer

You're changing the main product by using the following line

{% for product in collections[vendor_handle].all_products %}

and what is prod?

Try the following

<div class="related-products row">
{% assign vendor = product.vendor %}
{% assign vendor_handle = vendor | handleize %}

{% assign handle = product.handle %}
<h4 style="text-align:left;">More in this collection</h4>
{% assign counter = 0 %}
{% for coll_product in collections[vendor_handle].all_products %}
  {% if vendor == coll_product.vendor and counter < 4 and handle != coll_product.handle %}
  {% assign counter = counter | plus: 1 %}
  <div class="col-md-3 col-sm-3 col-xs-12">
    <div class="reveal">
      <a target="_blank" rel="nofollow noreferrer" href="{{ coll_product.url | within: collection }}" title="{{ product.title }}">
        <img src="{{ coll_product.images.first | product_img_url: 'large' }}" class="img-responsive" alt="{{ coll_product.title }}" />
      </a>
    </div>
    <a target="_blank" rel="nofollow noreferrer" href="{{ coll_product.url | within: collection }}" title="{{ coll_product.title | escape }}">
        {{ coll_product.title | escape }}
    </a>
  </div>
  {% endif %} 
{% endfor %}
</div>
Ad
source: stackoverflow.com
Ad