Estoy tratando de obtener un atributo de producto en la plantilla del carrito. Pero yo simplemente no funciona! El atributo se establece en Visible en las páginas del catálogo en Storefront = yes y se utiliza en el listado de productos = yes
Utilizo un módulo personalizado para anular la siguiente plantilla:
/vendor/magento/module-checkout/view/frontend/templates/cart/item/default.phtml
Tengo el producto:
$_item = $block->getItem();
$product = $_item->getProduct();
Normalmente esperaría que un atributo personalizado (de tipo área de texto en este caso) con un código de atributo 'sample_attr' esté disponible con uno de estos:
$product->getData('sample_attr');
o
$product->getSampleAttr();
Algunos atributos están disponibles usando esto (sku, peso, precio ...), pero para un atributo personalizado tampoco funciona. El ayudante incluido (\ Magento \ Msrp \ Helper \ Data) tampoco tiene método de atributo.
Puedo obtener todos los códigos de atributos usando:
$attributes = $product->getAttributes();
foreach($attributes as $a)
{
var_dump($a->getName());
}
También he intentado:
$attribute = $product->getResource()->getAttribute('sample_attr');
var_dump($attribute->getFrontend()->getValue($product));
pero esto devuelve nulo.
Entonces, ¿cómo obtengo el valor del atributo?
He intentado estos: obtener un atributo específico para cada producto en la página del catálogo
Salida del atributo de texto personalizado en el catálogo list.phtml (Magento 2)