Если мы используем промоакцию на товар и в заказе у нас товар один, то применяется скидка на товар и итоговая сумма совпадает с итоговой суммой заказа -
Бисер белый, 10 шт., 100 рублей за штуку, скидка на товар 50%
Итого: 10х50=500
Но если мы применяем промоакцию на корзину, то у нас это выглядит так:
Бисер белый, 10 шт., 100 рублей за штуку
Нитки красные, 10 шт, 50 рублей за штуку
Сумма заказа: 1500
Скидка за заказ - 50%
Итого: 750
В заказе это хранится так:
10х100=1000
10х50=500
=750
Передавая информацию в кассовый шлюз или платежный модуль мы получаем ДОБРО в ответ - ОШИБКА: Сумма товаров неровна сумме заказа
Если распределять самостоятельно то как?
Сумму раскидать по товарам - невозможно, вендор не делал скидку, это прихоть маркетплейса а не вендора.
Убрать сумму из одного товара, тогда из какого и как автоматически определить у какого убрать все и в случае возврата вернуть минимальную сумму покупателя, а с какого не вычитать.
Это вы еще не сталкивались с тем, что скидку нельзя ровно распределить на товары и приходиться один товар вычленять от группы и делать на него скидку другую, ну грубо говоря 3 шт товара со скидкой 100р, и того 2х-33 и 1х-34
Вообще мое мнение это косяк платежек, это весьма стандартная ситуация и они бы могли делать на своей стороне расчет распределение скидки с учетом скидки на заказ.
так делать нельзя, тогда покупатель с радостью вернет дорогой товар, а тот что почти даром оставит себе.
p.s. не забудьте еще вспомнить про списание бонусных баллов
ООУУУ по бонусам, это да! Нам проще запретить использовать подобный функционал, чем пытаться как то с ним взаимодействовать. По каждому неработающему формату промоакции или бонусных рублей приходится выслушивать какие мы криворукие, попытки оправдать себя тем что не мы все таки разрабатывали модуль промоакций и это поведение к нему приводит на утверждение но в ядре эе все это работает и значит у вас тоже должно работать и тд.
Итог сие действий если ты хочешь сделать скидку покупателю, ну сделай цену ниже и все, а требовать от функционала разработанного более 10 лет назад чего-то сверхъестественного не стоит.
Вот и стоит вопрос, что коллеги приведут его в современный вид, исправят боли с тормозами когда их много, добавят контроля за вендорами, удобное создание с понятной логикой, а не как сейчас, что даже у меня как у эксперта уходят часы на то чтобы запустить то что необходимо.
Тут нужно модуль за модулем разбирать, потому что они одно и то же делают по-разному. Модуль Робокассы распределит скидки между товарами одним образом, модуль СДЭКа другим, модуль CommerceML третьим. И в итоге мы имеем, что в кассовом чеке, в накладной СДЭКа и в 1С/МоемСкладе разные цены в одном и том же заказе. Приходится модули подпиливать напильником. По-хорошему, навести бы порядок в этом вопросе.