/collections/all, vendor and product type pages
Pages every Shopify store has without creating them: /collections/all, /collections, and the vendor and product type pages at /collections/vendors?q=.
- All products
- /collections/all
- By vendor
- /collections/vendors?q=<vendor>
- By type
- /collections/types?q=<type>
- Plan
- Every plan
- Last checked
In short
Every Shopify store has a few collection pages you never create: /collections/all lists every product on the online store, /collections lists all collections, /collections/vendors?q=<vendor> lists one brand and /collections/types?q=<type> one product type. The q value is case-insensitive. They use the collection template, so sorting and storefront filters work on them, and the link_to_vendor and link_to_type filters build the links for you.
How to use it
- Link a brand name on the product page with {{ product.vendor | link_to_vendor }}.
- Link the product type with {{ product.type | link_to_type }}.
- On those pages, read collection.current_vendor or collection.current_type for the heading.
- Add sort_by or filter parameters to any of these URLs, just like a normal collection.
Code
vendor-and-type-links.liquid{%- comment -%}
Links from a product page to "more from this brand" and "more of this type".
link_to_vendor and link_to_type build the encoded /collections/vendors
and /collections/types URLs, so names with spaces or apostrophes work.
{%- endcomment -%}
<p>
More from {{ product.vendor | link_to_vendor }}
{%- if product.type != blank %} · More {{ product.type | link_to_type }}{% endif %}
</p>
{%- comment -%} On the vendor or type page itself, show what was asked for. {%- endcomment -%}
{%- if collection.current_vendor -%}
<h1>{{ collection.current_vendor }}</h1>
{%- elsif collection.current_type -%}
<h1>{{ collection.current_type }}</h1>
{%- endif -%}
urls.txt# Every product published to the online store
https://your-store.com/collections/all
# All collections (list-collections template)
https://your-store.com/collections
# Products by vendor (case-insensitive, URL-encode spaces and apostrophes)
https://your-store.com/collections/vendors?q=Acme%20Outdoor
# Products by product type
https://your-store.com/collections/types?q=Rain%20Jackets
# These are collection pages, so sorting and storefront filters work too
https://your-store.com/collections/vendors?q=Acme%20Outdoor&sort_by=price-ascending
Written by Lintel. MIT license: free to use in your own store and in client work.
Limits and edge cases
- Vendor and type pages are only as clean as your data: “Acme” and “Acme Inc.” are two vendors.
- Encode spaces and apostrophes in the q value (%20, %27); the Liquid filters do this for you.
- The q value is case-insensitive: q=shirts and q=SHIRTS show the same page.
- Vendor and type pages have no description of their own; for brands that matter for SEO, a real collection with its own text is the better landing page.
Questions
- Does every Shopify store have /collections/all?
- Yes. It lists all products published to the online store, even if you never created an “All” collection.
- How do I show all products from one brand on Shopify?
- Link to /collections/vendors?q=<brand name>, or use {{ product.vendor | link_to_vendor }} in the theme.
- Can I filter /collections/all?
- Yes. Storefront filter and sort_by parameters work on it like on any collection.
Shopify documentation
- Checked on a Shopify store on the date shown. Shopify changes its admin often; if a step looks different, the idea usually still works.
- Examples use placeholder IDs and your-store.myshopify.com. Replace them with your own.
- MIT license for the code snippets.
Need this built, tested and maintained for your store? See Shopify development.
