catalog_product_index_price 테이블에 일부 제품이 없습니다!


11

Magento에서 가격 인덱싱을 분명히하는 사람이 있습니까? 버전 1.9를 사용하고 있습니다.
내 작업 : 추천 제품을 홈페이지로 렌더링.
내 해결책 : "추천 제품"이라는 범주를 만드는 대신. "is_featured"속성을 만들었으므로 예상 결과를 얻기 위해 해당 속성으로 제품을 필터링하면됩니다.
내장 된 위젯 Mage_Catalog_Block_Product_Widget_New를 기반 으로 정의 된대로 제품 콜렉션을 가져 오는 함수입니다.

protected function _getProductCollection()
    {
        /** @var $collection Mage_Catalog_Model_Resource_Product_Collection */
        $collection = Mage::getResourceModel('catalog/product_collection');
        $collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
        $collection = $this->_addProductAttributesAndPrices($collection)
            ->addStoreFilter()
            ->addAttributeToFilter('is_featured', array('eq' => true))
            ->setPageSize($this->getProductsCount())
            ->setCurPage(1);
        return $collection;
    }

결과 : 일부 제품이 나타나지만 다른 제품이 없습니다. SQL 디버깅시 다음을 볼 수 있습니다.

SELECT 
    `e`.*,
    `cat_index`.`position` AS `cat_index_position`,
    `price_index`.`price`,
    `price_index`.`tax_class_id`,
    `price_index`.`final_price`,
    IF(price_index.tier_price IS NOT NULL,
        LEAST(price_index.min_price,
                price_index.tier_price),
        price_index.min_price) AS `minimal_price`,
    `price_index`.`min_price`,
    `price_index`.`max_price`,
    `price_index`.`tier_price`,
    `at_is_featured`.`value` AS `is_featured`
FROM
    `catalog_product_entity` AS `e`
        INNER JOIN
    `catalog_category_product_index` AS `cat_index` ON cat_index.product_id = e.entity_id
        AND cat_index.store_id = '1'
        AND cat_index.visibility IN (2 , 4)
        AND cat_index.category_id = '2'
        INNER JOIN
    `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id
        AND price_index.website_id = '1'
        AND price_index.customer_group_id = 0
        INNER JOIN
    `catalog_product_entity_int` AS `at_is_featured` ON (`at_is_featured`.`entity_id` = `e`.`entity_id`)
        AND (`at_is_featured`.`attribute_id` = '210')
        AND (`at_is_featured`.`store_id` = 0)
WHERE
    (at_is_featured.value = '1')
LIMIT 6

문제는 catalog_category_product_index 입니다.이 테이블에 일부 제품이 누락 되었습니까? 그러나 일부 제품의 색인이 누락되는 이유를 모르겠습니다. 예상 결과없이 Re-Index를 여러 번 시도했습니다! 아무도 나를 도울 수 있습니까? 고마워요!


나는 같은 문제를 다루고있다. 운?
versalle88

답변:


2

제품이 가격 지수에서 누락 된 경우 일반적으로 현재 웹 사이트와 연결되어 있지 않기 때문입니다.

제품의 인덱싱 방법을 확인하려면 가격 인덱서를 실행하고 Mage_Catalog_Model_Resource_Product_Indexer_Price_Default::_prepareFinalPriceData()285 행 에서 쿼리를 디버그하십시오 ( prepare_catalog_product_index_select이벤트가 트리거 된 후 ).

간단한 제품입니다. 다른 제품 유형의 경우 해당 인덱서 구현 (의 하위 클래스 Mage_Catalog_Model_Resource_Product_Indexer_Abstract)에서 동일합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.