Доставка воды и напитков
Клиент оформляет подписку «2 бутылки 19 литров каждую вторую среду» — и забывает о воде. Система раз в день считает по расходу семьи (двое взрослых = 1 бутылка в неделю + кофе, ребёнок добавляет +0.3, лето +20%), формирует маршрут на завтра, водитель утром получает в Telegram-боте 18 точек на день с порядком объезда. На двери — обмен пустой бутылки на полную, оплата заранее списанная с кошелька, QR-чек ОФД и фото-отчёт. Каждая бутылка имеет серийный номер и историю владения — мы знаем, у кого сколько тары и каков остаток депозита.
Доставка воды и напитков по подписке, тара-обмен, маршрутный планировщик.
«Доставка воды и напитков Pro» — это white-label платформа для запуска сервиса доставки питьевой воды (в формате 19L оборотных бутылок), лимонадов, кофе и сопутствующих товаров (кулера, помпы, стаканы) с подписочной моделью. Решение для региональных водных компаний, франшиз бутилированной воды, дистрибьюторов крафтовых лимонадов и offline-магазинов, которые хотят перевести клиентов в онлайн-каналы и закрепить их подпиской.
Главное отличие от обычного интернет-магазина — это движок подписки с расчётом по семье (система запоминает: «двое взрослых, один ребёнок, средний расход 1.3 бутылки в неделю, летом +20%»), тара-обмен с учётом залогов (у каждой бутылки серийный номер, и мы точно знаем, у какого клиента какая бутылка стоит), и маршрутный планировщик VRPTW (Vehicle Routing Problem with Time Windows), который раскладывает 80 заказов на 3 машины за 2 секунды с минимумом пробега.
Стек собран на проверенной базе: Next.js 14 для веб-кабинета и админки, Node/NestJS на бэке с Postgres 16 + PostGIS для геоданных, OR-Tools для маршрутизации, telegraf для Telegram-бота, ЮKassa и Tinkoff Pay для платежей, Контур.Диадок и СБИС для B2B-документооборота. При покупке — полные исходники с коммерческой лицензией без роялти и 6 месяцев обновлений. При аренде — то же плюс инфраструктура, мониторинг и обновления на нашей стороне. Развёртывание за 3–7 минут от оплаты до зелёного HTTPS под вашим доменом.
Почему обычный интернет-магазин и Excel убивают экономику доставки воды
Доставка воды — категория, где маржинальность мизерная (10–25% с бутылки), а себестоимость одной поездки курьера сравнима со стоимостью самой бутылки. Без подписочной модели и оптимизированного маршрута бизнес работает в ноль или в минус — потому что машина едет в район с тремя заказами вместо двадцати, потому что бутылку забыли забрать, потому что клиент уехал в отпуск и подписка крутится впустую, потому что бухгалтер B2B-клиента не получил счёт-фактуру и тормозит оплату.
Excel-таблицы и обычный интернет-магазин не закрывают ни одну из этих проблем. Excel не знает, что у Иванова стоит ваша бутылка №А-2347 с залогом 200 ₽. Интернет-магазин не умеет ставить подписку на «каждый второй вторник» и считать расход по семье. Универсальные курьерские сервисы (Яндекс.Доставка) не оптимизируют маршрут под бутылочную развозку и не умеют принимать пустую тару обратно. Платформа собрана именно под эти задачи.
- Машина едет в район с 3 заказами — расход топлива съедает маржуЦена ошибки: 20–35% выручки уходит на бензин и зарплату курьера впустуюVRPTW-движок (OR-Tools) раскладывает 80 заказов на 3 машины с минимумом суммарного пробега, учитывая окна доставки клиента, грузоподъёмность и точку старта. Плотность маршрута растёт на 40–60%, расход топлива падает пропорционально. День разбит на сетку: понедельник — район А (плановая развозка по подпискам), вторник — район Б, и т.д.
- Клиент уехал в отпуск — подписка крутится, вода не нужнаЦена ошибки: клиент злится, отписывается, плохой отзыв в гуглеВ кабинете и Telegram-боте — кнопка «пауза подписки» (от 1 недели до 3 месяцев). Кнопка «сдвинуть на неделю». Кнопка «изменить расход» (например, «на лето двойная норма»). Клиент управляет подпиской без звонков в кол-центр — отток снижается на 25–40%.
- Курьер забыл забрать пустую бутылку — клиент платит залог второй разЦена ошибки: 100–300 ₽ за бутылку × 100 клиентов = $300–500 в месяц на спорахКаждая бутылка имеет серийник (QR на горлышке). Курьер при выдаче сканирует новую бутылку и пустую, которую забирает. Система видит, какие бутылки стоят у клиента, и не даёт закрыть заказ, пока пустые не сданы (если в подписке не указано «накопить и сдать раз в месяц»). Bottle Ledger — точный учёт каждой бутылки.
- B2B-клиент требует ЭДО, счёт-фактуру и акт — обычный сервис не даётЦена ошибки: потеря 60–70% потенциальной выручки (B2B — это 2–5× B2C)B2B-аккаунт: реквизиты юрлица, договор, post-pay 14 или 30 дней, кредитный лимит. Счета-фактуры формируются автоматически в конце месяца, отправляются через Контур.Диадок или СБИС. Акт сверки за квартал — кнопкой. Бухгалтерия 1С интегрирована через webhook.
- Семья из 4 человек заказывает 2 бутылки — а нужно 4, всегда не хватаетЦена ошибки: клиент уходит к конкуренту, теряем LTV $400–800Расход по семье: при оформлении клиент указывает состав (двое взрослых, один ребёнок). Система предлагает оптимальный график (например, 4 бутылки раз в 2 недели). После 2 месяцев — корректировка по факту (если расход больше — предложение «увеличить норму»). Прогноз с точностью 85–90%.
- Кулер стоит в аренде, клиент не пользуется — депозит сгорает зряЦена ошибки: теряем $30–60 в месяц на «забытом» оборудованииКулера и помпы — отдельная сущность в учёте (Asset Ledger). Условия аренды: «бесплатно при подписке от X бутылок в месяц», «бесплатно при предоплате на год», «$5/мес при разовых заказах». Если клиент 2 месяца без заказа — авто-уведомление с предложением «вернуть кулер бесплатно» или продолжить с депозитом.
- База клиентов половинчатая — старые в Excel, новые в системеЦена ошибки: путаница, потери, неточный прогнозИмпорт CSV-базы клиентов с маппингом полей (имя, адрес, телефон, последний заказ, статус подписки). Дедупликация по телефону. Адреса геокодируются автоматически (Mapbox + OSM, точность 95%+ для городов от 100k населения). За 1 рабочий день переезжает база до 5 000 клиентов.
- Курьер потерял путевой лист — половина дня ушла на разборЦена ошибки: 10–15% дня впустую, 2–3 недовольных клиентаУ курьера в Telegram-боте — карта маршрута, список адресов с порядком объезда, фото подъезда, домофон, окна доставки, бутылки на сдачу/выдачу. Кнопка «выехал» — старт таймера, отслеживание по геолокации. Кнопка «доставлено» — фото подъезда + закрытие точки. Возврат к диспетчеру в реальном времени.
Сборка с нуля vs готовая платформа: считаем по статьям
Если собирать «Доставку воды Pro» силами штатной команды, минимально нужно: 2 фронта (веб-кабинет + админка диспетчера), 1 бэкендер, разработчик Telegram-ботов, дизайнер, DevOps, тестировщик, project-менеджер. Команда из 6–8 человек на 5–7 месяцев. Бюджет на старт — $60k–$140k, плюс зарплаты команды на сопровождение.
У нас этот стек уже написан, обкатан на запусках 5+ водных сервисов и регулярно обновляется. Подписочный движок, тара-учёт, VRPTW-маршруты, Telegram-бот, B2B с ЭДО — всё готово и работает. Вы получаете тот же результат за дни и направляете освободившиеся $60k+ на рекламу, на закупку первой партии бутылок (нужно 800–1200 штук для старта) и на холодильные склады.
| Этап | Свой стек | С wl-solution |
|---|---|---|
| Веб-кабинет клиента + админка диспетчера | 2 фронта × 3 мес ≈ $30k | готов (Next.js 14, App Router, RU/EN i18n) |
| Подписочный движок с расходом по семье | 1 фронт + 1 бэк × 2 мес ≈ $20k | готов с rule-engine и UI |
| Bottle Ledger (учёт оборотной тары с залогами) | 1 бэк × 1.5 мес ≈ $10k | готов, серийники + QR + история владения |
| VRPTW-маршрутизация (OR-Tools) | 1 бэк × 1 мес + Mapbox-интеграция ≈ $9k | готов, 80 заказов за 2 сек |
| Telegram-бот для re-order и водителя | 1 бэк × 1.5 мес ≈ $10k | готов с шаблонами и keyboard |
| B2B-кабинет, счета-фактуры, ЭДО (Диадок/СБИС/1С) | 1 бэк × 2 мес + юрист на договор ≈ $14k | готовы 3 интеграции |
| Аренда кулеров и помп (Asset Ledger) | 1 бэк × 1 мес ≈ $7k | готов, авто-уведомления по сроку |
| Платежи (ЮKassa, Tinkoff, Apple/Google Pay в TG) | 1 бэк × 1 мес ≈ $7k | три провайдера готовы |
| Импорт базы клиентов с геокодированием | $4k | wizard в админке |
| Инфра, CI/CD, мониторинг, бэкапы | $5k setup + DevOps на ставке | auto-deploy на VPS за 5 минут |
Три канала и единая база — подписка, маршрут, тара, B2B
Веб-кабинет клиента для управления подпиской и оплаты, Telegram-бот для re-order и общения с водителем, админка диспетчера для контроля маршрута и склада. Все три синхронизированы через Order Service, Subscription Service и Bottle Ledger — изменение в одном канале мгновенно появляется во всех. Водитель работает только через Telegram-бот (никакого отдельного приложения с обновлениями), что снижает порог входа для новых водителей до 10 минут обучения.
Платформа мультиарендная: один установленный экземпляр обслуживает и одиночную водную компанию, и франшизу с 8 региональными представительствами. Тенант = регион (свой склад, свой парк машин, свой ассортимент, свои цены), при этом владелец сети видит всё в одной админке с агрегированной аналитикой и единой системой подписок.
Подписочный движок с расходом по семье
Клиент не вспоминает про воду — она приезжает по графику.
При первом заказе клиент отвечает на 3 вопроса: «сколько взрослых», «сколько детей», «как часто пьёте воду (мало / средне / много)». Система рассчитывает оптимальный график: например, «3 бутылки 19L каждые 2 недели». Клиент подтверждает или корректирует — подписка активна.
Поддерживаются 5 типов графика: еженедельно (фиксированный день недели), раз в 2 недели, раз в месяц, по требованию (клиент сам нажимает «нужна вода» в TG-боте), бюджет (списываем фиксированную сумму в месяц, доставляем сколько укладывается). За 2 дня до доставки — push «привезём 2 бутылки в среду 16:00, всё ок?» с кнопкой «перенести/отменить/изменить».
Тара-учёт (Bottle Ledger) с залогами
Каждая бутылка — учётный актив с серийником и историей.
У каждой 19L бутылки есть QR-код с серийным номером, который наклеивается при первой выдаче. Bottle Ledger хранит: серийник → текущий владелец → дата выдачи → залог. Курьер при доставке сканирует две бутылки: новую (которую отдаёт) и старую (которую забирает). Система автоматически обновляет ledger.
Залог за бутылку (типично 200–300 ₽) хранится на счёте клиента. При возврате бутылки залог возвращается на кошелёк. Если клиент уходит — может вернуть все бутылки и забрать депозит. Полный аудит-лог: «бутылка №А-2347 — Иванов с 2024-03-15, залог 250 ₽».
VRPTW-маршрутизация по дням недели
80 заказов на 3 машины — 2 секунды, минимум пробега.
Каждый день недели — свой район или две зоны (например, понедельник = центр + север, вторник = юго-запад). Подписки распределяются по дням так, чтобы плотность была равномерной (если все подписаны на пятницу — система предложит часть клиентов сдвинуть на четверг с скидкой).
Утром в день доставки OR-Tools раскладывает все заказы дня на N машин (где N задано доступной парком). Учитывает: окна доставки клиента, грузоподъёмность машины, точку старта (склад), время разгрузки. Маршрут — в Telegram-бот водителя с фото подъезда, домофоном, кодом, бутылками на сдачу/выдачу.
Telegram-бот для re-order и водителя
70–80% повторных заказов после первой покупки идут через бот.
Клиент: «/start» → меню с тремя кнопками: «Нужна вода» (доставим в ближайший день), «Управление подпиской», «Поддержка». Один тап — заказ оформлен. Оплата Apple Pay / Google Pay прямо в Telegram через ЮKassa. Push о статусе заказа: «оплачен», «выезжает курьер», «у двери», «доставлено».
Водитель: получает в TG-боте список из 18–25 точек с порядком, кнопкой «выехал», картой, контактами. На каждой точке — кнопка «доставлено», «не дома», «отказ». Связь с диспетчером — через тот же бот. Никакого отдельного приложения, никаких обновлений в TestFlight — водитель работает с первого дня.
Аренда кулеров, помп, сопутствующих товаров
Доп. выручка $5–15 в месяц с каждого клиента-кулерщика.
Каталог сопутствующих товаров: кулера (нагрев/охлаждение, 3 модели), помпы механические, помпы электрические, подставки, стаканы, чашки. Кулера — в аренду (с залогом) или продажу. Условия аренды: «бесплатно при подписке от 4 бутылок в месяц», «$5/мес при меньшем расходе», «$15/мес при разовых заказах».
Asset Ledger следит за каждой единицей: серийник, текущий клиент, дата выдачи, последнее обслуживание (для кулеров — раз в год обязательная санитарная чистка с уведомлением). При отказе клиента — авто-уведомление за 7 дней до окончания подписки с предложением «вернуть бесплатно» или «продолжить аренду».
B2B-аккаунты с ЭДО и счетами-фактурами
Офисы и компании — это 2–5× выручки B2C.
B2B-регистрация требует: ИНН, КПП, реквизиты, договор (генерируется автоматически из шаблона), e-mail бухгалтерии. После проверки СПАРК/Контур.Фокус (опционально для безопасности) — открывается кредитный лимит и post-pay 14 или 30 дней.
Счета-фактуры формируются автоматически в конце месяца за все доставки. Отправка через Контур.Диадок, СБИС или 1С-ЭДО (три коннектора в коробке). Акт сверки за квартал — кнопкой. Бухгалтерия 1С получает webhook с каждой реализацией для автокниги.
Wallet/prepay + ЮKassa + Apple/Google Pay
Клиент пополняет кошелёк раз в квартал — и забывает про оплату.
Wallet (кошелёк клиента): пополняется через ЮKassa, Tinkoff Pay, Apple Pay (в TG-боте), Google Pay, банковской картой в кабинете. Бонус за пополнение от 5000 ₽ — 3%, от 10000 ₽ — 5%. Каждый заказ списывает с кошелька автоматически — клиент не вводит карту каждый раз.
B2B post-pay: счёт раз в месяц, оплата 14 или 30 дней. При просрочке 7 дней — мягкое уведомление, при 14 — приостановка отгрузок до оплаты. Кредитный лимит индивидуален, скоринг через СПАРК/Контур.Фокус по запросу.
White-label под ваш бренд: домен, логотип, цвета
Никаких упоминаний wl-solution в интерфейсе или на счетах.
Веб-кабинет, Telegram-бот (вашим юзернеймом и аватаром), админка диспетчера, счета-фактуры, e-mail-уведомления — под вашим брендом. Кастомизация: логотип, основной/акцентный цвет, шрифт, фавикон, домен с автоматическим SSL.
Telegram-бот регистрируется через ваш BotFather-аккаунт (мы помогаем с инструкцией). Платёжный аккаунт ЮKassa/Tinkoff — ваш. Все деньги идут напрямую вам, мы не посредник.
Что мы держим в голове, проектируя продукт
- 01
Подписка — это не «карточка и спишет», а гибкая программа
Клиент должен иметь возможность поставить на паузу, изменить норму, перенести на неделю, swap-нуть товар (с воды на лимонады) без звонка в кол-центр. Иначе отток съест выручку. Все эти операции — в кабинете и TG-боте, в один тап.
- 02
Тара — это актив, а не упаковка
Каждая бутылка стоит вам 200–400 ₽. Терять их «в карманах клиентов» означает дотировать каждую подписку. Bottle Ledger с серийниками и QR-кодами обязателен — иначе через год вы не знаете, где половина парка тары.
- 03
Маршрут — это математика, а не магия диспетчера
Опытный диспетчер раскладывает 80 заказов на 3 машины за 30 минут с погрешностью 20%. OR-Tools делает то же за 2 секунды с оптимумом по пробегу. Не отдавайте маршруты человеку — отдайте алгоритму, а человеку — контроль исключений.
- 04
B2B без ЭДО — это потерянная половина рынка
Офисы, ЖК, школы, спорткомплексы — это 50–70% выручки зрелого водного сервиса. Без счетов-фактур, ЭДО (Диадок/СБИС) и post-pay их не получить. Сразу закладывайте B2B-функции с первого дня запуска.
Полный набор сценариев — без покупки модулей и плагинов
Подписка и расход
Сердце продукта. Гибкие графики, расход по семье, прогноз потребления, управление в один тап.
Еженедельно: фиксированный день недели (например, «каждую среду»). Раз в 2 недели: чётные или нечётные недели. Раз в месяц: фиксированное число (например, «5 числа»). По требованию: клиент сам нажимает «нужна вода» в TG-боте — приезжаем в ближайший плановый день района. Бюджет: списываем фиксированную сумму в месяц (например, 1500 ₽), доставляем сколько укладывается.
Подписка создаётся в кабинете или TG-боте за 4 шага: товары → график → адрес → оплата. Изменения — без обращения в поддержку. История подписки — полный лог изменений, никогда не теряется.
- · Клиент выбирает удобный график — выше удержание
- · Бюджетный тип привлекает клиентов с низким доходом
- · Меняется без звонков в кол-центр
Модель расхода: взрослый = 1 бутылка 19L на 2 недели (питьё + готовка), ребёнок до 6 лет = +0.3, ребёнок 7–14 = +0.5, подросток = +0.8. Дополнительные коэффициенты: лето (+20%), зима (-10%), наличие чая/кофе (+15%). Прогноз с точностью 85–90% после 2 месяцев наблюдений.
Если клиент в кабинете отметил «лето в командировке 2 недели» — система автоматически пропускает доставку на этот период. Если расход выше прогноза — push с предложением «увеличить норму».
- · Клиент получает столько, сколько нужно — нет переплат
- · Снижение отказов «нам не нужно столько воды»
- · Прогноз помогает планировать закупку
Пауза: «приостановить на 2/4/8/12 недель» с автовозобновлением. Скип: «пропустить ближайшую доставку». Перенос: «доставку с 5-го на 10-е». Swap: «заменить воду на лимонад на следующий раз» или «изменить количество бутылок».
Все изменения подтверждаются push-уведомлением. Полный аудит — кто, когда, что изменил. Никаких звонков в поддержку, никаких операторов на 3-минутном ожидании.
- · Снижение нагрузки на кол-центр в 5–8 раз
- · Удержание клиента (отток снижается на 25–40%)
- · Самообслуживание = выше NPS
Кошелёк — внутренний баланс клиента в рублях (или другой локальной валюте). Пополняется через ЮKassa, Tinkoff Pay, Apple Pay (в TG-боте), Google Pay, банковской картой. Бонус за пополнение: от 5000 ₽ — 3%, от 10000 ₽ — 5%, от 20000 ₽ — 7%.
Каждый заказ автоматически списывается с кошелька. Если баланса не хватает — push «не хватает 350 ₽, пополните» с deep-link в платёжку. Авто-пополнение опционально (при балансе ниже 500 ₽ — списать 2000 ₽ с привязанной карты).
- · Cashflow заранее (вы получаете деньги до доставки)
- · Клиент не отвлекается на оплату каждый раз
- · Бонусы стимулируют пополнения покрупнее
Тара и активы
Bottle Ledger и Asset Ledger — учёт каждой бутылки, каждого кулера, каждой помпы. С серийниками, QR-кодами и историей владения.
При первой выдаче на бутылку наклеивается QR-код (печатается на термопринтере). Серийник вида A-2347. Запись в Bottle Ledger: серийник → клиент → дата выдачи → залог. При обмене курьер сканирует две бутылки: новую (которую отдаёт) и старую (забирает). Система автоматически обновляет владельца.
Залог за бутылку — типично 200–300 ₽ — хранится на счёте клиента отдельной строкой. При возврате бутылки залог возвращается на кошелёк или выплачивается обратно. Если клиент уходит с бутылками — система удерживает залог как стоимость утраты.
- · Точный учёт парка тары (нет потерь «в карманах»)
- · Защита от двойного начисления залога
- · Аудит-готовность (каждая бутылка — отдельная запись)
Отчёт показывает, у кого какие бутылки стоят сколько времени. При превышении срока (например, 90 дней с момента выдачи) — авто-уведомление клиенту: «время заменить бутылку для свежести». При визите курьера он обязательно забирает старые бутылки.
Это снижает риск, что у клиента дома стоит бутылка 6 месяцев и развивает запах. Стандарт по СанПиН — менять не реже раза в 3 месяца.
- · Качество воды у клиента не страдает
- · Снижение жалоб «вода с привкусом»
- · Соблюдение санитарных норм
Каталог сопутствующих товаров: кулера (3 модели — компрессорный с нагревом, термоэлектрический, без охлаждения), помпы (механические, электрические), подставки, стаканы. У каждого кулера — серийник, история (склад → клиент → склад → клиент), последняя санитарная чистка.
За 30 дней до даты обязательной чистки (по СанПиН — раз в 12 месяцев) — авто-уведомление клиенту и диспетчеру. Курьер при следующем визите забирает кулер на чистку, привозит подменный. Если клиент отказывается — арендный договор расторгается (для соблюдения норм).
- · Полный аудит парка оборудования
- · Соблюдение СанПиН по чистке
- · Доп. выручка $5–15 в месяц с каждой единицы
В админке кнопка «начать инвентаризацию». Сотрудник склада обходит штабеля с телефоном, сканирует QR на каждой бутылке (батчевый режим — 60 бутылок в минуту). Система сверяет с ожидаемым остатком (по Bottle Ledger), показывает расхождения: «должно быть 850, отсканировано 832, разница -18».
Для крупных складов — режим штрих-кодов на коробках (12 бутылок = одна коробка). Расхождения видны сразу — это или потери, или бутылки у клиентов не учтены. Месячная инвентаризация занимает 30–60 минут вместо целого дня.
- · Быстрая инвентаризация без остановки операций
- · Расхождения выявляются вовремя
- · Защита от воровства/потерь
Маршруты и склад
VRPTW-движок (OR-Tools) — 80 заказов на 3 машины за 2 секунды. Дни недели по районам, погрузочные листы, контроль исключений.
Каждое утро (или по кнопке диспетчера) OR-Tools раскладывает все заказы дня на доступные машины. Входные данные: список адресов с координатами, окна доставки клиента, грузоподъёмность машины (количество бутылок), точка старта (склад), время разгрузки (5–10 минут на адрес).
Выход: для каждой машины — упорядоченный список адресов + расчётное время прибытия. Диспетчер видит маршрут на карте, может вручную сдвинуть точку (например, «вот этот клиент VIP — пусть первым»). После подтверждения — маршрут уходит в Telegram-бот водителя.
- · Снижение пробега на 25–40% против ручной развозки
- · Время диспетчера на маршруты — 5 минут вместо 60
- · Точные ETA для клиентов
При оформлении подписки клиент выбирает желаемый день недели. Система проверяет загрузку района: если этот день уже переполнен — предлагает соседний с скидкой 5% («перейдите на четверг и получите 5% скидки на следующие 3 заказа»). Большинство клиентов соглашаются.
Результат: пик нагрузки сглажен, маршрут на каждый день полный (40–60 точек на машину), нет «пустых» дней с 5 заказами.
- · Равномерная загрузка парка
- · Себестоимость доставки ниже на 20–30%
- · Водители получают полную смену каждый день
Клиент в кабинете задаёт удобные окна доставки: «будни 18:00–22:00» или «выходные с 10:00». При оптимизации маршрута OR-Tools соблюдает окна как hard-constraint. Если для всех клиентов 18:00–22:00 — система разделит на 2 машины с разным стартом.
VIP-приоритет (B2B, премиум-подписка) — отдельный флаг, который ставит клиента в начало маршрута. ETA с погрешностью 10–15 минут (push клиенту «приедем через 30 минут» за полчаса до прибытия).
- · Клиент дома именно тогда, когда обещано
- · Меньше «не застал» — экономия на повторных заездах
- · Лояльность B2B (VIP-приоритет)
После расчёта маршрутов в админке появляется погрузочный лист на каждую машину: 40 бутылок воды Х, 8 бутылок воды Y, 2 кулера на возврат с маршрута, 12 чашек. Лист на печать или в TG-бот складовщика.
Складовщик собирает заказ, сканирует QR каждой выходящей бутылки — система автоматически списывает со склада и привязывает к маршруту. Водитель получает машину «загруженную» с подтверждённым списком.
- · Нет недогрузов («забыли положить»)
- · Точный учёт остатков склада в реальном времени
- · Прозрачность для бухгалтерии
B2B и финансы
Юрлица с ЭДО, счетами-фактурами, кредитным лимитом, post-pay. Контур.Диадок, СБИС, 1С — три коннектора в коробке.
Клиент-юрлицо вводит ИНН — система через ЕГРЮЛ API подтягивает наименование, КПП, ОГРН, адрес, ОКВЭД, статус (действующая/ликвидирована/банкрот). Договор генерируется автоматически из шаблона с подставленными реквизитами. Подписание — простой ЭЦП или ЭДО.
Опционально — скоринг через СПАРК или Контур.Фокус: финансовая надёжность, риск-индекс, история банкротств. На основе скоринга определяется кредитный лимит (от $200 до $10k) и срок post-pay (14 или 30 дней).
- · Регистрация B2B — 5 минут вместо 2 дней
- · Защита от ненадёжных контрагентов
- · Автоматизация документооборота
Раз в месяц (или по требованию клиента) формируется счёт-фактура за все доставки месяца. УПД (универсальный передаточный документ) формируется по форме, утверждённой ФНС. Отправка через выбранный канал ЭДО (Контур.Диадок, СБИС, 1С-ЭДО).
Акт сверки за квартал — кнопкой в кабинете клиента или по запросу из 1С-Бухгалтерии. Расхождения подсвечиваются, можно exportировать в Excel для бухгалтерии.
- · Бухгалтерия счастлива (вовремя и без ошибок)
- · Закрытие месяца — 30 минут вместо дня
- · Соответствие НК РФ ст. 169
У B2B-клиента — индивидуальный кредитный лимит (например, $1500). Доставки идут без предоплаты, накапливаются на счёте. В конце месяца — счёт. Срок оплаты 14 или 30 дней. При просрочке 7 дней — мягкое уведомление, при 14 — приостановка отгрузок до оплаты.
Все условия (срок, лимит, штраф за просрочку) в договоре. Дашборд для финдира: дебиторская задолженность по клиентам, средний срок оплаты, риск-индекс по каждому контрагенту.
- · Привлечение B2B-клиентов (без post-pay они не идут)
- · Защита от роста просрочек
- · Финдир видит cashflow в реальном времени
После закрытия заказа (доставка выполнена) система отправляет webhook в 1С с данными: контрагент, дата, номенклатура, сумма, ставка НДС. 1С создаёт документ «Реализация товаров и услуг» автоматически.
Поддержка 1С 8.3 (Бухгалтерия предприятия, Управление торговлей, ERP). Интеграция через стандартный REST-API 1С или через 1С-Шину. Настройка — 30 минут с инструкцией.
- · Бухгалтер не дублирует ввод вручную
- · Книга продаж формируется автоматически
- · Меньше ошибок в учёте
Каналы и админка
Web-кабинет клиента, Telegram-бот, админка диспетчера. Мульти-бренд, white-label, аналитика, поддержка.
Бот с inline-keyboard: «🚰 Нужна вода» (одной кнопкой заказ в ближайший день района), «📋 Моя подписка» (управление), «📞 Поддержка» (чат с оператором), «💰 Кошелёк» (пополнение), «📦 История заказов». Оплата Apple Pay / Google Pay прямо в боте через ЮKassa.
Push-уведомления: «оплачен», «выезжает курьер», «у двери», «доставлено + фото-отчёт». При паузе подписки бот вежливо спрашивает «всё ок? нужна помощь?» — снижает отток. Конверсия повторного заказа из бота — 60–80%.
- · Основной канал retention
- · Низкий барьер входа (не надо устанавливать приложение)
- · Apple/Google Pay = меньше отказов оплаты
Утром водитель получает в боте: «маршрут на сегодня, 23 точки, расчётное время 6 часов». Карта с маршрутом — открывается в Яндекс.Картах или 2GIS. Каждая точка раскрывается: адрес, домофон, телефон клиента, бутылки на выдачу/сдачу, фото подъезда (если есть).
На каждой точке кнопки: «✅ доставлено» (требуется фото-подтверждение + сканирование QR бутылок), «🚪 не дома» (с фото попытки), «❌ отказ» (с причиной). После закрытия точки бот выводит следующую.
- · Водитель работает с первого дня — 10 минут обучения
- · Никаких сторонних приложений — всё в TG
- · Диспетчер видит прогресс в реальном времени
Адаптивный веб-интерфейс (Next.js 14, RU/EN, тёмная/светлая темы). Главная: статус подписки, ближайшая доставка, кошелёк. Раздел подписки — изменение графика, пауза, swap, перенос. Раздел заказов — история, повторение, скачивание чека. Раздел оплат — пополнение, привязка карты, история транзакций.
Регистрация по номеру телефона (SMS-код через Voximplant) или через Telegram (без пароля). Авторизация по cookie 30 дней. PWA-режим — добавление на главный экран как приложение.
- · Альтернатива TG-боту для тех, кто его не использует
- · Все функции в одном месте
- · PWA — почти как нативное приложение, без сторов
Главный экран: карта города с маршрутами всех машин (онлайн), список заказов на сегодня с статусом, склад с остатками, очередь обращений в поддержку. Цветовые статусы: зелёный — на месте, жёлтый — в пути, красный — просрочка.
Действия диспетчера: вручную сдвинуть точку в маршруте, перенаправить заказ на другую машину, ответить клиенту в чате, добавить заказ в маршрут (если позвонил новый клиент), запустить дополнительный маршрут (если объём вырос).
- · Контроль всей операции в одном окне
- · Быстрая реакция на исключения
- · KPI диспетчера прозрачны
Архитектура: модули, БД, очереди, интеграции
Платформа — это связка из 9 микросервисов, каждый отвечает за свою область (подписки, маршруты, тара, B2B, платежи). Бэкенд на Node/NestJS, фронтенд на Next.js 14, очереди BullMQ на Redis, основная БД Postgres 16 с PostGIS-расширением для геоданных.
Деплой — Docker Compose на 1 VPS для старта (до 5k заказов в месяц), Kubernetes по мере роста. Бутылочный и активный учёт — append-only журналы, что даёт полный аудит без потерь данных и упрощает соответствие 152-ФЗ.
Cron-jobs для генерации заказов из подписок (за 2 дня до доставки), пересчёт прогноза раз в неделю на основе фактического расхода клиента.
Rule-engine для гибких графиков: weekly / biweekly / monthly / on-demand / budget. Каждое изменение клиента (пауза, swap, перенос) идёт через очередь и логируется.
State machine на XState — все переходы статусов в одном месте, нельзя случайно пропустить шаг или перейти в недопустимое состояние.
Идемпотентность всех операций по orderId: повторный webhook от платёжки не создаёт дубликат, ретрай курьерского статуса не двоит событие.
Append-only журнал событий (выдана → возвращена → утилизирована). Никаких UPDATE — только INSERT с timestamp. Текущее состояние бутылки — это reduce по событиям.
Каждая операция привязана к QR-сканированию курьера: подделать переход нельзя, всё привязано к timestamp + geo + userId курьера.
Похож на Bottle Ledger, но с расписанием обязательного обслуживания (санитарная чистка кулера раз в 12 месяцев по СанПиН).
За 30 дней до даты — авто-уведомление клиенту и диспетчеру. Журнал чисток с отметкой ответственного сотрудника.
Отдельный микросервис на Python — OR-Tools нативно на нём работает. Бэкенд Node вызывает по gRPC, передаёт точки + ограничения, получает упорядоченные маршруты.
Учитывает: окна доставки клиента, грузоподъёмность машины, точку старта (склад), время разгрузки, VIP-приоритет. Решает 80 точек на 3 машины за 2 секунды.
Webhook на NestJS-эндпойнт. Поддержка Apple/Google Pay через ЮKassa Telegram Provider Token — клиент платит прямо в чате без редиректов.
Двойная роль: для клиента (re-order, подписка, поддержка) и для водителя (маршрут на день, точки, фото-подтверждение). Разделение по userId с проверкой роли в БД.
Webhook от ЮKassa → автозачисление на кошелёк клиента. Двойная запись (debit/credit) в БД, никаких прямых апдейтов баланса — только через транзакции.
Поддержка нескольких эквайрингов одновременно: ЮKassa для B2C, Tinkoff для B2B со счетами по реквизитам, СБП-фастпей как альтернатива.
Интеграции с Диадок/СБИС/1С — через стандартные REST-API + adapter-pattern. Адаптеры изолированы: добавить новый ЭДО — это написать 1 класс по интерфейсу EdmAdapter.
Автогенерация УПД и счетов-фактур по форме ФНС, проверка ИНН через ЕГРЮЛ-API, скоринг через СПАРК/Контур.Фокус.
App Router, RSC, server actions. RBAC: client / driver / dispatcher / admin / owner — пять ролей с гранулярными правами.
PWA-режим для клиента — добавление на главный экран как нативное приложение. Тёмная/светлая тема, RU/EN i18n.
Поток данных
Клиент в TG-боте нажимает «нужна вода» → Bot Service создаёт OrderDraft → Subscription Service подтверждает право на доставку → Order Service переводит в created → Payment Service списывает с кошелька (или просит пополнить).
Утром в день доставки Subscription Service агрегирует все заказы дня → Routing Service через gRPC вызывает OR-Tools → возвращает упорядоченные маршруты → диспетчер видит в админке, может скорректировать → подтверждает → маршруты уходят в TG-бот водителей.
Водитель на адресе сканирует две бутылки (новую + пустую) → Bot Service шлёт событие в Bottle Ledger → ledger обновляет владельца + двигает депозиты → Order Service переводит в delivered → клиенту push с фото-чеком.
Раз в месяц B2B Service агрегирует доставки за месяц по каждому юрлицу → формирует УПД → отправляет через выбранный EDM-адаптер (Диадок / СБИС / 1С-ЭДО) → webhook на 1С-Бухгалтерию для автопроводки.
Масштабирование
Все микросервисы stateless кроме Bottle Ledger / Order Service / Payment Service — эти три держат истину в БД и реплицируются через Postgres streaming replication.
Routing Service масштабируется горизонтально — OR-Tools жирный по CPU, но решает короткие задачи (2–5 секунд). 4-ядерный VPS закрывает 50 городов одновременно.
BullMQ-очереди на Redis Cluster — разделение worker'ов по типам задач (subscription, notification, b2b-invoice, bottle-aging). При росте нагрузки добавляем worker'ы независимо.
Что ломается и как восстанавливаем
Падение Routing Service → маршруты не рассчитываются автоматически. Диспетчер видит баннер «алгоритм недоступен, используйте ручной режим» и раскладывает заказы по машинам через UI (медленнее, но работает).
Падение Payment Service → клиенты не могут оплачивать новые заказы, но уже оплаченные доставки выполняются. Wallet-баланс читается из БД напрямую, не зависит от провайдеров.
Сбой ЕГРЮЛ-API → B2B-регистрация переключается на ручной режим (клиент сам вводит реквизиты), скоринг откладывается. Без блокировки регистрации.
Сбой ЮKassa → автоматический failover на Tinkoff Pay (если подключён) или показ инструкции «оплатите по реквизитам, мы зачислим вручную в течение часа».
Безопасность
Платежи через PCI DSS-сертифицированных провайдеров (ЮKassa, Tinkoff). Карточные данные на нашей стороне не хранятся — только токены провайдера.
PII (телефоны, адреса, имена) — отдельная схема в БД с шифрованием at-rest. Доступ по ролям + аудит-логирование каждого SELECT по таблице PII.
Соответствие 152-ФЗ: данные клиентов хранятся в РФ-юрисдикции по умолчанию, согласия на обработку логируются, право на забвение — кнопкой в кабинете.
Все webhook-эндпойнты с HMAC-подписями (ЮKassa, Telegram). Idempotency-key на каждом запросе — повторный вызов не двоит операцию.
Готовые коннекторы
12 готовых коннекторов — платежи, ЭДО, карты, скоринг, фискализация. Подключение нового — типично 1–3 дня через adapter-pattern. Договоры с провайдерами оформляете напрямую, мы даём готовый коннектор и сопровождаем при включении.
Кейсы, которые мы регулярно разворачиваем
2 бутылки 19L каждые 2 недели, Telegram-бот, Apple Pay — без головной боли
Двое взрослых, кофе по утрам, чай вечером. Расход — около 1 бутылки в неделю.
Зарегистрировались через Telegram-бот (без скачивания приложения).
Кулер не нужен — есть встроенный диспенсер в холодильнике.
Открыли TG-бот вашего бренда → «оформить подписку» → выбрали воду «Святой источник 19L» → ответили на 3 вопроса (2 взрослых, нет детей, обычное потребление).
Система предложила: «2 бутылки каждые 2 недели, по средам». Подтвердили. Адрес — из геолокации, домофон — указали вручную.
Оплатили Apple Pay в TG-боте: 700 ₽ за две бутылки + 500 ₽ залог. Wallet пополнен на 1200 ₽.
Через 12 дней — push «привезём 2 бутылки в среду 18:00–22:00, всё ок?». Подтвердили.
В среду 19:30 — водитель в подъезде, push «у вашей двери». Открыли, обменяли 2 пустые на 2 новые, сканирование QR.
Через 2 недели — снова push. И так каждые 2 недели без вашего участия.
- · Telegram-бот для оформления и управления
- · Расход по семье (2 взрослых)
- · Apple Pay в TG
- · Wallet с предоплатой
- · Bottle Ledger (учёт залогов)
- · Push о доставке
- · Клиент: «забыл про воду как про проблему»
- · Магазин: LTV $480 за год (24 доставки × $20 средний чек)
- · Себестоимость удержания: $0 (TG-бот, без рекламы)
Премиум-вода, 5 бутылок в неделю, кулер в подарок, графика «по требованию»
Пара 40 лет + 3 детей (8, 12, 16 лет). Загородный дом 250м².
Потребление: 5 бутылок 19L в неделю (питьё, готовка, чай).
Заказывают «Архыз» в стекле или «Эвиан» (премиум-сегмент). Кулер с нагревом/охлаждением в кухне.
Зарегистрировались через веб-кабинет (с компьютера). Указали состав семьи (2 взрослых + 3 детей).
Система предложила: «10 бутылок раз в 2 недели». Скорректировали на «5 раз в неделю» (любят свежую воду каждые 2 дня).
Подписались на 2 кулера в аренду (бесплатно при подписке от 4 бутылок/неделя). Залог за кулера 5000 ₽ — на кошельке.
Каждую субботу 10:00 — доставка 5 бутылок. Курьер в перчатках, обмен пустых на новые, фото-чек.
Через 3 месяца — авто-уведомление «кулер на кухне нуждается в санитарной чистке». Курьер при следующем визите забирает на чистку, привозит подменный.
В отпуск (2 недели в августе) — кнопка «пауза» в кабинете. После возвращения — авто-возобновление.
- · Расход по семье (5 человек)
- · Премиум-каталог (Эвиан, Архыз стекло)
- · Аренда кулеров (Asset Ledger)
- · Санитарная чистка по СанПиН
- · Пауза подписки
- · Wallet с депозитом
- · Клиент: семья перестала покупать воду в магазине
- · Магазин: LTV $2400 за год (260 бутылок × $9 + 2 кулера × $0 аренда)
- · Доп. маржа $480 в год на премиум-сегменте
12 бутылок в неделю, оплата раз в месяц, ЭДО Диадок, кулер на каждый этаж
Офис 3 этажа, 35 сотрудников. Кулера на каждом этаже (3 шт).
Расход — 12 бутылок 19L в неделю. Бухгалтерия требует ЭДО Диадок.
Post-pay 30 дней с кредитным лимитом $800.
Офис-менеджер зарегистрировал юрлицо: ИНН, реквизиты подтянулись из ЕГРЮЛ. Договор сгенерирован, подписан простой ЭЦП.
СПАРК-скоринг прошёл (компания «зелёная»), кредитный лимит $800, post-pay 30 дней.
Подписка: 12 бутылок «АкваМинерале» каждый понедельник 9:00–11:00. 3 кулера в аренду (бесплатно при объёме).
Каждый понедельник в 10:00 — водитель привозит 12 бутылок на 3 этажа, ставит к каждому кулеру, забирает 12 пустых.
1-го числа следующего месяца — счёт-фактура в Контур.Диадок. УПД в формате 5.01. Бухгалтерия в 1С получила webhook автоматически.
Оплата до 30-го числа. Если задержка >7 дней — мягкое уведомление, >14 — приостановка отгрузок.
- · B2B-регистрация с ЕГРЮЛ
- · Скоринг СПАРК
- · Post-pay 30 дней
- · Аренда кулеров (3 шт)
- · ЭДО Диадок (УПД)
- · Webhook в 1С-Бухгалтерия
- · Офис: «вода появилась как услуга, бухгалтерия счастлива»
- · Магазин: LTV $5800 в год (48 доставок × $120)
- · Маржа выше B2C на 5–8% (объём + post-pay)
Доставка в одно окно раз в неделю, единый счёт УК, индивидуальные подписки жильцов
ЖК «Восход» на 200 квартир, 80 из них — клиенты доставки воды.
Управляющая компания договорилась о централизованной доставке: один день в неделю (среда), одна машина, выгрузка на консьерж-сервис.
Жильцы подписываются индивидуально через TG-бот, оплата каждый сам, но логистика — через УК.
УК зарегистрировалась как B2B-партнёр со специальным флагом «coordinator»: координирует доставку, но не платит.
Жители ЖК «Восход» получили промо-ссылку через УК: при регистрации автоматически выбирается среда и точка выгрузки «консьерж 1 подъезд».
В среду в 10:00 — одна машина привозит 80 бутылок в одно место (консьерж). Консьерж раздаёт по квартирам в течение дня (по своему графику).
Каждый жилец оплачивает свою доставку отдельно. Бутылки помечены QR — система знает, чья какая.
Через 2 недели — обратный сбор пустых. Консьерж собирает за день, водитель забирает за раз.
- · B2B с ролью coordinator
- · Групповая доставка в одну точку
- · Индивидуальные подписки внутри группы
- · Bottle Ledger (учёт каждой бутылки)
- · Промо-ссылка от УК
- · ЖК: вода стала «инфраструктурой» дома
- · Магазин: 80 клиентов с одной точки доставки, себестоимость доставки в 4 раза ниже
- · УК: бесплатный сервис для жильцов, бонусные баллы для лояльности
От оплаты до первого реального заказа — 7 дней
Развёртывание платформы — это 5 минут (ваш домен, SSL, админка, бот). Полноценный запуск с базой клиентов, парком тары, маршрутом и складом — 7 дней. Ниже — план по дням.
- День 0: оплата и развёртываниеПлатформа работает на вашем домене, бот зарегистрирован, админка доступна.
- · Оплата ($2900 buy или $149/мес rent) через ЮKassa / SWIFT / крипта
- · Заполнение анкеты: домен, логотип, цвета, реквизиты компании
- · Регистрация Telegram-бота через BotFather (инструкция в письме)
- · Авто-развёртывание на VPS: домен → SSL → миграции БД → запуск сервисов (5–7 минут)
- · Первый вход в админку: проверка, что всё работает
Готово, когда:- ✓ https://water.вашдомен.ru открывается с вашим логотипом
- ✓ TG-бот @YourWaterBot отвечает на /start
- ✓ Админка доступна по логину admin@вашдомен.ru
- Дни 1–3: настройка каталога, склада, тараВ системе есть все товары, склад заполнен, бутылки промаркированы QR-кодами.
- · Создание ассортимента: 2–4 марки воды, кулера (3 модели), помпы, доп. товары — с фото и ценами
- · Загрузка остатков склада (или ручной ввод первой партии 200–500 бутылок)
- · Печать QR-стикеров на термопринтере (1 рулон на 1000 наклеек = $20)
- · Маркировка бутылок: каждой бутылке — серийник в Bottle Ledger
- · Настройка зон доставки и дней недели (понедельник — район А, и т.д.)
- · Настройка тарифов: цена бутылки, залог, скидки за объём, B2B-цены
Готово, когда:- ✓ В каталоге 4+ позиции воды + сопутствующие
- ✓ Маркировано минимум 200 бутылок
- ✓ Зоны доставки разнесены по дням недели
- Дни 3–5: интеграции (платежи, ЭДО, 1С, скоринг)Платежи работают, ЭДО подключено, 1С интегрирована.
- · ЮKassa: регистрация магазина, KYC, привязка webhook (1 день)
- · Tinkoff Pay (опционально): альтернативный эквайринг
- · Контур.Диадок: договор, получение токена, тест отправки (3 дня)
- · 1С-Бухгалтерия: настройка REST API или 1С-Шины, тест webhook (1 день)
- · ОФД (Атол): регистрация ККТ, привязка к ЮKassa (2 дня)
- · СПАРК: получение API-ключа для скоринга B2B (опционально)
Готово, когда:- ✓ Тестовая оплата 10 ₽ прошла через ЮKassa
- ✓ Тестовый счёт-фактура отправлен в Диадок
- ✓ Webhook в 1С создал тестовую реализацию
- Дни 5–7: импорт базы клиентов, водители, маршрут, пилотный деньПеренесена база старых клиентов, обучены водители, первый рабочий день.
- · Импорт CSV-базы клиентов (имя, телефон, адрес, история подписок)
- · Автогеокодирование адресов (Mapbox + OSM), ручная проверка спорных
- · Перевод подписок в систему — клиентам уходит SMS «теперь управляйте подпиской в боте»
- · Регистрация водителей в TG-боте (нужен только Telegram-аккаунт)
- · Первый рабочий день: VRPTW рассчитал маршрут, водитель повёз, диспетчер смотрит карту
- · После дня: разбор инцидентов, корректировка зон/окон/тарифов
Готово, когда:- ✓ База клиентов в системе (300+ записей)
- ✓ Маршрут на 20+ адресов рассчитан и выполнен
- ✓ Все заказы дня закрыты, фото-отчёты собраны
- ✓ Сборы с дня сошлись со складом (Bottle Ledger в норме)
Когда наш продукт — не лучший выбор (и когда лучший)
Excel + WhatsApp + 1С отдельно
no-opКлассическая схема малого водного бизнеса: база клиентов в Excel, заказы по WhatsApp, бухгалтерия в 1С, маршрут диспетчер рисует на бумажке.
- + Стоимость $0 (всё уже есть)
- + Гибкость (любой каприз клиента — записал в блокнот)
- + Никакой кривой обучения
- − База клиентов не синхронизирована с заказами и 1С
- − Маршруты неоптимальны — пробег на 30–50% выше
- − Нет учёта тары (потери 5–15% бутылок в год)
- − Подписки невозможны (только разовые заказы)
- − При 200+ клиентах диспетчер тонет в WhatsApp-сообщениях
- − B2B нельзя (нет ЭДО, нет post-pay, нет договоров)
Наш вердикт:Работает до 100–150 клиентов, дальше любой рост ломает операцию. Сразу закладывайте платформу — переход с Excel позже стоит дороже.
Альтернатива выигрывает, когда: Если вы только тестируете категорию (1–2 месяца), без планов масштабироваться. Иначе — сразу на платформу.
Чужой агрегатор (Яндекс.Доставка, СберМаркет)
competitorИспользовать готовый агрегатор как канал продаж: ваши товары в их приложении, они доставляют, вы получаете заказ.
- + Готовая аудитория агрегатора
- + Не нужны свои водители (поначалу)
- + Простой старт
- − Комиссия 25–40% — съедает всю маржу водной категории
- − Нет подписки — каждый раз новый заказ
- − Нет учёта тары — агрегатор не понимает оборотную упаковку
- − Нет лояльности — клиент агрегатора, а не ваш
- − Нет B2B-сегмента (агрегаторы заточены на B2C)
- − Вы зависите от их правил и комиссий (могут поднять в любой момент)
Наш вердикт:Подходит для тестов спроса в новом районе. Для масштабирования — губительно из-за комиссий. Своя платформа окупается за 3–6 месяцев.
Альтернатива выигрывает, когда: Параллельно со своей платформой как доп. канал для разовых заказов. Но 80%+ выручки должны идти через свою.
Заказной IT-проект (фрилансеры / студия)
build-from-scratchНайти команду на Upwork или студию в РФ, сделать свою платформу с нуля по ТЗ.
- + Кастомизация под ваш бизнес 100%
- + Кодовая база ваша полностью
- + Можно учесть редкие требования
- − Бюджет $60k–$140k на старте
- − Срок 5–7 месяцев до первого реального заказа
- − Риски: студия не справится, фрилансеры исчезнут, ТЗ окажется неполным
- − Поддержка ляжет на вашу команду или подрядчика — это $3–5k/мес
- − Все ошибки набивать самим (мы их уже набили на 5+ запусках)
- − VRPTW, Bottle Ledger, ЭДО — это сложные модули, легко не получить с первого раза
Наш вердикт:Имеет смысл, если у вас есть очень специфические требования, которые не покрываются нашей платформой. В 95% случаев готовое решение быстрее, дешевле и надёжнее.
Альтернатива выигрывает, когда: Если вы — крупная сеть (5000+ клиентов в нескольких городах) с уникальными процессами. Малому и среднему бизнесу — готовое.
Готовая SaaS-платформа (зарубежная)
competitorПодписаться на готовый SaaS-сервис управления доставкой воды (например, Bluestar или Aquazil из США).
- + Быстрый старт
- + Не нужен свой сервер
- + Регулярные обновления
- − Нет интеграций с РФ-провайдерами (ЮKassa, Диадок, СБИС, 1С)
- − Интерфейс на английском, ваши клиенты не справятся
- − Цены в долларах ($200–500/мес), при текущем курсе — дорого
- − Данные клиентов хранятся за рубежом — нарушение 152-ФЗ
- − Нет ЭДО для РФ — B2B-сегмент потерян
- − Поддержка только англоязычная, в EU-часах
Наш вердикт:Зарубежные SaaS не работают для российского рынка из-за отсутствия интеграций с местными платёжными системами, ЭДО и 1С. Наша платформа специально заточена под РФ/СНГ.
Альтернатива выигрывает, когда: Если вы запускаете в США / Европе и не работаете с РФ. Иначе — наша платформа.
За что вы платите — и за что не платите
Покупка — что внутри
Покупка за $2 900 единоразово — полные исходники с коммерческой лицензией без роялти, без процентов с оборота, без лимитов по тенантам/городам. Развернуть можно на любой инфре: ваши VPS, Kubernetes, on-premise.
В комплекте 6 месяцев обновлений в подарок (новые фичи и баг-фиксы), сопровождение миграции на ваш сервер (1 день инженера) и доступ в наш приватный Git с тегами релизов.
Аренда — что внутри
Аренда $149/мес — это всё то же, что покупка, плюс инфра, мониторинг, бэкапы и обновления продукта на нашей стороне. Развёртывание за 3–7 минут от оплаты до боевого URL.
Можно перейти с аренды на покупку: до 80% арендных платежей первого года засчитываются в стоимость выкупа. То есть аренда — это рассрочка с правом отказа без штрафа.
TCO за первый год
Платформа (аренда 12 мес × $149) | $1 788 |
Setup (брендирование, домен, SSL) | $290 |
VPS (если покупка — Hetzner CX22) Не нужно при аренде — инфра на нашей стороне | $5–10/мес × 12 = $60–120 |
Telegram-бот / Mapbox / Sentry | $30–50/мес × 12 = $360–600 |
ЮKassa комиссия Зависит от объёма | ≈ 2.5% от оборота |
ЭДО Диадок / СБИС | $150–400/год |
1С-Бухгалтерия (своя) | от $200/год |
Первая партия бутылок (800 шт × $4) Капекс — оборачивается за 6–10 месяцев | ≈ $3 200 |
Кулера (20 шт × $40) | ≈ $800 |
Машина (своя или аренда) | от $300/мес |
Водители (2 человека × $700) | $1 400/мес = $16 800/год |
ИТОГО Year 1 (аренда + операционка) | ≈ $26 000–$30 000 |
Сравнение: разработка с нуля + операционка Year 1 | $60 000–$140 000 + $25k = $85k–$165k |
Что вы НЕ платите дополнительно
- Разработка подписочного движка с расходом по семьеГотовый rule-engine с UI и cron-jobs. Самостоятельная разработка — $15–25k и 2 месяца до боевого состояния.
- VRPTW-маршрутизация с OR-ToolsГотовый Python-микросервис, решает 80 точек на 3 машины за 2 секунды. Самостоятельная реализация — $8–12k и несколько недель тюнинга.
- Bottle Ledger (учёт оборотной тары)Append-only журнал с QR-сканированием. Самостоятельная разработка — $7–10k. Без него теряются 5–15% бутылок в год.
- Интеграция с ЭДО (Диадок + СБИС + 1С)Три готовых адаптера. Самостоятельная разработка + юрист на договор — $10–14k и 3+ недели.
- Telegram-бот с Apple/Google PayГотовый бот с inline-keyboard и ЮKassa Provider Token. Самостоятельная разработка — $7–10k.
- Per-tenant ценаСколько хотите городов / брендов / франчайзи — без доплат.
- DevOps на ставкеПри аренде — инфра на нашей стороне. При покупке — auto-deploy скрипты, можно без DevOps до 5k заказов/мес.
Честный список ограничений
Лучше сказать сейчас, чем выяснить через месяц после оплаты. Если ваш кейс упирается во что-то из списка ниже — напишите, предложим обходной путь или честно скажем «не наш».
- Производство воды (розлив, фильтрация)Мы — платформа доставки. У вас должно быть своё производство, поставщик или контракт с водозабором. Платформа учитывает приход с производства как «партии воды» в Bottle Ledger, но не управляет самим розливом. Это другая категория ПО (АСУ ТП), и мы не лезем туда.
- Мобильное приложение для клиента (iOS/Android)Сознательное решение: доставка воды — не импульсная категория, клиент живёт в Telegram-боте и веб-кабинете. Мобильное приложение требует разработки на двух платформах, прохождения App Store / Google Play модерации, обновлений в TestFlight — это $20–40k и 2–3 месяца. Если очень нужно — делаем как заказную доработку. Но в 95% случаев TG-бот + PWA закрывают потребность.
- Интеграция с фитнес-трекерами и весами для подсчёта водыЭто уход в категорию health-tech, к которой мы не готовились. Если ваш клиент носит Apple Watch и хочет, чтобы доставка воды коррелировала с его физической активностью — это интересно, но требует отдельной разработки (HealthKit, Google Fit, политики 152-ФЗ). Платформа закладывает «расход по семье» — этого достаточно для 99% клиентов.
- Маркетплейс воды от разных поставщиковПлатформа — это инструмент одного бренда (или сети одного владельца). Не маркетплейс типа «выбери из 50 производителей». Если хотите маркетплейс — это другая архитектура (модерация поставщиков, рейтинги, споры, эскроу-платежи). Мы туда не лезем, у вас будет либо своё производство, либо контракт с 2–4 поставщиками.
- Полноценная WMS (Warehouse Management System)Платформа закрывает простой учёт склада: остатки бутылок, инвентаризация по QR, погрузочные листы. Но полноценная WMS с ячеистым хранением, картами склада, штрих-кодами на коробках — это отдельный продукт (Wialon, 1С-Логистика). Если у вас склад 5000+ м² с десятками SKU — нужна интеграция с настоящей WMS, не наша мини-версия.
Термины, чтобы говорить с нами на одном языке
- Bottle Ledger
- Журнал учёта каждой 19L бутылки с серийником, владельцем, депозитом, историей.
- Внутренний append-only журнал событий по каждой бутылке: «выдана», «возвращена», «утилизирована». Никаких UPDATE — только INSERT с timestamp. Это даёт полный аудит и защищает от потерь.
- Asset Ledger
- Аналог Bottle Ledger для кулеров, помп, подставок — учёт оборудования.
- VRPTW
- Vehicle Routing Problem with Time Windows — задача маршрутизации с окнами доставки.
- Классическая задача исследования операций. Решается алгоритмами OR-Tools (Google) или Jsprit. На входе — заказы, машины, окна, грузоподъёмность. На выходе — оптимальные маршруты с минимумом пробега. Сложность NP-hard, но эвристики дают решение за секунды.
- Подписка с расходом по семье
- График доставки, рассчитанный из состава семьи (2 взрослых + ребёнок = ~1.3 бутылки в неделю).
- Тара-обмен
- Курьер привозит новую бутылку и забирает пустую — циркулярная экономика упаковки.
- Залог за бутылку
- Сумма (типично 200–300 ₽), которую клиент оставляет за каждую бутылку. Возвращается при сдаче.
- Wallet (кошелёк)
- Внутренний баланс клиента, с которого автоматически списываются оплаты за заказы.
- Post-pay
- Оплата после доставки (типично через 14 или 30 дней). Для B2B-клиентов.
- Кредитный лимит
- Максимальная сумма задолженности B2B-клиента перед отгрузкой требует оплаты.
- ЭДО (Электронный документооборот)
- Обмен счетами-фактурами, актами, УПД в электронном виде через Контур.Диадок, СБИС, 1С-ЭДО.
- УПД
- Универсальный передаточный документ — заменяет счёт-фактуру и накладную в одном.
- СПАРК / Контур.Фокус
- Сервисы скоринга юрлиц: финансы, риски, банкротства. Используются для B2B-аккаунтов.
- ОФД
- Оператор фискальных данных — посредник между ККТ и ФНС, обязателен по 54-ФЗ.
- СанПиН для кулеров
- Санитарные правила: чистка кулера обязательна раз в 12 месяцев.
- Multi-tenant
- Один экземпляр платформы обслуживает несколько брендов или городов с изоляцией данных.
- PWA
- Progressive Web App — веб-сайт, который добавляется на главный экран как приложение, без сторов.
- Telegram Provider Token
- Ключ ЮKassa для приёма платежей напрямую в Telegram-боте (Apple/Google Pay, карты).
Кому подходит «Доставка воды и напитков» — и как его обычно разворачивают.
2 бутылки 19L каждые 2 недели, Telegram-бот, Apple Pay — без головной боли
Двое взрослых, кофе по утрам, чай вечером. Расход — около 1 бутылки в неделю.
Премиум-вода, 5 бутылок в неделю, кулер в подарок, графика «по требованию»
Пара 40 лет + 3 детей (8, 12, 16 лет). Загородный дом 250м².
12 бутылок в неделю, оплата раз в месяц, ЭДО Диадок, кулер на каждый этаж
Офис 3 этажа, 35 сотрудников. Кулера на каждом этаже (3 шт).
Доставка в одно окно раз в неделю, единый счёт УК, индивидуальные подписки жильцов
ЖК «Восход» на 200 квартир, 80 из них — клиенты доставки воды.
Готовые сценарии — не надо собирать из частей.
- Веб-кабинет клиента + админка оператора
- Telegram-бот для самообслуживания и поддержки
- Полнофункциональная админ-панель оператора
- Маршрутизация курьеров + live-tracking
- Тарификация по зонам и весу
- Брендирование (логотип, цвета, шрифты, домен) — без правок исходников
- Локализация под русский + английский, легко добавить другие
Что спрашивают операторы перед запуском «Доставка воды и напитков»
Сколько бутылок нужно для старта?
Что с Telegram, если его заблокируют в моей стране?
Подойдёт ли платформа для доставки бутилированного пива/лимонадов/кофе?
Как платформа обрабатывает 152-ФЗ (персональные данные)?
Можно ли работать через ИП на УСН без онлайн-кассы?
Сколько водителей нужно для старта?
Как водитель регистрируется в системе?
Что если водитель потеряет телефон или сменит машину?
Поддерживает ли платформа несколько городов или регионов?
Что с зимней доставкой? Вода замерзает в машине.
Как работают возвраты денег при отказе клиента?
Что с B2B при срочной задержке оплаты?
Сколько занимает санитарная чистка кулера и кто её делает?
Можно ли подключить свой ОФД, если у меня уже есть договор?
Какие требования к VPS, если я покупаю исходники?
Поддерживается ли интеграция с системой охраны/умного дома?
Что с GDPR, если я хочу запуститься в EU?
Что я получаю при покупке: исходники или только бинарник?
Где физически работает мой деплой при аренде?
Сколько времени от заказа до боевого URL?
Можно подключить собственный домен и сертификат?
Как работают обновления продукта?
Что если мне нужны кастомные доработки?
Похожие в нише «Доставки»
Доставка готовой еды: рестораны, курьеры, клиент. Маршрутизация, оплата, чаевые, рейтинги.
Доставка продуктов из супермаркетов и dark store. Слоты, замены, корзина, аналитика SKU.
Аптеки + рецептурный контроль, верификация фармацевта, холодовая цепь, расписание.
C2C-доставка посылок, тарификация по весу/расстоянию, мультимодальные маршруты.
Курьерская доставка документов: подпись на месте, фото-подтверждение, юр-логирование.
Доставка алкоголя 18+ с верификацией возраста, гео-ограничения, time-windows.
Готовы запустить «Доставка воды и напитков» под своим брендом?
Аренда: 5 минут от заказа до боевого URL. Покупка: 1–5 рабочих дней.