2013-08-14 5 views
5

Siamo su Magento CE 1.7.0.0 e stiamo cercando di aggiungere nuovi attributi alle entità del gruppo clienti. Abbiamo aggiunto con successo gli attributi personalizzati ai clienti che utilizzano il seguente script di installazione:Come si aggiungono attributi personalizzati ai gruppi clienti in 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(); 

Qualcuno ha avuto fortuna a fare qualcosa di simile con gruppi di clienti, piuttosto che i clienti?

risposta

7

Se si dà un'occhiata agli script di installazione/aggiornamento sql troverete qualcosa di simile:

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

Come si può vedere la sua una semplice tabella MySQL4 e semplicemente bisogno di aggiungere una colonna al gruppo . Non è EAV quindi non lavori con gli attributi su quello!

La nuova colonna non verrà visualizzata nel modulo o nella griglia! È necessario aggiungere manualmente tramite osservatore o riscrittura Mage_Adminhtml_Block_Customer_Group_Edit_Form o Mage_Adminhtml_Block_Customer_Group_Grid con l'aggiunta di qualcosa di simile per campo di testo per esempio:

$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

Lei, signore, sono l'uomo. Grazie! – lowe0292

+0

per chiarire, se io uso un codice simile per aggiungere una colonna ai gruppi di clienti, verranno visualizzati nell'amministratore come 'Tax Class', corretto? – lowe0292

+0

vedi la mia modifica. prego! –

0

che ho avuto la stessa necessità di includere un campo in customer_group. Voglio aggiungere qui il mio script SQL per aggiungere alcuni campi personalizzati in 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(); 

saluti