Đầu tiên, đây không phải là config.xml hợp lệ. Lớp thiết lập được cấu hình như sau:
<config>
...
<global>
...
<resources>
...
<your_module_setup>
<setup>
<module>Your_Module</module>
<class>Mage_Eav_Model_Entity_Setup</class>
</setup>
</your_module_setup>
...
</resources>
...
</global>
...
</config>
thay vì Mage_Eav_Model_Entity_Setup, bạn cũng có thể sử dụng lớp thiết lập của riêng mình nhưng nó phải kế thừa Mage_Eav_Model_Entity_Setup, vì vậy bạn có thể sử dụng addAttribute thay vì giả mạo các truy vấn SQL bằng tay.
Sau đó, tập lệnh thiết lập của bạn sẽ trông giống như sau:
$installer = $this;
$installer->startSetup();
/*
* adds product unit attribute to product
*/
$installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'productunit_id', array(
'label' => Mage::helper('productunits')->__('Quantity Unit'),
'type' => 'int',
'input' => 'select',
'source' => SGH_ProductUnits_Model_Entity_Attribute_Source_Units::MODEL,
'backend' => SGH_ProductUnits_Model_Entity_Attribute_Backend_Units::MODEL,
'required' => 1,
'global' => 1,
'note' => Mage::helper('productunits')->__('This will be displayed next to any Qty value.')
));
$installer->endSetup();
Đó là mã của tôi có thêm thuộc tính đơn vị số lượng, đừng nhầm lẫn khi sử dụng các hằng số lớp, đó chỉ là các bí danh lớp tương ứng.