Estou tentando pegar um atributo de produto no modelo de carrinho. Mas eu simplesmente não funciona! O atributo está definido como Visível nas páginas do catálogo na montra = sim e Usado na lista de produtos = sim
Eu uso um módulo personalizado para substituir o seguinte modelo:
/vendor/magento/module-checkout/view/frontend/templates/cart/item/default.phtml
Eu tenho o produto:
$_item = $block->getItem();
$product = $_item->getProduct();
Normalmente, eu esperaria que um atributo personalizado (do tipo área de texto nesse caso) com um código de atributo 'sample_attr' estivesse disponível com um destes:
$product->getData('sample_attr');
ou
$product->getSampleAttr();
Alguns atributos estão disponíveis usando isso (sku, peso, preço ..), mas para um atributo personalizado não funciona. O auxiliar incluído (\ Magento \ Msrp \ Helper \ Data) também não possui método de atributo.
Eu posso obter todos os códigos de atributo usando:
$attributes = $product->getAttributes();
foreach($attributes as $a)
{
var_dump($a->getName());
}
Eu também tentei:
$attribute = $product->getResource()->getAttribute('sample_attr');
var_dump($attribute->getFrontend()->getValue($product));
mas isso retorna nulo.
Então, como obtenho o valor do atributo?
Eu tentei o seguinte: Obter atributo específico para cada produto na página do catálogo
Atributo de texto personalizado de saída no catálogo list.phtml (Magento 2)