Here’s a simple setup for a product collection with the following filters used in most of my modules, ideal for things like product feeds etc.
It has the following filters
– By Store
– Must have price > 0
– Must cost > 0
– Only simple products
– Visible either Catalog,Search or Both
$visibility = array( Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH, Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG, Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH ); $storeId = 1;
$collection = Mage::getResourceModel('catalog/product_collection'); $collection->getEntity()->setStoreId($storeId); // Reset the select. $collection->getSelect()->reset(); // Update table name. $reflectionMethod = new ReflectionMethod($collection, '_initSelect'); $reflectionMethod->setAccessible(true); $reflectionMethod->invoke($collection); $collection ->addAttributeToSelect('sku') ->addAttributeToSelect('name') ->addAttributeToSelect('description') ->addAttributeToSelect('small_image') ->addAttributeToSelect('manufacturer') ->addAttributeToSelect('msrp') ->addAttributeToFilter('visibility', $visibility) ->addAttributeToFilter('status', '1') ->addAttributeToFilter('type_id', array('eq' => 'simple')) ->addFinalPrice() ->setPageSize(900000) ->setCurPage(1);
The post Magento collection filtered appeared first on An authentic perspective.