Obtener el valor de la opción por ID de atributo en Magento

Respuestas:

16
$productModel = Mage::getModel('catalog/product');
$str_attr_label = "color";  //or "size", etc...
$int_attr_id = 8; // or any given id.
$int_attr_value = 21; // or any given attribute value id.

// Chose either
if ($byLabel){
    $attr = $productModel->getResource()->getAttribute($str_attr_label);
}
if ($byId){
    $attr = Mage::getModel('catalog/resource_eav_attribute')->load($int_attr_id);
}

if ($attr->usesSource()) {
    echo $color_label = $attr->getSource()->getOptionText($int_attr_value);
}       
Meetai.com
fuente
11

En pocas palabras: use el método getAttributeText .

$product->getAttributeText('brand')
PromInc
fuente
Esta es la respuesta correcta.
Owen
1
Esto fue muy difícil de encontrar, pero muy simple.
Patrick Lee Scott
2

En caso de que alguien encuentre esta página y quiera algunos métodos bajos para buscar atributos de cualquier tipo, en lugar de solo atributos de productos, aquí hay un ejemplo para buscar un atributo aleatorio que creé que se llama 'especialidad' y enumere todas las opciones como una matriz.

$attr = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter('specialty')->getData()[0];
$attributeModel = Mage::getModel('eav/entity_attribute')->load($attr['attribute_id']);
$src =  $attributeModel->getSource()->getAllOptions();
CarComp
fuente