Для начисления скидок или бонусов должны быть выполнены созданные Вами условия или их часть в зависимости от настроек.
Входными и выходными данными являются товары из корзины. Даже если проверяется день недели, то в случае его совпадения, результатом будет массив товаров.
Если после проверки всех условий остались товары, значит условия сработали и можно назначать скидку или бонус.
Приоритет проверки условий
Условия проверяются согласно их приоритету, а не по порядку следования.
Приоритет проверки условий (по категориям):
- Пользователь, Выполненные заказы, Дата и время, Переменные, Витрина
- Товар
- Свойства товара
- Корзина
Система условий
Если создано более одного условия, то перед Вами образуется система условий.
Система условий может быть:
- Строгой: все условия должны быть выполнены.
От начала и до конца фильтруется один набор товаров. Если после всех условий товаров не остается, значит условия не могут быть выполнены, и фильтр не сработает. - Не строгой: хотя бы одно условие должно быть выполнено.
Каждое условие работает с полным (новым) набором товаров. Условия не влияют друг на друга.
Группа условий
Группа условий дает возможность объеднять несколько систем условий. В каждой группе сохраняются правила приоритета. Набор данных на входе, обрабатываемый в группах, каждый раз полный (новый).
Если в фильтре присутствует группа условий и обычные условия, то сначала будет обработана группа.
Разновидности условий
Условия могут быть:
- Обычные
- Фильтрующие.
Фильтрующие условия ограничивают входной набор товаров.
Рассмотрим пример, указанный на изображении выше.
Когда все условия сработают успешно, то на выходе у нас будут товары из категории Планшеты с ценой более 1000 рублей и общим количеством более 5шт. На эту группу товаров и будет установлена скидка.
Если напротив условия нет иконки фильтра, значит состав товаров, который получит скидку, остается таким же, как в корзине. Необходимо лишь, чтобы эти товары успешно проходили Ваши условия.
Примеры
Предположим, что заказ оформляет зарегистрированный пользователь. Состав его корзины:
- Товар А: 5000р/шт - 5 шт. Итого - 25 000р. Вес 3 кг.
- Товар Б: 4000р/шт - 5 шт. Итого - 20 000р. Вес 9 кг.
- Товар В: 7000р/шт - 3 шт. Итого - 21 000р. Вес 50 кг.
- Товар Г: 10 000р/шт - 4 шт. Итого - 40 000р. Вес 52 кг.
Пример 1
Проследим процесс обработки условий:
- Обрабатывается группа со строгими условиями.
На входе 4 товара. Сначала будет обработано условие из второй группы приоритета, затем из четвертой.
"Характеристика товара Вес >= 50" - означает, что мы отбираем только те товары, у которых вес больше 50 кг. В нашем случае это товары В и Г. Условие выполнено.
"Сумма значений характеристики Вес > 100" - означает, что общий вес отобранных товаров должен быть более 100кг. Товар В + Товар Г = 50 кг * 3 шт + 52 кг * 4 шт = 358 кг. Условие выполнено.
"Общее кол-во всех товаров > 5" - мы считаем количество товаров В и Г. Значение равно 7. Условие выполнено. Группа условий выполнена. - Обрабатываем другие условия. На входе 4 товара + 2 товара, которые вернула группа. Поскольку эти товары уже имеются в наборе, то на входе так и остается 4 товара.
ПРИМЕЧАНИЕ: Если бы группа условий не была бы выполнена, то весь фильтр бы не сработал. - Сначала будет обработано условие из первой группы приоритета, затем из третьей.
"Категорий пользователя равно Магазин" - Условие выполнено, поскольку мы уточнили, что заказ оформляет зарегистрированный пользователь.
"Общая стоимость всех товаров > 100 000" - Сумма всех товаров равна 106 000р. Условие выполнено. - Все условия выполнены. Значит скидку получат все 4 товара.
ВАЖНО! С товарами ничего не случится вне зависимости от того сработает фильтр или нет.
Пример 2
Посмотрим, как сработает фильтр, если не использовать группу условий.
- На входе 4 товара.
Порядок обработки условий:
"Категорий пользователя равно Магазин" - Условие выполнено, поскольку мы уточнили, что заказ оформляет зарегистрированный пользователь.
"Характеристика товара Вес >= 50" - означает, что мы отбираем только те товары, у которых вес больше 50 кг. В нашем случае это товары В и Г. Условие выполнено.
"Сумма значений характеристики Вес > 100" - означает, что общий вес отобранных товаров должен быть более 100кг. Товар В + Товар Г = 50 кг * 3 шт + 52 кг * 4 шт = 358 кг. Условие выполнено.
"Общее кол-во всех товаров > 5" - мы считаем количество товаров В и Г. Значение равно 7. Условие выполнено.
"Общая стоимость всех товаров > 100 000" - Сумма товаров В и Г равна 61 000р. Условие НЕ выполнено. - Одно из условий не выполнено. Скидку не получит ни один товар.
ВАЖНО! С товарами ничего не случится. Состав корзины по-прежнему такой же.