protected function _getProductData(Product $product, ProductIterator $children)
    {
        $categoryIds = $this->categoryRepository->getCategoryIds($product);
        $productData = new IndexDocument(array(
            'id' => $product->getSolrId(), // primary identifier, must be unique
            'product_id' => $product->getId(),
            'category' => $categoryIds, // @todo get category ids from parent anchor categories as well
            'category_name_t_mv' => $this->categoryRepository->getCategoryNames($categoryIds, $product->getStoreId()),
            'store_id' => $product->getStoreId(),
            'content_type' => self::CONTENT_TYPE,
            'is_visible_in_catalog_i' => intval($product->isVisibleInCatalog()),
            'is_visible_in_search_i' => intval($product->isVisibleInSearch()),
            'has_special_price_i' => intval($product->hasSpecialPrice()),
            'is_in_stock_i' => intval($product->isInStock()),
        ));

        $this->_addBoostToProductData($product, $productData);

        $this->_addFacetsToProductData($product, $productData, $children);

        $this->_addSearchDataToProductData($product, $productData, $children);

        $this->_addSortingDataToProductData($product, $productData);

        $this->_addResultHtmlToProductData($product, $productData);

        $this->_addCategoryProductPositionsToProductData($product, $productData);

        $this->eventDispatcher->dispatch('integernet_solr_get_product_data', array(
            'product' => $product,
            'product_data' => $productData,
            'children' => $children,
        ));

        return $productData;
    }
protected function _getProductData(Product $product, ProductIterator $children)
    {
        $categoryIds = $this->categoryRepository->getCategoryIds($product);
        $productData = new IndexDocument(array(
            'id' => $product->getSolrId(), // primary identifier, must be unique
            'product_id' => $product->getId(),
            'category' => $categoryIds, // @todo get category ids from parent anchor categories as well
            'category_name_t_mv' => $this->categoryRepository->getCategoryNames($categoryIds, $product->getStoreId()),
            'store_id' => $product->getStoreId(),
            'content_type' => self::CONTENT_TYPE,
            'is_visible_in_catalog_i' => intval($product->isVisibleInCatalog()),
            'is_visible_in_search_i' => intval($product->isVisibleInSearch()),
            'has_special_price_i' => intval($product->hasSpecialPrice()),
            'is_in_stock_i' => intval($product->isInStock()),
        ));

        $this->_addBoostToProductData($product, $productData);

        $this->_addFacetsToProductData($product, $productData, $children);

        $this->_addSearchDataToProductData($product, $productData, $children);

        $this->_addSortingDataToProductData($product, $productData);

        $this->_addResultHtmlToProductData($product, $productData);

        $this->_addCategoryProductPositionsToProductData($product, $productData);

        $this->eventDispatcher->dispatch('integernet_solr_get_product_data', array(
            'product' => $product,
            'product_data' => $productData,
            'children' => $children,
        ));

        return $productData;
    }
protected function _getProductData ( Product $ product , ProductIterator $ children ) { $ categoryIds = $ this -> categoryRepository -> getCategoryIds ( $ product ) ; $ productData = new IndexDocument ( array ( 'id' => $ product -> getSolrId ( ) , // primary identifier, must be unique 'product_id' => $ product -> getId ( ) , 'category' => $ categoryIds , // @todo get category ids from parent anchor categories as well 'category_name_t_mv' => $ this -> categoryRepository -> getCategoryNames ( $ categoryIds , $ product -> getStoreId ( ) ) , 'store_id' => $ product -> getStoreId ( ) , 'content_type' => self :: CONTENT_TYPE , 'is_visible_in_catalog_i' => intval ( $ product -> isVisibleInCatalog ( ) ) , 'is_visible_in_search_i' => intval ( $ product -> isVisibleInSearch ( ) ) , 'has_special_price_i' => intval ( $ product -> hasSpecialPrice ( ) ) , 'is_in_stock_i' => intval ( $ product -> isInStock ( ) ) , ) ) ; $ this -> _addBoostToProductData ( $ product , $ productData ) ; $ this -> _addFacetsToProductData ( $ product , $ productData , $ children ) ; $ this -> _addSearchDataToProductData ( $ product , $ productData , $ children ) ; $ this -> _addSortingDataToProductData ( $ product , $ productData ) ; $ this -> _addResultHtmlToProductData ( $ product , $ productData ) ; $ this -> _addCategoryProductPositionsToProductData ( $ product , $ productData ) ; $ this -> eventDispatcher -> dispatch ( 'integernet_solr_get_product_data' , array ( 'product' => $ product , 'product_data' => $ productData , 'children' => $ children , ) ) ; return $ productData ; }
Generate single product data for Solr

@param Product $product
@param ProductIterator $children
@return IndexDocument
Generate single product data for Solr