In the blog post we will look into setup class for EAV attribute and the different available in it.
The base class for setup is Mage_Eav_Model_Entity_Setup
Lets look at some important function which this class offers how its useful.
Below the functions we look at, which work on object of class ‘eav/entity_setup’. To make an instance of this class outside setup script simply write
$class = new Mage_Eav_Model_Entity_Setup();
and inside setup script, we can use $this
Attribute Set Related Functions
$class->addAttributeSet('customer', 'Test Attribute Set');
Here ‘customer’ is the entity type which we have taken from ‘eav_entity_type’ table.
The above code make an entry in table ‘eav_attribute_set’
Similar we have functions like
$class->getAllAttributeSetIds('customer'); $class->getAttributeSetId('customer','Default'); $class->updateAttributeSet('customer','Default','attribute_set_name','New Name'); $class->removeAttributeSet('customer',$set_id); $class->getAttributeSetSortOrder('customer'); //returns the next available attribute set sort order
Attribute Group Related Functions
$class->addAttributeGroup('customer','Default','Test Group Name');
This will make updates to table ‘eav_attribute_group’
Other functions we have related to attribute group are
$class->updateAttributeGroup('customer', 'Default', 'General', 'attribute_group_name', 'New Name'); $class->updateAttributeGroup('customer', 'Default', 'General', 'is_default', 0); $class->getAttributeGroup('customer','Default','General'); $class->getAttributeGroupId('customer','Default','General'); $class->removeAttributeGroup('customer','Default','General');
Attribute Related Functions
To add new attribute
$class->addAttribute('customer', 'test_code', array( 'backend_model' => null, 'backend_type' => 'varchar', 'backend_table' => null, 'frontend_model' => null, 'frontend_input' => null, 'frontend_label' => 'Test Attribute', 'frontend_class' => null, 'source_model' => null, 'is_required' => 0, 'is_user_defined' => 1, 'default_value' => '', 'is_unique' => 0, 'note' => '', 'is_global' => 0, 'group' => 'General', 'option' => array( 'values' => array( 'Value1', 'Value2', 'Value3' ) ) ));
This will add entry in table ‘eav_attribute’ where it will add new attribute. Also entry in table ‘eav_attribute_group’ and ‘eav_attribute_set’ where it will create a new attribute group and assigned it default attribute set. Next it will create options in ‘eav_attribute_option’ and ‘eav_attribute_option_value’ table.
We have other functions like
$class->getAttributeId('customer','attribute_code'); $class->getAttributeTable('customer','attribute_code'); $class->addAttributeToSet('customer','Default','General','attribute_code'); $class->addAttributeToGroup('customer','Default','General','attribute_code');
The post Magento EAV Setup Scripts appeared first on Excellence Technologies Magento Blog | Magento Tutorials | Magento Developer.