Как в 1С-Битрикс настроить показ индивидуальной цены для определённого типа пользователя из 1С
Для интернет-магазина с корпоративными и оптовыми клиентами это — частая задача: показать разные цены разным категориям пользователей. Если ваш магазин синхронизирован с 1С, можно настроить систему так, чтобы каждый пользователь видел только свои цены автоматически.
1. Синхронизация пользователей и их типов из 1С
В 1С каждому клиенту присваивается тип:
- Розничный
- Оптовый
- Корпоративный
При обмене с Битриксом эта информация передаётся в поле пользователя, например через CUSTOM_USER_FIELD или через привязку к группе пользователей. Используйте уникальные идентификаторы типов клиентов, чтобы не возникало ошибок при обновлении данных.
2. Создание групп пользователей в Битрикс
В админке Битрикс создаём группы:
- Оптовики
- Корпоративные клиенты
- Розничные
Теперь каждому пользователю можно назначать соответствующую группу, и на её основе показывать свои цены.
3. Настройка типов цен
В модуле каталога создаём новые типы цен:
OPTOVAJA_PRICE— для оптовиковCORP_PRICE— для корпоративных клиентов
В карточке товара указываем соответствующую цену для каждого типа. Далее настраиваем доступ к типу цены только для нужной группы пользователей.
| Тип цены | Группа пользователей |
|---|---|
| OPTOVAJA_PRICE | Оптовики |
| CORP_PRICE | Корпоративные |
| BASE | Розничные |
4. Логика показа цены через шаблон
Если цены хранятся в типах цен, Битрикс обычно подставляет их автоматически. Если нет, добавляем проверку в шаблон:
<?php
global $USER;
$arGroups = $USER->GetUserGroupArray();
if (in_array(ID_ГРУППЫ_ОПТОВИКИ, $arGroups)) {
echo $arResult["ITEM_PRICES"]["OPTOVAJA_PRICE"]["PRICE"] . " ₽";
} elseif (in_array(ID_ГРУППЫ_CORP, $arGroups)) {
echo $arResult["ITEM_PRICES"]["CORP_PRICE"]["PRICE"] . " ₽";
} else {
echo "Цена доступна только для корпоративных клиентов";
}
?>
5. Если цена хранится в свойствах инфоблока
Иногда 1С выгружает цену не в типы, а в свойства товара:
<?php
global $USER;
$arGroups = $USER->GetUserGroupArray();
if (in_array(ID_ГРУППЫ_ОПТОВИКИ, $arGroups)) {
echo "Ваша цена: " . $arResult["PROPERTIES"]["OPT_PRICE"]["VALUE"] . " ₽";
} else {
echo "Доступные цены: только после входа";
}
?>
6. Тестирование
- Оптовик видит оптовую цену
- Корпоративный — корпоративную
- Розничный — розничную
- Неавторизованный — видит сообщение «цена доступна после входа»
7. Частые ошибки и рекомендации
| Ошибка | Как исправить |
|---|---|
| Цена не меняется | Проверьте сопоставление типа цены и группы пользователей |
| Пользователь не попадает в группу | Проверьте настройки обмена 1С → Битрикс |
| Показаны обе цены одновременно | Проверьте логику в шаблоне |
| Цена видна всем | Убедитесь, что права доступа к типу цены настроены правильно |
8. Итог
Настроив синхронизацию пользователей из 1С, группы в Битрикс, типы цен и шаблоны, вы получаете гибкую систему, где каждый клиент видит только свою цену. Это удобно для оптовых и корпоративных клиентов и позволяет автоматизировать работу магазина без ошибок.
Комментарии (0)
Оставить комментарий