Question

I'm using the Milople Personalized Products Modules that creates a custom product type called "Milople Personalized Product" and I need to display a list of this products under a category id. I have tryed using this code:

$cat_id = 3;
$category = Mage::getModel('catalog/category')->load($cat_id);
$collection = $category->getProductCollection()->addAttributeToSort('position');
Mage::getModel('catalog/layer')->prepareProductCollection($collection);

And it works form all default product types that come with magento except for the personalized ones.

Was it helpful?

Solution

If it's a new product type, try to filter it in the collection:

   $collection = $category->getProductCollection()->addAttributeToSort('position')
->addAttributeToFilter('type_id', array('eq' => 'Milople Personalized Product'));

Hope this is what you want.

edit:

Try this:

$category = new Mage_Catalog_Model_Category(); 
$category->load(3); //this is category id 
$collection =
$category->getProductCollection()->addAttributeToFilter('type_id',
array('eq' => 'Milople Personalized Product'));

OTHER TIPS

Below code is export all product by category into csv .

<?php 
set_time_limit(0);
ini_set("memory_limit",-1);
ini_set('max_execution_time','1800000000');

require_once '../app/Mage.php';
Mage::app(); 

$category = Mage::getModel('catalog/category');
$tree = $category->getTreeModel();
$tree->load();

$ids = $tree->getCollection()->getAllIds();
$fp = fopen('category-product-export.csv', 'w');
$field = array('Product SKU','Category Name'); 
fputcsv($fp, $field);

$_productCollection = Mage::getModel('catalog/product')
                        ->getCollection()
                        ->addAttributeToSelect('*')
                        ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
                        ->load();

foreach ($_productCollection as $_product){
   $cats = $_product->getCategoryIds();
   $cnt = 0;
   $catName = '';
    foreach($cats as $id) {
        $category->load($id);
        $root = 'Root Catalog';
            $isRoot = strtolower($root);
            $categoryName = strtolower($category->getName());
            if($categoryName == $isRoot){
                continue;
            }
        $categories[$id]['name'] = $category->getName();
        $categories[$id]['path'] = $category->getPath();

        $path = explode('/', $categories[$id]['path']);
        $len = count($path);
        $string = '';
        if($id > 2){
            foreach ($path as $k=>$pathId)
            {
                $separator = '';
                if($pathId > 2){
                    $category->load($pathId);
                    if($k != $len-1){ $separator = ' || ';}
                    $string.= $category->getName() . $separator;
                }

            }
            if($cnt > 0) {
                $catName.= ','.$string;
            } else {
                $catName = $string;
            }

            $cnt++;
        }
    }
    //echo $catName;
    $field = array($_product->getSku(),$catName); 
    fputcsv($fp, $field);   

} 

?>
<a href="category-product-export.csv">Download</a>
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top