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

Урок 90 из 386
Автор: Марина Павлова
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
3 из 5
Просмотров: 11645
Дата изменения: 19.09.2024
Недоступно в лицензиях:
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).
Старт, Стандарт

Используйте совместно приоритеты и индексы сортировки Сначала применяются скидки с наибольшим приоритетом, а если приоритет совпадает, то в порядке увеличения сортировки.

Подробнее...
для создания сложной схемы применения скидок в магазине. Как это настроить - покажем на примере.

  Задача

Пусть в Интернет-магазине создан ряд правил корзины:

  • Скидки на товары:
    • Скидка на платья 20% если взять туфли ;
    • Скидка на платья 15% .
  • Скидки по купонам (на все товары):
    • Скидка 15% по индивидуальному промокоду
      ;
    • Скидка 3% по промокоду LIKE
      .
  • Бесплатная доставка при сумме заказа больше 5000 рублей .

Задача: перечисленные выше скидки должны применяться следующим образом:

  • Одновременно клиент может получить при заказе только одну скидку из Скидок на товары и использовать один промокод;
  • Скидки должны суммироваться между собой;
  • Сумма, необходимая для бесплатной доставки - это сумма после применения всех скидок.

  Настройка модуля

Для выполнения условия задачи о суммировании скидок перейдем в настройки модуля Интернет-магазин (Настройки > Настройки продукта > Настройки модулей > Интернет-магазин).

Нас интересует опция Процентная скидка/наценка рассчитывается для полной цены товара. По умолчанию, она отключена и скидки применяются последовательно Например, если для одного товара заданы две скидки (10% и 20%) с помощью двух разных правил корзины, то итоговая скидка будет составлять не 30%, а 28%.

Подробнее...
. Нам же нужно, чтобы скидки суммировались Если для одного товара заданы две скидки (10% и 20%) с помощью двух разных правил корзины, то итоговая скидка будет составлять 30%. , поэтому опцию включаем:

alg_skid.png

Таким образом, если клиент получит скидку на платье 20% и применит промокод на скидку в 15%, то суммарно скидка на платье составит 35%.

  Настройка правил

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

Напомним:
  • Чем больше приоритет, тем раньше применится скидка.
  • Чем меньше индекс сортировки, тем раньше применится скидка на текущем уровне приоритета.

Итого настройки всех правил выглядят так:

Нажмите на рисунок, чтобы увеличить

Поясним, как отработают такие настройки:

  1. Первая группа скидок имеет приоритет 30. Эти 2 правила имеют самый высокий приоритет, поэтому применяются первыми. Т.к. для каждого правила отмечена опция о прекращении применения скидок на текущем уровне приоритета - сработает только одна скидка из группы. У правила 20% на платья если взять туфли индекс сортировки ниже чем у правила 15%, следовательно она применится первой из этих двух (если будет соблюдено условие применения скидки).
  2. Вторая группа - две скидки по купону, имеют приоритет 20. Логика работы аналогична первой группе. У индивидуального промокода индекс сортировки меньше.
  3. Третья группа - бесплатная доставка. Имеет наименьший приоритет 10, поэтому применится после всех правил корзины. Проверка условия минимальной суммы в 5000 рублей сработает на основании суммы заказа, рассчитанной после всех ранее примененных скидок.

  Результаты

В публичном разделе для клиента работа всех правил выглядит так (кликните на GIF, чтобы открыть её в большем размере):

Нажмите на рисунок, чтобы увеличить

Как видно выше, скидки отрабатывают так, как указано в задаче. Опишем некоторые моменты:

  • Клиент добавляет в корзину платье. Применится скидка 15%. После чего решит добавить ещё туфли. После добавления туфлей, отменится правило 15% и применится правило 20%. Если туфли удалить - вернется правило 15%;
  • Если клиент ввел оба промокода, то применится только тот, у которого меньше значение сортировки, т.е. индивидуальный промокод. Промокод со скидкой 3% станет не активным.


Нам жаль это слышать… Но мы постараемся быть лучше!

Мы благодарны Вам за помощь в улучшении документации.

Спасибо, мы рады что смогли помочь Вам. Ниже Вы можете оставить свой отзыв или пожелание :)
Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас
Курсы разработаны в компании «1С-Битрикс»