У меня возникла проблема с ценовыми правилами корзины, которые неправильно применяются в корзине. Проблема возникает, когда есть несколько скидок. Вот конкретный пример:
Скидка A:
- Продукт: 3 комплекта книг
- Цена: $ 20 за каждую книгу
- Скидка: $ 10 (при покупке всего 3)
Скидка B:
- Товар: Костюм (куртка и штаны)
- Цена: $ 500 за штуку
- Скидка: $ 50 (при покупке обоих)
Вот ситуация:
Когда костюм указан первым, а книги - вторым, принимаются все скидки (50 долларов + 10 долларов = 60 долларов). Однако, когда книги появляются первыми, берется только скидка на костюм ($ 50).
Используя firebug / firephp, я смог увидеть, что в первом случае скидка меньше, чем цена первого продукта, и все скидки можно снять с этого продукта.
Во втором случае скидка больше цены первого товара. Когда это происходит, скидка в 50 долларов распространяется на 3 книги. С первой книги уходит 20 долларов, у второй - 20 долларов, у третьей - 10 долларов; но тогда скидка в 10 долларов на книги не обрабатывается.
Мне нужно знать, где искать дальше. Какие модели / методы используются при обработке ценовых правил для корзины покупок? Как мне отследить код, чтобы узнать, где произошла ошибка?