• Вывести данные пользователя из личного кабинета при оформлении заказа в Битрикс?

    @DennisPetrov
    Задача решается несколькими разными способами, например при регистрации пользователя сразу создавать профиль покупателя и заполнять его значениями из основного профиля. Про это почитать можно здесь

    Также можно заполнять значения в result_modifier.php, я остановился в результате на таком подходе, правда не могу сказать, что он является оптимальным.

    В result_modifier.php sale.order.ajax получаем данные текущего пользователя, затем передаем их в объект, используемый в js. В моем случае это было удобно было сделать в цикле, так как свойств много. Предварительно я установил символьные коды свойств заказа такими же, как у соответствующих свойств из профиля пользователя ( например в профиле для поля "юридический адрес" код - UF_LEGAL_ADDRESS, соответственно в свойствах заказа символьный код этого свойства сделал таким же)
    $currentUser = CUser::GetByID($USER->GetParam('USER_ID'));
    $arUser = $currentUser->Fetch();
    foreach ($arResult["JS_DATA"]["ORDER_PROP"]['properties'] as $propKey => $propItem) {
    	if (array_key_exists($propItem["CODE"], $arUser)
    	 && !empty($arUser[$propItem["CODE"]]) 
    	 && empty($propItem["VALUE"][0]) ) {
    		$arResult["JS_DATA"]["ORDER_PROP"]['properties'][$propKey]["VALUE"][0] = $arUser[$propItem["CODE"]];
    	}
    }
    Ответ написан
    Комментировать