Skip to main content
The Browse module provides methods to browse product catalogs by filters, item IDs, groups, and facets.

Getting Started

The browse module is available on your Constructor.io client instance:
const ConstructorioClient = require('@constructor-io/constructorio-client-javascript');

const constructorio = new ConstructorioClient({
  apiKey: 'YOUR_API_KEY',
});

// Access the browse module
constructorio.browse.getBrowseResults('group_id', 't-shirts');

Methods

getBrowseResults

Retrieve browse results by filter name and value.
constructorio.browse.getBrowseResults('group_id', 't-shirts')
  .then((response) => {
    console.log(response.response.results);
  });

Parameters

filterName
string
required
The filter name to browse by (e.g., ‘group_id’, ‘category’)
filterValue
string
required
The filter value to display results from
parameters
object
Additional parameters to refine the result set

getBrowseResultsForItemIds

Retrieve browse results for specific item IDs.
constructorio.browse.getBrowseResultsForItemIds(
  ['shirt-123', 'shirt-456', 'shirt-789']
).then((response) => {
  console.log(response.response.results);
});

Parameters

itemIds
string[]
required
Array of item IDs to fetch
parameters
object
Additional parameters to refine the result set

getBrowseGroups

Retrieve browse groups from the API.
constructorio.browse.getBrowseGroups()
  .then((response) => {
    console.log(response.response.groups);
  });

Parameters

parameters
object
Additional parameters to refine the result set

getBrowseFacets

Retrieve all available facets for browsing.
constructorio.browse.getBrowseFacets()
  .then((response) => {
    console.log(response.response.facets);
  });

Parameters

parameters
object
Additional parameters to refine the result set

getBrowseFacetOptions

Retrieve options for a specific facet.
constructorio.browse.getBrowseFacetOptions('price')
  .then((response) => {
    console.log(response.response.facets);
  });

Parameters

facetName
string
required
Name of the facet whose options to return
parameters
object
Additional parameters

Response Structure

{
  "response": {
    "results": [
      {
        "matched_terms": ["t-shirt"],
        "data": {
          "id": "shirt-123",
          "title": "Blue T-Shirt",
          "url": "/products/shirt-123"
        },
        "result_id": "abc123-xyz789"
      }
    ],
    "facets": [...],
    "groups": [...],
    "total_num_results": 150
  },
  "result_id": "abc123-xyz789",
  "request": {...}
}
Each result item includes a result_id field that should be used when tracking user interactions.

Events

The browse module dispatches custom events on the browser window when requests complete:
window.addEventListener('cio.client.browse.getBrowseResults.completed', (event) => {
  console.log(event.detail);
}, false);

window.addEventListener('cio.client.browse.getBrowseResultsForItemIds.completed', (event) => {
  console.log(event.detail);
}, false);

window.addEventListener('cio.client.browse.getBrowseGroups.completed', (event) => {
  console.log(event.detail);
}, false);

window.addEventListener('cio.client.browse.getBrowseFacets.completed', (event) => {
  console.log(event.detail);
}, false);

window.addEventListener('cio.client.browse.getBrowseFacetOptions.completed', (event) => {
  console.log(event.detail);
}, false);

Common Use Cases

1

Category Navigation

Use getBrowseResults to display products in a category:
constructorio.browse.getBrowseResults('category', 'mens-clothing', {
  resultsPerPage: 24,
  page: 1
});
2

Faceted Search

Combine getBrowseResults with getBrowseFacets for filtering:
// Get facets
const facetsResponse = await constructorio.browse.getBrowseFacets();

// Apply user-selected filters
const results = await constructorio.browse.getBrowseResults('category', 'shoes', {
  filters: {
    size: '10',
    color: 'black'
  }
});
3

Related Products

Use getBrowseResultsForItemIds to show related items:
constructorio.browse.getBrowseResultsForItemIds(['item-1', 'item-2']);

Build docs developers (and LLMs) love