Leverage variants and availabilities

This is for:


The way you define your commerce catalog data will determine which fields of the catalog object types you create can be associated to a filter when using facets.

When the structure of your queried catalog is simple (that is, contains only products), then understanding which fields are available for facets is straightforward. You can create facets on all facet-enabled fields populated by items identified as products in the catalog.

However, if the structure of the queried catalog is more complex (that is, contains products, variants, and/or availability channels), facets can affect multiple object types. Refer to the Facet Association tab to view which facetable field names exist for each object type.

Leading practice

Ensure that a given field on which you want to create a facet is only defined for one type of object in the catalog.

This can be verified in the Content Browser (platform-ca | platform-eu | platform-au). For example, to test the color field, in the content browser search bar, enter @color and ensure that there’s only one value in the Object Type facet (for example, Variant)

Once you have defined your catalog structure and understood facet association, the next step involves retrieving the fields which can apply to the other methods for leveraging variants and availabilities, such as:

Alternatively, you can disable availability filtering, to ensure all products appear in the search results, regardless of availability channels.

Disable availability filtering

If your catalog contains availability channels and your commerce interface allows customers to disable availability filtering (that is, the ability to view the products from all availability channels at once), you can use the AvailabilityFilterStrategy parameter to ensure that all products are returned in search results.

By default, if your catalog uses availability channels, only products referenced in at least one availability channel are displayed.

Changing the filter strategy ensures that all products matching the search criteria are displayed, even if no availabilityId is specified. This feature allows customers who disabled availability filtering to access the entire product catalog, regardless of whether the products are referenced in availability channels or not.

Whether this may apply to your website search interface depends entirely on your use case. It can be enabled after the catalog configuration.


A retailer sets up their 1:1 catalog configuration and doesn’t have availability objects that contain all their products, regardless of location. By changing the AvailabilityFilterStrategy, a user would be able to query a catalog without a store location.

How to change the availability filter strategy

Currently, you can only disable availability filters on the catalog through the REST API. You’ll need to modify the AvailabilityFilterStrategy option in the catalog configuration. By default, the option is set to ALWAYS and will only return items that have availabilities. When changed to WHEN_SPECIFIED, it will only filter by availability, if an availability is specified in the search request. Otherwise, it won’t filter by availabilities.