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.

Get attribute’s name, value, type, and other parameters

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();

Get value from a select box attribute

The attribute code is supposed to be my_attribute


$attributeValue = Mage::getModel('catalog/product')
            ->load($_product->getId())
            ->getAttributeText('my_attribute');

Load any particular attribute by attribute code


$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
                ->setCodeFilter(YOUR_ATTRIBUTE_CODE)
                ->getFirstItem();

// print_r($attributeInfo->getData());

Load any particular attribute by attribute code: Another way

In the code below, we provide the entity type and attribute code to the loadByCode function.

$entityType can be either “entity_type_id” OR “entity_type_code” OR instance of “Mage_Eav_Model_Entity_Type” class.

Here, we will be fetching “color” attribute of “product”.


$entityType = 'catalog_product';
$attributeCode = 'color';
$attributeInfo = Mage::getModel('eav/entity_attribute')
                ->loadByCode($entityType, $attributeCode);

// print_r($attributeInfo->getData());

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. See code above.

Here is the code to get all option values for my attribute $attributeInfo.


$attributeOptions = $attributeInfo->getSource()->getAllOptions(false);
// print_r($attributeOptions);

Get all options of any attribute

Getting all options of attribute with attribute-code “color“.


$attribute = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'color');
if ($attribute->usesSource()) {
    $options = $attribute->getSource()->getAllOptions(false);
}

Get attribute’s option information by option id

I have my attribute as $attributeInfo.
I have my attribute’s option value array as $attributeOptions.
See code above.

Suppose, I want to get detail information of any option listed in strong>$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();
                                    
// print_r($attributeOptionSingle);

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 of particular entity type : Another way

Here, we are fetching information about “color” attribute of “product”.

$entityType can be either “entity_type_id” OR “entity_type_code” OR instance of “Mage_Eav_Model_Entity_Type” class.

The “entity_type_id” or “entity_type_code” can be found in database table eav_entity_type.


$entityType = 'catalog_product';
$attributeCode = 'color';
$attributeInfo = Mage::getModel('eav/entity_attribute')
                ->loadByCode($entityType, $attributeCode);

// print_r($attributeInfo->getData());

Get attribute options of Configurable product


$confAttributes = $_product->getTypeInstance(true)->getConfigurableAttributesAsArray($_product);

Hope this helps. Thanks.