Привет.
Задача следующая - при регистрации пользователя на сайте автоматически создавать профиль покупателя с данными, которые были указаны при регистрации.[spoiler] После этого пользователю не потребуется вводить какие-то дополнительные данные при оформлении заказа, которые, возможно, уже были введены в форме регистрации, т.е. у него сразу будет готовый профиль покупателя.
Задача решается написанием обработчика события OnAfterUserRegister:
В данном примере:
Создаётся профиль покупателя со значениями 2-х свойств - ФИО и Телефон. Предварительно эти свойства заказа были созданы и их идентификаторы использовались в обработчике для присвоения им значений в профиле покупателя. Для регистрации нужно использовать компонент main.register, в настройках параметров данного компонента выбрать поля "Телефон", "Фамилия", "Имя" и "Отчество".
Свойств профиля покупателя, конечно, можно создавать больше, главное ассоциировать их с полями регистрационной формы и соответственно в обработчике присваивать значение этих полей свойствам свеженького профиля покупателя. Скриншоты для наглядности:


Пока
Задача следующая - при регистрации пользователя на сайте автоматически создавать профиль покупателя с данными, которые были указаны при регистрации.[spoiler] После этого пользователю не потребуется вводить какие-то дополнительные данные при оформлении заказа, которые, возможно, уже были введены в форме регистрации, т.е. у него сразу будет готовый профиль покупателя.
Задача решается написанием обработчика события OnAfterUserRegister:
<? AddEventHandler("main", "OnAfterUserRegister", "OnBeforeUserRegisterHandler"); function OnBeforeUserRegisterHandler(&$arFields) { //создаём профиль //PERSON_TYPE_ID - идентификатор типа плательщика, для которого создаётся профиль $arProfileFields = array( "NAME" => "Профиль покупателя (".$arFields['LOGIN'].')', "USER_ID" => $arFields['USER_ID'], "PERSON_TYPE_ID" => 1 ); $PROFILE_ID = CSaleOrderUserProps::Add($arProfileFields); //если профиль создан if ($PROFILE_ID) { //формируем массив свойств $PROPS=Array( array( "USER_PROPS_ID" => $PROFILE_ID, "ORDER_PROPS_ID" => 3, "NAME" => "Телефон", "VALUE" => $arFields['WORK_PHONE'] ), array( "USER_PROPS_ID" => $PROFILE_ID, "ORDER_PROPS_ID" => 1, "NAME" => "Ф.И.О.", "VALUE" => $arFields['LAST_NAME'].' '.$arFields['NAME'].' '.$arFields['SECOND_NAME'] ) ); //добавляем значения свойств к созданному ранее профилю foreach ($PROPS as $prop) CSaleOrderUserPropsValue::Add($prop); } } ?> |
В данном примере:
Создаётся профиль покупателя со значениями 2-х свойств - ФИО и Телефон. Предварительно эти свойства заказа были созданы и их идентификаторы использовались в обработчике для присвоения им значений в профиле покупателя. Для регистрации нужно использовать компонент main.register, в настройках параметров данного компонента выбрать поля "Телефон", "Фамилия", "Имя" и "Отчество".
Свойств профиля покупателя, конечно, можно создавать больше, главное ассоциировать их с полями регистрационной формы и соответственно в обработчике присваивать значение этих полей свойствам свеженького профиля покупателя. Скриншоты для наглядности:


Пока
