Tapuli
Бек-офіс для оптового постачальника взуття, який працює з дропшиперами: каталог і залишки по розмірах, резервування, відправки Новою Поштою, касові чеки та розрахунки з партнерами — в одній системі.
- 5+років у продакшні
- 2 400+комітів
- 19проєктів у рішенні
- ~200CQRS-обробників
Про проєкт
Дропшипери продають каталог постачальника у своїх магазинах і соцмережах, а постачальнику потрібно швидко резервувати товар, пакувати й відправляти посилки та вести розрахунки з кожним партнером. Tapuli автоматизує весь цей цикл — від надходження товару на склад до виплати маржі.
Система працює в продакшні з 2021 року. Менеджери, склад і каса працюють у веб-інтерфейсі, а дропшипери — через чат-бот, відкрите API або AI-асистента через MCP.
Що вміє система
-
Каталог і склад
Товари, категорії, кольори й розміри, фото та відео на CDN, залишки по складах з історією змін.
-
Резервування
Товар утримується за дропшипером і автоматично знімається з резерву після закінчення терміну.
-
Замовлення й відправки
Формування замовлень, ТТН Нової Пошти, повернення, відшкодування та контроль нестач.
-
Етикетки та штрихкоди
Складські стікери зі штрихкодами й QR-кодами, генерація аркушів у PDF.
-
Каса та фіскальні чеки
Відкриття й закриття змін, фіскалізація продажів через хмарний РРО.
-
Фінанси дропшиперів
Транзакції, бонуси, заявки на виплату з підтвердженням, бюджети та рейтинг партнерів.
-
Чат-бот для партнерів
Дропшипери переглядають товари, резервують і відстежують замовлення прямо в месенджері.
-
AI-агенти через MCP
MCP-сервер з OAuth 2.1 / PKCE: AI-асистент шукає товари, перевіряє наявність і створює резерви від імені партнера.
-
Відкрите API та вебхуки
Версіоноване API (v0–v2), підписки на каталог і push-оновлення залишків для магазинів партнерів.
Як це побудовано
-
Єдиний веб-хост на ASP.NET Core
Обслуговує бек-офіс (Razor з Vue-островами), REST API зі Swagger, MCP-ендпоінт, сервер авторизації OpenIddict і панель Hangfire.
-
CQRS на MediatR
Близько 200 обробників, згрупованих за фічами: замовлення, резерви, залишки, кампанії, каса, боти, MCP.
-
Черга з Outbox
Порти й адаптери: події зберігаються в Outbox-таблиці та виконуються ланцюжками Hangfire-задач з окремими чергами.
-
Фонові задачі
Оновлення статусів відправок, щомісячна перевірка відтоку клієнтів, health-check Нової Пошти кожні 5 хвилин, очищення черги.
-
Інфраструктура
.NET Aspire та OpenTelemetry для розробки й спостережуваності, Docker-образ і Azure Pipelines для продакшну, міграція з SQL Server на PostgreSQL.
Зовнішні сервіси
- Нова ПоштаТТН, трекінг і пул API-ключів з лімітами обороту.
- CheckboxХмарний РРО: зміни та фіскальні чеки.
- SmartSenderЧат-бот і сповіщення для дропшиперів.
- TelegramОдноразові коди для привʼязки AI-агента.
- TurboSMSSMS-повідомлення.
- Google SheetsІмпорт і експорт товарів та резервів.
- Магазини й вебхукиСинхронізація товарів і залишків з вітриною та партнерами.
Стек проєкту
Backend
- .NET 8
- ASP.NET Core
- MediatR
- OpenIddict
- Model Context Protocol
- Polly
- Serilog
- Hangfire
Frontend
- Razor
- Vue 3
- Quasar
- Pinia
- TypeScript
- Vite
Дані
- PostgreSQL
- EF Core
- Redis
Інфраструктура
- Docker
- .NET Aspire
- OpenTelemetry
- Azure Pipelines
Маєте ідею або проєкт?
Відкритий до співпраці над бізнес-системами, CRM та інтеграціями. Напишіть — обговоримо.