Доработка функционала добавления подарков к заказу на сайте (Yii2)
Описание задачи
К каждому заказу необходимо добавить возможность добавлять подарок.

1. Подарки могут назначаться группе пользователей.
2. Подарком является один товар, который присваивается из админки.
3. Подарок носит единоразовый характер и сгорает при получении.
4. Условием для присвоения подарка является сумма заказа.
5. Порог сумму заказа для получения подарка задается из админки.
Для чего?
Задача была поставлена отделом маркетинга клиента в рамках работы с программой лояльности.

Программа лояльности — система поощрения постоянных покупателей: за приверженность бренду клиенты получают подарки или бонусы. Она повышает привлекательность интернет-магазина в сравнении с соседними, которые не предлагают постоянному клиенту скидки.
План времени на задачу
Суммарно
20 часов
1 час
Дизайн
3 часа
Frontend
16 часов
Backend
Реализация
Идея заключалась в том, чтобы создать модуль orderPresent, создать контроллеры для подарков и пользователей, которым подарок уже присваивался и связать это с фронтом. Сложности и проблемы: запутанный код, и, как следствие, неочевидность интеграции модуля в проект.
Технологии
MVC, сервисные слои, трансформеры.
Срок реализации
3 дня