Comment récupérer le nom de l'ensemble d'attributs d'un produit. Je veux l'utiliser sur la page des détails du produit et de la liste .
Comment récupérer le nom de l'ensemble d'attributs d'un produit. Je veux l'utiliser sur la page des détails du produit et de la liste .
Réponses:
Nous pouvons utiliser \Magento\Eav\Api\AttributeSetRepositoryInterface
pour obtenir le nom de l'ensemble d'attributs.
Nous devons remplacer le \Magento\Catalog\Block\Product\View
bloc. Injectez cette classe sur le constructeur
/** @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();
}
Maintenant, nous pouvons appeler la page de détails du produit: $block->getAttributeSetName();
Nous devons remplacer le \Magento\Catalog\Block\Product\ListProduct
bloc
/** @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();
}
On peut appeler $block->getAttributeSetName($_product)
.