Техническое задание: Интеграция учётной системы с интернет-магазином
Краткое описание проекта
Необходимо создать надёжный механизм автоматической синхронизации данных о товарах между удалённой системой учёта (API) и сайтом на базе WordPress с WooCommerce. Основная цель - обеспечить автоматическое обновление ассортимента, актуальных цен и остатков на сайте, минимизируя ручной труд и исключая ошибки.
Существующая структура
- Интернет-магазин: Платформа WordPress с плагином WooCommerce.
- Система учёта: Удалённое API сторонней административной программы для управления товарами, остатками и ценами.
Основные цели и требования
Автоматическая синхронизация
- Создание и обновление карточек товаров на сайте на основе данных из API.
- Автоматическое обновление количества остатков и цен для существующих товаров.
- Частота обновления: каждые 10-15 минут (настраиваемый интервал).
Логика работы со статусами товаров
- Новые товары: При первом импорте товар должен создаваться со статусом "черновик" (draft) или "скрытый" (private), чтобы он не отображался на сайте до ручной обработки контент-менеджером (добавление фото, описания).
- Опубликованные товары: Если карточка товара уже была вручную опубликована на сайте, синхронизация не должна изменять её статус обратно на черновик. Меняются только данные по остаткам и цене.
Технические требования
- Платформа для запуска: Скрипт должен быть развёрнут на стандартном хостинге с поддержкой cron. Возможен вариант реализации на VPS, если хостинг имеет ограничения.
- Предлагаемые варианты реализации: PHP-скрипт, запускаемый по cron, либо сервис на VPS с управлением через systemd.
- Идемпотентность и защита от дублей: Повторный запуск скрипта должен быть безопасным. Товары должны однозначно идентифицироваться по SKU (артикулу). При каждом запуске проверяется существование товара по SKU для обновления, а не создания дубликата.
Обязательные компоненты
- Система логирования: Ведение детального лог-файла с указанием даты и времени каждого запуска, количеством обработанных товаров (создано/обновлено), а также записью возникающих ошибок.
- Документация: Предоставить краткую инструкцию по проверке работы синхронизации, просмотру логов и принудительному перезапуску.
Опциональные улучшения
- Система оповещений: Настройка отправки уведомлений в Telegram в случае критических сбоев (например, если синхронизация не отработала несколько раз подряд).
Ожидаемый результат
- Автоматическая синхронизация данных работает стабильно по заданному расписанию.
- Карточки товаров на сайте создаются и обновляются, цены и остатки всегда актуальны.
- Новые товары попадают в админ-панель для последующей ручной обработки и публикации.
- Статус уже опубликованных товаров не сбрасывается.
- Отсутствуют дубликаты товаров.
- Ведётся понятный лог работы для администрирования.