我们正在使用Magento CE 1.7.0.0,我们正在尝试向客户群实体添加新属性。我们已使用以下安装脚本成功向客户添加了自定义属性:
<?php
$installer = $this;
$installer->startSetup();
$setup = Mage::getModel('customer/entity_setup', 'core_setup');
$setup->addAttribute('customer', 'ussco_account_number', array(
'type' => 'varchar',
'input' => 'text',
'label' => 'USSCO Account Number',
'note' => 'Leave blank for default',
'global' => 1,
'visible' => 1,
'required' => 0,
'user_defined' => 0,
'default' => '',
'visible_on_front' => 0,
'source' => NULL,
));
Mage::getSingleton('eav/config')
->getAttribute('customer', 'ussco_account_number')
->setData('used_in_forms', array('adminhtml_customer'))
->save();
$installer->endSetup();
有没有人有幸与客户群做过类似事情,而不是客户呢?
答案 0 :(得分:8)
如果您查看sql installer / update脚本,您会发现如下内容:
$table = $installer->getConnection()
->newTable($installer->getTable('customer/customer_group'))
->addColumn('customer_group_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array(
'identity' => true,
'unsigned' => true,
'nullable' => false,
'primary' => true,
), 'Customer Group Id')
->addColumn('customer_group_code', Varien_Db_Ddl_Table::TYPE_TEXT, 32, array(
'nullable' => false,
), 'Customer Group Code')
->addColumn('tax_class_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
'unsigned' => true,
'nullable' => false,
'default' => '0',
), 'Tax Class Id')
->setComment('Customer Group');
正如您所看到的,它只是一个简单的mysql4表,您只需要向该组添加一列。这不是EAV,所以你不使用那个属性!
新列不会显示在表单或网格中!您必须通过观察者手动添加此内容,或者通过在例如文本字段中添加类似内容来重写Mage_Adminhtml_Block_Customer_Group_Edit_Form
或Mage_Adminhtml_Block_Customer_Group_Grid
:
$fieldset->addField('your_column', 'text',
array(
'name' => 'Your_Column',
'label' => Mage::helper('customer')->__('Tax Class'),
'title' => Mage::helper('customer')->__('Tax Class'),
'class' => 'required-entry',
'required' => true
)
);
答案 1 :(得分:0)
我有同样需要在customer_group中包含一个字段。我想在这里添加我的sql脚本,将一些自定义字段添加到 customer_group
$installer = $this;
$installer->startSetup();
$installer->getConnection()->addColumn($installer->getTable('customer_group'), 'my_custom_field1', 'varchar(100)');
$installer->getConnection()->addColumn($installer->getTable('customer_group'), 'my_custom_field2', 'varchar(100)');
$installer->endSetup();
此致