Magento -> addCategoryFilter - filtrado de la colección de productos por categoría raíz

Sobre el uso de la -> addCategoryFilter en una colección de productos. ¿Por qué no es posible filtrar por la categoría raíz? Tengo 2 tiendas, ambas con diferentes categorías de raíz. Quiero mostrar una lista de los productos más vendidos en mi página de inicio. Pero no puedo filtrar los productos por la categoría raíz, solo las subcategorías debajo de eso.

Entonces, en mi página de inicio, aparecen todos los productos de ambas tiendas. Puedo filtrar ok por cualquier subcategoría. Por ejemplo, mi segunda categoría raíz tiene una ID de 35. Si trato de filtrar por esto, obtengo todos los productos de ambas raíces. Pero la primera subcategoría bajo esa raíz es ID 36, y el filtrado por esto funciona correctamente, mostrando solo esos productos. Mi llamada es la siguiente (simplificada):

$_category = Mage::getModel('catalog/category')->load(35);

$_testproductCollection = Mage::getResourceModel('catalog/product_collection')
->addCategoryFilter($_category)
->addAttributeToSelect('*');
$_testproductCollection->load();

foreach($_testproductCollection as $_testproduct){ 
echo $this->htmlEscape($_testproduct->getName())."<br/>"; 
};

¿Alguien sabe por qué esto no funciona? ¿O hay alguna otra forma de filtrar por la categoría raíz?

ACTUALIZAR Todavía no he tenido suerte con esto. Parece muy defectuoso: agregar un filtro de categoría usando la categoría raíz solo funciona a veces, debe agregar todos los productos a la raíz, luego guardar, luego eliminar los que no deberían estar en ese gato raíz y luego volver a guardar. Pero si vuelve a indexar, volverá a mostrar todos los productos. Si saco la consulta sql de mi llamada de colección anterior, obtengo lo siguiente:

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`, 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` 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='2' AND cat_index.category_id='35' 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

Como puede ver, la categoría aparece allí, entonces, ¿por qué no funciona el filtro?

Respuestas a la pregunta(5)

Su respuesta a la pregunta