Типы цен в корзине по условиям
От: Profi
Модуль «Типы цен в корзине» для 1С Битрикс: Управление сайтом, позволяет изменять тип цены у товаров в корзине, согласно заранее заданным условиям (например, минимальной сумме заказа, свойствам товаров, разделов и т.д.).
Например, у товаров или торговых предложений вы задали 2 типа цен: розничная и оптовая. Используя модуль, вы можете задать условия, при которых будут отображаться оптовые цены у товаров или розничные.
Возможности:
• задать основной тип цен;
• создавать правила смена типа цены на любой другой;
• для задания условий в правиле доступны: выбор инфоблоков, разделов, свойств, суммы заказа в корзине, вес и объем товаров в корзине, количество позиций, валюты и наценки товаров и торговых предложений;
• вывод предупреждения о минимальной сумме заказа в корзине;
• комбинировать условия, используя логические операторы;
• выбрать группы пользователей, на которых будут распространяться созданные правила;
• модуль работает с различными валютами, округлением, НДС, коэффициентом единиц измерения и скидками.
Инструкция:
После установки модуля стандартными средствами Битрикс, убедитесь что у вас заданы значения для разных типов цен у товаров или торговых предложений.
Если у вас существует только один тип цен (он будет базовым), то необходимо создать дополнительный тип цен. Например, если базовым типом цен являются розничные цены, то чтобы добавить возможность установить для товаров и торговых предложений оптовые цены, необходимо создать отдельный тип цен.
Для это в административной части переходим в раздел "Магазин - Настройки - Цены - Типы цен" и нажимаем в нем кнопку "Новый тип цен". На открывшейся странице, указываем: код типа цен, название и группы пользователей, имеющих право на просмотр и покупку по данному типу цен.
Когда есть хотя бы 2 типа цен, можно переходить к созданию правил их смены в корзине по заданным условиям.
Чтобы создать правило, перейдите в административную часть «Контент — Типы цен в корзине — ВАШ САЙТ — Правила» и добавить новое правило:
В настройках правило необходимо задать ему активность, сортировку, название и указать группы пользователей, для которых будет срабатывать правило.Далее необходимо настроить условия самого правила для различных типов цен:
- Задаем основной тип цен. Он будет использоваться, если заданные далее условия не выполняются, чтобы сменился тип цены.
- Задаем второй тип цен и условия для его использования. Функционал модуля позволяет группировать условия и использоваться логические операторы «И/ИЛИ».
В нашем примере (на скриншоте выше)мы создали условия для смена типа цены с РОЗНИЧНОЙ на ОПТОВУЮ: сумма заказа в корзине должна быть большем 10 000 руб И (товар должен быть из раздела «платья» ИЛИ свойство товара «производитель» должно содержать «Lanika»). - Аналогичным образом как в п.2 мы можем добавить условия ещё для какого-то типа цен.
Чтобы реализовать функционал проверки минимальной суммы заказа без доставки и вывода соответствующего предупреждения, необходимо будет установить специальный код в компоненте корзины (рекомендуется выполнять разработчику):
1. Если шаблон компонента корзины bitrix:sale.basket.basket системный (находится в папке /bitrix/components/bitrix/..), то его нужно скопировать в папку с шаблоном сайта и выбрать его в настройках компонента.
2. В вашем пользовательском шаблоне компонента корзины bitrix:sale.basket.basket в конце файла mutator.php перед строкой $result['TOTAL_RENDER_DATA'] = $totalData; добавить код:
| if(\Bitrix\Main\Loader::includeModule('profistudio.basketprice')) { $totalData['SUM_MIN_PRICE'] = \Profistudio\BasketPrice\Sale::getOrderMinBasePriceSite(SITE_ID, \Bitrix\Sale\Fuser::getId(), $result['CURRENCY']); $totalData['SUM_MIN_PRICE_FORMATED'] = \SaleFormatCurrency($totalData['SUM_MIN_PRICE'], $result['CURRENCY']); // Минимальная сумма заказа (без доставки) $LocalPrice = \Profistudio\BasketPrice\Sale::getBasketBaseSumSite(SITE_ID, \Bitrix\Sale\Fuser::getId(), $result['CURRENCY']); // Сумма в корзине без скидок (основной тип цен) if($result['allSum'] < $LocalPrice) { $totalData['SUM_PRICE_MAX'] = $LocalPrice; $totalData['SUM_PRICE_MAX_FORMATED'] = \SaleFormatCurrency($LocalPrice, $result['CURRENCY']); } } |
| {{#SUM_MIN_PRICE}} <div>Минимальная сумма заказа {{{SUM_MIN_PRICE_FORMATED}}}</div> {{/SUM_MIN_PRICE}} Для вывода суммы в корзине без скидок по основному типу цен добавить код: {{#SUM_PRICE_MAX}} <div>{{{SUM_PRICE_MAX_FORMATED}}}</div> {{/SUM_PRICE_MAX}} |
Кстати!
Если вы серьезно занимаетесь маркетингом и настроены на плодотворную работу по увеличению прибыли, то рекомендуем вам ознакомиться с нашими решениями для интернет-магазинов:
|
Дата публикации
|
18.11.2021 |
|
Число установок
|
100 - 499 раз |
|
Дата обновления
|
22.08.2025 |
|
Включает в себя
|
Компоненты Модуль |
|
Последняя версия
|
2.0.10 |
|
Адаптивность
|
Да |
|
Поддержка композита
|
Да |
|
Совместимо с Сайты24
|
Нет |
|
Подходящие редакции 1С-Битрикс
|
3380 3442 |
|
Наличие демо-режима
|
Да |
|
Продолжительность демо-периода
|
7 |
- 1. В настройках правила в дополнительных условиях добавлены пользовательские функции: profistudioBasketPrice_Additional_GetString_[ID_сайта](), profistudioBasketPrice_Additional_GetNumber_[ID_сайта]().
2. В правилах установки типа цены в дополнительных условиях добавлены пользовательские функции: profistudioBasketPrice_GetString_[ID_сайта](), profistudioBasketPrice_GetNumber_[ID_сайта]().
3. Небольшие улучшения и исправления. - 1. В настройках правила добавлен выбор пользователей, на которые распространяется правило:
1) Пользователи: неавторизованные (незарегистрированные)
2) Пользователи: авторизованные (зарегистрированные)
2. В настройках правила добавлены дополнительные условия применения правила:
1) Домен (адрес сайта без http://) - может использоваться, например, для выбора правила на одном сайте с разными поддоменами
2) Пользовательская функция php - может использоваться, например, для выбора правила по регионам на одном домене
3. В правилах установки типа цены добавлены дополнительные условия:
1) Домен (адрес сайта без http://) - может использоваться, например, для установки типа цены на одном сайте с разными поддоменами
2) Пользовательская функция php - может использоваться, например, для установки типа цены по регионам на одном домене
4. Небольшие улучшения и исправления. - 1. В условиях "Товар или торговое предложение в корзине (позиция)" добавлена возможность выбора значений свойств.
2. В условиях добавлен функционал выбора элементов и разделов инфоблока в отдельном окне из списка.
3. Небольшие улучшения и исправления. - 1. Добавлены новые условия в правилах:
1) В корзине присутствуют товары или торговые предложения
2) В корзине отсутствуют товары или торговые предложения
2. Добавлен функционал выбора дополнительных условий для правил из группы "Корзина" - Исправления для работы модуля на PHP 8.1
- Внимание! Перед установкой обновления желательно выполнить полное резервное копирование сайта. После установки обновления обязательно проверьте ранее созданные правила модуля для типов цен в корзине на корректность их работы т.к. в модуле доработана или изменена логика работы некоторых условий в правилах для типов цен в корзине.
1. Добавлены новые условия в правилах:
Корзина
1) Общий вес в корзине (грамм)
2) Общий объем в корзине (метр кубический)
3) Количество позиций в корзине
4) Общее количество в корзине
Товар или торговое предложение в корзине (позиция)
1) Сумма позиции в корзине без скидок (основной тип цены)
2) Общий вес позиции в корзине (грамм)
3) Общий объем позиции в корзине (метр кубический)
4) Общее количество позиции в корзине
Товар или торговое предложение в инфоблоке (элемент)
1) Поле элемента
2) Параметр торгового каталога элемента
3) Цена элемента
4) Валюта цены элемента
5) Наценка цены элемента
6) Количество элемента на складе
Товар торгового предложения в инфоблоке
1) Инфоблок товара торгового предложения
2) Поле товара торгового предложения
3) Раздел товара торгового предложения
4) Свойство товара торгового предложения
2. В правилах изменена логика работы условий:
1) "Раздел ..." - "не равно (с подразделами)"
2) "Раздел ..." - "не равно (без подразделов)"
3. Доработан вывод ошибок для условий в правилах.
4. Добавлены подсказки для условий в правилах.
5. Изменена структура некоторых классов и методов модуля. Добавлены новые классы и методы.
