Get collections by meta fields(I want to filter 'vendor' collections by a custom field 'region')

Hi,

I don’t know how to retrieve collections with a particular meta field.

For example, I want to only get collections with a meta field ‘region’ equal to ‘Alabama’.

{% for collection in collections %}
{% if collection.metafields.region.alabama %}
{% assign alabama_vendors = 'alabama'%}
{% endif %}
{% endfor %}

How can I conditionally retrieve collections by their meta field?
Is it even possible to access collections’ meta fields?

Best

The metafields on a collection are certainly accessible via Liquid. I use them all the time.

However that loop you’re doing will have a limit and if your shop has lots of collection it’s possible (and likely) that the loop won’t cover them all. I would also say it’s not a very performant bit of code.

Looking at the code it’s not clear what you’re trying to achieve. I see a variable being set but given the simplicity I wonder if there’s a better way to approach it. Feel free to post back with some more context.

Hi @begginer1231 ,

Yes, You can.

Please follow below steps:

  1. From Shopify dashboard, go to Online store > Themes > Edit code

  2. Create custom metafield with name region

  3. In the search box, search for the file named list-collections-template

  4. Search term {%- render ‘collection-grid-item’ and edit code with below script

{% unless collection.metafields.custom.region == "alabama" %}
   {%- render 'collection-grid-item', collection: collection, grid_item_width: grid_item_width -%}
{% endunless %}

Code is sample only code is multiple times in code, Please make sure to update it every where.