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


12

¿Cómo puede Magento encontrar un valor de atributo mediante una etiqueta de atributo dada o una identificación de atributo dada?


Creo que esto es respondido por otra pregunta SO vista [aquí] ( magento.stackexchange.com/a/8396 )
sbditto85

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

11

En pocas palabras: use el método getAttributeText .

$product->getAttributeText('brand')

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();
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.