Skip to content

Catalog components ​

Browse, search, filter, and sort products from Shopify collections. Catalog components coordinate through a shared catalog context, so changing a filter or sort order updates the product grid automatically.

Product grid ​

FmCatalog ​

Displays a product grid from a Shopify collection. Set the collection handle in the property controls panel. Supports pagination and coordinates with filter, sort, and search components.

FmCatalogCollection ​

Collection-level wrapper. Use when you need to display multiple collections on a single page or control collection-level layout.

FmCatalogItem ​

Represents a single product card within the catalog grid. Nest product components inside to display price, image, and variants for each item.

FmCatalogResultCount ​

Displays the number of products matching the current filters and search query (e.g., "24 products").

Sorting ​

FmCatalogSort ​

Controls the catalog's sort order via a dropdown. Options include price (low/high), title (A–Z/Z–A), best-selling, and newest.

Searching ​

FmCatalogSearch ​

Search input that filters products within the current catalog by title and tags as the visitor types.

FmCatalogSearchResults ​

Displays matching products for the current search query. Use inside a search results page or dropdown.

Link that navigates to a search results page with the current query. Use in navigation bars alongside a search input.

Filtering ​

FmCatalogFilter ​

Narrows products by option values (e.g., Size: S/M/L) or tags. Reads available options from the catalog context and updates the product grid on selection.

FmCatalogFilterCount ​

Shows the number of matching products for a specific filter value. Useful for showing "(12)" next to a filter option.

FmCatalogFilterReset ​

Clears all active filters and restores the full product list.

FmCatalogActiveFilters ​

Lists all currently applied filters. Nest FmCatalogActiveFilterLabel and FmCatalogActiveFilterRemove inside it.

FmCatalogActiveFilterLabel ​

Displays the name and value of an active filter (e.g., "Color: Blue").

FmCatalogActiveFilterRemove ​

Remove button for a single active filter. Nest inside FmCatalogActiveFilters.

FmCatalogActiveFilterState ​

Toggles child visibility based on whether any filters are active. Use to show/hide the "Active Filters" section.

Favorites ​

FmCatalogFavoriteButton ​

Toggles a product as a favorite. Persists in the visitor's browser.

FmCatalogFavorites ​

Displays the visitor's favorited products as a grid. Works like FmCatalog but sourced from local favorites instead of a Shopify collection.

Composition example ​

Frame (catalog page)
  ├── Frame (toolbar)
  │   ├── FmCatalogSearch
  │   ├── FmCatalogSort
  │   └── FmCatalogResultCount
  ├── Frame (sidebar)
  │   ├── FmCatalogFilter (Size)
  │   ├── FmCatalogFilter (Color)
  │   └── FmCatalogFilterReset
  ├── FmCatalogActiveFilterState
  │   └── FmCatalogActiveFilters
  │       └── FmCatalogActiveFilterLabel + FmCatalogActiveFilterRemove
  └── FmCatalog
      └── FmCatalogItem
          ├── FmProductPrice
          ├── FmProductAvailability
          └── FmCatalogFavoriteButton

Released under the MIT License.