Вообще, на сколько я могу понять. Плохой тон программирования, заливать логику так, чтобы ты держал в голове, условия применения фичи, чем их больше тем хуже, например проверка на null, или тип товара при обращении к модели. По идее это в модель запихнуть надо