In my store, we have 366 products with a metafield that holds the install guide PDF file. I’m hoping that I can make a page that holds all of the install guides for us to link to with 1 QR code on a card in our packages. Unfortunately, the forloop in Liquid is limiting me to 50 at a time, but I want to have all 366 on the same page so I can implement a search function as well.
I really only need like 3 pieces of data from the product object (SKU, title, and install guide metafield) so I feel like I’m pulling way too much data for what I need when I’m looping through the products. Does anybody have advice on how to implement this or what methods I could read the documentation for?
Why would you force a massive data experience on users and their bandwidth.
You need customers landing on the exact info the need not an ocean.
You can only really bump that up to 250 in the theme system before pagination, and even then should only be a last resort or something has gone wrong from the jump.
If there’s some reason customers need ALL the data you should just provide an archive download or spreadsheet instead of forcing individual clicks.
Either put the products in a collection that’s filterable with a template customization to show the guides.
Then let filtering or pagination do the work.
Otherwise you need to collate that data and store it somewhere like in a JSON metafield, populated by a shopify-flow or mechanic automation.
Liquid loops in storefront themes are capped at 50 iterations for performance reasons, so there isn’t a way to simply loop over all 366 products in a single page. Loading that many guides at once would also force visitors to download a very large HTML payload.
A more scalable pattern is to break the list into smaller chunks or let Shopify’s built‑in navigation handle it for you:
Use the paginate tag – Wrap your for loop in a {% paginate collection.products by 50 %} block. Shopify will automatically generate paging links so you can show 50 guides per page. This respects the loop limit and keeps pages fast.
Put the products into a collection – Create a collection of the 366 items, then customise the collection template to output just the SKU, title and install‑guide metafield. Customers can use Shopify’s faceted filters or your own search to find their product instead of scrolling through hundreds of entries.
Store the mapping in a single metafield – If you really need a single page listing, consider generating a JSON object that maps SKUs to guide URLs (e.g. via Shopify Flow or Mechanic) and store it in a shop or page metafield. Your template can then parse that JSON and render the list without hitting the product loop limit.
All of these approaches avoid the 50‑item hard limit and reduce the amount of data you pull into the theme. Users can still access any guide via search or filtering without having to load all 366 items at once.