private function getSimilarProducts(Website_DefaultProduct $product, Object_FilterDefinition $filterDefinition = null) { if ($filterDefinition) { $productList = OnlineShop_Framework_Factory::getInstance()->getIndexService()->getProductListForCurrentTenant(); $productList->setVariantMode(OnlineShop_Framework_IProductList::VARIANT_MODE_INCLUDE_PARENT_OBJECT); $similarityFields = $filterDefinition->getSimilarityFields(); if ($similarityFields) { $statement = $productList->buildSimularityOrderBy($filterDefinition->getSimilarityFields(), $product->getId()); } if (!empty($statement)) { $productList->setLimit(2); $productList->setOrder("ASC"); $productList->addCondition("o_virtualProductId != " . $product->internalGetBaseProduct()->getId(), "o_id"); if ($filterDefinition->getCrossSellingCategory()) { $productList->setCategory($filterDefinition->getCrossSellingCategory()); } $productList->setOrderKey($statement); return $productList->load(); } } return array(); }