что то изучаю тему и не нашел решения, как сделать так, чтобы купон который получает пользователь не действовал на товар с уже заложенной скидкой или акцией?
Простое решение - товары по акции перемещать в отдельную группу. Соответственно купон не применять на эту группу.
Можно подумать над вариантами. У вас как реализованы различные акции? Можно товару включать и выключать некий признак. когда исползьуется скидка проверять этот признак.