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

11

Simplificando - use o método getAttributeText .

$product->getAttributeText('brand')

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();
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.