Показать только один тип цены в каталоге Битрикс

Достаточно часто, при создании сайта на битрикс, можно столкнуться с такой проблемой: на сайте имеется несколько групп оптовых покупателей, для которых заведены определенные типы цен. И есть розничные цены. Если оптовик заходит под своей учеткой-то он видет оба типа цен, хотя и покупает по своей. Давайте скроем от него розничную цену, что бы не мешалась

Создаем группы и выставляем права на цены

Сначала создаем нужные группы оптовиков, для этого проходим в Администрирование-настройки-Пользователи-Группы пользователей и нажимаем "Добавить группу"


Создаем группы с помощью пошагового мастера, на данном этапе нужно только вписать название группы и символьный индетификатор на латинице. Остальные настройки можно не трогать, они не относятся к теме данной записки.

Типы цен создаются тут: Администрирование- Магазин- Настройки-Типы цен


По умолчанию, у вас всегда будет как минимум один тип цены, как правило он называется "Розничные" или "Интернет цена"- по ней производится покупка и оформление товаров по умолчанию. И она всегда доступна для всех пользователей, в том числе не авторизованных.

Создаем свои типы цен. Самое главное тут, это вписать название цены и выставить права доступа. На скриншоте: Цена называется "Для выгрузки на сайт Казахстан" и ее ID = "6" и доступна на просмотр и покупку только для пользователей находящихся в группах с ID 8 и 9. 

Вот тут и начинается диллема

Если посмотрим на каталог товаров как пользователь из группы 8, авторизовавшись от его имени, то увидем две цены в каталоге. Свою, на которую разрешен просмотр и покупка и "Розничную"- так как мы являемся "Все пользователи в том числе не авторизованные"

Что бы скрыть розничную цену (как вариант оформить ее как-то иначе или задвинуть в другой угол карточки товара). Можно воспользоватяся API битрикс, на проверку группы текущего авторизованного пользователя пользователя.

В том месте, где в шаблоне каталога выводятся цены, размещаем вот такой код (подсказки по коду прямо в нем):

<?foreach($arElement["PRICES"] as $code=>$arPrice):?>
<?
$arGroupAvalaible = array(8,9); // массив групп, которые в которых нужно проверить доступность пользователя
$arGroups = CUser::GetUserGroup($USER->GetID()); // массив групп, в которых состоит пользователь
$result_intersect = array_intersect($arGroupAvalaible, $arGroups);// далее проверяем, если пользователь вошёл хотя бы в одну из групп
if(!empty($result_intersect)){
?>
<?
if ($arPrice["PRICE_ID"] == "6") //Показываем ему тип цены с ID-6 (и только ее)
{
echo $arPrice["VALUE"].' руб.';
}
?>
<?}else{?> //Если не вошел ни в одну из перечисленных
<?
if($arPrice["PRICE_ID"] == "3") { //Показываем цену с ID-3 (в моем случае розничная)
{
echo $arPrice["VALUE"].' руб.';
}
?>
<?}?>
<?endforeach;?>⁠

Вот таким образом можно скрыть не нужные пользователю типы цен. Как правило, актуально только если у вас несколько групп пользователей с правом на покупку по определенному типу цены


Все заметки
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей

Зарегистрироваться Войти
Напомнить пароль

Быстрая регистрация через соц.сеть:
Случайные заметки из блога
Панель управления хостином VESTA и 1С Битрикс, базовая оптимизация

Посоветовали мне тут попробовать бесплатную панель управления...

SEO новинки в 14-ой версии Битрикс

Дошли руки до изучения новинок появившихся в 14-ой версии битрикса....

Дополнительные параметры в меню Битрикс

Иногда нужно присвоить какой-то функционал к конкретному пункту...

Сортировать товары по названию, цене и дате поступления в каталоге Битрикс

Достаточно часто заказчик просит вывести сортировку по цене,...

Материалы по теме в новостях Битрикс, с картинкой, названием и текстом анонса.

Расскажу как вывести материалы по теме в новостях Битрикс, с...

Валидация пароля и подтверждения при регистрации в битрикс

Встала задачка сделать валидацию пароля и его подтверждения ...

Свежие комментарии в блоге
Всплывающее окно с формой обратной связи Битрикс

Подскажите почему может не работать скрипт  BX.ajax.onload_943827 = function() {           setTime...

19.07.2017 / Рима Уколова
Вывести товары из того же раздела в карточке товара

Михаил, скажите пожалуйста, этот метод еще актуален? Никак не могу передать ни id ни символьный код,...

19.07.2017 / Алексей Сель
Панель управления хостином VESTA и 1С Битрикс, базовая оптимизация

Здравствуйте, Михаил. Постоянно вылетает ошибка БД при создании рез.копии битрикс. Создавал виртуалк...

14.07.2017 / Сергей Стефанович
Как вывести свойства инфоблока по отдельности и немного плюшек не в тему

Здравствуйте, хочу вывести цену отдельно от общего списка свойств, использую  [CODE] 11.07.2017 / Алексей Сель

© 2011—2017 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.

Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой. Политика конфеденциальности

x
Как к Вам обращаться? *
Ваша электронная почта: *
Доп. материалы (логотип, тех. задание):
 
Обзор
Текст сообщения:

Нажимая на кнопку "Отправить", Вы соглашаетесь на обработку Ваших персональных данных согласно политике конфеденциальности. Ознакомиться с которой, можно в нижнем правом углу сайта