Сотбит: Индивидуальные цены
Получите быструю помощь по покупке, оплате, установке, настройке, продлению и другим вопросам, оставив заявку
💡 Нужна консультация и помощь по работе?
Для работы индивидуальных цен загрузите в Highload-блок таблицу следующего содержания:
- Идентификатор товара (рекомендуется XML_ID)
- Индивидуальная цена на товар
- Валюта
- Идентификаторы пользователя (неограниченное количество)
Механизм срабатывания индивидуальных цен имеет возможность отслеживать 2 вида параметров:
- Свойства текущего пользователя
- Данные из сессии
Установка плейсхолдеров:
В решении реализовано два метода установки плейсхолдеров
SotbitPrivatePriceMain::setPlaceholder( идентификатор_товара, текущая_цена_товара);
Метод вернет индивидуальную цену, если для товара, по указанному идентификатору (ID товара, либо XML_ID товара) в таблице индивидуальных цен будет найдено совпадение
Метод вернет цену товара согласно настройкам форматирования валюты, например 10 990 руб.
Метод вернет цену в валюте каталога, согласно настроенному курсу валют.
В случае, если для указанного “идентификатор_товара” не будет найдена индивидуальная цена, метод вернет “текущая_цена_товара”
SotbitPrivatePriceMain::setPlaceholderValue( идентификатор_товара, текущая_цена_товара);
В отличии от метода, описанного выше, будет возвращено только значение цены без форматирования по типу валюты, например 10 990
Пример:
$privatePrice = SotbitPrivatePriceMain::setPlaceholder( $item['ID'], $price['HIGHEST_PRICE']);
$privatePriceValue = SotbitPrivatePriceMain::setPlaceholderValue($item['ID'], $price['HIGHEST_PRICE']);
Для интеграции указанных методов потребуется произвести замену вывода цен в компонентах:
catalog.item
catalog.element
прочие компоненты с отображением цены товара
Административные настройки:
Название
Описание
Включение работы модуля
Активирует либо деактивирует обработку индивидуальных цен.
HL-блок
В поле указывается Highload блок, содержащий в себе информацию по индивидуальным ценам
Режим работы
В поле доступен выбор из двух режимов:
Через данные пользователя
Через данные сессии
Данная настройка переопределяет пункт “Дополнительные параметры сортировки”
Ключ товара
В данном поле требуется указать ключ по которому будет идентифицироваться товар:
PRODUCT_ID
PRODUCT_XML_ID
Колонка из HL-блока содержащая ключ товара
В поле указывается колонка HL-блока хранящая в себе ключи товаров для которых предоставляется индивидуальная цена
Колонка из HL-блока содержащая значение цены
В поле указывается колонка HL-блока хранящая в себе индивидуальные цены товаров
Колонка из HL-блока содержащая тип валюты
В поле указывается колонка HL-блока хранящая в себе тип валюты. При этом валюту в HL-блоке требуется указывать в формате указанном в списке валют в колонке “Валюта”
/bitrix/admin/currencies.php?lang=ru
Дополнительные параметры сортировки
В дополнительных параметрах сортировки указываются все необходимые данные для идентификации пользователя имеющего право на предоставление индивидуальной цены.
Пример использования дополнительных параметров сортировки
Самым простым вариантом сопоставления индивидуальной цены с клиентом будет указание ID пользователя в системе.
При необходимости предоставления индивидуальной цены группе пользователей, например сотрудникам конкретной организации, потребуется явно идентифицировать таких пользователей, например по ИНН компании.
Для этого можно создать пользовательское поле “ИНН компании” в настройках пользователей, после чего указать колонку HL-блока, в которой будет происходить поиск совпадений.
В реализации решения предусмотреть добавление для пользователей ключа сессии, хранящий требуемый идентификатор компании, например по ИНН. Включить режим работы модуля по ключам сессии, после чего указать в поле дополнительных параметров сортировки колонку HL-блока, отвечающую, например за ИНН, и указать ключ сессии, который хранит данные для сравнения. При этом важно указать ключ сессии в полном совпадении регистра.
Пример использования ключа сессии:
Допустим в файле header.php присутствует метод, который определяет ИНН компании для текущего пользователя, после чего устанавливает для этого пользователя параметр сессии.
$_SESSION[‘USER_INN’] = ‘1234567890’;
В таком случае в поле ключа сессии в административных настройках модуля потребуется указать ключ USER_INN, по которому будет осуществляться фильтрация индивидуальных цен.