Настройка ценовых типов в 1С-Битрикс: базовая, оптовая и дилерская цены
Представьте: вы запускаете интернет-магазин на 1С-Битрикс. У вас есть розничные покупатели, оптовики и дилеры. Каждому — своя цена на один и тот же товар. Без правильной настройки ценовых типов вы рискуете показывать всем одну цену или получить логические ошибки при расчёте корзины. Мы сталкивались с проектами, где из-за неправильной привязки групп пользователей слетали цены при каждом обмене с 1С. Разберём, как настроить типы цен грамотно, чтобы избежать таких проблем.
Какие проблемы решает настройка ценовых типов
Путаница с приоритетами. В Битриксе один пользователь может входить в несколько групп. Какую цену ему показывать? По умолчанию применяется тип с наименьшим значением в поле SORT. Если SORT не задан — порядок неопределённый. Мы рекомендуем явно выставлять SORT для каждого типа: BASE = 10, опт = 20, дилер = 30. Иначе возможны ситуации, когда VIP-клиент видит оптовую цену вместо спецпредложения.
Импорт из 1С. Стандартный обмен через CommerceML передаёт цены в поле PriceType. Многие разработчики ошибочно пытаются записать цены через CIBlockElement::SetPropertyValues — это не работает. Единственно верный способ — через CCatalogProduct::SetPrice или D7 API. Официальная документация. Также полезно изучить формат CommerceML на Wikipedia.
Кэширование типов цен. Если включено тегированное кэширование, после изменения цен или привязок к группам требуется сброс кэша инфоблоков. Иначе пользователи увидят старые цены. Мы настраиваем автосброс кэша через агенты при обновлении цен из 1С.
Как мы это делаем: кейс из нашей практики
Недавно пришёл клиент — оптовый поставщик стройматериалов. Каталог 15 000 товаров, три типа цен (розница, мелкий опт, крупный опт) с привязкой к группам. Основная боль: после обмена с 1С раз в час цены сбивались — часть товаров уходила в ноль, часть дублировалась. Оказалось, в 1С было 4 типа цен, а в Битриксе — 3, и маппинг был неполный. Мы:
- Создали четвёртый тип «Спецпредложение» с привязкой к группе «VIP».
- Настроили событие OnBeforePriceUpdate, чтобы проверять дубли и не давать нулевую цену.
- Добавили агента сброса тегированного кэша каждые 59 минут (чуть реже обмена). Результат: цены стабильны, пользователи видят свои типы, обмен работает без сбоев. Клиент сэкономил до 40% бюджета, избежав простоев и ручного исправления цен.
Процесс работы над вашим проектом
Мы не просто создаём типы цен в админке. Этапы:
- Аналитика — изучаем вашу структуру групп, типы из 1С, валюты. Собираем все сценарии.
- Проектирование — определяем SORT, привязки, базовый тип. Решаем, нужна ли мультивалютность.
- Реализация — создаём типы, пишем код для импорта (если нестандартный), интегрируем с 1С через CommerceML или API.
- Тестирование — проверяем каждую группу пользователей, каждый тип, сценарии с нулевыми ценами.
- Деплой — выкатываем на боевой, сбрасываем кэш, наблюдаем пару дней.
Как работает мультивалютность?
Для разных валют создаются отдельные типы цен (например, «Цена RUB», «Цена USD»). В настройках типа указывается валюта. Затем типы привязываются к одним и тем же группам. В шаблоне каталога реализуется выбор нужного типа в зависимости от текущей валюты. Мы дорабатываем логику через событие `OnGetOptimalPrice`.Что входит в результат
После завершения работ вы получаете:
- Настроенные типы цен с корректной привязкой к группам пользователей.
- Интеграцию с 1С (если требуется) — маппинг типов, обработчики дублей.
- Документацию по схеме цен и рекомендации по изменению.
- Обучение вашего администратора работе с ценовыми типами.
- Месяц бесплатной поддержки на случай вопросов.
Сравнение: профессиональная настройка vs самостоятельная
| Критерий | Сделать самому | Заказать нам |
|---|---|---|
| Время настройки 2-3 типов | 4–8 часов | 2–4 часа |
| Риск ошибок при импорте | высокий (дубли, нули) | низкий (обработчики + тесты) |
| Мультивалютность | сложно, нужно копать API | готовое решение за 1 день |
| Гарантия стабильности | нет | 1 месяц поддержки |
Профессиональная настройка в 3 раза быстрее самостоятельной и позволяет избежать типичных ошибок, которые могут привести к убыткам.
Как избежать ошибок при импорте цен из 1С?
Типичные ошибки и их решения:
- Удаление BASE-типа или создание нескольких BASE — ведёт к непредсказуемому поведению каталога. Никогда не удаляйте базовый тип.
- Запись цен через
CIBlockElement::SetPropertyValues— цены не сохранятся. Используйте толькоCCatalogProductили D7. - Игнорирование кэширования — пользователи увидят старые цены. Настройте автоматический сброс кэша.
- Привязка типа только к одной группе — если пользователь входит в несколько групп, вы не получите ожидаемую цену. Привязывайте типы ко всем релевантным группам.
| Ошибка | Последствие | Решение |
|---|---|---|
| Нет SORT у типов | Неопределённый приоритет | Явно задать SORT |
| Неполный маппинг из 1С | Часть цен не загружается | Создать недостающие типы |
| Отсутствие обработчика дублей | Многократное добавление цен | Использовать OnBeforePriceUpdate |
Сроки и как заказать
Базовая настройка 2-3 типов цен с привязкой к группам занимает от 2 до 4 часов. Если нужен сложный импорт или мультивалютность — от 4 до 16 часов. Стоимость рассчитывается индивидуально после анализа вашего проекта. Свяжитесь с нами — оценим ваш кейс бесплатно и предложим решение. Закажите настройку ценовых типов сегодня и получите месяц поддержки в подарок.
Гарантируем корректную работу цен для всех групп пользователей — даже при ежечасном обмене с 1С. Опыт работы с Битрикс — более 7 лет, десятки проектов с разными типами цен. У нас есть сертификаты и лицензия на разработку.







