Проверить настройки Skip to content

Добавление нового атрибута пользователя в Magento

При создании сайта на CMS Magento (Мадженто), или когда делаем интернет магазин Magento, очень часто бывают требования к регистрации новых клиентов/покупателей. Добавить новые поля в форму регистрации пользователей Magento, или просто добавить поле для ввода мобильного телефона при покупке.

К сожалению Magento плохо работает с атрибутами пользователя. Нет возможности добавить или удалить поля в формах регистрации покупателей.

Но, если есть задача добавить новый атрибут пользователя Magento, то можно сделать используя ниже приведенный пример.

Код PHP файла, через который можно с легкостью добавить новый пользовательский атрибут Magento.

<h1>Customer Attribute Creator for Magento</h1>
<h2>by <a href="http://www.magefast.com">magefast.com</a></h2>

<br /><br />
<form method="post" action="http://<?php echo $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>" >
<h2>Add new Attribute for customer.</h2>
<br />
Input name for Attribute
<br />
<input type="text" name="name" value="test" />
<br />
Input code for Attribute
<br />
<input type="text" name="code" value="test" />
<br />
Position for Attribute (1, 2, etc)
<br />
<input type="text" name="sort" value="0" />
<br /><br />
<input type="submit" value="Submit" />
</form>

<?php

require 'app/Mage.php';

Mage::app('default');

if($_POST['name'] && $_POST['code']):

$installer = new Mage_Core_Model_Resource_Setup;

$installer->startSetup();
$setup = Mage::getModel('customer/entity_setup', 'core_setup');
$setup->addAttribute('customer', $_POST['code'], array(
    'type' => 'varchar',
    'label' => $_POST['name'],
    'input' => 'text',
    'global' => 1,
    'visible' => 1,
    'required' => 0,
    'user_defined' => 1,
    'default' => '',
    'visible_on_front' => 1,
    'sort_order' => $_POST['sort'],
    'system' => false
));

if (version_compare(Mage::getVersion(), '1.6.0', '<='))
{
    $customer = Mage::getModel('customer/customer');
    $attrSetId = $customer->getResource()->getEntityType()->getDefaultAttributeSetId();
    $setup->addAttributeToSet('customer', $attrSetId, 'General', $_POST['code']);
}

if (version_compare(Mage::getVersion(), '1.4.2', '>='))
{
    Mage::getSingleton('eav/config')
    ->getAttribute('customer', $_POST['code'])
    ->setData('used_in_forms', array('adminhtml_customer','customer_account_create','customer_account_edit','checkout_register'))
    ->save();
}

$installer->endSetup();

?>
<hr />
Added new customer attribute for Magento
<br />
attribute code: <b><?php echo $_POST['code']; ?></b>, name: <b><?php echo $_POST['code']; ?></b>  
<br />
Please check...
<?php
endif;
?>

 

 

 

После того как добавим атрибут для пользователя, можно проверить в админ панели Magento на странице редактирования/добавления нового пользователя/покупателя магазина.

 

Скачать готовый скрипт для добавления нового атрибута пользователя Magento

[share-locker locker_id=»ad7f2be3aa5e20fae» theme=»blue» message=»Для получения ссылки на скачивание нажмите любую кнопку. Спасибо.» facebook=»true» likeurl=»CURRENT» google=»true» googleurl=»CURRENT» tweet=»true» tweettext=»» tweeturl=»CURRENT» follow=»false» linkedin=»false»]magento_customer_attribute[/share-locker]


 

Magento 1.*
  • Константин

    А куда добавлять код?
    немного не разобрался пока…