Синхронизация остатков LiteBox → OpenCart: автоматическое обновление по cron (PHP, MySQL)

Ссылка на работу
Автоматическая синхронизация остатков товаров из кассовой системы LiteBox (МТС-Касса) в интернет-магазин на OpenCart. Скрипт запускается по cron, получает актуальные остатки через LiteBox API, сопоставляет товары по артикулу и обновляет базу данных сайта. Внедрено в эксплуатации: работает на production-магазине (2450 товаров), запуск каждые 30 минут, время выполнения 8.5 секунд. Техническое решение: • Маппинг товаров по артикулу • Нормализация артикулов • Batch UPDATE одним SQL-запросом • Retry-логика при сбоях API • Lock-файл для защиты от параллельного запуска Архитектура: • Standalone PHP-скрипт (без фреймворков) • LiteBox REST API: справочник товаров + остатки • Прямое обновление MySQL через PDO • Dry-run режим для безопасного тестирования Результат: • Актуальность остатков: ±30 минут (вместо ручного обновления) • Время синхронизации: 8.5 секунд на 2450 товаров • Точность маппинга: 100% (автоматически) • Идемпотентность (только реальные изменения) Технологии: PHP 7.4, MySQL 5.7, LiteBox REST API, OpenCart 3.x, cron, PDO