Основные методы magento для работы с Attribute Sets (атрибут сетами).
Получить имена и id имеющихся Attribute Sets:
1 2 3 4 5 6 7 |
$attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_set_collection')->load(); foreach ($attributeSetCollection as $id=>$attributeSet) { echo $attributeSet->getId(); echo '<br/>'; echo $attributeSet->getAttributeSetName(); echo '<br/>'; } |
Получить id Attribute Sets по имени:
1 2 3 4 5 6 7 8 9 10 |
$entityTypeId = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId(); //4 $attributeSetName = 'Default'; $attributeSetId = Mage::getModel('eav/entity_attribute_set') ->getCollection() ->setEntityTypeFilter($entityTypeId) ->addFieldToFilter('attribute_set_name', $attributeSetName) ->getFirstItem() ->getAttributeSetId(); echo $attributeSetId; |
Получить атрибуты, входящие в Attribute Sets
1 2 3 4 5 |
$setAttributes = Mage::getModel('catalog/product_attribute_api')->items($attributeSetId); foreach ($setAttributes as $attribute) { echo $attribute['attribute_id'].' '.$attribute['code']; echo '<br />'; } |
Создать новый Attribute Sets на основании уже имеющегося
1 2 3 4 5 6 7 8 9 10 11 |
$newAttributeSetName = 'my_set'; $attributeSet = Mage::getModel('eav/entity_attribute_set') ->setEntityTypeId($entityTypeId) ->setAttributeSetName($newAttributeSetName); $attributeSet->validate(); $attributeSet->save(); // после создания сета, указываем его родителя $attributeSet->initFromSkeleton($skeletonID)->save(); $attributeSetId = $attributeSet->getId(); |
Получить id группы атрибутов в Attribute Sets по названию
1 2 |
$groupName = 'Parameters'; $attributeGroupId=Mage::getModel('eav/entity_setup','core_setup')->getAttributeGroup('catalog_product', $attributeSetId, $groupName); |
Добавить в атрибут Attribute Sets
1 2 3 4 5 6 |
$attributesCodes = array('first_attribute', 'second_attribute'); foreach ($attributesCodes as $code) { $attribute_details = Mage::getSingleton("eav/config")->getAttribute('catalog_product', $code); $attributeId = $attribute_details->getId(); Mage::getModel('eav/entity_setup','core_setup')->addAttributeToSet('catalog_product', $attributeSetId, $attributeGroupId['attribute_group_id'], $attributeId); } |