Suppose you want to sort or filter a Shopify collection by a sub/nested property. Well, this is an example of how you’d sort a Shopify collection by a nested property, specifically how to sort by a setting property of a logo list block.
I created a Shopify tab snippet to filter and sort the above list of logo blocks by a property within a single logo/block. The code below gets all the blocks in the logo list section, maps over the settings and returns the items where the logo_list property equals “brewery” then sorts the results by title. If you don’t need to return a specific sub-set of data and only want to sort by the property then simply remove | where: “logo_category”, “brewery” from the assign block.
{% assign breweries = section.blocks | map: 'settings' | where: "logo_category", "brewery" | sort: "title" %}{% for block in breweries %} {%- assign logo = block.logo -%} {%- assign url = block.url -%} <div class="module-inline-item dynamic-logo-list-item" {{ block.shopify_attributes }}> {% if url != blank %} <a href="{{ url }}" target="_blank"> {% endif %} {% if block.logo != blank %} {% include 'rimg', img: logo, size: '330x280', lazy: true %} {% else %} {{ 'logo' | placeholder_svg_tag: 'placeholder-svg' }} {% endif %} {% if url != blank %} </a> {% endif %} </div> {% endfor %}
And that’s all you need to do to filter a Shopify collection by a nested property. I will post the code for the full tab snippet in another post.