doug48
8/2/2016 - 10:10 AM

magento category products lowest level category

magento category products lowest level category

<?php
class Category 
{
    private $lowestProductCategories;
    private $lowestCategoriesByName;
    
        /**
     * @param $productId
     * @return array
     */
    private function getParentProducts($productId){
    return Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($productId);
}
    
   private function getLowestCategories()
    {
        if ( ! $this->lowestCategoriesByName ) {
            $cat = Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('children_count')->addAttributeToSelect('name');
            foreach ($cat as $category) {
                if ( $category->getData('children_count') == 0 ) {
                    $this->lowestCategoriesByName[$category->getData('name')] = $category;
                }

            }
        }
        return $this->lowestCategoriesByName;
    }

    private function getProductsForCategories($categories)
    {
        if ( ! $this->lowestProductCategories ) {
            $productsForLowestCategories = array();
            foreach ($categories as $category) {
                $productsForLowestCategories[$category->getName()] = Mage::getResourceModel('catalog/product_collection')
                    ->addCategoryFilter($category)
                    ->addAttributeToSelect('entity_id');
            }
            foreach ($productsForLowestCategories as $key => $product) {
                foreach ($product->getData() as $item) {
                    $prods[$key][] = $item['entity_id'];
                }

            }
            $this->lowestProductCategories = $prods;
        }
        return $this->lowestProductCategories;
    }
}