Промокод 10 -- Скидка будет применена для товаров "Категории 1" с не заполненной ценой old_price

Промокод 20 -- Скидка будет применена для товаров "Категории 2" цена которых больше или равно 300

Для "Категории 3" уже применена скидка в 5%, после ввода промокода 30 она заменится на скидку в 30% во всех категориях
Товар 1 (1 категория)
100 руб.

Товар 2 (1 категория)
100 руб.

Товар 3 (1 категория + заполнен old_price)
100 руб. 500 руб.

Товар 1 (2 категория)
100 руб.

Товар 2 (2 категория)
300 руб.

Товар 3 (2 категория)
299 руб.

Товар 1 (3 категория)
95 руб. 100 руб.

Товар 2 (3 категория)
190 руб. 200 руб.

Товар 3 (3 категория)
285 руб. 300 руб.