
Чаще всего применяются два подхода. Первый – редактирование шаблона компонента, где блок с ценой оборачивается в проверку авторизации или принадлежности к нужной группе. Второй – использование настроек доступа в административной панели, чтобы цены не отображались для определённых ролей пользователей. Оба варианта позволяют гибко управлять отображением стоимости и исключать её показ там, где это не требуется.
Если используется расширенный шаблон с несколькими видами цен, необходимо очистить список в параметре PRICE_CODE. Это полностью уберет формирование массива цен и отключит их рендеринг в шаблоне.
Рекомендуется проверять подключение дополнительных модулей (например, «Торговый каталог»), так как они могут автоматически подставлять цены. В таком случае важно не только отключить параметр, но и удалить привязку к типам цен в настройках компонента.
Скрытие цен с помощью пользовательских шаблонов компонента

Внутри шаблона найдите блоки, содержащие PRICE или MIN_PRICE, и удалите или закомментируйте соответствующие фрагменты PHP-кода. Например:
<?php // echo $arItem[«MIN_PRICE»][«PRINT_VALUE»]; ?>
<?php if(false): echo $arItem[«MIN_PRICE»][«PRINT_VALUE»]; endif; ?>
Таким образом, цены не будут отображаться, при этом функционал фильтров и свойств сохранится. Для корректности рекомендуется создавать отдельный шаблон компонента, чтобы при обновлении ядра изменения не перезаписывались.
Удаление блока цен из верстки карточки товара

Сделайте копию шаблона компонента: /bitrix/components/bitrix/catalog.element/templates/.default/ в /local/templates/ВАШ_ШАБЛОН/components/bitrix/catalog.element/КарточкаТовара/. Правки выполняйте только в копии в /local/, ядро не трогайте.
Если шаблон карточки использует вложенный компонент catalog.item, продублируйте шаг: /local/templates/ВАШ_ШАБЛОН/components/bitrix/catalog.item/ШАБЛОН/. В template.php удалите контейнеры с role=»price», data-entity=»price», а также вызовы $item[‘JS_OFFERS’] для цен.
В result_modifier.php обнулите данные, чтобы JS не пытался обновлять несуществующие узлы: unset($arResult[‘MIN_PRICE’], $arResult[‘PRICES’], $arResult[‘ITEM_PRICES’], $arResult[‘ITEM_PRICE_SELECTED’]); для SKU пройдитесь по $arResult[‘OFFERS’] и unset($offer[‘ITEM_PRICES’], $offer[‘MIN_PRICE’]).
В template.js (если присутствует) уберите инициализацию цен: удалите ключи PRODUCT.PRICE, PRODUCT.PRICE_RATIO, VISUAL.PRICE_ID, а также обработчики, обновляющие цены при выборе SKU (поиск по ‘data-entity=»price»‘).
Удалите микроразметку цены и валюты: атрибуты itemprop=»price», itemprop=»priceCurrency», блоки offers/Offer из Schema.org. Иначе поисковые системы зафиксируют цену, несмотря на отсутствие визуального блока.
Отключите серверный рендер цен в параметрах компонента (если доступны): SHOW_OLD_PRICE, SHOW_DISCOUNT_PERCENT, SHOW_PRICE_COUNT – установите в N/0, чтобы лишний код не попадал в $arResult.
Очистите кеш после правок: «Настройки → Производительность → Очистка кеша»; вручную удалите /bitrix/cache/, /bitrix/managed_cache/, /upload/resize_cache/ для гарантии. Для композитного режима выполните «Сбросить композитный кеш».
Проверьте Ajax-режим: при включенном AJAX_MODE убедитесь, что в шаблон не подмешиваются фрагменты с ценами из других компонентов; поищите price в ответах Network и уберите соответствующие участки шаблонов.
Убедитесь, что формы «Купить»/«В корзину» не зависят от цены в верстке: кнопки должны отправлять ID товара; наличие цены в DOM не должно быть обязательным условием в JS (удалите проверки вида if (!priceNode) return;).
Тестирование: проверьте карточку с обычным товаром, с торговыми предложениями (SKU), товар без наличия и с разными типами цен; просмотрите отображение на мобильной версии и в разных шаблонах карточки, чтобы исключить остаточные узлы цены.
Настройка условий отображения цен для определённых групп пользователей

