Лучше разобраться с cron или силами одного PHP?
Ваш план, простите, говно. Либо крон, либо храните в базе дату и время действия скидки и проверяйте ее оттуда
А что если у вас товар "А", есть в категории для скидок и в обычной категории, а вы цену обновили в БД?
Оба варианта мне не нравятся. Но из двух предложенных вариантов, менее плохой с кроном. Разобраться с кроном и настроить его займет часа пол.