List<SearchFacetDTO> availableFacets = getSearchService().getCategoryFacets(category);
ProductSearchCriteria searchCriteria = facetService.buildSearchCriteria(request, availableFacets);
String searchTerm = request.getParameter(ProductSearchCriteria.QUERY_STRING);
ProductSearchResult result;
if (StringUtils.isNotBlank(searchTerm)) {
result = getSearchService().findProductsByCategoryAndQuery(category, searchTerm, searchCriteria);
} else {
result = getSearchService().findProductsByCategory(category, searchCriteria);
}
facetService.setActiveFacetResults(result.getFacets(), request);
model.addObject(CATEGORY_ATTRIBUTE_NAME, category);
model.addObject(PRODUCTS_ATTRIBUTE_NAME, result.getProducts());
model.addObject(FACETS_ATTRIBUTE_NAME, result.getFacets());
model.addObject(PRODUCT_SEARCH_RESULT_ATTRIBUTE_NAME, result);
if (result.getProducts() != null) {
model.addObject(ALL_PRODUCTS_ATTRIBUTE_NAME, new HashSet<Product>(result.getProducts()));
}
addDeepLink(model, deepLinkService, category);
ExtensionResultHolder<String> erh = new ExtensionResultHolder<String>();