Здравствуйте.
При настройке нового магазина столкнулся со следующей задачей:
Необходимо чтобы скидки которые уже учитваются в заказе распространялись не на все товары а только на выбранные.
Например, есть тип скидки "Скидка от суммы", при этом, при достижении некоторого значения суммы, скидка должна высчитываться только от товаров, которые собственно в скидках участвуют.
То есть, если заказывается например 10 единиц одного товара и 10 единиц другого товара, и сумма по ним вместе доходит до заложенного значения, то скидка высчитывается только из суммы первого товара.
На данный момент, для товаров введен дополнительный идентификатор indiscount (принимает значния 1/0), который указывает на то, учитывать ли товар с скидке или нет, но на пересчет он пока не влияет.
Как один из вариантов, предполагаю создание процесса подсчета итоговой суммы в 3 этапа:
1) Подсчет всей суммы по товарам
2) Если сумма больше заданного значения, то производится повторный пересчет суммы товаров которые имеют идентификатор indiscount = 1, наложение на эту сумму скидки.
3) К сумме после второго этапа добавить сумму товаров с идентификатором indiscount = 0, и это значение выводить как итоговое.
Кто как считает, удачный ли алгоритм или же можно сделать по другому (возможно кто-то сталкивался). Буду рад Вашим советам.