Меню

Получить и вывести данные из профиля покупателя в кабинете пользователя 1С-Битрикс

Просмотров: 2329

Задача: вывести пользователю информацию по всем, его, профилям покупателя в компоненте sale.personal.profile.list без перехода в детальное описание/редактирование профиля.

Получить и вывести данные из профиля покупателя в кабинете пользователя 1С-Битрикс

Получить значения полей из профиля покупателя

Для начала нужно получить значения заполненных полей из профиля покупателя. Это можно сделать методом OrderUserProperties::getProfileValues, зная ID профиля.

В компоненте sale.personal.profile.list этот ID хранится в ключе массива $arResult["PROFILES"]['ID']. Что бы получить значения используем код:

use Bitrix\Sale;
foreach ($arResult["PROFILES"] as $val) {
    $profileData = Sale\OrderUserProperties::getProfileValues(
            (int)$val['ID']
    );
    print_r($profileData);
}

В распечатке массива $profileData получим значения заполненных полей, где ключем будет ID свойства заказа.

Получить названия свойств заказ по их ID

Теперь нужно получить названия свойств заказа по их ID. Для этого используем метод CSaleOrderProps::GetList.

Прогоняем массив $profileData с помощью foreach и внутри этого цикла, зная ID свойства заказа (из ключа), получаем название свойства.

В выводе, внутри foreach выводим название и значение свойства. Полный код:

use Bitrix\Sale;
foreach ($arResult["PROFILES"] as $val) {
    $profileData = Sale\OrderUserProperties::getProfileValues(
        (int)$val['ID']
    );
    echo $val['NAME'] . '
'; foreach ($profileData as $k => $property) { $db_props = CSaleOrderProps::GetList( array("SORT" => "ASC"), array( "ID" => $k ), false, false, array() ); if ($props = $db_props->Fetch()) { echo $props["NAME"] . '
'; echo $property; } } }
По феншую, стоит проделать все это в result_modifier.php донаполнив массив $arResult["PROFILES"]. Что бы не усложнять заметку привел как есть.

Таким образом вывели название профиля и полную информацию о нем: название свойства и значение заполненное пользователем.

Михаил Базаров 13.05.2023
Тоже самое на D7
Код
use Bitrix\Sale\OrderUserProperties;
use Bitrix\Sale\PropertyValueCollection;

foreach ($arResult["PROFILES"] as $val) {
    $profileData = OrderUserProperties::getProfileValues((int)$val['ID']);
    echo $val['NAME'] . '<br>';
    foreach ($profileData as $k => $property) {
        $props = PropertyValueCollection::create(CSaleOrderProps::class)->getItemByValueId($k);
        if ($props) {
            echo $props->getName() . '<br>';
            echo $property;
        }
    }
}

Стоимость и сроки разработки сайтов и приложений

Окончательная стоимость и сроки разработки сайта формируются после обсуждения деталей на этапе заказа. Как правило, они редко выходят за обозначенные ниже рамки.

Интернет магазин: разработка с нуля от 400 000 руб.
от 5-ти недель

Cоздание интернет-магазина на 1С-Битрикс. Разработка с нуля, оптимизация кода под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Интернет-магазин на готовом решении от 100 000 руб.
от 7-ми дней

Готовое решение — вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Запускается на одном из 200-та (на ваш выбор) готовых решений.

Мобильное приложение от 400 000 руб.
от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Опросник на разработку. После ознакомления, задам уточняющие вопросы и оценю проект по стоимости и срокам разработки.