Magento: How to get attribute name and value?
Attribute in Magento is like a property. All Products, Categories, Orders, Customers, etc. have attributes. For example, the attribute of a product is its name, sku, description, image, etc.
This article will show you how to get attribute name and value for any product.
The following code is about getting attribute collection and then fetching that attribute’s name, value, type, and other parameters.
Note: The attribute code in the case below is my_attribute.
/**
* get attribute collection
*/
$attribute = $_product->getResource()->getAttribute('my_attribute');
/**
* get attribute type
*/
$attribute->getAttributeType();
/**
* get attribute Label
*/
$attribute->getFrontendLabel();
/**
* get attribute default value
*/
$attribute->getDefaultValue();
/**
* check if the attribute is visible
*/
$attribute->getIsVisible();
/**
* check if the attribute is required
*/
$attribute->getIsRequired();
/**
* get attribute value
*/
$attributeValue = Mage::getModel('catalog/product')->load($_product->getId())->getMyAttribute();
Here is the code to fetch value from a select box attribute:-
Note: I suppose the attribute code to be ‘my_attribute‘
$attributeValue = Mage::getModel('catalog/product')
->load($_product->getId())
->getAttributeText('my_attribute');
Load any particular attribute by attribute code
Here is the code to get data of any particular attribute by the attribute code.
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
->setCodeFilter(YOUR_ATTRIBUTE_CODE)
->getFirstItem();
// echo "<pre>"; print_r($attributeInfo->getData()); echo "</pre>";
Get all option value list for the particular attribute
You can see above that I got attribute information by attribute code. My attribute information is stored as $attributeInfo.
Here is the code to get all option values for my attribute $attributeInfo.
$attributeOptions = $attributeInfo->getSource()->getAllOptions(false); // echo "<pre>"; print_r($attributeOptions); echo "</pre>";
Get attribute’s option information by option id
I have my attribute as $attributeInfo.
I have my attribute’s option value array as $attributeOptions.
Suppose, I want to get detail information of any option listed in $attributeOptions array. Here is the code to do so:-
$attributeId = $attributeInfo->getAttributeId();
$optionId = YOUR_ATTRIBUTE_OPTION_ID;
$attributeOptionSingle = Mage::getResourceModel('eav/entity_attribute_option_collection')
->setPositionOrder('asc')
->setAttributeFilter($attributeId)
->setIdFilter($optionId)
->setStoreFilter()
->load()
->getFirstItem();
// echo "<pre>"; print_r($attributeOptionSingle); echo "</pre>";
Get attribute of particular entity type
Here, I am going to get information about ‘order_id’ attribute of ‘invoice’ entity type.
$entityType = Mage::getModel('eav/config')->getEntityType('invoice');
$entityTypeId = $entityType->getEntityTypeId();
$attribute = Mage::getResourceModel('eav/entity_attribute_collection')
->setCodeFilter('order_id')
->setEntityTypeFilter($entityTypeId)
->getFirstItem();
Get attribute options of Configurable product
$confAttributes = $_product->getTypeInstance(true)->getConfigurableAttributesAsArray($_product);
Hope this helps. Thanks.
Related posts:
- Magento: Get list of all manufacturers
- Magento: How to delete System Attribute?
- Magento: Adding category attributes
- Magento: How to get / filter all products by attribute value?
- Magento: Get parent id of simple product associated to configurable product
- Magento: Get manufacturer name and id from product
- Magento: Adding attribute from MySql setup file
- Magento: How to get top rated products?
- Magento: How to run Magento code in an external website?
- Magento: Get Product Collection by Type
