Implementing Category Facets - Bloomreach Experience - Open Source CMS

Implementing Category Facets

There are many ways to implement category facets on your site. Bloomreach recommends that you curate the category response to make it more usable, less confusing, and add value to your site. We have provided some effective implementation schemes below.

Note: Bloomreach does not modify category output in this field for the following two key reasons:

  • It references our internal category tree which cannot be modified as it powers the Category API.

  • Different customers want to implement category facets differently, so we supply enough data in the response so you can customise to your specific needs.

To understand the implementation, we will use the following sample category structure throughout this document as an example. You can view the complete sample structure at the end of this page

User Flow in Category Facet Implementation

The flow of user-selection defines how you show the categories within your pages. 

Explained in the table below using placeholder names such as Cat1, Cat2,Cat3 and so on, along with examples. The bolded text shows the selection by the user and the corresponding child category that lies within it.

Root

Cat1 

 

(Sofas & Lounges) 

Cat2 

 

(Fabric Sofas)

Cat3 

 

(Futon Sofas)

Children

Cat1A, Cat1B, Cat1C

 

 (Recliners, sofa sets, sectional sofas)

Cat2A, Cat2B, Cat2C

 

(Modular, Fabric sofa bed, Coated fabric sofas)

Cat3A, Cat3B, Cat3C

 

(Single futons, double futons)

Grandchildren

Cat1Aa, Cat1Ab, Cat1Ac, Cat1Ba…

 

(Single seat recliners, 2- seat recliners, 3 -seat recliners)

Cat2Aa, Cat2Ab, Cat2Ac, Cat2Ba…

 

(Modular fabric sofa, Sofa modules, Modular coated fabric sofa)

Cat3Aa, Cat3Ab, Cat3Ac, Cat3Ba…

 

(Futon frames, Futon mattresses, Futon sets)

Great-grandchildren

Cat1Aa1, Cat1Aa2, Cat1Aa3, Cat1Ab1…

 

(Manual seat recliners, Power motion recliners)

Cat2Aa1, Cat2Aa2, Cat2Aa3, Cat2Ab1…

 

(2-seater, 3-seater, 4-seater)

Cat3Aa1, Cat3Aa2, Cat3Aa3, Cat3Ab1…

 

(Wallhugger Futon Frames, Hardwood Futon Frames, Solid Wood Amish Futon Frames)

Implementation Methods

Listed below are 6 different various of how you can implement category facets in your site:

Method 1: Drill Down Method

Start at the root and only display the immediate children of the current category. Once a category is selected, only display its children.

Example

Category Location

Facets Displayed

Example

Root

Cat1

Cat2

Cat3

Sofas & lounges

Fabric Sofas

Futon Sofas

Cat1 selected

(Sofas & lounges)

Cat1A

Cat1B

Cat1C

Recliners 

Sofa sets

Sectional sofas

Cat1A selected

(Recliners)

Cat1Aa

Cat1Ab

Cat1Ac

Single seat recliners

2- seat recliners

3- seat recliners

Method 2: Drill Down Mark 2

Same as Drill Down, but also display grandchildren along with children.

Example

Category Location

Facets Displayed

Example

Root

Cat1

Cat2 

Cat3

Sofas & lounges

Fabric sofas

Futon Sofas

Cat1 selected

Cat1A

   Cat1Aa

   Cat1Ab

   Cat1Ac

Cat1B

   Cat1Ba

   Cat1Bb

   Cat1Bc

Cat1C

   Cat1Ca

   Cat1Cb

   Cat1Cc

Recliners 

   2- seat recliners

   Single seat recliners

   3 seat recliners

 

Lounges & Armchairs

   Footstools & pouffes

   Lounge Chairs

   Balcony Chairs

 

Sectional Sofas

   Corner Sofas

   RHS Sectional Sofas

   LHS Sectional Sofas

Cat1A selected

Cat1Aa

   Cat1Aa1

   Cat1Aa2

Cat1Ab

   Cat1Ab1

   Cat1Ab2

Cat1Ac

   Cat1Ac1

   Cat1Ac2

   

2- seat recliners

     Manual 2 seat recliners 

     Power motion recliners

Single seat recliners

    Manual 2 seat recliners 

    Power motion recliners

3 seat recliners

    Manual 2 seat recliners

   Power motion recliners

Method 3: Drill Down Mark 3

Same as Drill Down Mark 2, but also display a tree to navigate back up to the original category.

Example

