Сейчас неправильная модель идет для объекта PromoCode, так как его содержит объект Order и в нем не всегда есть актуальная информация по скидке. Эти данные рассчитываются для каждого CatalogItem в отдельности.