final String productCode = productMarketingSolr.getCode();
final ProductMarketing productMarketing = productService.getProductMarketingByCode(productCode);
final ProductSku productSku = productService.getProductSkuByCode(productMarketing.getDefaultProductSku().getCode());
final String productSkuName = productSku.getI18nName(localeCode);
final SearchProductItemViewBean searchItemViewBean = new SearchProductItemViewBean();
final CatalogCategoryVirtual catalogCategory = catalogCategoryService.getDefaultVirtualCatalogCategoryByProductSkuId(productSku.getId());
String categoryName = "";
if(catalogCategory != null){
categoryName = catalogCategory.getI18nName(localeCode);
searchItemViewBean.setCategoryCode(catalogCategory.getCode());
searchItemViewBean.setDetailsUrl(urlService.generateUrl(FoUrls.PRODUCT_DETAILS, requestData, catalogCategory, productMarketing, productSku));
}
final String productName = productMarketing.getCode();
searchItemViewBean.setName(categoryName + " " + productName + " " + productSkuName);
searchItemViewBean.setDescription(productMarketing.getDescription());
searchItemViewBean.setCode(productCode);
searchItemViewBean.setCategoryName(categoryName);
Map<String, String> getParams = new HashMap<String, String>();
getParams.put(RequestConstants.REQUEST_PARAMETER_PRODUCT_SKU_CODE, productSku.getCode());
searchItemViewBean.setAddToCartUrl(urlService.generateUrl(FoUrls.CART_ADD_ITEM, requestData, getParams));
final Asset defaultBackgroundImage = productMarketing.getDefaultBackgroundImage();
if (defaultBackgroundImage != null) {
final String backgroundImage = engineSettingService.getProductMarketingImageWebPath(defaultBackgroundImage);
searchItemViewBean.setBackgroundImage(backgroundImage);
} else {
searchItemViewBean.setBackgroundImage("");
}
final Asset defaultPackshotImage = productMarketing.getDefaultPackshotImage(ImageSize.SMALL.name());
if (defaultPackshotImage != null) {
final String carouselImage = engineSettingService.getProductMarketingImageWebPath(defaultPackshotImage);
searchItemViewBean.setCarouselImage(carouselImage);
} else {
searchItemViewBean.setCarouselImage("");
}
final Asset defaultIconImage = productMarketing.getDefaultThumbnailImage();
if (defaultIconImage != null) {
final String iconImage = engineSettingService.getProductMarketingImageWebPath(defaultIconImage);
searchItemViewBean.setIconImage(iconImage);
} else {
searchItemViewBean.setIconImage("");
}
Set<ProductSku> skus = productMarketing.getProductSkus();
if (skus != null) {
for (Iterator<ProductSku> iterator = skus.iterator(); iterator.hasNext();) {
final ProductSku productSkuTmp = (ProductSku) iterator.next();
final ProductSku reloadedProductSku = productService.getProductSkuByCode(productSkuTmp.getCode());
searchItemViewBean.getProductSkus().add(buildViewBeanProductSku(requestData, catalogCategory, productMarketing, reloadedProductSku));
}
}
searchItemViewBean.setCustomerProductRates(productService.calculateProductMarketingCustomerRatesByProductId(productMarketing.getId()));
return searchItemViewBean;
}