В Битрикс управление доступностью цен осуществляется через группы пользователей и настройки инфоблоков. Для начала необходимо создать отдельные группы, например: «Оптовые клиенты», «Розница», «Гости сайта».
В разделе «Настройки» → «Пользователи» → «Группы пользователей» добавьте новую группу и определите права доступа. После этого перейдите в «Магазин» → «Настройки» → «Типы цен» и для каждого типа задайте разрешения по группам. Например, для «Гостей сайта» можно полностью отключить просмотр цен, для «Розницы» оставить только базовую цену, а для «Оптовых клиентов» открыть специальные тарифы.
Если требуется гибкая логика (например, скрыть цену только в определённом разделе каталога), настройте права доступа на уровне инфоблоков: выберите нужный инфоблок → «Права доступа» → ограничьте просмотр поля «Цена» для выбранной группы.
При необходимости автоматизировать назначение групп используйте правила в модуле «Маркетинг» или настройте добавление пользователя в группу при регистрации через свойства профиля. Это позволит динамически управлять отображением цен без ручного редактирования прав.
Использование CSS для скрытия элементов цен на страницах
Цель: убрать визуальное отображение цен без изменения серверной логики. Подходит для временных правок, A/B, демо-версий; не заменяет удаление цены из разметки и микроразметки.
Базовый приём: скрыть элемент через display. Например: .price { display: none !important; } – работает быстро, но грубо: скрывает всё дочернее содержимое и может ломать верстку.
Рекомендованные селекторы для Битрикс: пробуйте в порядке возрастания специфичности: .bx_price, .bx_price_old, .price, .price-value, .price-number, .product-item-price, .catalog-item .price. Для высокоспецифичных шаблонов используйте цепочки классов: .catalog .product-item .product-item-price.
Примеры точечных правил (вставляйте в CSS темы): скрыть только текущую цену: .product-item-price-current { display: none; }; скрыть старую цену: .product-item-price-old { text-decoration: line-through; visibility: hidden; }.
Когда не срабатывает: если цена вставляется inline-стилем с !important или отрисовывается JavaScript после загрузки. Решения: повысить специфичность селектора (например, body.catalog .product-item .price) или применить !important в крайнем случае.
Мобильные условия: использовать медиа-запросы, чтобы скрывать цену только на нужных разрешениях: @media (max-width: 600px) { .price { display: none !important; } }.
Скрытие, сохраняя структуру DOM: если нужно убрать видимость, но оставить место для скриптов, используйте visibility: hidden; height: 0; overflow: hidden; или opacity: 0; pointer-events: none;. Первый вариант убирает элемент из визуального потока, второй – оставляет место (подбирайте под задачу).
ARIA и доступность: после скрытия добавьте атрибуты через шаблон: aria-hidden=»true» и при необходимости role=»presentation», чтобы экраны чтения не объявляли цену.
Динамически добавляемые цены: при отрисовке через AJAX используйте MutationObserver на стороне клиента, но предпочтительнее править шаблон компонента: наблюдатель – запасной вариант, пример логики – следить за узлом контейнера и добавлять класс, который скрывает цены.
Тестирование и контроль: проверить селектор в DevTools (Ctrl+Shift+C), убедиться в отсутствии конфликтов по специфичности и в том, что правило применяется после загрузки всех CSS. Тестируйте на основных шаблонах каталога, карточки товара, корзине и в мобиле.
Пример фильтрации для компонента catalog.section:
<?php
foreach($arResult['ITEMS'] as &$item) {
if($item['PROPERTIES']['HIDE_PRICE']['VALUE'] === 'Y') {
$item['PRICES'] = [];
}
}
?>
В данном коде проверяется пользовательское свойство HIDE_PRICE. Если оно установлено, массив цен очищается, и на фронтенде цены не отображаются.
Для компонента catalog.element возможен аналогичный подход:
<?php
if($arResult['PROPERTIES']['HIDE_PRICE']['VALUE'] === 'Y') {
$arResult['PRICES'] = [];
}
?>
Важно учитывать, что полностью удалять HTML-блок цены нужно в шаблоне с помощью проверки empty($arResult['PRICES']), иначе на странице останется пустой контейнер.
| Компонент | Место вставки PHP | Условие фильтрации | Действие |
|---|---|---|---|
| catalog.section | template.php | $item[‘PROPERTIES’][‘HIDE_PRICE’][‘VALUE’] === ‘Y’ | Очистка массива $item[‘PRICES’] |
| catalog.element | template.php | $arResult[‘PROPERTIES’][‘HIDE_PRICE’][‘VALUE’] === ‘Y’ | Очистка массива $arResult[‘PRICES’] |
Рекомендуется применять кеширование компонента после фильтрации, чтобы избежать лишних обращений к базе. Для сложных условий можно использовать функции-обработчики на событие OnBeforeProlog или OnBeforeResultCache, что позволяет централизованно контролировать отображение цен.
Дополнительно, для динамических изменений на фронтенде, можно использовать AJAX-загрузку данных без цен, оставляя структуру товара неизменной, что ускоряет работу сайта и уменьшает количество лишнего HTML.
Скрытие цен в списке товаров и сохранение в карточке товара

