Это хорошая идея изменить модель 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 из панели администратора?

Кроме того, предложите (если есть) альтернативное решение для проверки наличия дубликатов в моем локальном модуле, а не для редактирования основного файла модели.


person RHLK    schedule 18.05.2015    source источник


Ответы (1)


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

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

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

person Emipro Technologies Pvt. Ltd.    schedule 18.05.2015
comment
Это НЕ только ссылки. Ответ в первом абзаце. - person JasonMArcher; 19.05.2015