Tuesday, April 19

How to get attribute name and value in Magento

Here is the code to get attribute code and value for any product
Let as assume the attribute code 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

$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();
 
// echo "
"; print_r($attributeInfo->getData()); echo "
";

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 "
"; print_r($attributeOptions); echo "
";

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 "
"; print_r($attributeOptionSingle); echo "
";

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

1 comment:

  1. Really found helpful. The coding helps for better understanding. Have also found some features of and why to choose it : http://www.designaeon.com/top-motivations-to-pick-magento/

    ReplyDelete