Профиль покупателя в 1С-Битрикс — это сохранённый набор свойств заказа, который клиент один раз заполняет и переиспользует при каждой покупке. Правильно настроенные профили и адреса доставки сокращают путь к оформлению заказа и уменьшают число брошенных корзин.
Что такое профиль покупателя
Профиль покупателя — это именованный набор значений свойств заказа, привязанный к конкретному пользователю и типу плательщика. Когда клиент оформляет заказ, компонент оформления предлагает выбрать один из ранее сохранённых профилей вместо повторного ввода ФИО, телефона, адреса и прочих реквизитов.
Важно понимать: профиль не хранит товары или суммы. Он хранит только реквизиты покупателя — то, что в терминах модуля sale называется свойствами заказа (order properties). Для физлица это обычно имя, e-mail, телефон и адрес доставки; для юрлица — название организации, ИНН, КПП, юридический адрес.
Типы плательщиков и свойства заказа
Фундамент профилей — это раздел Магазин → Настройки → Типы плательщиков и свойства заказов (в старом ядре — отдельно «Типы плательщиков» и «Свойства заказа»). Тип плательщика описывает категорию покупателя, а свойства — поля, которые он заполняет.
Каждое свойство имеет тип и служебные флаги, влияющие на профиль:
- Тип: строка, число, Y/N, список, файл, дата, местоположение (
LOCATION), адрес; - IS_PROFILE_NAME — по значению этого свойства формируется название профиля в списке;
- IS_EMAIL / IS_PAYER / IS_PHONE / IS_ADDRESS / IS_ZIP — семантические роли, которые модуль использует для доставки, оплаты и уведомлений;
- UTIL — служебное свойство, скрытое от покупателя.
Компоненты и страницы личного кабинета
За профили в кабинете отвечает раздел комплексного компонента bitrix:sale.personal.section. Он маршрутизирует внутренние страницы, среди которых страница профилей. Внутри неё работают частные компоненты:
bitrix:sale.personal.profile.list— список сохранённых профилей с кнопками редактирования и удаления;bitrix:sale.personal.profile.detail— форма создания и правки одного профиля.
В типовых решениях страница доступна по адресу вида /personal/private/ или /personal/profiles/ — зависит от шаблона. Ссылка на неё формируется параметром меню комплексного компонента PATH_TO_PROFILE. Если вы собираете кабинет из отдельных компонентов, следите за согласованностью путей между списком заказов, оформлением и профилями.
Адреса доставки и местоположения
Адрес доставки в профиле — это не одно поле, а связка свойств. Ключевую роль играет свойство типа LOCATION (местоположение), которое ссылается на справочник модуля sale. Именно от выбранного местоположения зависят доступные службы доставки и расчёт стоимости.
Рекомендуемый набор свойств адреса:
| Свойство | Тип | Роль |
|---|---|---|
| Местоположение | LOCATION | привязка к справочнику городов |
| Индекс | Строка | флаг IS_ZIP |
| Адрес | Строка / Адрес | флаг IS_ADDRESS |
sale.location) с деревом на таблицах b_sale_location. Для автоподстановки города по индексу и подсказок используйте компонент bitrix:sale.location.selector.search, который заметно удобнее старого выпадающего списка.Где и как хранятся профили
Сами профили лежат в таблице b_sale_order_props_value с признаком принадлежности профилю, а связь пользователь–профиль — в служебных структурах модуля. В новом ядре D7 доступ к ним идёт через \Bitrix\Sale\OrderUserProperties и коллекцию свойств заказа.
Пример получения профилей пользователя средствами API:
- подключить модуль:
Bitrix\Main\Loader::includeModule('sale'); - получить профили по ID пользователя и типу плательщика через методы класса
OrderUserProperties; - для чтения значений свойств — обойти коллекцию
PropertyValueCollectionоформляемого заказа.
При оформлении заказа выбранный профиль копируется в свойства конкретного заказа. Это значит, что последующее изменение профиля не меняет уже созданные заказы — их реквизиты зафиксированы на момент покупки. Это корректное поведение, но его важно объяснять клиентам, ожидающим «обновления адреса задним числом».
Настройка и кастомизация
Внешний вид и логика профилей меняются на уровне шаблона компонента. Копируйте шаблон в /local/templates/…/components/bitrix/sale.personal.profile.detail/ и правьте template.php — не редактируйте файлы в /bitrix/components/, иначе изменения снесёт обновлением.
Типовые доработки:
- маска и валидация телефона через событие
OnSaleComponentOrderPropertiesили JS в шаблоне; - ограничение видимых свойств для конкретного типа плательщика флагом
UTIL; - автозаполнение профиля из данных пользователя (
b_user) при первом заказе; - интеграция подсказок адреса (DaData, КЛАДР) поверх свойства адреса.
Типичные проблемы и диагностика
Чаще всего сбои в работе профилей связаны не с кодом, а с настройками свойств. Проверяйте в первую очередь их.
- Профили не сохраняются — свойство «Название профиля» не задано или обязательное поле пустое;
- Не считается доставка — в профиле свойство местоположения не привязано к актуальному дереву
b_sale_locationпосле смены модуля локаций; - Дубли профилей — каждое оформление без выбора существующего профиля создаёт новый; включите привязку по умолчанию;
- Пустой адрес в заказе — рассогласование свойств между типами плательщиков «Физлицо» и «Юрлицо».
Для отладки включите режим except_referer в оформлении и смотрите значения свойств в b_sale_order_props_value напрямую — так видно, какое поле реально не долетает.
Итог
Профили покупателя и адреса доставки в 1С-Битрикс держатся на трёх опорах: корректно описанных свойствах заказа, правильных типах плательщиков и связке местоположений со справочником доставки. Настроите их аккуратно — и клиент оформит повторный заказ в два клика, а данные без искажений уйдут в 1С и службы доставки.
Мы в B2Bsite проектируем личный кабинет и оформление заказа целиком: от структуры свойств и адресных подсказок до синхронизации профилей с учётной системой. Если нужно навести порядок в реквизитах покупателей или ускорить оформление — поможем сделать это без потери данных и совместимости с обновлениями.
Частые вопросы
Чем профиль покупателя отличается от персональных данных пользователя?
Персональные данные хранятся в таблице пользователя b_user и относятся к аккаунту. Профиль — это набор свойств заказа для конкретного типа плательщика, который используется именно при оформлении покупки.
Может ли у одного покупателя быть несколько профилей?
Да, это штатное поведение. Обычно клиенты заводят разные профили под домашний и рабочий адрес или под физлицо и юрлицо. Список профилей показывает компонент sale.personal.profile.list.
Почему после смены адреса в профиле старые заказы остались со старым адресом?
При оформлении заказа значения профиля копируются в свойства заказа и фиксируются. Изменение профиля не затрагивает уже созданные заказы, их реквизиты остаются на момент покупки.
Как связать адрес доставки с расчётом стоимости?
Используйте свойство типа LOCATION (местоположение), привязанное к справочнику модуля sale. От выбранного местоположения зависят доступные службы доставки и цена.
Где настраиваются поля профиля?
В разделе Магазин → Настройки → Типы плательщиков и свойства заказов. Там задаются свойства, их типы и флаги вроде IS_PROFILE_NAME и IS_ADDRESS.
Как безопасно изменить шаблон формы профиля?
Скопируйте шаблон компонента sale.personal.profile.detail в /local/templates/ и правьте копию. Файлы в /bitrix/components/ трогать нельзя, их перезаписывает обновление.
Почему в списке профилей отображается «Профиль №N» без названия?
Ни одно свойство заказа не помечено флагом «Название профиля» (IS_PROFILE_NAME). Задайте этот флаг, например, для поля адреса или ФИО.
Как получить профили пользователя программно?
Подключите модуль sale через Loader::includeModule и работайте с классом Bitrix\Sale\OrderUserProperties. Значения свойств доступны через коллекцию свойств оформляемого заказа.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.