algolia / algolia-pwa-demo

3 stars 1 forks source link

fix: don't require searchable facets for popular categories #31

Closed sbellone closed 1 month ago

sbellone commented 1 month ago

The getAlgoliaFacets function requires the targeted facet to be searchable. Since it's not a requirement for our SFRA cartridge, if people try the demo on their existing index, they would get the following error and the search results wouldn't appear:

"Cannot search in __primary_category.1 attribute, you need to add searchable(__primary_category.1) to attributesForFaceting."

Algolia has a way to get the facets and their count that doesn't require to have searchable facets: https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#retrieving-facets This PR uses this method to retrieve the facets.

The results object contains the following object:

[{
  "facets": {
    "__primary_category.1": {
      "Mens > Clothing": 490,
      "Womens > Accessories": 91,
      // ...
    }
  },
  // ...
}]

The transformResponse function transform it into a sorted array of { label: int, count: int } objects, like the getAlgoliaFacets was doing.


SFCC-388