Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 805
lowe0292 Avatar asked Aug 14 '13 20:08

lowe0292


People also ask

How do I set custom customer attribute value in Magento 2?

To set Custom Customer Attribute value you have to use below block of code in your controller file : Here, we have used Magento\Customer\Model\Customer instance and created it's object($customer) and used Magento\Customer\Model\ResourceModel\CustomerFactory instance and created it's object($customerFactory).


1 Answers

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 e.g 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
    )
);
like image 122
Michael Leiss Avatar answered Oct 07 '22 22:10

Michael Leiss