@Mkidanov

Вывод данных пользователя в форму заказа битрикс: управление сайтом, как это сделать?

Как сделать, что бы подтянулись данные из профиля пользователя, в форму оформления заказа? Короче, пользователь вводит свои данные при регистрации, затем авторизуется и при оформлении заказа ему заново приходится вводить свои данные, как сделать, что бы автоматически подставлялись данные в соответствующие поля как показано на рисунке: 5d1e409057915623678607.png

Это нужно делать при помощи события OnSaleComponentOrderOneStepPersonType ?

Если кто - то знает как написать такой обработчик события, помогите, растолкуйте пожалуйста!
  • Вопрос задан
  • 979 просмотров
Пригласить эксперта
Ответы на вопрос 2
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Я вижу два варианта:
1) При регистрации пользователя, создавать профиль покупателя CSaleOrderUserProps::Add. И поля которые заполнил пользователь, добавлять в поля созданного профиля CSaleOrderUserPropsValue::Add. В компоненте sale.order.ajax нужно будет разрешить использование профилей покупателя.

2) При оформлении заказа через sale.order.ajax. У него есть событие OnSaleComponentOrderJsData. Это событие вызывается после инициализации массива с данными для javascript-обработчика. Ловите это событие, и добавляйте нужные значения в свойства заказа.
Ответ написан
Я в result_modifier.php получаю, вот код:

global $USER;

$arResult["MY_USER_PROPS"] = array();

$arResult["MY_USER_PROPS"]["FIRST_NAME"] = "";
$arResult["MY_USER_PROPS"]["MIDDLE_NAME"] = "";
$arResult["MY_USER_PROPS"]["LAST_NAME"] = "";
$arResult["MY_USER_PROPS"]["EMAIL"] = "";
$arResult["MY_USER_PROPS"]["PHONE"] = "";
$arResult["MY_USER_PROPS"]["ADDRESS"] = "";
$arResult["MY_USER_PROPS"]["COMPANY_NAME"] = "";
$arResult["MY_USER_PROPS"]["UR_ADDRESS"] = "";
$arResult["MY_USER_PROPS"]["INN"] = "";
$arResult["MY_USER_PROPS"]["KPP"] = "";

$userId = CUser::GetID();
if ($userId > 0) {
$filter = array("ID"=>$userId);
$rsUsers = CUser::GetList(($by = ""), ($order = "desc"), $filter,array("SELECT"=>array("UF_*")));
$arUser = $rsUsers->fetch();
foreach ($arUser as $key => $val) {
$arResult["MY_USER_PROPS"][$key] = $val;
}
}

$userId = CUser::GetID();

if ($userId > 0) {
$filter = array("ID"=>$userId);
$rsUsers = CUser::GetList(($by = ""), ($order = "desc"), $filter,array("SELECT"=>array("UF_*")));
$arUser = $rsUsers->fetch();

if (isset($arUser["NAME"])) {
$arResult["MY_USER_PROPS"]["FIRST_NAME"] = $arUser["NAME"];
}
if (isset($arUser["SECOND_NAME"])) {
$arResult["MY_USER_PROPS"]["MIDDLE_NAME"] = $arUser["SECOND_NAME"];
}
if (isset($arUser["LAST_NAME"])) {
$arResult["MY_USER_PROPS"]["LAST_NAME"] = $arUser["LAST_NAME"];
}
if (isset($arUser["EMAIL"])) {
$arResult["MY_USER_PROPS"]["EMAIL"] = $arUser["EMAIL"];
}
if (isset($arUser["PERSONAL_PHONE"])) {
$arResult["MY_USER_PROPS"]["PHONE"] = $arUser["PERSONAL_PHONE"];
}
if (isset($arUser["PERSONAL_STREET"])) {
$arResult["MY_USER_PROPS"]["ADDRESS"] = $arUser["PERSONAL_STREET"];
}
if (isset($arUser["WORK_COMPANY"])) {
$arResult["MY_USER_PROPS"]["COMPANY_NAME"] = $arUser["WORK_COMPANY"];
}
if (isset($arUser["WORK_STREET"])) {
$arResult["MY_USER_PROPS"]["UR_ADDRESS"] = $arUser["WORK_STREET"];
}
if (isset($arUser["UF_INN"])) {
$arResult["MY_USER_PROPS"]["INN"] = $arUser["UF_INN"];
}
if (isset($arUser["UF_KPP"])) {
$arResult["MY_USER_PROPS"]["KPP"] = $arUser["UF_KPP"];
}
}
// Конец получения информации о пользователе
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы