Tome el siguiente producto de "automóvil": Volkswagen Golf .
Tiene un atributo de selección múltiple car_optionscon las siguientes opciones posibles y sus identificadores:
- Airco (id = 123) seleccionado
- Radio (id = 124) seleccionada
- Bluetooth (id = 125)
- Navegación (id = 126)
Radio y Airco son seleccionados para este producto. ¿Cómo puedo obtener esos dos valores (radio, airco) y mostrarlos? $ _producto es dado.

var_dump($_product->getData('car_options');y verifica la salida. Debería ser una cadena separada por comas, si no es así, solo puedo imaginar que un módulo de terceros está interfiriendo.$_product->getData('car_options')devuelve NULL, significa que no se agrega a su colección de productos. Necesitaremos saber más sobre dónde está intentando acceder a este atributo$ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance (); $ product = $ objectManager-> get ('Magento \ Catalog \ Model \ Product') -> load ($ product_id); $ attributevalues = $ product-> getResource () -> getAttributeRawValue ($ product_id, 'my_custom_attribute_code', $ storeid);funciona ... Espero que te ayude ...
fuente
El siguiente código
$ _attribute_code = 'car_options'; $ car_options_csv = Mage :: getResourceModel ('catalog / product') -> getAttributeRawValue ($ productId, $ _attribute_code, $ storeId); // devuelve: 123,124 $ car_options = explotar (',', $ car_options_csv); $ attributeId = Mage :: getResourceModel ('eav / entity_attribute') -> getIdByCode ('catalog_product', $ _ attribute_code); $ attribute = Mage :: getModel ('catalog / resource_eav_attribute') -> load ($ attributeId); $ attributeOptions = $ attribute -> getSource () -> getAllOptions (); $ res = ''; foreach ($ attributeOptions como $ a) { $ l = $ a ['etiqueta']; $ m = $ a ['valor']; if (strlen (trim ($ l))> 0 && en_array ($ m, $ car_options)) { $ res. = recortar ($ l). ','; } } echo substr ($ res, 0, -2) ;;fuente
Gracias @Mayers, su solución es demasiado buena para no anular el getAttributeText nativo:
y para agregar al modelo del cliente también.
fuente