What's your biggest current challenge? Have your say in Community Polls along the right column.
Our Partner & Developer boards on the community are moving to a brand new home: the .dev community forums! While you can still access past discussions here, for all your future app and storefront building questions, head over to the new forums.

Re: Metaobject Filtering - Categorisation - Is it possible?

Metaobject Filtering - Categorisation - Is it possible?

sdevscotland
Shopify Partner
6 0 5

I'm enjoying using the Metaobjects. And have successfully deployed them for some custom content across client's sites.

 

Recently we considered using metaobjects to store our "stockist" locations - previously this used an adapted version of the blog to do this.

 

Metaobjects appears to offer a nicer UI/UX for content editors.

 

But I have run into a problem, I appear to be able to filter using "where" etc for certain fields. But I cannot do this in combination with pagination. 

 

 

To explain in simpler terms, I have a metaobject called "Stockists"

 

Example of an item:

 

Stockist name: Acme LTD

Stockist location: France, Germany, UK, USA etc.

 

I want to paginate these on one page in alphabetical order. But I also want to be able to allow website visitors to filter them, for example click on "Germany" and only get the germany results returned with pagination.

 

I can do this sure with javascript - but I can only get a maximum of 50 items output on the page because of Shopify limits. I could also make separate pages for each "country" and link to those, but this is quite clunky/messy as well.

At this point it feels like maybe just hacking the "blog" would work better.

 

Does anyone know if there is a simpler way? Of either filtering metaobject items within pagination? OR returning more than 50 metaobject items to the page?

 

Thank you!

Replies 3 (3)

Liam
Community Manager
3108 344 895

Hi Sdevscotland,

 

It's hard to say for sure if this is possible or not without seeing the full code, but I was able to paginate metaobject pages with the method described in this blog post, so it could work. Is pagination appearing if you don't use `where`?

Liam | Developer Advocate @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit Shopify.dev or the Shopify Web Design and Development Blog

sdevscotland
Shopify Partner
6 0 5

Hi Liam thanks for the reply. I don't think I explained well, I want to filter - e.g. a metaobject called "Ice Cream Shops" has a list of ice cream stores, each store has a flavours field called "flavours" - with one or more of the following values: "vanilla", "strawberry" or "chocolate". Is there a way to use Shopify filters - the same way we have for collections - with metaobjects?

 

E.g. here is all the ice cream shops. Click "strawberry" to filter for only the shops with Strawberry ice cream. Click "chocolate" to filter for only the shops with Chocolate ice cream, etc.

 

At the moment I run into a few problems:

 

+ Attempting to output all the values just do the filtering client side with JS - I can only return 50 metaobject values per page because of Shopify limits - so my solution only works when there is less than 50 ice cream stores.

 

OR

 

+ Using Pagination liquid tags. This gives me 50 per page. But I can't "filter" the results - is there something I can do to edit the pagination to give me filtering abilities? 

 

Otherwise I think I'll just have to create separate pages for each of my filtering requirements - and link them with a menu.

rbhsiags
Shopify Partner
4 0 1

Hi Liam. The docs for paginate tag does not mention metaobjects as being one of the paginatable objects. It states:

 


The following arrays can be paginated:

  • all_products
  • article.comments
  • blog.articles
  • collections
  • collection.products
  • customer.addresses
  • customer.orders
  • pages
  • search.results
  • collection_list settings
  • product_list settings

This clearly seems to be an error in the documentation, since you are able to paginate metaobjects in your blog post. Do you know of any other objects that are paginatable but not stated as so in the documentation? Also, could you reach out the documentation team so that they will update the paginate section of the documentation to account for all paginatable objects?

 

Thank you