(0) вполне, сделайте такую скидку на три штуки, чтобы получилось три по цене двух.
Например, второй товар со скидкой 50%. Или по другому два товара с общей скидкой 25%
(4) это не нужная высшая математика.
скидку надо делать: "подарок, из корзины покупателя"
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший