Доработка функционала корзины: добавление загрузки файлов
Необходимо расширить стандартный процесс оформления заказа, интегрировав возможность для клиента прикреплять файлы к своему заказу.
Основные требования
1. Фронтенд (страница оформления заказа)
- Добавить поле для загрузки файла (input type="file") с подписью, поясняющей назначение.
- Разрешить загрузку файлов следующих форматов: JPG, PNG, PDF.
- Реализовать валидацию на стороне клиента (проверка типа файла и, опционально, размера).
- При попытке отправить заказ без файла должно появляться понятное уведомление об ошибке, блокирующее отправку формы.
2. Бэкенд и обработка
- Реализовать безопасное сохранение загруженных файлов на сервере (в отдельной директории или облачном хранилище).
- Связать загруженный файл с конкретным заказом в базе данных (сохранить путь к файлу или ссылку).
- Обеспечить защиту от загрузки вредоносных файлов.
3. Уведомление для менеджера/администратора
- В письме, которое автоматически отправляется после оформления заказа, должен быть прикреплен файл от клиента (как вложение).
- Альтернативно или дополнительно: в теле письма должна быть активная ссылка для скачивания файла.
- В письме должна быть четкая пометка о наличии прикрепленного файла от клиента.
4. Админ-панель
- В карточке просмотра заказа в админ-панели необходимо добавить раздел с прикрепленным файлом.
- Должна быть реализована возможность просмотра (для изображений) и скачивания файла.
- Интерфейс должен наглядно отображать факт наличия или отсутствия файла у заказа.
Критерии приемки
- Клиент может прикрепить файл к заказу.
- Без файла заказ не оформляется.
- Менеджер получает файл в письме-уведомлении.
- Файл доступен для скачивания в админ-панели.
- Весь процесс безопасен и устойчив к ошибкам.