Фильтр доставки и оплаты

Фильтр доставки и оплаты для Shop-Script

Скрытие доставки или оплаты по множеству критериев

34 оценки

Ваш отзыв
Установок
500+
Разработчик
Поддержка

Принцип работы

Чтобы достигнуть цели (скрытие способов доставки или оплаты), должны быть выполнены все условия или их часть.

Входными и выходными данными являются товары из корзины. Даже если проверяется день недели, то в случае его совпадения, результатом будет массив товаров.

Если после проверки всех условий остались товары, значит условия сработали и можно скрывать нужные Вам способы оплаты или доставки.

Приоритет проверки условий

Условия проверяются согласно их приоритету, а не по порядку следования.

Приоритет проверки условий (по категориям):

  1. Пользователь, Выполненные заказы, Дата и время, Переменные, Витрина
  2. Товар
  3. Корзина

Система условий

Если создано более одного условия, то перед Вами образуется система условий.

Система условий может быть:

  • Строгой: все условия должны быть выполнены.
    От начала и до конца фильтруется один набор товаров. Если после всех условий товаров не остается, значит условия не могут быть выполнены, и фильтр не сработает.
  • Не строгой: хотя бы одно условие должно быть выполнено.
    Каждое условие работает с полным (новым) набором товаров. Условия не влияют друг на друга.

Группа условий

Группа условий дает возможность объединять несколько систем условий. В каждой группе сохраняются правила приоритета. Набор данных на входе, обрабатываемый в группах, каждый раз полный (новый).

Если в фильтре присутствует группа условий и обычные условия, то сначала будет обработана группа.

Примеры

Предположим, что заказ оформляет зарегистрированный пользователь. Состав его корзины:

  • Товар А: 5000р/шт - 5 шт. Итого - 25 000р. Вес 3 кг.
  • Товар Б: 4000р/шт - 5 шт. Итого - 20 000р. Вес 9 кг.
  • Товар В: 7000р/шт - 3 шт. Итого - 21 000р. Вес 50 кг.
  • Товар Г: 10 000р/шт - 4 шт. Итого - 40 000р. Вес 52 кг.

Пример 1

Проследим процесс обработки условий:

  1. Обрабатывается группа со строгими условиями.

    На входе 4 товара. Сначала будет обработано условие из второй группы приоритета, затем из третьей.

    "Характеристика товара Вес >= 50" - означает, что мы отбираем только те товары, у которых вес больше 50 кг. В нашем случае это товары В и Г. Условие выполнено.

    "Сумма значений характеристики Вес > 100" - означает, что общий вес отобранных товаров должен быть более 100кг. Товар В + Товар Г = 50 кг * 3 шт + 52 кг * 4 шт = 358 кг. Условие выполнено.

    "Общее кол-во всех товаров > 5" - мы считаем количество товаров В и Г. Значение равно 7. Условие выполнено. Группа условий выполнена.
  2. Обрабатываем другие условия. На входе 4 товара + 2 товара, которые вернула группа. Поскольку эти товары уже имеются в наборе, то на входе так и остается 4 товара.
    ПРИМЕЧАНИЕ: Если бы группа условий не была бы выполнена, то весь фильтр бы не сработал.
  3. Сначала будет обработано условие из первой группы приоритета, затем из третьей.

    "Категорий пользователя равно Магазин" - Условие выполнено, поскольку мы уточнили, что заказ оформляет зарегистрированный пользователь.

    "Общая стоимость всех товаров > 100 000" - Сумма всех товаров равна 106 000р. Условие выполнено.
  4. Все условия выполнены. Значит Фиксированная стоимость доставки и оплата через PayPal будут скрыты для данного пользователя на этапе оформления заказа.

ВАЖНО! С товарами ничего не случится вне зависимости от того сработает фильтр или нет.

Пример 2

Посмотрим, как сработает фильтр, если не использовать группу условий.

  1. На входе 4 товара.

    Порядок обработки условий:

    "Категорий пользователя равно Магазин" - Условие выполнено, поскольку мы уточнили, что заказ оформляет зарегистрированный пользователь.

    "Характеристика товара Вес >= 50" - означает, что мы отбираем только те товары, у которых вес больше 50 кг. В нашем случае это товары В и Г. Условие выполнено.

    "Сумма значений характеристики Вес > 100" - означает, что общий вес отобранных товаров должен быть более 100кг. Товар В + Товар Г = 50 кг * 3 шт + 52 кг * 4 шт = 358 кг. Условие выполнено.

    "Общее кол-во всех товаров > 5" - мы считаем количество товаров В и Г. Значение равно 7. Условие выполнено.

    "Общая стоимость всех товаров > 100 000" - Сумма товаров В и Г равна 61 000р. Условие НЕ выполнено.
  2. Одно из условий не выполнено. Фильтр не сработает и способы доставки и оплаты не будут скрыты.

ВАЖНО! С товарами ничего не случится. Состав корзины по-прежнему такой же.