All pages
Powered by GitBook
1 of 1

Loading...

Implement Category pages

Nosto provides functionality to retrieve all products for a specific category. This is useful when you want to implement category merchandising using the same API as for Search.

API Requests

Using category ID and category path

Using the category ID is only fully supported for Shopify merchants. Others should use the category path instead to benefit from full functionality.

Provide the API parameter to fetch all products associated with that category. Additionally should be provided for better analytics data.

Query

Product fields that can be requested in the hits object are documented . All indexed fields are accessible via the API.

Using only category path

Provide the API parameter to fetch all products associated with that category. This parameter is the same as the categories product field.

Query

Product fields that can be requested in the hits object are documented . All indexed fields are accessible via the API.

Child category handling

Depending on your configuration, fetching a parent category will also include products from the child categories. For example, fetching products for the category Pants would also include products from the categories Pants -> Shorts and Pants -> Khakis.

This is an admin-only setting. Please contact your Nosto representative to adjust this setting.

Using custom filters

In some rare cases or is not enough. In these cases can be used to build any query for category & landing pages.

Query

Other features & implementation

The category page shares a lot of similarities with the search page, so please refer to the search page documentation:

Analytics

Nosto Analytics

categoryId
categoryPath
here
categoryPath
here
categoryId
categoryPath
custom filters
Implement Search results page
query {
  search(
    accountId: "YOUR_ACCOUNT_ID"
    products: {
      categoryId: "123456789",
      categoryPath: "Pants"
    }
  ) {
    products {
      hits {
        productId
        name
        url
        imageUrl
        price
      }
      total
      size
    }
  }
}
query {
  search(
    accountId: "YOUR_ACCOUNT_ID"
    products: {
      categoryPath: "Pants"
    }
  ) {
    products {
      hits {
        productId
        name
        url
        imageUrl
        price
      }
      total
      size
    }
  }
}
query {
  search(
    accountId: "YOUR_ACCOUNT_ID"
    products: {
      preFilter: [
        {
          field: "productId",
          value: [
            "2276",
            "2274"
          ]
        }
      ],
    }
  ) {
    products {
      hits {
        productId
        name
      }
      total
      size
    }
  }
}

To analyze user behavior you need to implement tracking. This can be achieved in two different ways, depending on the integration environment:

  • JavaScript library (recommended - more convenient, but requires a JavaScript environment).

  • GraphQL API (works anywhere).