Модуль «Типы цен в корзине» для 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; добавить код:
{
$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']);
}
}
<div>Минимальная сумма заказа {{{SUM_MIN_PRICE_FORMATED}}}</div>
{{/SUM_MIN_PRICE}}
Для вывода суммы в корзине без скидок по основному типу цен добавить код:
{{#SUM_PRICE_MAX}}
<div>{{{SUM_PRICE_MAX_FORMATED}}}</div>
{{/SUM_PRICE_MAX}}