Регистрация покупателей - форма, подтверждение, свои поля
Настраиваем регистрацию на сайте: форму, подтверждение по почте и поведение покупателя, который оформляет заказ без учётной записи.
Решение
Ставим форму регистрации на страницу:
$APPLICATION->IncludeComponent('bitrix:main.register', '', [ 'USER_PROPERTY' => ['UF_PHONE'], // свои поля учётной записи 'USER_PROPERTY_NAME' => 'Дополнительно', 'SEF_MODE' => 'N', 'SHOW_FIELDS' => ['EMAIL', 'NAME', 'LAST_NAME'], 'REQUIRED_FIELDS' => ['EMAIL', 'NAME'], // обязательные поля формы]);// список полей задаёт и вид формы, и состав проверок при созданииРегистрация и вход - разные компоненты. Форма входа умеет показывать ссылку на регистрацию, но саму запись создаёт именно этот компонент, и настраивается он отдельно.
Включаем подтверждение по почте:
COption::SetOptionString('main', 'new_user_registration_email_confirmation', 'Y');COption::SetOptionString('main', 'new_user_registration', 'Y'); // сама регистрация// письмо с подтверждением уходит почтовым событием: без работающей почты нет входаПодтверждение блокирует вход до перехода по ссылке из письма. На сайте с неотлаженной отправкой почты это означает, что зарегистрироваться не сможет никто, и симптом выглядит как сломанная авторизация.
Добавляем свои поля в форму:
$entity = new CUserTypeEntity();$entity->Add([ 'ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_PHONE', 'USER_TYPE_ID' => 'string', 'EDIT_FORM_LABEL' => ['ru' => 'Телефон'],]);// после этого поле перечисляют в параметрах компонента регистрацииСвои поля живут пользовательскими полями учётной записи, а не полями формы. Дописанный прямо в шаблон ввод отправится вместе с формой, но никуда не сохранится.
Смотрим, что происходит при заказе без входа:
// настройка модуля продаж: создавать ли запись покупателю без учётной записиecho COption::GetOptionString('main', 'new_user_registration', 'N'), "\n";echo COption::GetOptionString('sale', 'allow_guest_order', 'N'), "\n";Покупатель, оформивший заказ без входа, получает учётную запись автоматически. Логином становится его почта или телефон, а пароль уходит письмом - это и есть самая частая точка входа новых пользователей в магазине.
Регистрация с подтверждением по почте и автоматическая регистрация при заказе плохо уживаются вместе. Покупатель оформляет заказ, получает запись, но войти не может до подтверждения, о котором не просил. На магазинах подтверждение обычно отключают, оставляя его порталам и закрытым разделам.
Группу по умолчанию для новых записей задают заранее. Она определяет, что увидит покупатель после входа: свои заказы, закрытые разделы, цены для розницы. Пустая настройка означает, что все новые пользователи попадают только в общую группу и не получают ничего сверх прав гостя.
Проверка на робота ставится отдельно. Форма регистрации без неё собирает мусорные записи через неделю после запуска, и чистить их приходится вручную.
Типичные проблемы
Регистрация проходит, но войти нельзя.
Включено подтверждение по почте, а письмо не приходит. Вход блокируется до перехода по ссылке из письма.
Своё поле не сохраняется.
Оно дописано в шаблон формы, но не заведено пользовательским полем. Форма принимает только известные платформе поля.
Покупатели регистрируются дважды.
Заказ без входа создаёт запись по почте, а покупатель потом регистрируется сам с другим адресом. Логин уникален, и записи расходятся.
В базе сотни мусорных учётных записей.
В форме нет проверки на робота. Открытая регистрация без неё собирает автоматические заявки.
Ссылка подтверждения ведёт на старый домен.
В настройках сайта остался прежний адрес. Письма собираются по нему, а не по адресу из строки браузера.
Частые вопросы
Нужна ли регистрация интернет-магазину?
Оформление заказа без входа обычно даёт больше заказов, а учётная запись всё равно создаётся автоматически. Обязательную регистрацию оставляют оптовым и закрытым магазинам.
Можно ли регистрировать по телефону вместо почты?
Да, платформа поддерживает вход по телефону с подтверждением кодом. Настройка включается отдельно от обычной регистрации.
Как перенести гостевой заказ на новую учётную запись?
Сменой владельца заказа: заказ хранит идентификатор покупателя. Это ручная операция, автоматически она не выполняется.
Где менять текст письма о регистрации?
В почтовых событиях: у регистрации свой тип события и свой шаблон. Компонент формы текстов писем не содержит.
Смежное
-
Авторизация и сессии - оглавление подтемы
-
Не работает авторизация на сайте - разбор входа
-
Пользовательское поле: заведение, вывод, типы - как заводятся свои поля
-
Пользователи, группы и права доступа - устройство учётных записей
-
Личный кабинет покупателя: список заказов, повтор и отмена - куда попадает покупатель после входа
-
Вход через внешний сервис: регистрация приложения, привязка, первый вход - регистрация без формы
-
Пользователь не создался при импорте: разбор причин - те же проверки при создании из кода
-
Профиль пользователя на витрине: правка, свои поля, смена почты - что человек правит после регистрации