按属性组Magento获取属性

时间:2014-02-05 17:30:18

标签: magento

我有产品:

<?php $_helper = $this->helper('catalog/output'); ?>
<?php $_product = $this->getProduct(); ?>

我有属性组的名称(非ID)。

我需要列出此属性组中的所有属性名称和值(与属性集无关)。

如果我只知道产品和属性组名称,我如何从属性组中获取属性和值?

1 个答案:

答案 0 :(得分:8)

  $setId = $_product->getAttributeSetId(); // Attribute set Id
        $groups = Mage::getModel('eav/entity_attribute_group')
            ->getResourceCollection()
            ->setAttributeSetFilter($setId)
            ->setSortOrder()
            ->load();

        $attributeCodes = array();
        foreach ($groups as $group) {
            if($group->getAttributeGroupName() == 'Somename'){ // set name
            //$groupName          = $group->getAttributeGroupName();
            //$groupId            = $group->getAttributeGroupId();

            $attributes = Mage::getResourceModel('catalog/product_attribute_collection')
                ->setAttributeGroupFilter($group->getId())
                ->addVisibleFilter()
                ->checkConfigurableProducts()
                ->load();
                if ($attributes->getSize() > 0) {
                    foreach ($attributes->getItems() as $attribute) {
                        /* @var $child Mage_Eav_Model_Entity_Attribute */
                        $attributeCodes[] = $attribute->getAttributeCode();                     
                    }
                } 
          }
        }
        print_r($attributeCodes);