Это хорошая идея, чтобы изменить модель Magento Cutomer

Пару дней назад я выложил вопрос по StackExchange — Magento. Пожалуйста, прочитайте этот пост, так как этот вопрос связан.

С тех пор я хотел, чтобы этот недавно созданный атрибут клиента был уникальным. Т.е. ни один пользователь не должен иметь такой же атрибут, как другой уже существующий пользователь. Я попытался сделать это сам таким образом:

Я изменил _beforeSave() функция в /core/Mage/Customer/Model/Resource/Customer.php добавив следующий код прямо перед проверкой логики электронной почты.

$result=Mage::getModel('customer/customer')->getCollection()->addFieldToFilter('mobile', $customer->getMobile())->load();

if ( is_object($result) && count($result) >= 1)
{
throw Mage::exception(
'Mage_Customer', Mage::helper('customer')->__('There is already an account with this mobile number.'),
Mage_Customer_Model_Customer::EXCEPTION_MOBILE_EXISTS
);
}

При этом я смог выдать исключение, когда атрибут уже связан с существующим пользователем.

Является ли добавление необходимого кода в модель хорошей идеей? Останется ли эта модификация без изменений, если я обновлю Magento из панели администратора?

Также, пожалуйста, предложите (если есть) альтернативное решение, чтобы проверить наличие дублирующих записей в моем локальном модуле, а не редактировать основной файл модели.

0

Решение

Здесь вы делаете изменения в основном файле. Так что он не будет работать после обновления. Для этого рекомендуется использовать собственный модуль.

Вы можете обратиться по следующей ссылке для создания базового модуля.

http://code.tutsplus.com/tutorials/magento-custom-module-development—cms-20643

0

Другие решения

Других решений пока нет …