Для скрытия цен в списке товаров и одновременного отображения в карточке на платформе 1С-Битрикс используется комбинация настроек компонентов и шаблонов. Ниже приведен пошаговый подход:
- В параметрах компонента найдите настройку
SHOW_PRICEили аналогичную. Установите значениеfalseдля отключения отображения цены в списке. - При необходимости динамического управления отображением цен можно использовать условие:
<?php if($APPLICATION->GetCurDir() == '/catalog/' ): ?> <?php $arParams['SHOW_PRICE'] = false; ?> <?php endif; ?>Это позволит скрывать цену только в списках, оставляя карточку товара с ценой.
- Проверяйте кеширование компонентов. Для корректного отображения изменений очистите кеш через панель управления или добавьте
$GLOBALS['CACHE_MANAGER']->ClearByTag('catalog_list');.
Дополнительно можно использовать CSS-класс для скрытия блока цены в списке, если изменение шаблона нежелательно:
- В файле
style.cssшаблона добавьте:.catalog-item .price { display: none; }
Комбинированное использование настроек компонента и CSS позволяет полностью контролировать отображение цен: скрывать их в списках товаров и сохранять в карточках без изменения функционала корзины или заказа.
Отключение цен в модуле Интернет-магазин через административную панель

Для отключения отображения цен на сайте через административную панель Битрикс выполните следующие шаги:
-
Перейдите в административную панель: Настройки → Настройки продукта → Интернет-магазин.
-
Выберите пункт Настройки каталога и откройте вкладку Цены и валюта.
-
Снимите галочки с типов цен, которые не должны отображаться на сайте. Если необходимо полностью скрыть цены, отключите все типы цен, кроме системных.
-
Перейдите в Настройки пользователей → Группы пользователей и убедитесь, что для выбранных групп доступ к ценам запрещен. Для этого:
-
Выберите группу пользователей, например, Гости или Все пользователи.
-
В колонке Доступ к ценам установите значение Нет.
-
-
Сохраните изменения и очистите кеш сайта через Настройки → Инструменты → Очистка кеша, чтобы новые настройки применились на всех страницах.
После выполнения этих действий цены на страницах каталога, карточках товаров и в корзине перестанут отображаться для выбранных групп пользователей, сохраняя при этом работоспособность всех функциональных модулей магазина.
Важно: для корректной работы необходимо убедиться, что в шаблонах компонентов не прописаны статические вызовы отображения цены. Если такие вызовы есть, их нужно удалить или закомментировать.
Для тестирования изменений создайте тестового пользователя из группы, у которой цены скрыты, и проверьте отображение каталога на фронтенде.
Вопрос-ответ:
Можно ли скрыть цены на сайте Битрикс для определённой группы пользователей?
Да, в Битрикс можно настроить отображение цен выборочно. Для этого необходимо использовать права доступа и группы пользователей. В административной панели можно создать отдельную группу для посетителей, которым цены показывать не нужно, а затем настроить отображение блоков с ценами так, чтобы они были видны только для конкретных групп пользователей. Это позволяет, например, скрыть цены для незарегистрированных посетителей или показать их только для партнёров.
Как скрыть цену товара на отдельной странице каталога?
Чтобы убрать цену на конкретной странице каталога, можно воспользоваться компонентом каталога и его настройками. В шаблоне компонента нужно изменить вывод блока с ценой, удалив или закомментировав код, отвечающий за отображение. Также можно использовать условные операторы, чтобы скрывать цену только для определённых товаров, оставляя остальные цены доступными. Такой подход позволяет гибко управлять видимостью цен на уровне отдельных страниц.
Есть ли способ полностью убрать цены из публичной части сайта без изменения структуры базы данных?
Да, это возможно. В Битрикс можно скрывать цены через настройки шаблонов и компонентов без вмешательства в базу данных. Для этого достаточно изменить шаблоны компонентов, которые отвечают за вывод товаров и цен, удалив соответствующие участки кода или добавив проверку прав доступа. Такой метод безопасен и не влияет на внутренние данные, при этом цены будут полностью скрыты для посетителей сайта.
Можно ли показать цену только после авторизации пользователя?
Да, Битрикс позволяет настроить отображение цен только для авторизованных пользователей. Для этого в шаблоне компонента или через настройки каталога добавляют проверку состояния пользователя: если он не вошёл в систему, блок с ценой не выводится, а вместо него можно показать сообщение вроде «Цена доступна после входа». Это решение удобно для сайтов с оптовой продажей или для закрытых категорий товаров.
