Auto parts seller: catalog, warehouse, ERP and chats in one pipeline
We do not name the client under the terms of the contract: an auto parts seller on a large marketplace with a catalog of tens of thousands of new and used items. The catalog updates daily, stock sits across several warehouses in the ERP, buyers constantly ask about availability and compatibility, and a stale item turns into a cancelled order. Warehouse logistics and shipments, marketplace-to-ERP sync, product feeds, client chats, bank reconciliation and management accounting are automated here.
What is automated
- Warehouse logistics and shipments: orders from the marketplace, stock by warehouse from the ERP, dispatch through a delivery service API.
- Marketplace-to-ERP sync: the ERP's catalog, deals, cash orders and stock are matched with the marketplace listings and orders.
- Product feeds: generating and maintaining XML feeds for autoload.
- Client chats: automated handling through the marketplace messaging API and an LLM assistant.
- Bank reconciliation and management accounting: statements and transactions through the bank's Open API.
- Ad spend analytics from the marketplace statistics and cost allocation across product batches.
Outcome
- 65% of requests are handled automatically, without a manager.
- Errors from stale stock fell by 80%.
- The first reply to a buyer arrives within one minute.
- Automated tests in the main panel guard against regressions on every change.
Stack
- Java: Java 21, Spring Boot 3.4.5 (Spring MVC, Security, Data JPA, Scheduling), Hibernate, PostgreSQL, Flyway, Thymeleaf with Layout Dialect, htmx, Apache POI, Apache PDFBox, Jackson, java.net.http HttpClient, Maven; tests — JUnit 5, Mockito, AssertJ.
- Node.js: TypeScript, Vite, Drizzle ORM, MySQL 8, Vitest, Docker Compose, REST integrations, an LLM assistant for client chats.
- Python: Python 3.12, FastAPI, Uvicorn, SQLite, APScheduler, Playwright, openpyxl, pandas, requests.
- Infrastructure: Ubuntu Server, systemd, nginx (reverse proxy, TLS, SNI, multi-port listeners), Let's Encrypt and Certbot, Docker and Docker Compose, journald, SSH automation, configuration backups.
Integrations
- Marketplace API: orders, statistics, messages, autoload, XML feeds.
- Cloud ERP API: catalog, deals, cash orders, stock by warehouse.
- Bank Open API: statements and transactions.
- Google Sheets API, Google Drive API, Google Apps Script, Telegram Bot API, API службы доставки.
- Authorization: OAuth 2.0, Bearer tokens, service accounts.
Engineering practices
The store runs on external APIs, each with its own limits and failures, so most of the engineering work is about resilience and data integrity.
- Request retries with exponential backoff on external API limits — HTTP 429 and 509 responses.
- Idempotent operations and double-execution protection: a retry creates no duplicate orders or records.
- Transactional integrity and versioned database migrations with Flyway.
- Atomic deploys with checksum verification and configuration backups.
- Regression testing, unit and integration tests, diagnostics from journald logs, a multi-agent code audit.
FAQ
How is the marketplace synced with the ERP?
Through both sides' APIs: the ERP provides the catalog, deals, cash orders and stock by warehouse, the marketplace provides orders, statistics, messages and autoload. Product feeds are generated and updated automatically.
What happens when an external API hits its limit?
Requests are retried with exponential backoff on 429 and 509 responses. Operations are idempotent, and double-execution protection stops a retry from creating a duplicate.
How are changes shipped without breakage?
Atomic deploys with checksum verification, versioned database migrations with Flyway, configuration backups; regression is held by automated tests in the main panel.
Can this be repeated for a store on another platform?
Yes: the approach transfers to any platform with an API or regular exports — Ozon, Wildberries, Avito, Kaspi, Uzum. Integrations and rules are built for your catalog, ERP and bank.
Tell us about your task
We reply within one business day and send an estimate in 1–2 days. Free of charge.