Телеграм: @camouf_ru Почта: mihail@bazarow.ru

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

Просмотров: 13743

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

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

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

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

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

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

Создаем свои типы цен. Самое главное тут, это вписать название цены и выставить права доступа. На скриншоте: Цена называется "Для выгрузки на сайт Казахстан" и ее 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;?>⁠

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

Александр Жулин 04.04.2018
Приветствую я конечно (возможно) не правильно сделал. Но вот внедрил 02.04.2018 некий код. У меня штук 20 типов цен. И для каждого покупателя надо выводить определенную цену, бывает даже 2 цены. Может подскажите правильно ли это. Ну судя по продажам выводится цены правильные + в корзину падает правильная цена.
Создал (например) группу пользователей Оптовые покупатели(10), Дилеры(12), Крупный опт(14), ......Так же создал типы цен - ОПТ(WHOLESALE) Дилерская(Diler) КрОПТ(KrOpt). Зарегистрировал пользователей и дал им группу в соответствие с типом цен.
Открываю компоненту bitrix:catalog и приписываю до вывода компоненты:
if(in_array(10, CUser::GetUserGroup($USER->GetID()))){
   $pri = array (0=>"BASE",1=>"WHOLESALE");
}
elseif(in_array(12, CUser::GetUserGroup($USER->GetID()))){
   $pri = array (0=>"Diler");
}

elseif(in_array(14, CUser::GetUserGroup($USER->GetID()))){
   $pri = array (0=>"KrOpt");
}

else {
   $pri = array (0=>"BASE");
}

Далее в компоненте ищу строчку "PRICE_CODE" и прописываю

""PRICE_CODE" => $pri,"
И выводятся у меня цены в соответствии с группой пользователей. Для пользователей группы 10 выводится 2 цены Розничная и оптовая. Для других групп своя 1 цена. Для остальных (В том числе не авторизованные) Розничная цена (BASE).
Дмитрий Иванов 25.11.2020
Подскажите, пожалуйста, можно ли реализовать переключение пользователя между группами пользователей/типами цен, допустим, оптовая цена и бесплатная доставка от 100 000, розничная цена и доставка от 5 000?
Гость 19.05.2022
а где этот код можно вставить?
жалко что не вставили скрин или пут к файлу для правки.

и еще. при создание второго типа цен и выставление в настройках отображения по группам - для второй группы удалились цены и теперь пишет что товар не доступен и необходимо на него подписаться......
Михаил Базаров 19.05.2022
Цитата
Гость написал:
а где этот код можно вставить?
жалко что не вставили скрин или пут к файлу для правки.

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

Собственнл в шаблоне списка элементов и в детальной карточке товара. У вас пути могут отличаться, особенно если какое-то готовое решение, типа Аспро.
По умолчанию:
/ШАБЛОН_САЙТА/components/bitrix/catalog.item/НАЗВАНИЕ_ШАБЛОНА/card/template.php
и
/ШАБЛОН_САЙТА/components/bitrix/catalog.element/НАЗВАНИЕ_ШАБЛОНА/template.php

А показ цен: может быть разрешили просмотр но не покупку. Там же, в настройках цены.

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Модифицировать состав заказа #ORDER_LIST# в почтовом событии "Новый з... Просмотров: 28483 Если вы хотите как-то по особенному сверстать состав заказа в почтовом уведомлении 1С-Битр... Умный фильтр только на последнем уровне разделов каталога. Просмотров: 10489 Если в разработаываемом магазине или в принципе в каталоге на Битрикс, вы выводите умный ф... Cordova, ввод в input под диктовку. Голосовой поиск в мобильном прило... Просмотров: 1264 Итак, задачка: реализовать голосовой поиск в мобильном приложении на Cordova. По сути, нам... Умный фильтр во всплывающей панели на мобильных. Просмотров: 1447 Шаблон умного фильтра в Битриксе достаточно сложный, с точки зрения верстки и не очень кра... Вывести информацию, только на первом уровне раздела каталога, в 1С-Би... Просмотров: 4253 Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента по... Как вывести картинки к разделам на базе _ext меню Просмотров: 7087 Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. ... Проверка на наличие элементов, текущего пользователя, в заданном инфо... Просмотров: 5496 Если стоит задача, определить наличие элементов созданных пользователем на сайте. Можно во... Сниппеты типографики bootstrap, для Битрикс Просмотров: 7600 Если вы подключили bootstrap к своему сайту, или сверстали весь шаблон, подключив bootstra... Увидеть файл заказов который передаст Битрикс в 1С Просмотров: 23306 Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей,... Вывести все разделы в которых находится элемент инфоблока Просмотров: 13027 Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоб... Создание скидки на общую сумму покупки в Битрикс корзине Просмотров: 26960 Функционал интернет-магазина, работающего под управлением 1С Битрикс, позволяет задавать м... Показ страницы сайта в боковом слайдере, на примере всплывающей формы... Просмотров: 1872 Если вы хотите сделать подгрузку любой страницы сайта в боковой слайдер, для этого в битри... Самодельная форма добавления элемента на API Битрикс Просмотров: 42562 Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изр... Пункты меню из разделов инфоблока Битрикс Просмотров: 90688 В принципе это стандартная возможность системы управления битрикс, но почему-то часто спра... Ускорение работы сайта на 1С-Битрикс Просмотров: 15895 Данная статья написана специально под видеоролик (приложен в конце статьи), опубликованный... Скопировать номер телефона из поля пользователя в телефон для регистр... Просмотров: 1629 Задача, на конкретном сайте: раньше все пользователи регистрировались по стандартному режи... Фотогалерея на базе компонента новостей, с fancybox. Просмотров: 1542 Это заметка обновление к очень старой, уже имеющейся на сайте. Сделаем что-то типа фотогал... Установить остатки товара на складе из доступных остатков. Просмотров: 4892 Задача, заполнить остатки товаров, в 1С-Битрикс, из параметра "Доступное количество". Создать pdf файл из элемента инфоблока, дать скачать пользователю, по... Просмотров: 3951 Задача: при каждом посещении статьи, на сайте, нужно создавать pdf файл с ее содержимым и ... Вывести все товары, с постраничной навигацией, из всех разделов инфоб... Просмотров: 28421 По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е...