Как происходит распределение скидок по позициям заказа
В данной статье рассмотрим принципы распределения скидок по позициям и продуктам заказа. Это поможет понять, почему иногда необходимо разделение линий и какую сумму нужно вернуть клиенту при частичном возврате.
Спред (Spread) — пропорциональное распределение скидок
Скидки и баллы распределяются пропорционально стоимостям купленных товаров.
Пример.
В магазине действует акция, при которой можно оплатить 50% стоимости заказа баллами.
Клиент покупает 2 пары кроссовок по 4 000 рублей и 1 джемпер за 2 000 рублей. Стоимость заказа — 10 000 рублей, но клиент хочет списать всего 1 000 баллов со всего заказа.При покупке автоматически определяется, какой товар какой вес имеет от всего заказа:
- 4 000/10 000=0,4 — вес одной пары кроссовок в заказе;
- 2 000/10 000=0,2 — вес джемпера в заказе.
Баллы распределяются пропорционально весу:
каждая пара кроссовок получает 1 000*0,4=400 баллов;
джемпер — 1 000*0,2=200 баллов.
У промоакций могут быть собственные настройки распределения скидок.
От этого зависит, будут ли включаться в скидку все продукты, запускающие акцию, или только скидочные продукты. При установке цены скидочного продукта в 1 рубль, его также можно разбить на все продукты акции.
Пример.
Запущена акция: третий товар — в подарок.
Клиент покупает носки за 100 рублей, футболку за 200 рублей и очки за 700 рублей.
Носки идут в подарок, а то, будет ли распределение скидки или она вся достанется скидочному продукту, зависит от настроек акции в способе применения:
только к скидочному продукту — вся сумма атрибуцируется носкам, заказ стоит 900 рублей;
всем участникам, пропорционально стоимости — определяется вес продукта в стоимости заказа и выдается соответствующая скидка.
Например, для футболки: (200 / 1 000) * 100 = 20 рублей скидка. У остальных товаров — 90 и 180 рублей, в сумме — 900 рублей.минимальная цена в 1 рубль — носки идут за 1 рубль, 99 рублей скидки атрибуцируются только им, заказ стоит 901 рубль.
- распределить рубль по продуктам-участникам — скидочный продукт получает скидку 99 (100-1), остальные два распределяют скидку в 1 рубль. Для футболки скидка: (200/900) * 1 = 0,22 рублей, для очков — 0,78 рублей, заказ стоит 900 рублей.
Сплит (Split) — разделение одной товарной линии на несколько
Иногда промоакции могут срабатывать только на части продуктов из линии заказа или давать на них разные скидки. В таком случае фактическая цена и примененные скидки двух одинаковых продуктов будут различаться.
Чтобы правильно распределить скидку между товарами в строке и избежать проблем при возврате, нужно передавать их отдельными линиями. Иначе попытка создать заказ вернется с ошибкой Splitting of lines means that current order must be recalculated
Сплит линий происходит в двух случаях:
1. К продуктам в линии применяются разные скидки.
В таком случае линия разбивается на две, и продукты участвуют или не участвуют в акции как отдельные позиции.
Пример.
В магазине действует акция «10% скидка на набор из 1 пары кед и 2 футболок».Клиент покупает 3 одинаковые футболки по 2 000 рублей и 1 пару кед за 4 500 рублей.
Две из трех футболок будут участвовать в акции и иметь меньшую цену, а третий пойдет по обычной цене, поэтому их нельзя передавать в одной линии.
Ответ в операции расчета заказа уже будет с разделенной позицией. Так его и нужно будет создать.Всего получается 3 линии:
- 2 скидочные футболки по 1 800 рублей;
- 1 футболка по полной стоимости в 2 000 рублей;
- 1 пара скидочных кед за 4 050 рублей.
Дальше распределение в наборе происходит по общему принципу пропорциональности.
2. К продуктам в линии применяется одинаковая акция, но скидка не кратна количеству скидочных продуктов.
В таком случае линия разбивается на две, и один из товаров получает незначительно бóльшую скидку по бенефиту.
Пример.
Настроена акция: за покупку любых трех футболок — скидка 1 000 рублей.
Клиент приобретает 3 одинаковые футболки по 1 500 рублей. Заказ получает скидку и, вместо 4 500, стоит 3 500 рублей.
Скидка (1 000 рублей) не может равномерно разделиться на 3 скидочных продукта.Поэтому линия разбивается на две:
- 2 футболки со скидкой по 333,34 рубля на каждую;
- 1 футболка со скидкой 333,33 рубля.
Сплит линии для списания неделимой скидки не работает в акциях с балльными скидками.
Подробнее — в следующем пункте.
Принцип кратности в балльных скидках
В акциях данного типа может возникнуть ситуация, когда клиент не может списать все доступные на заказ баллы.
Дело в том, что в случае неделимой скидки на линию, не происходит сплит. Вместо этого разрешается списать лишь максимальное значение, кратное продуктам в линии.
Пример.
Настроена акция, при которой 100% стоимости заказа можно оплатить баллами:Клиент приобретает 3 одинаковые пары носков по 200 рублей и хочет потратить 100 баллов на весь заказ.
Скидка распределяется равномерно по всем продуктам в заказе, и, так как у них одинаковая начальная цена, каждый продукт должен получить треть от всех баллов.
100 не делится ровно на 3, поэтому берется максимальное число из 100, которое делится на 3 без остатка.
В итоге, линия получает 99 баллов — по 33 на каждый продукт, списать 100 баллов нельзя.При использовании дробного балльного счета, списать можно было бы 99,99 баллов — по 33,33 на каждую пару.
Во всех остальных случаях сплит линий работает так же, как в остальных акциях:
- при участии продуктов линии в разных бенефитах линия делится на несколько;
- в заказах с несколькими линиями (даже с одинаковыми продуктами), при невозможности ровно разделить полагающуюся скидку, один из продуктов получает незначительно бóльшую скидку.
Сколько баллов вернется при возврате товара
При возврате скидочного продукта учитываются выданные на него скидки.
Если в заказе было несколько одинаковых продуктов и распределение скидки было разным, сумма возврата зависит от номера линии, который будет передан при смене статуса.