/** * @inheritdoc */ public function search(Criteria $criteria, StoreFrontBundle\Struct\ProductContextInterface $context) { $numberResult = $this->searchGateway->search($criteria, $context); $numbers = array_keys($numberResult->getProducts()); $products = $this->productService->getList($numbers, $context); $products = $this->assignAttributes($products, $numberResult->getProducts()); $result = new ProductSearchResult($products, $numberResult->getTotalCount(), $numberResult->getFacets()); $result->addAttributes($numberResult->getAttributes()); return $result; }
/** * @param ProductSearchResult $result * @return array */ private function convertProducts(ProductSearchResult $result) { $articles = array(); foreach ($result->getProducts() as $product) { $article = $this->get('legacy_struct_converter')->convertListProductStruct($product); if ($article['sVoteAverange']['averange']) { $article['sVoteAverange']['averange'] /= 2; } $article['link'] = $this->Front()->Router()->assemble(array('controller' => 'detail', 'sArticle' => $product->getId(), 'title' => $product->getName())); $article['name'] = $product->getName(); $articles[] = $article; } return $articles; }
/** * @param ProductSearchResult $result * @return array */ private function convertProducts(ProductSearchResult $result) { $articles = array(); foreach ($result->getProducts() as $product) { $article = $this->get('legacy_struct_converter')->convertListProductStruct($product); if ($article['sVoteAverange']['averange']) { $article['sVoteAverange']['averange'] /= 2; } $articles[] = $article; } if (empty($articles)) { return null; } return $articles; }
/** * @param ProductSearchResult $result * @param int $category * @return array */ private function mapData(ProductSearchResult $result, $category) { $data = []; foreach ($result->getProducts() as $product) { $article = Shopware()->Container()->get('legacy_struct_converter')->convertListProductStruct($product); $article = Shopware()->Container()->get('legacy_event_manager')->firePromotionByIdEvents($article, $category, Shopware()->Modules()->Articles()); if ($article) { $data[] = $article; } } return $data; }