Como podemos recuperar o nome do conjunto de atributos para um produto. Quero usá-lo nos detalhes do produto e na página de listagem .
Como podemos recuperar o nome do conjunto de atributos para um produto. Quero usá-lo nos detalhes do produto e na página de listagem .
Respostas:
Podemos usar \Magento\Eav\Api\AttributeSetRepositoryInterface
para obter o nome do conjunto de atributos.
Precisamos substituir o \Magento\Catalog\Block\Product\View
bloco. Injete esta classe no construtor
/** @var \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet **/
protected $attributeSet;
public function __construct(
......
\Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet
......
) {
......
$this->attributeSet = $attributeSet;
}
//Build method to get attribute set
public function getAttributeSetName() {
$product = $this->getProduct();
$attributeSetRepository = $this->attributeSet->get($product->getAttributeSetId());
return $attributeSetRepository->getAttributeSetName();
}
Agora, podemos chamar a página de detalhes do produto: $block->getAttributeSetName();
Precisamos substituir o \Magento\Catalog\Block\Product\ListProduct
bloco
/** @var \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet **/
protected $attributeSet;
public function __construct(
......
\Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet
......
) {
......
$this->attributeSet = $attributeSet;
}
public function getAttributeSetName($product) {
$attributeSetRepository = $this->attributeSet->get($product->getAttributeSetId());
return $attributeSetRepository->getAttributeSetName();
}
Nós podemos ligar $block->getAttributeSetName($_product)
.