Система, которая превращает стопку букинистических книг и несколько фотографий в живые карточки на Ozon, Wildberries и Яндекс Маркете — с распознаванием, оценкой цены по рынку, публикацией и сквозным учётом остатков.
Ключевое ограничение архитектуры: товар физически один. Продажа на одной площадке обязана мгновенно погасить остаток на двух других — иначе магазин продаёт книгу, которой уже нет.
BACKEND
PHP 8.3
строгая доменная модель на 32 сущностях
Laravel 13
Eloquent, очереди, планировщик, Sanctum
MySQL
72 миграции, индексы под каталожные выборки
Очереди
уникальные задачи по кабинетам, повторы, heartbeat
PhpSpreadsheet
импорт остатков из таблиц поставщика
Docker
nginx, php-fpm, MySQL, воркеры под supervisor
Node · Playwright
два поисковых микросервиса в своих контейнерах
Certbot
TLS с автопродлением
Прокси
Shadowsocks-контейнер для доступа к поиску площадки
ИНТЕГРАЦИИ
Ozon Seller API
каталог, карточки, склады, заказы
Wildberries API
карточки, цены, остатки, отчёты, заказы
Яндекс Маркет API
карточки, остатки, заказы
OpenAI
распознавание, описания, арбитраж цены
Google Sheets
выгрузка опубликованных книг
Telegram ↔ VK
мост сообщений с пересылкой фото