Category Location

Facets Displayed

Example

Root

Cat1

Cat2

Cat3

Sofas & lounges

Fabric sofas

Futon Sofas

Cat1 selected

Cat1

   Cat1A

      Cat1Aa

      Cat1Ab

      Cat1Ac

   Cat1B

      Cat1Ba

      Cat1Bb

      Cat1Bc

   Cat1C

      Cat1Ca

      Cat1Cb

      Cat1Cc

Sofas & lounges

   Recliners 

       Single seat recliners

       2- seat recliners

       3- seat recliners

    Lounges & Armchairs

      Footstools & pouffes

      Lounge Chairs

      Balcony Chairs

    Sectional Sofas

      Corner Sofas

      RHS Sectional Sofas

     LHS Sectional Sofas

Cat1A selected

Cat1

   Cat1A

      Cat1Aa

         Cat1Aa1

         Cat1Aa2

      Cat1Ab

         Cat1Ab1

         Cat1Ab2

      Cat1Ac

         Cat1Ac1

         Cat1Ac2

         

Sofas & lounges

     Recliners 

         Single seat recliners

Manual seat recliners

           Power motion recliners

        2- seat recliners

           Manual 2-seat recliner

          Power motion recliners

       3- seat recliners

          Manual 2 seat recliners

          Power motion recliners

Method 4: Full Expansion 

All data is present, but is hidden behind collapsed menus, so you have to open up the children and the other children.

Example

Category Location

Facets Displayed

Example

Root

> Cat1

> Cat2

> Cat3

Sofas & lounges

Fabric sofas

Futon Sofas

Cat1 selected

V Cat1

   > Cat1A

   > Cat1B

   > Cat1C

> Cat2

> Cat3

Sofas & lounges

      Recliners 

     Lounges & Armchairs

    Sectional Sofas

Fabric sofas

Futon Sofas

Cat1A selected

V Cat1

   V Cat1A

      > Cat1Aa

      > Cat1Ab

      > Cat1Ac

   > Cat1B

   > Cat1C

> Cat2

> Cat3

Sofas & lounges

      Recliners 

        Single seat recliners

        2- seat recliners

       3- seat recliners

     Lounges & Armchairs

    Sectional Sofas

Fabric sofas

Futon Sofas

Method 5: Full Expansion Variation

A hybrid of Full Expansion and Drill Down, with collapsed menus but only displays child and sibling categories.

Example

Category Location

Facets Displayed

Example

Root

> Cat1

> Cat2

> Cat3

Sofas & lounges

Fabric sofas

Futon Sofas

Cat1 selected

V Cat1

   > Cat1A

   > Cat1B

   > Cat1C

> Cat2

> Cat3

Sofas & lounges

     Recliners 

     Lounges & Armchairs

    Sectional Sofas

Fabric sofas

Futon Sofas

Cat1A selected

V Cat1

   V Cat1A

      > Cat1Aa

      > Cat1Ab

      > Cat1Ac

   > Cat1B

   > Cat1C

Sofas & lounges

     Recliners 

        Single seat recliners

        2- seat recliners

       3- seat recliners

     Lounges & Armchairs

    Sectional Sofas

Method 6: Show all leaf nodes

In addition to showing all leaf nodes, have category facets redirect to the category page selected instead of filtering results.

How to Implement

Before you begin

Ensure you have taken care of the following points before you implement category facets:

  • Make sure crumbs are defined properly in feed

  • Understand and determine your current position, your current category ID

  • To find siblings, get category facets with the same parent id of current category ID

  • To find children, get category facets with parent = current category ID

  • To find ancestor, get category facet with category ID matching preceding values in crumbs up to root category

Implementing Drill Down  

  1. Start at root

  2. Find children of selected category

  3. Show children

Implementing Drill Down Mark 2

  1. Start at root

  2. Find children of selected category

  3. Find children of children

  4. Show children and grandchildren

Implementing Drill Down Mark 3

  1. Start at root

  2. Find children of selected category

  3. Find children of children

  4. Find all ancestors of selected category

  5. Show children, grandchildren, and ancestors

Implementing Full Expansion 

  1. Start at root

  2. Find children of selected category

  3. Show children of selected category or categories

Implementing Full Expansion Variation

  1. Start at root

  2. Find children of selected category

  3. Find siblings of selected category

  4. Show children and siblings of selected category

Reference Sample Structure

The structure given below is created for reference and for the purpose of implementation understanding:

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?