2013-08-14 2 views
5

Мы находимся на Magento CE 1.7.0.0, и мы пытаемся добавить новые атрибуты к объектам группы клиентов. Мы успешно добавлены пользовательские атрибуты для клиентов, используя следующий сценарий установки:Как добавить пользовательские атрибуты в группы клиентов в Magento?

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

кто-нибудь вез делать что-то подобное с группами клиентов, а не клиенты?

ответ

7

Если вы посмотрите на SQL-скрипты установки/обновления вы найдете что-то вроде этого:

$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, поэтому вы не работаете с атрибутами на этом!

Новый colum не будет отображаться в форме или сетке! Вы должны добавить вручную с помощью наблюдателя или перезаписи 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 
    ) 
); 
+0

Вы, сэр, человек. Благодаря! – lowe0292

+0

, чтобы уточнить, если я использую аналогичный код для добавления столбца в группы клиентов, они появятся в админе как «Налоговый класс», правильно? – lowe0292

+0

см. Мое редактирование. пожалуйста! –

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

С уважением

Смежные вопросы