Add validation to on_sale variant method