简体   繁体   中英

How do you add custom attributes to Customer Groups in Magento?

We're on Magento CE 1.7.0.0, and we're trying to add new attributes to the Customer Group entities. We've successfully added custom attributes to Customers using the following install script:

<?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();

Has anyone had any luck doing something similar with Customer Groups, rather than customers?

If you take a look at the sql installer/update scripts you will find something like this:

$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');

As you can see its a simple mysql4 table and you simply need to add a column to the group. It is not EAV so you dont work with attributes on that one!

The new colum will not show up in the form or grid! You have to add this manually via observer or rewriting Mage_Adminhtml_Block_Customer_Group_Edit_Form or Mage_Adminhtml_Block_Customer_Group_Grid by adding something like this for eg text field:

$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
    )
);

I 've had the same need to include a field in customer_group. I want to add here my sql script to add some custom fields into 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();

Regards

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM