B-219 Sec-55 Noida, India
+918010221733

How to use Collection in Magento

A collection is basically a Model type containing other Models, it is basically used in Magento to handle product lists (ie. from a category or a bundle option), but not only.

Product Collection class in magento is Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection.

Here is some Sort of code snippet for Magento Collection(s).

Get All Products of a category

$collection = Mage::getResourceModel(‘catalog/product_collection’)
->setStoreId($this->getStoreId())
->addCategoryFilter($category);

Tn this the addCategoryFilter() function, is used to get all products of a particular category. So, if you want to get all products of a certain category use this function.

Visibility Filter
———————
$collection = Mage::getResourceModel(‘catalog/product_collection’);
Mage::getSingleton(‘catalog/product_visibility’)
->addVisibleInCatalogFilterToCollection($collection);

The addVisibleFilterToCollection() adds visibility filter to a product collection i.e only products which are visible in frontend. The product which have “Not Visible Individually” selected in admin are removed.

Status Filter
—————–
$collection = Mage::getResourceModel(‘catalog/product_collection’);
Mage::getSingleton(‘catalog/product_status’)->addVisibleFilterToCollection($collection);

This basically filters out products which are “Disabled”. Only “Enabled” products remain in the collection.

Add Product Price To Collection
——————————————–
$collection = Mage::getResourceModel(‘catalog/product_collection’);
$collection ->addMinimalPrice()
->addFinalPrice()
->addTaxPercents();

This adds the product prices, i.e base price, final price etc to the collection. Also, price after tax, if applicable.

Filter By Ids
—————–
$collection = Mage::getResourceModel(‘catalog/product_collection’);
$collection->addIdFilter(array(1,2,3));
//$collection->addIdFilter(array(1,2,3),false);

This puts an id filter, only product with ids 1,2,3 remain in the collection. The function parameter is true/false, this means include/exclude products from collection.

Add Website ID to the collection
——————————————–
$collection = Mage::getResourceModel(‘catalog/product_collection’);
$collection->addWebsiteNamesToResult();

This adds website_id of each product to that collection. Only useful when using multiple websites in magento.

Filter Current Store Products
—————————————
$collection = Mage::getResourceModel(‘catalog/product_collection’);
$collection->addStoreFilter();

Filter Current Website Products
——————————————-
$collection = Mage::getResourceModel(‘catalog/product_collection’);
$collection->addWebsiteFilter();

Get All Products Ids
—————————
$collection = Mage::getResourceModel(‘catalog/product_collection’);
$collection->getAllIds();

This returns an array with only products ids of collection.

Add SEO Product URL
——————————
$collection = Mage::getResourceModel(‘catalog/product_collection’);
$collection->addUrlRewrite();

This adds SEO friends urls to our product collection.

Add Category Ids
————————
$collection = Mage::getResourceModel(‘catalog/product_collection’);
$collection->addCategoryIds();

This will add category ids to the products.

Add Tier Pricing
————————
$collection = Mage::getResourceModel(‘catalog/product_collection’);
$collection->addTierPriceData();

This added tier pricing data to each product in the collection.While we are on this subject, let look at some important function of the Product Object as well.

(Visited 52 times, 1 visits today)

Leave a reply