В рознице всё открыто: любой посетитель видит товар, цену и кнопку «Купить». В опте это часто недопустимо. Партнёрские цены — коммерческая тайна, которую не показывают конкурентам и случайным гостям. Условия работы отличаются от розничных, а сам факт «здесь есть опт» иногда нужно показывать только проверенным контрагентам. Свести это к паре галочек в шаблоне нельзя — нужна системная механика. В 1С-Битрикс её дают группы пользователей и права доступа на инфоблок и типы цен: с их помощью строится закрытый оптовый раздел, куда попадают только авторизованные партнёры.
Эта статья — практический разбор того, как закрыть опт от розницы на 1С-Битрикс: как сделать доступ к разделу и ценам только после входа, как настроить права на инфоблок, как скрыть цены и кнопку заказа для гостей так, чтобы это была реальная защита, а не «прятки» в HTML, и как организовать регистрацию оптовика с модерацией. Материал из нашей практики разработки сайтов для B2B-компаний — по делу, без обещаний «гарантированного роста продаж».
Коротко
- Закрытый опт строится на группах пользователей и правах доступа, а не на визуальном скрытии в вёрстке.
- Закрывать можно по-разному: только цену, цену и кнопку заказа, отдельный раздел или весь B2B-каталог целиком.
- Права на инфоблок и раздел определяют, кто вообще видит данные; типы цен — кто видит какую цену.
- Гостю вместо цены показывают «Цена по запросу» или «Войдите» — с формой заявки, а не пустую карточку.
- Оптовик проходит модерацию: заявка → проверка менеджером → перевод в группу → доступ к закрытому разделу.
- Закрытые разделы дополнительно исключают из индексации, чтобы прайс не утекал в поисковую выдачу.
Зачем закрывать оптовый раздел
Розничный магазин выигрывает от открытости: чем проще увидеть товар и цену, тем выше конверсия. В опте логика обратная. Оптовые и дилерские цены — это результат договорённостей, объёмов и истории отношений, и показывать их всем подряд означает, во-первых, раскрывать конкурентам свою ценовую политику, а во-вторых, обесценивать статус партнёра, ради которого он и проходит регистрацию. Поэтому закрытый оптовый раздел — не каприз, а частое и обоснованное требование B2B.
Причин закрывать опт несколько, и обычно они действуют вместе:
- Цены не для всех. Оптовый прайс — коммерческая информация. Его не должны видеть ни розничные покупатели, ни конкуренты, которые мониторят рынок.
- Условия для партнёров. Отсрочка платежа, минимальная партия, персональные скидки — всё это имеет смысл только внутри отношений «поставщик — дилер», а не на открытой витрине.
- Разделение аудиторий. Один сайт обслуживает и розницу, и опт. Розничному покупателю не нужны коробки по 50 штук и цены «от тонны», оптовику — розничные ценники поштучно.
- Управляемый вход в партнёрство. Компания хочет сама решать, кто становится оптовиком: проверить контрагента, заключить договор, а уже потом открыть доступ.
Важно с самого начала понимать: закрытый опт — это про управление доступом, а не про красивое скрытие. Если цену просто убрать из вёрстки для вида, задача не решена. Настоящий закрытый раздел работает на уровне прав: сервер не отдаёт данные тому, у кого нет прав их видеть. Дальше вся статья — про то, как это устроено в 1С-Битрикс и как собрать из штатных механизмов надёжный закрытый опт.
Что именно закрывают: цены, кнопку, весь раздел
«Закрыть опт» — расплывчатая формулировка. Прежде чем настраивать права, нужно решить, что именно скрывать и от кого. От этого зависит и сложность реализации, и то, как сайт будет выглядеть для гостя. На практике встречаются несколько уровней закрытости — от самого мягкого до полного.
| Уровень | Что закрыто | Что видит гость |
|---|---|---|
| Скрыта цена | Только оптовая цена | Товар, розничную цену или «цена по запросу» |
| Скрыты цена и заказ | Цена и кнопка «в корзину» | Карточку без цены, приглашение войти |
| Закрыт раздел | Отдельные разделы каталога | Каталог без закрытых разделов |
| Закрыт весь опт | Весь B2B-каталог | Только страницу входа и приглашение стать партнёром |
Эти уровни можно комбинировать. Частый вариант: розничный каталог открыт всем, а рядом есть отдельный оптовый раздел, доступный только после входа, где у товаров оптовые цены и оптовые условия заказа. Другой вариант — единый каталог, где гость видит товары и розничные цены, но оптовые цены и кнопку оптового заказа получает только авторизованный партнёр.
Что видит гость и что — оптовик
Ключ к пониманию закрытого опта — держать в голове две «картины мира»: как выглядит сайт для неавторизованного гостя и для вошедшего оптовика. Одна и та же карточка товара, один и тот же раздел показываются им по-разному, потому что права и группы у них разные. Наглядно это удобно свести в таблицу.
| Элемент | Гость (неавторизованный) | Оптовик (в своей группе) |
|---|---|---|
| Оптовый раздел каталога | Не виден или недоступен | Виден и открыт |
| Оптовая цена | «Цена по запросу» / «Войдите» | Своя оптовая цена |
| Кнопка «В корзину» | Скрыта или «Запросить» | Активна, оформляет опт-заказ |
| Минимальная партия, кратность | Не показаны | Показаны, учитываются в корзине |
| Личный кабинет дилера | Недоступен | История, документы, баланс |
| Закрытый прайс-лист | Недоступен для скачивания | Доступен в своей цене |
Обратите внимание: разница не только в цене. Оптовику открываются и другие элементы — минимальные партии, оптовый способ заказа, личный кабинет, прайс. Всё это завязано на то, в какой группе находится пользователь. Гость не входит ни в одну оптовую группу, поэтому система последовательно скрывает от него весь оптовый слой. Как только он авторизуется под учёткой, которую менеджер добавил в группу «Оптовые покупатели», картина меняется целиком.
Группы пользователей как основа доступа
Вся механика закрытого опта держится на группах пользователей. Группа — это категория, к которой принадлежит посетитель: гость, зарегистрированный розничный покупатель, оптовик, дилер, менеджер. Один пользователь может состоять сразу в нескольких группах, и его итоговые права складываются из прав всех этих групп. Именно к группам, а не к отдельным людям, привязываются все настройки доступа: и права на инфоблок, и видимость типов цен.
Для закрытого опта минимальный набор групп обычно такой:
- Все пользователи (в том числе неавторизованные). Системная группа, куда попадает любой гость. От её прав зависит, что видит человек «с улицы».
- Зарегистрированные пользователи. Розничные покупатели, прошедшие обычную регистрацию. Им открыта розница, но не опт.
- Оптовые покупатели. Проверенные партнёры. Именно этой группе открывают закрытый раздел и оптовые цены.
- Дилеры / особые условия. При необходимости — отдельная группа под более закрытый прайс или индивидуальные условия.
- На модерации. Промежуточная группа, куда попадает заявка оптовика до проверки менеджером.
Число групп определяется бизнесом: если у вас один уровень опта, хватит одной оптовой группы, если несколько уровней партнёрства — заводят группу под каждый. Не стоит плодить группы «про запас»: каждая новая группа — это ещё один набор прав, который нужно осознанно настроить и проверить. Лишние группы усложняют картину и повышают риск ошибки в правах.
Права на инфоблок и раздел каталога
Второй столп закрытого опта — права доступа на инфоблок. Каталог в 1С-Битрикс хранится в информационных блоках, и у каждого инфоблока есть настройка «Доступ»: для каждой группы пользователей указывается уровень прав. Именно это определяет, кто вообще может видеть содержимое каталога или его части.
Уровни доступа к инфоблоку идут по нарастающей — от полного запрета до полного управления. Для закрытого опта важны нижние уровни:
| Уровень доступа | Что даёт | Кому в закрытом опте |
|---|---|---|
| Доступ закрыт | Группа не видит инфоблок совсем | Гостям — на закрытый оптовый инфоблок |
| Чтение | Просмотр элементов и разделов на витрине | Оптовикам — на оптовый инфоблок/раздел |
| Чтение + документооборот | Просмотр + черновики (для контента) | Контент-менеджерам |
| Полный доступ | Любые операции, включая права | Администраторам |
Логика простая: чтобы закрыть оптовый каталог от гостей, у группы «Все пользователи» на этот инфоблок ставят «Доступ закрыт», а группе «Оптовые покупатели» — «Чтение». Тогда гость не получит данные вообще (компонент вернёт пустоту или ошибку доступа), а вошедший оптовик увидит каталог нормально. Это и есть настоящее ограничение на уровне сервера, а не косметика.
Важная тонкость: права можно назначать не только на весь инфоблок целиком, но и на отдельные разделы внутри него, если включён режим расширенного управления правами разделов. Это позволяет держать один каталог, где часть разделов открыта всем, а часть — только оптовикам. Розничные категории видны любому гостю, а закрытый оптовый раздел внутри того же инфоблока доступен лишь партнёрской группе.
Закрытие целого раздела от гостей
Самый строгий сценарий — когда весь оптовый раздел или целый B2B-каталог доступен только авторизованным партнёрам, а гость туда не попадает вообще. Это уместно, когда компания не хочет даже намекать случайным посетителям на существование опта, или когда весь сайт по сути партнёрский, а публичной розницы нет.
Собирается это из уже описанных кирпичей, но настроенных строго:
- Выделите закрытый инфоблок или раздел. Оптовый каталог можно вынести в отдельный инфоблок или в отдельный раздел существующего — так права проще держать в порядке.
- Закройте доступ гостям. Группе «Все пользователи (в том числе неавторизованные)» поставьте на закрытый инфоблок/раздел «Доступ закрыт».
- Откройте доступ партнёрам. Группам «Оптовые покупатели» и «Дилеры» дайте «Чтение» на этот инфоблок/раздел.
- Закройте прямые URL. Убедитесь, что и по прямой ссылке на страницу раздела гость получает не контент, а редирект на вход или сообщение о необходимости авторизации.
- Уберите закрытое из меню и поиска. Пункты меню и результаты внутреннего поиска для гостя не должны выдавать существование закрытых разделов.
Ключевой момент четвёртого шага: закрытие в меню недостаточно. Если раздел исчез из навигации, но по прямой ссылке отдаётся, — это не защита. Правильно настроенные права на инфоблок решают это автоматически: компонент каталога, обслуживающий страницу, просто не отдаст данные пользователю без прав чтения, независимо от того, как он на страницу попал. Поверх этого часто добавляют проверку авторизации на входе в раздел, чтобы гостя сразу отправлять на форму входа с понятным сообщением.
Скрытие цен и кнопки «в корзину»
Более мягкий и очень частый сценарий: каталог открыт всем, товары видны, но оптовая цена и кнопка заказа доступны только после входа. Гость просматривает ассортимент как витрину, а покупает уже авторизованный партнёр. Здесь закрывается не раздел целиком, а конкретные элементы карточки.
Скрытие цены строится на двух уровнях, и оба важны:
- Права на тип цены. Оптовая цена — это отдельный тип цены в торговом каталоге. В его правах указывают, что видеть и покупать по нему может только группа оптовиков. Тогда система в принципе не подставит оптовую цену гостю.
- Логика шаблона. Шаблон карточки проверяет группу пользователя на сервере: если оптовой цены для него нет, вместо неё выводится «Цена по запросу» или приглашение войти, а кнопка «В корзину» заменяется на «Запросить» или скрывается.
Важнейший принцип — проверка идёт на бэкенде, до формирования HTML. Цена и кнопка не «прячутся стилями», а вообще не выводятся в разметку тем, у кого нет прав. Тогда в исходном коде страницы закрытой цены просто нет — её нельзя подсмотреть через инструменты разработчика. Подробнее об этой разнице — в разделе про безопасность ниже, потому что именно на ней чаще всего спотыкаются.
Кнопку «В корзину» скрывают заодно с ценой по простой причине: без цены нельзя корректно оформить заказ. Если бы гость мог добавить товар в корзину без цены, система не знала бы, по какой стоимости продавать. Поэтому у товара без доступной цены оптовый заказ логически невозможен, и кнопка либо блокируется, либо превращается в «Запросить цену» — обращение к менеджеру.
«Цена по запросу» и «войдите, чтобы увидеть»
Технически скрыть цену несложно. Сложнее — не потерять на этом потенциального клиента. Пустая карточка без цены и без объяснения выглядит как ошибка сайта: посетитель решает, что «тут что-то сломалось», и уходит. Поэтому на месте скрытой цены всегда должно быть осмысленное сообщение и понятное действие.
Типовые варианты того, что показывают гостю вместо оптовой цены:
| Заглушка | Действие для гостя | Когда уместно |
|---|---|---|
| «Цена по запросу» | Кнопка «Запросить цену» → форма | Сбор заявок, ручной прайс |
| «Войдите, чтобы увидеть опт» | Ссылка на вход и регистрацию | Мотивация авторизоваться |
| Розничная цена + пометка | «Оптовая — после входа» | Смешанный каталог розница/опт |
| «Станьте партнёром» | Форма заявки на партнёрство | Закрытая дилерская программа |
Выбор зависит от того, что для бизнеса ценнее: быстрее собрать контакт или мягче подтолкнуть к регистрации. «Цена по запросу» с формой хорошо работает, когда прайс индивидуальный и всё равно обсуждается с менеджером. «Войдите, чтобы увидеть» — когда цены типовые и задача просто отсечь неавторизованных. В смешанном каталоге показывают розничную цену как ориентир и обещают оптовую после входа — так гость видит порядок цифр и понимает выгоду партнёрства.
Регистрация оптовика с модерацией
Закрытый опт бессмысленен, если оптовиком может стать кто угодно за минуту. Тогда конкурент просто зарегистрируется и увидит весь прайс. Поэтому вход в оптовую группу почти всегда идёт через модерацию: между заявкой и доступом стоит проверка. Это и есть то, что отличает партнёрский раздел от открытой витрины.
Типовая схема регистрации оптовика — «заявка → проверка → группа»:
- Заявка. Оптовик заполняет расширенную форму: компания, ИНН, контактное лицо, телефон, иногда сфера деятельности и ожидаемые объёмы. Обычная розничная форма тут не годится — нужны данные для проверки контрагента.
- Промежуточное состояние. После отправки пользователь попадает не в оптовую группу, а в группу «На модерации» или создаётся неактивным. Доступа к закрытому разделу и ценам у него пока нет.
- Проверка менеджером. Менеджер видит заявку, проверяет контрагента (реальность компании, договор, условия) и принимает решение — одобрить или отклонить.
- Перевод в группу. При одобрении менеджер переводит пользователя в группу «Оптовые покупатели» (или «Дилеры»). Именно этот перевод открывает закрытый раздел и персональные цены.
- Уведомление. Партнёру уходит письмо «доступ открыт» со ссылкой на вход. С этого момента он видит опт.
Проверка может быть и полуавтоматической: например, заявки с валидным ИНН и заполненными данными подсвечиваются менеджеру для быстрого одобрения, а неполные отсеиваются. Но само решение «кто становится партнёром» остаётся за компанией — это политика, а не настройка по умолчанию. Техника лишь автоматизирует уже принятое правило: перевести человека в группу, отправить письмо, открыть доступ.
Персональные цены после входа
Когда партнёр прошёл модерацию и вошёл, он должен увидеть свои цены — не абстрактные «оптовые вообще», а те, что положены его группе. Это результат связки групп пользователей и типов цен, которая и делает закрытый опт живым, а не просто «раздел за паролем».
Работает это так. В торговом каталоге заведены типы цен — розничная, оптовая, дилерская. У каждого типа цены в правах указано, какие группы могут его видеть. Оптовая цена доступна только группе «Оптовые покупатели», дилерская — только «Дилерам». Пока человек — гость или розница, эти типы цен ему недоступны, и он оптовых цифр не видит. Как только менеджер перевёл его в оптовую группу, система автоматически начинает показывать ему оптовую цену как основную.
Несколько практических следствий:
- Цена меняется по факту входа. Один и тот же товар до входа показывает «цена по запросу», после входа — конкретную оптовую цену. Никаких отдельных «оптовых карточек» заводить не нужно.
- Разные уровни партнёров — разные цены. Если групп несколько (опт, крупный опт, дилер), каждой открыт свой тип цены, и партнёр видит ровно свой уровень.
- Приоритет при пересечении. Если оптовику технически доступны и розничная, и оптовая цена, система показывает заданную приоритетом (обычно оптовую как основную).
Это ровно та механика, которой посвящена отдельная статья про оптовые цены по группам клиентов — там связка «тип цены ↔ группа ↔ права» разобрана детально. В контексте закрытого опта важно запомнить: доступ к разделу открывают права на инфоблок, а какую цену увидит партнёр — права на типы цен. Оба механизма работают через одни и те же группы пользователей.
Закрытый прайс и каталог для дилеров
Часто закрытый опт — это не только цены на витрине, но и закрытый прайс-лист для скачивания и отдельный дилерский каталог. Дилер хочет выгрузить актуальный прайс в своей цене, чтобы работать с ним офлайн, и видеть ассортимент, доступный именно ему. Всё это тоже строится на группах и правах.
Закрытый прайс-лист. Ссылка на скачивание прайса показывается только авторизованным партнёрам, а сам файл формируется в их типе цены. Гость не видит ни ссылки, ни файла. Важно, чтобы прайс отдавался с проверкой прав на сервере: если файл лежит по прямому URL и доступен всем, кто знает адрес, — это утечка. Правильно генерировать прайс «на лету» с проверкой группы или отдавать его через обработчик, который сверяет права.
Дилерский каталог. Крупным партнёрам иногда открывают отдельный, более закрытый каталог — с позициями, которых нет в общем опте, или с особыми условиями. Это ещё один инфоблок или раздел с правами только на дилерскую группу. Такой каталог часто живёт внутри личного кабинета дилера, где собраны и цены, и история заказов, и документы, и баланс.
Личный кабинет — естественное продолжение закрытого опта: после входа партнёр попадает в своё «рабочее место», где закрытый раздел, персональные цены и прайс собраны в одном месте. Как устроен такой кабинет, мы разбираем в отдельной статье про личный кабинет дилера на 1С-Битрикс, а под ключ собираем в рамках услуги разработки личного кабинета дилера.
Безопасность: ограничивать, а не прятать
Самая опасная ошибка в закрытом опте — путать скрытие и ограничение доступа. Они выглядят одинаково для обычного посетителя, но принципиально разные по надёжности. Скрытие — это когда данные всё равно попадают в страницу, но их не видно на экране. Ограничение — когда данных в странице нет вообще, потому что сервер не отдал их пользователю без прав.
Почему «спрятать стилями» — это не защита:
- Данные в HTML. Если цена скрыта через
display:noneили прозрачность, она всё равно есть в исходном коде страницы. Любой откроет код и увидит её. - Инструменты разработчика. Скрытый элемент возвращается видимым в один клик через панель разработчика браузера — никаких навыков не нужно.
- Данные в JavaScript. Если цены передаются в скрипт карточки «на всякий случай» для всех, их видно в исходниках, даже если визуально они не показаны.
- Прямые запросы. Если закрытый прайс отдаётся по прямому URL без проверки, его скачает любой, кто узнает адрес.
Правильный подход — проверять права на сервере и не выводить закрытые данные в ответ тем, у кого их нет. Оптовая цена не должна попадать в HTML или в JS гостя вообще. Кнопка заказа не должна рендериться, если заказ недоступен. Раздел не должен отдавать контент без прав чтения. Тогда в коде страницы закрытой информации просто нет — и подсматривать нечего. Это и есть разница между «выглядит закрытым» и «реально закрыто».
Кэш персональных данных
Закрытый опт добавляет нюанс, о котором вспоминают, только столкнувшись: кэширование персональных данных. Каталог для скорости кэшируется, и если кэш общий для всех, есть риск показать одному пользователю страницу из кэша другого. Для закрытого опта это двойная беда: и неверная цена, и утечка закрытого прайса розничному гостю.
Что важно учитывать при кэшировании закрытого опта:
- Кэш с учётом группы. Каталог, где цены и доступность зависят от группы, кэшируется отдельно для разных групп пользователей. Иначе оптовик получит розничный кэш или наоборот.
- Персональные блоки в динамике. Цену, кнопку заказа, доступ к разделу выносят в динамическую часть, которая считается для конкретного пользователя, а статику отдаёт композитный сайт мгновенно.
- Проверка прав, а не только кэш. Даже с правильным кэшем итоговое решение «показывать ли закрытое» принимается проверкой прав на сервере, а не только выбором ветки кэша.
На большом B2B-каталоге кэширование персональных цен и доступа проектируют вместе с правами, а не латают потом. Это тот случай, когда удобство (быстрый кэшируемый каталог) и безопасность (закрытый прайс) нужно согласовать заранее — иначе легко получить либо медленный сайт, либо утечку цен между группами.
Индексация закрытых разделов
Отдельный вопрос — как закрытый опт виден поисковикам. Робот поисковой системы приходит на сайт как обычный гость: он не авторизован и не состоит ни в одной оптовой группе. Значит, закрытый раздел он либо не увидит вовсе (если права закрыты), либо увидит страницу входа или пустую карточку без цены. Индексировать там нечего, а иногда и вредно.
Что делают с индексацией закрытых разделов:
- Исключают из robots.txt. Закрытые оптовые разделы и страницы входа/кабинета явно запрещают к обходу, чтобы робот не тратил на них краулинговый бюджет и не тянул в индекс бесполезные страницы.
- Ставят noindex. На страницах закрытого раздела и служебных страницах (личный кабинет, заявка) добавляют мета-тег noindex, чтобы они не попадали в выдачу, даже если робот на них зайдёт.
- Не отдают закрытый прайс в индекс. Файлы прайсов и страницы с оптовыми ценами не должны индексироваться — иначе цены утекут через кэш поисковика.
- Берегут публичную часть. Важно закрыть от индексации именно закрытое, не задев публичный розничный каталог, который должен индексироваться нормально.
Тонкий момент: индексация — это про гигиену выдачи, а не про защиту данных. Robots.txt и noindex говорят поисковику «не бери эту страницу», но сами по себе никого не пускают и не пускают. Настоящая защита закрытого опта держится на правах доступа. Robots — дополнение, которое убирает закрытые разделы из поиска, а не замена ограничению доступа. Если положиться только на robots, данные останутся доступны по прямой ссылке.
UX для гостя: форма запроса доступа
Закрытый опт — это барьер, и барьер этот нужно сделать дружелюбным. Гость, который наткнулся на «цену по запросу» или закрытый раздел, — это потенциальный партнёр. От того, насколько понятно и удобно ему предложат получить доступ, зависит, станет он клиентом или уйдёт к тому, у кого проще.
Что важно в UX закрытого опта для гостя:
- Понятное объяснение. На месте закрытого — короткий текст: «Оптовые цены доступны партнёрам после регистрации» и что даёт партнёрство (цены, отсрочка, менеджер).
- Простая форма заявки. Кнопка «Запросить доступ» / «Стать партнёром» открывает короткую форму. Не заставляйте заполнять десять полей — на первом шаге достаточно компании, контакта и телефона.
- Ясный следующий шаг. После отправки — сообщение «заявка принята, менеджер свяжется» с ожидаемым сроком. Гость должен понимать, что будет дальше.
- Лёгкий вход для тех, кто уже партнёр. Ссылка «Уже партнёр? Войдите» рядом — чтобы действующий оптовик не искал форму входа.
Хорошо оформленный барьер не отпугивает, а фильтрует: розничный случайный посетитель уходит, а заинтересованный оптовик оставляет заявку. Плохо оформленный (пустая карточка, непонятно, что делать) теряет обоих. Поэтому форму запроса доступа проектируют так же тщательно, как обычную карточку товара — это точка входа в партнёрство.
Интеграция с 1С: типы цен по группам
В большинстве B2B-проектов цены не ведут вручную на сайте — они приходят из 1С обменом. Это напрямую касается закрытого опта, потому что закрытые оптовые цены обычно и есть отдельные типы цен, которые живут в 1С и передаются на сайт. Понимать эту связь важно, чтобы закрытый прайс на витрине совпадал с тем, что в учётной системе.
Как это устроено. В 1С заведены типы цен — розничная, оптовая, дилерская. Они выгружаются в файл обмена по формату CommerceML и на сайте сопоставляются с типами цен торгового каталога Битрикса один к одному. Дальше каждый тип цены на сайте привязан правами к своей группе: оптовая — к оптовикам, дилерская — к дилерам. Так ценообразование остаётся в 1С, где им управляют менеджеры, а сайт автоматически показывает закрытые цены только нужным группам.
Практические моменты интеграции для закрытого опта:
- Сопоставление типов цен. При настройке обмена важно правильно сопоставить типы цен 1С с типами цен сайта — иначе оптовая цена «приедет» не в тот прайс и откроется не той группе.
- Единый источник истины. Если цены ведут и в 1С, и на сайте, они расходятся. Для закрытого опта источником обычно делают 1С, а сайт синхронизируют обменом.
- Права остаются на сайте. 1С передаёт значения цен, а кто их видит — определяют права на типы цен уже на сайте. Обмен не управляет доступом, он приносит цифры.
Согласование заказов, отсрочек и документов в закрытом опте — отдельная большая тема, которая тоже завязана на 1С. Как выстроить согласование B2B-заказов, мы разбираем в статье про согласование заказов в B2B-портале. А полный набор сценариев закрытого опта — раздел, кабинет, права, обмен — мы собираем в рамках услуги B2B-порталов и личных кабинетов.
Реализация закрытого опта пошагово
Соберём всё вместе в понятную последовательность. Названия пунктов меню могут отличаться в зависимости от версии и редакции платформы, но порядок общий. Настройка идёт от групп к правам и заканчивается проверкой под разными ролями.
- Создайте группы. Заведите группы «Оптовые покупатели», при необходимости «Дилеры» и промежуточную «На модерации» помимо стандартных гостей и зарегистрированных.
- Настройте права на инфоблок и разделы. Закройте оптовый инфоблок или раздел от гостей («Доступ закрыт»), откройте чтение оптовым группам.
- Настройте типы цен и их права. Создайте оптовый (и дилерский) тип цены, откройте их видимость только соответствующим группам.
- Доработайте шаблон карточки. Научите его проверять группу на сервере: гостю — «цена по запросу» и приглашение войти, партнёру — цена и кнопка заказа.
- Сделайте регистрацию с модерацией. Расширенная форма заявки → промежуточная группа → проверка менеджером → перевод в оптовую группу → письмо о доступе.
- Настройте кэш с учётом группы. Персональные цены и доступ вынесите в динамику, чтобы кэш не смешивал данные разных групп.
- Закройте индексацию. Добавьте закрытые разделы, кабинет и прайсы в robots.txt и проставьте noindex, не задев публичную розницу.
- Проверьте под ролями. Зайдите как гость, как розница, как оптовик и как дилер — убедитесь, что каждый видит ровно то, что должен, а закрытое реально закрыто (в том числе в исходном коде и по прямым ссылкам).
Последний шаг критичен, и его часто пропускают. Закрытый опт легко «выглядит правильно» в админке, но на витрине ведёт себя не так: оптовая цена случайно видна гостю, закрытый раздел открывается по прямой ссылке, прайс скачивается без входа. Проверка под всеми ролями, включая осмотр исходного кода страницы глазами гостя, ловит это до того, как утечку заметит конкурент.
Частые ошибки
Эти промахи в закрытом опте повторяются чаще всего — зная их, вы избежите утечки прайса и неловких ситуаций с партнёрами:
- Цену прячут стилями. Оптовая цена есть в HTML, но скрыта через CSS — её видно в исходном коде. Это не защита, а её видимость.
- Раздел закрыт только в меню. Из навигации убрали, а по прямой ссылке отдаётся. Права на инфоблок не настроены, доступ фактически открыт.
- Регистрация без модерации. Оптовиком становится кто угодно за минуту — конкурент регистрируется и видит весь прайс.
- Кэш без учёта группы. Оптовик получает розничный кэш или гость — оптовые цены из общего кэша. И ошибка, и утечка.
- Прайс по прямому URL. Закрытый прайс-лист лежит файлом по известному адресу и скачивается без проверки прав.
- Пустая карточка без цены. Гостю показывают товар без цены и без объяснения — он решает, что сайт сломан, и уходит.
- Закрытое индексируется. Оптовые цены и разделы попадают в поисковую выдачу через кэш поисковика — прайс утекает.
- Не проверили под ролями. Настройку тестируют только в админке и не смотрят витрину глазами гостя, розницы и оптовика — реального поведения не видят.
Чек-лист
Короткий список для приёмки закрытого опта перед запуском:
- Группы заведены. Есть оптовые группы и промежуточная «На модерации» помимо гостей и розницы.
- Права на инфоблок настроены. Закрытый раздел закрыт от гостей, открыт оптовым группам; проверено по прямой ссылке.
- Права на цены настроены. Оптовая и дилерская цены видны только своим группам, гостю — нет.
- Заглушки на месте. Гостю вместо цены — «цена по запросу» или «войдите», с формой или ссылкой, а не пустота.
- Модерация работает. Заявка проходит проверку менеджером, перевод в группу открывает доступ, уходит письмо.
- Данные не в HTML. Закрытые цены и кнопки не выводятся гостю ни в разметке, ни в JS, ни по прямому URL.
- Кэш учитывает группу. Персональные цены и доступ не утекают между группами через общий кэш.
- Индексация закрыта. Закрытые разделы, кабинет и прайсы исключены из индекса; публичная розница не задета.
- Проверено под ролями. Витрина проверена как гость, розница, оптовик и дилер, включая осмотр исходного кода.
Вывод
Закрытый оптовый раздел на 1С-Битрикс держится на трёх опорах: группы пользователей («кто покупатель»), права на инфоблок и разделы («кто видит каталог») и права на типы цен («кто видит какую цену»). Связав их через понятную политику и модерацию входа в партнёрство, вы получаете надёжный доступ по авторизации: гость видит витрину и приглашение стать партнёром, а оптовик после входа — свой раздел, свои цены и свой прайс.
Главный принцип — ограничивать, а не прятать. Закрытая информация не должна доходить до браузера гостя ни в HTML, ни в JavaScript, ни по прямой ссылке. Скрытие стилями — это утечка, а не защита. Дополните права модерацией оптовиков, корректным кэшем персональных цен и исключением закрытых разделов из индексации — и проверьте всё под разными ролями. Тогда партнёр получает удобный закрытый опт, а конкурент не видит ваших цен. Разобрать конкретный сценарий под ваш каталог и условия работы с партнёрами можно в рамках нашей услуги — начните с сайта для B2B-компании или изучите смежные материалы в рубрике «B2B и опт».