Obter valor da opção por ID do atributo no Magento

Respostas:

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
fonte
11

Simplificando - use o método getAttributeText .

$product->getAttributeText('brand')
PromInc
fonte
Esta é a resposta certa.
Owen
1
isso foi tão difícil de encontrar, mas tão simples.
Patrick Lee Scott
2

Caso alguém encontre esta página e queira alguns métodos mais baixos para procurar atributos de qualquer tipo, em vez de apenas atributos do produto, aqui está um exemplo para procurar um atributo aleatório que eu criei chamado 'especialidade' e listar todas as opções como uma 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
fonte