Product Collection class in magento is Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection. Lets look at the important functions
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.
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.
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.
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.
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.
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.
1
2 |
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->addStoreFilter();
|
1
2 |
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->addWebsiteFilter();
|
1
2 |
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->getAllIds();
|
This returns an array with only products ids of collection.
1
2 |
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->addUrlRewrite();
|
This adds SEO friends urls to our product collection.
1
2 |
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->addCategoryIds();
|
This will add category ids to the products.
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
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.
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.
No comments:
Post a Comment