You are viewing an old revision of this post, from April 25, 2017 @ 11:21:37. See below for differences between this version and the current revision.

Magento – Product Collection

In this blog, we will see some important function in magento product collection class.

Product Collection class in magento is Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection. Lets look at the important functions

Get All Products of a category

1

2

3

$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

1

2

$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

1

2

$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

1

2

3

4

$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

1

2

3

$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

1

2

$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

1

2

$collection = Mage::getResourceModel('catalog/product_collection');

$collection->addStoreFilter();

Filter Current Website Products

1

2

$collection = Mage::getResourceModel('catalog/product_collection');

$collection->addWebsiteFilter();

Get All Products Ids

1

2

$collection = Mage::getResourceModel('catalog/product_collection');

$collection->getAllIds();

This returns an array with only products ids of collection.

Add SEO Product URL

1

2

$collection = Mage::getResourceModel('catalog/product_collection');

$collection->addUrlRewrite();

This adds SEO friends urls to our product collection.

Add Category Ids

1

2

$collection = Mage::getResourceModel('catalog/product_collection');

$collection->addCategoryIds();

This will add category ids to the products.

Add Tier Pricing

1

2

$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.

Function in Product Object

getTypeInstance()

This is an important function in magento and used widely. This function return an object of product type class located in folder Mage_Catalog_Model_Product_Type. These classes have function specially related to their product type. For example, functions related to configurable product only are located at Mage_Catalog_Model_Product_Type_Configurable.

getIdBySku()

This functions returns the id of a product based on its sku. This is usually used, when you want to load a product, but you only have its sku.

There are many more functions in both class which you should go through and are very useful. These function saves a lot of time, than to write complex sql query.

Revisions

  • April 25, 2017 @ 11:21:37 [Current Revision] by Sharing Solution
  • April 25, 2017 @ 11:21:37 by Sharing Solution

Revision Differences

There are no differences between the April 25, 2017 @ 11:21:37 revision and the current revision. (Maybe only post meta information was changed.)

No comments yet.

Leave a Reply