Magento2: Attribute eines Produkts aus einer bestimmten Attributgruppe


December 15, 2016 at 13:55
Magento2

Um im Magento in einer phtml Datei alle Attribute eines Produkts, die zu einer bestimmten Gruppe (namens "customattributes") gehören, habe ich mir einen Helper geschrieben, der folgendes macht:

class Product extends \Magento\Framework\App\Helper\AbstractHelper
{
    const CUSTOMATTRIBUTE_GROUP_NAME = 'customattributes';

    public $groupCollectionFactory;

    public function __construct(
        \Magento\Eav\Model\ResourceModel\Entity\Attribute\Group\CollectionFactory $groupCollectionFactory
    ){
        $this->groupCollectionFactory = $groupCollectionFactory;
    }

    public function getAttributesForProduct($_product){
        $groupCollection = $this->groupCollectionFactory->create();
        $groupCollection->addFieldToFilter('attribute_group_name',self::CUSTOMATTRIBUTE_GROUP_NAME);
        $groupCollection->addFieldToFilter('attribute_set_id', $_product->getAttributeSetId());
        $group = $groupCollection->getFirstItem();

        $data = array();
        $c = 0;
        $productAttributes= $_product->getAttributes();
        foreach ($productAttributes as $attribute) {
            if ($attribute->isInGroup($_product->getAttributeSetId(), $group->getAttributeGroupId())) {
                if ($attribute->getFrontend()->getValue($_product)) {
                    $data[$c]['attribute'] = $attribute->getFrontendLabel();
                    $data[$c]['value'] = $attribute->getFrontend()->getValue($_product);
                    $c++;
                }
            }
        }
        return $data;
    }
}

Das liefert ein schönes Array mit allen Attributen und ihren Werten für das aktuelle Produkt zurück.


Hinterlasse einen Kommentar:
Suche