вторник, 3 апреля 2012 г.

Magento: Добавление нового атрибута для кастомера

В Magento Community Edition присутствует возможность управления атрибутами продуктов. Но что если нам нужно создать атрибут для кастомера? В таком случае нам на помощь приходит mysql upgrade.

Допустим, я хочу создать атрибут "navoq_textmagic_phone", в котором будет храниться телефон кастомера для моего модуля. Пример кода:
/* @var $installer Navoq_TextMagic_Model_Resource_Setup */
$installer = $this;

$installer->startSetup();

$installer->addAttribute('customer', 'navoq_textmagic_phone', array(
    'label'    => 'Phone',
    'visible'  => true,
    'required' => false,
    'type'     => 'text',
    'input'    => 'text'
));

/** @var $eavConfig Mage_Eav_Model_Config */
$eavConfig = Mage::getSingleton('eav/config');

/** @var $attribute Mage_Customer_Model_Attribute */
$attribute = $eavConfig->getAttribute('customer', 'navoq_textmagic_phone');
$attribute->addData(array(
    'is_used_for_customer_segment' => true,
    'used_in_forms'   => array('customer_account_edit', 'adminhtml_customer'),
    'is_user_defined' => true,
    'backend_type'    => 'varchar',
    'is_system'       => false,
    'is_visible'      => true,
    'is_unique'       => false,
    'sort_order'      => 250
))->save();

$installer->endSetup();

Результатом выполнения апгрейда будет новый атрибут кастомера. Таким способом можно создавать атрибуты для разных сущностей: customer, customer_address, etc. Их полный список можно посмотреть в таблице "eav_entity_type".

Комментариев нет:

Отправить комментарий