0
点赞
收藏
分享

微信扫一扫

magento Attribute Set Details


Introduction

An attribute set is a collection of attributes which can be created/edited from Catalog -> Manage Attribute Sets in backend.

Some useful snippets regarding Attribute Set.

1> Getting Attribute Set Details

​​$attributeSetModel​​​ ​​= Mage::getModel(​​​​'eav/entity_attribute_set'​​​​); ​​


​​$attributeSetId​​​ ​​= 9; ​​​​// or $_product->getAttributeSetId(); if you are using product model ​​


​​$attributeSetModel​​​​->load(​​​​$attributeSetId​​​​); ​​


​​print_r(​​​​$attributeSetModel​​​​->getData());​​


2> Getting Attribute Set Id by Name

​​$entityTypeId​​​ ​​= Mage::getModel(​​​​'eav/entity'​​​​) ​​


​​->setType(​​​​'catalog_product'​​​​) ​​


​​->getTypeId(); ​​


​​$attributeSetName​​​ ​​= ​​​​'Default'​​​​; ​​


​​$attributeSetId​​​ ​​= Mage::getModel(​​​​'eav/entity_attribute_set'​​​​) ​​


​​->getCollection() ​​


​​->setEntityTypeFilter(​​​​$entityTypeId​​​​) ​​


​​->addFieldToFilter(​​​​'attribute_set_name'​​​​, ​​​​$attributeSetName​​​​) ​​


​​->getFirstItem() ​​


​​->getAttributeSetId(); ​​


​​echo​​​ ​​$attributeSetId​​​​;​​


Note that the following code doesn’t work

​​$attributeSetId​​​ ​​= Mage::getModel(​​​​'eav/entity_attribute_set'​​​​) ​​


​​->load(​​​​$attributeSetName​​​​, ​​​​'attribute_set_name'​​​​) ​​


​​->getAttributeSetId();​​


Because if you refer to eav_attribute_set table then you can see there are lots of rows with same attribute set name(for example: Default)

3> Getting all Attribute Sets by Entity Type(catalog_product)

​​$entityTypeId​​​ ​​= Mage::getModel(​​​​'eav/entity'​​​​) ​​


​​->setType(​​​​'catalog_product'​​​​) ​​


​​->getTypeId(); ​​


​​$attributeSetCollection​​​ ​​= Mage::getModel(​​​​'eav/entity_attribute_set'​​​​) ​​


​​->getCollection() ​​


​​->setEntityTypeFilter(​​​​$entityTypeId​​​​); ​​


​​foreach​​​​(​​​​$attributeSetCollection​​​ ​​as​​​ ​​$_attributeSet​​​​){ ​​


​​print_r(​​​​$_attributeSet​​​​->getData()); ​​


​​}​​


Alternatively, you can also use:

​​$attributeSets​​​ ​​= Mage::getModel(​​​​'catalog/product_attribute_set_api'​​​​)->items(); ​​


​​foreach​​​​(​​​​$attributeSets​​​ ​​as​​​ ​​$_attributeSet​​​​){ ​​


​​print_r(​​​​$_attributeSet​​​​); ​​


​​}​​


4> Getting all attributes in an Attribute Set

​​$attributes​​​ ​​= Mage::getModel(​​​​'catalog/product_attribute_api'​​​​)->items(​​​​$attributeSetId​​​​); ​​


​​foreach​​​​(​​​​$attributes​​​ ​​as​​​ ​​$_attribute​​​​){ ​​


​​print_r(​​​​$_attribute​​​​); ​​


​​}​​


5> Filtering Products by Attribute Set

​​$productCollection​​​ ​​= Mage::getModel(​​​​'catalog/product'​​​​) ​​


​​->getCollection() ​​


​​->addAttributeToSelect(​​​​'*'​​​​) ​​


​​->addFieldToFilter(​​​​'attribute_set_id'​​​​, ​​​​$attributeSetId​​​​); ​​


​​foreach​​​​(​​​​$productCollection​​​ ​​as​​​ ​​$_product​​​​){ ​​


​​print_r(​​​​$_product​​​​->getData()); ​​


​​}​​



Hope you will find these snippets useful/helpful.
Please do share if you have any useful code snippets regarding Attribute Set.

Thanks for reading!

举报

相关推荐

0 条评论