Product grid
The collection page workhorse: faceted filtering, sorting, up to two editorial tiles, a filter drawer on small screens, a price range control, quick view, and pagination. The popup is configured globally in Theme settings → Quick view.
- Merchant-addable
- No — template section
- Settings
- 36
- Block types
- 1
- Max blocks
- 2
- File
sections/product-grid.liquid
Used by default on: Collection, collection.concern
When to use it
Every collection page.
Setting it up
- Add the section to the collection template.
- Set products per row and per page under Products and Grid layout.
- Turn on the facets you actually have data for under Filtering and sorting. Filters themselves come from the free Search & Discovery app, not from the theme.
- Configure Card actions for quick add and quick view, then set the popup’s media, content, purchase options, and style in Theme settings → Quick view. Choose options action selects Variant popup (the default) or Product page. Variant popup opens a compact purchase popup with variants, quantity, and Add to cart; the separate Quick view button opens the full media preview. Gift-card cards omit the extra View product action while quick view is enabled; the image, title, and popup still lead to the product page for recipient details.
- Choose Pagination style, then set Spacing and color.
- Optionally choose Add block → Editorial tile. Add an image, heading, body text, or a link with link text. Choose Tile width: 1 column, 2 columns, or Full row (default), then set Grid position and the tile’s Color scheme. Add up to two tiles.
Where the content comes from
Shopify owns products, variants, prices, availability, and the filter definitions. The section owns layout and which controls appear. Editorial tile blocks own their images, copy, links, widths, and grid positions; no metafields are required.
Notes and cautions
- A "Vendor" filter on a single-vendor store is clutter. Only enable facets that split your catalog meaningfully.
- Filtering works with JavaScript disabled — it submits and reloads — and gets faster once JavaScript loads.
- Show product type tabs needs a Product type filter in Search and Discovery with at least two types in the collection. Product type tabs retain their selected product type when filtering or sorting. Clearing the maximum price restores the full range. If load more or infinite scroll fails, a visible retry link stays available; automatic scrolling resumes after a successful retry.
- Editorial tiles can span one column, two columns, or a full grid row. Mobile caps the span to the available columns. Wide desktop tiles use a 40% image and 60% copy split and grow for longer text; images stack above copy in tiles up to 520px wide and on mobile. Tiles appear only on the first results page. Grid positions count products and tiles together; tiles at positions 4 and 7 become the fourth and seventh items. Equal positions follow block order. A wide mosaic card still counts as one item. A full-row tile starts a new row even when the preceding product row is incomplete; narrower tiles wrap only when they cannot fit in the remaining columns.
- Tiles remain in the first page after sorting and filtering, but hide when too few products remain to reach their position. Load more and infinite scroll append products without repeating tiles; product counts exclude tiles.
- Color filter display applies to any filter named Color or Colour, and to filters set to show swatches in Search & Discovery. For Swatches, set a color or image on each value in Search & Discovery; a value without one uses its name, so a name like Mocha shows a neutral circle.
Editorial tiles inside the collection grid
The Product grid section can insert up to two Editorial tile blocks among the collection’s products. Use them for a formulation standard, a campaign story, or a link to a routine builder. The blocks are optional; removing both leaves the collection grid intact. Each collection template holds one Product grid, the collection’s main product list. All tile widths use a soft card shadow, following the selected color scheme’s shadow color, to separate editorial content from the product grid.
Add a tile
- Open a collection template in the theme editor and select Product grid.
- Choose Add block → Editorial tile.
- Add an optional Image, Heading, and Body text. Without an image, the tile presents its copy on the chosen color scheme. In wide desktop tiles with copy, images fill 40% of the tile and the text uses the remaining 60%. Tiles up to 520px wide stack the image above the copy. The banner starts between 280 and 360px tall and grows when longer copy needs more room. Images fill their column using the Shopify focal point; on mobile, they stack above the text with a 4:3 crop. An image without copy uses a 16:7 crop on desktop and 4:3 on mobile. 2000 x 1500px .jpg is recommended. Add meaningful image alt text in Shopify’s media editor.
- To add a call to action, set Link, then enter Link text. The link appears only when both are filled. Link text is available once a destination is selected. The action matches the blog posts’ Read more link, with a line arrow and the global text hover treatment. The arrow extends on hover or keyboard focus when interface motion is enabled and the customer has not requested reduced motion.
- Choose Tile width: 1 column, 2 columns, or Full row (default). Columns match product tile widths. Mobile limits a two-column tile to the available one or two columns.
- Set Grid position, from 1 through 26, then choose the tile’s Color scheme.
The heading and body defaults provide a text tile immediately. Replace them with your own copy. Only publish formulation and certification claims that apply to your products.
Set positions
Positions count products and editorial tiles together, starting from 1 on the first results page. For example, with at least five products and two blocks:
| Grid item | Content |
|---|---|
| 1–3 | Products 1–3 |
| 4 | Editorial tile with Grid position 4 |
| 5–6 | Products 4–5 |
| 7 | Editorial tile with Grid position 7 |
Choose different positions to place the tiles separately. If both request the same position, the first block in the editor appears there and the second takes the next slot. Reordering blocks breaks these ties; different positions determine their own order. Duplicating a block preserves its content, width, and position, so change its position to separate it from the original.
Tile width controls how much of the row each block occupies. A one-column tile sits beside products; a two-column tile uses the width of two products plus the gap between them. If there is insufficient room, the tile starts on the next row. Full row starts a new row after its preceding items, and the next product starts another row. Any unused columns stay empty; products keep their original reading order. For example, position 4 follows three products, even when the desktop grid has four columns. A wide product in Mosaic still counts as one item, so Grid position describes reading order rather than a particular row or column. The grid continues to show the selected number of products per page; tiles add to that number.
Filtering, sorting, and pagination
Show product type tabs turns the Product type filter into tabs above the grid, set by Product type tabs alignment. They need a Product type filter in the Shopify Search and Discovery app and at least two product types in the collection; otherwise the setting has no effect and Product type stays in the filters. Tab labels show product types exactly as written. Product type tabs keep the selected product type when shoppers change another filter or sort order, including when JavaScript is disabled. Rapid filter changes show the results of the latest selection. Clearing the maximum price restores the collection’s full price range. Price filter values work in any currency format, including ones with a comma decimal separator such as 12,50.
Color swatch filters show a focus ring and the color name for keyboard focus, touch, and hover, and mark a selection the moment it is tapped. A struck-through compare-at price always belongs to a variant at the price shown beside it; when prices vary, the Sale badge says only “Sale”.
Tiles appear only on the first results page. Sorting and filtering render them again at their configured positions. Numbered pages after page 1 contain products only. Load more and Infinite scroll append products without repeating the tiles, and product counts and screen reader announcements continue to count products only.
If Load more or Infinite scroll cannot load a page, a visible retry link stays available. Infinite scroll pauses automatic loading until the shopper retries successfully, then resumes.
A tile hides when the current page has too few products to reach its position. A position immediately after the last available item is allowed. In the theme editor, an unreachable tile shows a setup note so you can select it and lower Grid position. No tiles appear when there are no products, including when filters return no results.
A completely blank tile is omitted on the storefront. The editor displays a setup note in its slot so you can select it and enter content.
Content ownership
Shopify collection and product records own product selection, order, prices, variants, availability, and commerce media. Section settings own the grid layout, filters, sorting, and pagination. Editorial tile blocks own their images, headings, body text, links, color schemes, widths, and positions. They work with manual content and do not require metafields. The same collection template shares its tiles across the collections that use it; use a separate template for different editorial copy.
Section settings
Every setting on the section itself, in the order it appears in the theme editor. Group headings match the editor's own grouping.
Products
Product card design, badges, and swatches come from theme settings. Quick-view presentation uses shared theme defaults. Choose which shopping actions appear here.
Grid layout
Mosaic shows the first product as a wide feature card on the first page.
Toolbar
Turn this off when the collection banner already shows the count.
Shows the Product type filter as tabs above the grid instead of in the filters. Requires a Product type filter in the Shopify Search and Discovery app with at least two types in the collection.
When tabs overflow, they begin on the left for horizontal scrolling.
Filtering and sorting
Filter groups come from the filters you set up in the Search and Discovery settings.
Sidebar shows filters beside products. Drawer opens filters off-canvas (like the cart) on all screens.
Choose where applied filters appear on the collection page when using the drawer layout.
Width of the filter sidebar on desktop.
A group with an applied filter always starts open so shoppers can see what is narrowing their results.
Applies to color filters. Swatches use the color or image set on each value in Search and Discovery, or the value name when it is a standard color.
Displays a visual min–max range bar above the From/To inputs.
Card actions
Single-variant products go directly to the cart. Use Choose options action to set how customers select variants.
Choose whether products with variants open a compact purchase popup or their product page. The separate Quick view button keeps its full preview.
Controls where the add to cart button appears on product cards.
Controls the add to cart presentation below 750px.
Opens a popup for every product where customers can review details, select options, and add the item to cart.
Pagination
Use {count} to show how many products the next click loads. E.g. "Load {count} more products".
Appears after the last products load.
Spacing and color
Blocks
Blocks are added, reordered, duplicated, and removed inside the section. Each type has its own settings.
Editorial tile editorial_card
Content
Optional. 2000 x 1500px .jpg recommended. Uses the image focal point. Images appear beside text in wide tiles and above it in narrow tiles and on mobile.
Layout and color
Columns match product tile widths. Limited to the available columns on mobile.
Counts products and editorial tiles on the first results page. Tiles follow the preceding items and wrap to the next row when needed. Tiles sharing a position follow block order. Unreachable positions hide the tile.