Example #1
0
 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();
 }