Описание услуги
# Техническое задание (ТЗ)
## Разработка CMS для интернет-магазина на PHP и Python
### 1. Общие положения
**Название проекта:** Разработка гибридной CMS "ShopEngine"
**Цель проекта:** Создание функциональной системы управления контентом (CMS) для интернет-магазина с бэкендом на PHP и встроенными скриптами аналитики/обработки данных на Python.
**Стек технологий:**
* **Ядро (Бэкенд):** PHP 8.1+ (ООП, MySQLi/PDO).
* **База данных:** MySQL 8.0 / MariaDB.
* **Клиентская часть:** HTML5, CSS3, JavaScript (Vanilla JS или Vue/Alpine для админки).
* **Скрипты (Фоновые задачи):** Python 3.10+ (Flask для микросервисов или CLI-скрипты).
---
### 2. Функциональные требования
#### 2.1. Пользовательская часть (Frontend)
* **Каталог товаров:**
* Древовидная структура категорий (неограниченная вложенность).
* Фильтры по характеристикам (цена, бренд, атрибуты).
* Сортировка товаров (по цене, новизне, популярности).
* Поиск по товарам (с автодополнением).
* **Карточка товара:**
* Несколько фото (галерея).
* Характеристики (текстовые, числовые, выпадающие списки).
* Модификации товара (размер, цвет) с управлением остатками.
* Блок "Похожие товары" / "С этим также покупают".
* **Корзина и заказ:**
* Добавление/удаление товаров.
* Расчет стоимости доставки.
* Оформление заказа в несколько шагов.
* Отправка писем клиенту и менеджеру.
#### 2.2. Административная панель (PHP)
* **Авторизация и роли:** Администратор, Менеджер, Контент-менеджер.
* **Управление товарами (CRUD):**
* Добавление/редактирование товаров (WYSIWYG-редактор описания).
* Импорт/экспорт товаров через CSV/Excel.
* Управление остатками (складской учет).
* **Управление заказами:**
* Лента заказов со статусами (новый, оплачен, отправлен, выполнен).
* Печать чеков/накладных.
* **Управление контентом:** Редактирование статических страниц, слайдера, баннеров.
* **Управление пользователями:** Просмотр истории заказов клиентов.
#### 2.3. Интеграция с Python (Спецзадания)
* **Модуль аналитики (Python + Pandas):**
* Сбор данных о просмотрах товаров.
* Генерация отчета "Что продается лучше" (CSV/PDF) по запросу из админки.
* **Персонализация (Python рекомендации):**
* Микросервис на Flask, который получает ID товара и возвращает список рекомендаций на основе истории покупок (коллаборативная фильтрация).
* **Парсинг конкурентов (Python):**
* Консольная утилита для обновления цен у конкурентов и автоматической корректировки цен в БД магазина (с разрешения администратора).
---
### 3. Структура Базы Данных (MySQL)
* **`categories`**: id, parent_id, name, slug, image.
* **`products`**: id, category_id, name, slug, price, old_price, description, stock_quantity, views_counter (для Python-аналитики), created_at.
* **`product_images`**: id, product_id, image_path, sort_order.
* **`attributes`** и **`product_attributes`**: Для хранения характеристик товаров.
* **`users`**: id, email, password, role.
* **`orders`**: id, user_id, total_amount, status, delivery_address, created_at.
* **`order_items`**: id, order_id, product_id, quantity, price.
* **`recommendations_cache`** (для Python-скриптов): product_id, recommended_product_ids (JSON).
---
### 4. Требования к архитектуре
#### 4.1. PHP (Ядро CMS)
* **Архитектура:** MVC (Model-View-Controller) собственная реализация или легкий маршрутизатор.
* **Шаблонизатор:** Чистый PHP (или Twig).
* **Безопасность:**
* Защита от SQL-инъекций (подготовленные запросы PDO).
* Защита от XSS-атак (экранирование вывода).
* CSRF-токены для форм.
* **API:** REST API для взаимодействия с Python-модулями.
#### 4.2. Python (Вспомогательные сервисы)
* Python-модули не должны влиять на скорость загрузки сайта.
* Тяжелые вычисления (рекомендации, аналитика) должны выполняться асинхронно (по CRON или по запросу из админки в фоне).
* Взаимодействие PHP и Python:
1. **Через БД:** Python пишет результаты в отдельную таблицу (`recommendations_cache`), PHP их читает.
2. **Через HTTP:** PHP отправляет POST-запрос на локальный сервер Python (Flask) и получает JSON с данными.
---
### 5. Требования к интерфейсу (UI/UX)
* **Frontend:**
* Адаптивная верстка (мобильные устройства, планшеты, десктоп).
* Кроссбраузерность (Chrome, Firefox, Safari, Edge).
* **Админка:**
* Интуитивно понятный интерфейс на базе Bootstrap или собственной легкой CSS-библиотеки.
* Визуальный редактор (TinyMCE или CKEditor).
* Загрузка изображений через Drag-and-Drop.
---
### 6. Технические требования (Python часть)
1. **Автоматическая выгрузка товаров:** Разработать Python-скрипт, который по CRON раз в сутки выгружает остатки и цены для Яндекс.Маркет (XML).
2. **Тепловая карта товаров:** Python + Matplotlib для генерации изображений тепловых карт популярности категорий на основе логов просмотров из БД.
3. **Чистка данных:** Python-скрипт, удаляющий дубликаты изображений и неиспользуемые файлы из папок.
---
### 7. Этапы разработки (Roadmap)
1. **Этап 1 (PHP):** Проектирование БД, создание ядра, вывод списка товаров и карточки товара.
2. **Этап 2 (PHP):** Создание админ-панели (CRUD для товаров и категорий, управление заказами).
3. **Этап 3 (PHP):** Разработка корзины, оформление заказа, личный кабинет.
4. **Этап 4 (Python):** Разработка модуля аналитики (Pandas) и интеграция в админку.
5. **Этап 5 (Python):** Разработка рекомендательной системы (Flask microservice).
6. **Этап 6:** Тестирование, оптимизация и деплой.
---
### 8. Требования к документации
* Описание структуры базы данных.
* Инструкция по установке и настройке CMS.
* Описание API для взаимодействия PHP и Python.
* Инструкция администратора по работе с системой.
---
### 9. Критерии сдачи
* CMS успешно устанавливается на хостинг с поддержкой PHP и возможностью запуска Python-скриптов (или отдельного сервера для Python).
* Отсутствие критических ошибок и уязвимостей.
* Исходный код загружен в репозиторий (Git) с понятными комментариями.
* Python-скрипты корректно общаются с MySQL и не падают при отсутствии данных.
Что входит в услугу
-
Быстрый старт
Начинаем работу в течение 24 часов после подтверждения заказа
-
Персональный менеджер
Вы получаете персонального специалиста на весь срок сотрудничества
-
Отчётность и аналитика
Регулярные отчёты о проделанной работе и достигнутых результатах
-
Гарантия качества
30 дней бесплатных правок после выполнения работы
Этапы работы
Консультация и анализ
Обсуждение целей, анализ текущей ситуации и постановка задач
Разработка стратегии
Создание детального плана работы с учётом ваших потребностей
Реализация
Выполнение всех запланированных работ согласно утверждённому плану
Контроль и отчёт
Мониторинг результатов и предоставление финального отчёта
Похожие услуги
Другие решения из «CMS»