Селлер автозапчастей: каталог, склад, ERP и чаты в одном контуре
Заказчика не раскрываем по условиям договора: селлер автозапчастей на крупном маркетплейсе с каталогом в десятки тысяч позиций, новых и б/у. Каталог обновляется ежедневно, остатки лежат по нескольким складам в ERP, покупатели постоянно спрашивают о наличии и совместимости, а устаревшая позиция оборачивается отменой заказа. Здесь автоматизированы складская логистика и отгрузки, синхронизация маркетплейса с ERP, товарные фиды, клиентские чаты, банковская сверка и управленческий учёт.
Что автоматизировано
- Складская логистика и отгрузки: заказы с маркетплейса, остатки по складам из ERP, отправки через API службы доставки.
- Синхронизация маркетплейса с ERP: каталог, сделки, кассовые ордера и остатки из ERP сопоставляются с объявлениями и заказами на площадке.
- Товарные фиды: генерация и ведение XML-фидов для автозагрузки.
- Клиентские чаты: роботизированная обработка через API сообщений площадки и LLM-ассистента.
- Банковская сверка и управленческий учёт: выписки и операции через Open API банка.
- Аналитика рекламных расходов по статистике площадки и распределение затрат по товарным партиям.
Результат
- 65% обращений обрабатываются автоматически, без участия менеджера.
- Ошибок по неактуальным остаткам стало на 80% меньше.
- Первый ответ покупателю приходит за одну минуту.
- Автотесты основной панели защищают от регрессий при каждом изменении.
Стек
- Java: Java 21, Spring Boot 3.4.5 (Spring MVC, Security, Data JPA, Scheduling), Hibernate, PostgreSQL, Flyway, Thymeleaf с Layout Dialect, htmx, Apache POI, Apache PDFBox, Jackson, java.net.http HttpClient, Maven; тесты — JUnit 5, Mockito, AssertJ.
- Node.js: TypeScript, Vite, Drizzle ORM, MySQL 8, Vitest, Docker Compose, REST-интеграции, LLM-ассистент для клиентских чатов.
- Python: Python 3.12, FastAPI, Uvicorn, SQLite, APScheduler, Playwright, openpyxl, pandas, requests.
- Инфраструктура: Ubuntu Server, systemd, nginx (reverse proxy, TLS, SNI, многопортовые слушатели), Let's Encrypt и Certbot, Docker и Docker Compose, journald, SSH-автоматизация, резервное копирование конфигураций.
Интеграции
- API маркетплейса: заказы, статистика, сообщения, автозагрузка, XML-фиды.
- API облачной ERP: каталог, сделки, кассовые ордера, остатки по складам.
- Open API банка: выписки и операции.
- Google Sheets API, Google Drive API, Google Apps Script, Telegram Bot API, API службы доставки.
- Авторизация: OAuth 2.0, Bearer-токены, сервисные аккаунты.
Инженерные практики
Магазин живёт на внешних API, у каждого из которых свои лимиты и сбои, поэтому основная часть инженерной работы — устойчивость и целостность данных.
- Повтор запросов с экспоненциальной задержкой при лимитах внешних API — ответах HTTP 429 и 509.
- Идемпотентные операции и защита от двойного исполнения: повтор не создаёт дублей заказов и записей.
- Транзакционная целостность и версионные миграции базы через Flyway.
- Атомарный деплой с проверкой контрольных сумм и резервные копии конфигураций.
- Регрессионное тестирование, юнит- и интеграционные тесты, диагностика по логам journald, многоагентный аудит кода.
Частые вопросы
Как синхронизируется маркетплейс с ERP?
Через API обеих сторон: из ERP приходят каталог, сделки, кассовые ордера и остатки по складам, с маркетплейса — заказы, статистика, сообщения и автозагрузка. Товарные фиды генерируются и обновляются автоматически.
Что происходит, когда внешний API упирается в лимит?
Запросы повторяются с экспоненциальной задержкой при ответах 429 и 509. Операции идемпотентны, а защита от двойного исполнения не даёт повтору создать дубль.
Как выкатываются изменения без поломок?
Атомарный деплой с проверкой контрольных сумм, версионные миграции базы через Flyway, резервные копии конфигураций; регрессию держат автотесты основной панели.
Можно ли повторить это для магазина на другой площадке?
Да: подход переносится на любую площадку с API или регулярными выгрузками — Ozon, Wildberries, Avito, Kaspi, Uzum. Интеграции и правила собираются под ваш каталог, ERP и банк.
Расскажите о задаче
Ответим в течение одного рабочего дня, оценку пришлём за 1–2 дня. Бесплатно.