wl·solution
Каталог · Доставки
Доставки

Доставка продуктов Express

Сервис, заточенный под реальную операционку супермаркета и dark store: слоты 15 мин / 1 ч / 3 ч с динамической мощностью, горячие замены SKU при отсутствии товара через чат с клиентом, весовые товары с холдом +15% и корректировкой суммы после взвешивания, отдельные роли «сборщик» и «курьер» с раздельными KPI. Прайсы и остатки тянутся из 1С/МойСклад каждые 3–5 минут — клиент не увидит «товар внезапно закончился» на оплате.

Доставка продуктов из супермаркетов и dark store. Слоты, замены, корзина, аналитика SKU.

WebiOSAndroidAdmin
Стек
Next.js · NestJS · Postgres
О продукте

«Доставка продуктов Express» — это не клон чек-аута интернет-магазина с курьером сверху. Это операционная система q-commerce: пять связанных продуктов, две роли в полевой команде (пикер и курьер), полная синхронизация остатков с кассовой системой магазина, поддержка dark store как отдельной сущности с собственной топологией стеллажей, и алгоритмы пакетной сборки нескольких заказов одним сборщиком.

Стек: Next.js 14 для веба и админок, React Native для мобильных, NestJS на бэке, Postgres 16 с PostGIS для зон и стеллажной топологии, Redis для очередей сборки, ClickHouse для аналитики SKU, Mapbox для маршрутизации. Деплой на ваше облако (Hetzner, OVH, Vultr) с авто-скейлом под пиковые часы (12:00 и 19:00 будни, 11:00–14:00 выходные).

При покупке — полные исходники, коммерческая лицензия без роялти, бесплатное брендирование, 6 месяцев обновлений. При аренде — то же плюс инфраструктура и обновления продукта на нашей стороне, развёртывание под ключ за 3–7 минут от оплаты.

Задача

Почему собственная доставка продуктов почти всегда буксует

Доставка продуктов — это не доставка еды с другим меню. Корзина в 40–80 SKU вместо 2–3 блюд, остатки меняются раз в минуты, четверть товара продаётся на вес, у магазина уже работают 1С/Set Retail/Frontol и их нельзя отключить, сборщик и курьер — это две разные роли с разными KPI и приложениями. Собственная разработка такого стека уходит на 10–18 месяцев и $250k+.

Готовое решение снимает эту специфику из коробки: остатки и прайсы синхронизируются с вашей кассой, замены SKU работают через чат с клиентом, весовой товар корректирует итоговый чек после взвешивания, dark store получает свою карту стеллажей.

  • Клиент заказал, а товара уже нет на складе
    Цена ошибки: 5–18% отказов на сборке, потеря клиента после первого инцидента
    Остатки тянутся из 1С/МойСклад каждые 3–5 минут, на оплате — холд резерва. Если товар всё же закончился — сборщик в один тап предлагает 2–3 замены, клиент подтверждает в чате.
  • Весовой товар (мясо, овощи, рыба) рушит итоговую сумму
    Цена ошибки: ручной перерасчёт, скандалы, возвраты
    При оформлении — оценочная цена и холд +15%. После взвешивания на кассе — точная сумма, авто-разморозка остатка холда. Клиент видит разбивку оценка/факт.
  • Сборщик и курьер — одно приложение, оба недовольны
    Цена ошибки: путаница в KPI, текучка, потеря 30+ минут на заказ
    Два разных приложения: пикер видит карту магазина и стеллажи, курьер — маршрут и точки выдачи. KPI и бонусы считаются раздельно.
  • Слоты доставки конфликтуют с реальной мощностью
    Цена ошибки: переполненные окна, отмены, штрафы клиентам
    Алгоритм слотов считает фактическую мощность пикеров и курьеров на час, авто-закрывает окна при превышении 90% загрузки.
  • Заказы нельзя пересобрать, если клиент передумал
    Цена ошибки: потеря клиента, ручное оформление возврата
    До сборки — клиент сам меняет корзину. Во время — через чат с пикером. После выдачи — частичный возврат с фото-актом.
  • Холодовая цепь не контролируется — за качество отвечает сборщик «честно»
    Цена ошибки: репутационные риски, претензии Роспотребнадзора
    Опциональные IoT-датчики на термо-сумках, температурный лог на каждый заказ. Авто-уведомление оператору при выходе за порог.
  • Аналитика магазина не отличает «онлайн» от офлайна
    Цена ошибки: невозможно посчитать ROI канала, неверные закупки
    ClickHouse-пайплайн складывает заказы по каналу, времени, корзине, маржинальности. Топ-100 SKU онлайн ≠ офлайн — закупки оптимизируются раздельно.
  • B2B-клиенты (офисы, отели) хотят счёт с НДС и лимит
    Цена ошибки: потеря B2B-канала, ручное оформление документов
    B2B-кабинет с лимитами, ролями, ЭДО через Диадок/СБИС. Счёт-фактура и УПД генерируются автоматически.
Сборка с нуля против готового

Своя разработка vs готовый стек: честная разбивка

Сборка такой платформы с нуля — это команда 8–12 человек на 10–18 месяцев. На бумаге выглядит управляемо; на практике 60% бюджета уходит на «мелочи»: интеграция с 1С, которая ломается каждое обновление; пересборка приложения пикера после первой недели в поле; стресс-тест пиковых часов; миграция остатков.

Готовый стек снимает 90% этой работы. Остаётся брендинг, подключение магазинов через готовые POS-коннекторы и настройка бизнес-правил.

Свой стек
10–18 месяцев
$250k–$520k
С wl-solution
5 минут — 5 дней
от $420/мес аренды или $8 400 с исходниками
ЭтапСвой стекС wl-solution
Клиентское приложение (iOS + Android)2 разработчика × 6 мес ≈ $84kуже в коробке
Приложение пикера со сканером1 разработчик × 4 мес ≈ $32kуже в коробке
Приложение курьера1 разработчик × 3 мес ≈ $24kуже в коробке
Кабинет магазина и dark store-режим1 фронт + 1 бэк × 3 мес ≈ $42kуже в коробке
Slot engine с динамической мощностью1 senior × 2 мес ≈ $24kготовый движок
POS-интеграции (1С, МойСклад, Set Retail, Frontol)$8k × 4 коннектора = $32k4 коннектора готовы
Замены SKU и чат сборщика1.5 мес команды ≈ $18kиз коробки
Холдовый платёж под весовой товар1 senior × 1 мес ≈ $12kиз коробки
ClickHouse-аналитика SKU1.5 мес bi-команды ≈ $20kпайплайн готов
Инфра, CI/CD, мониторинг$12k setup + DevOpsauto-deploy за 5 минут
Решение

Пять продуктов, которые работают как один организм

Все компоненты — клиент, сборщик, курьер, кабинет магазина, оператор сети — синхронизированы по событиям через единый движок заказов. Новый заказ из приложения мгновенно появляется в очереди сборщика, после сборки — в очереди курьера. Каждый статус виден всем участникам в реальном времени.

Платформа мультиарендная: один экземпляр обслуживает розничную сеть, dark store-стартап и гибрид одновременно. Тенант = магазин или бренд (свой логотип, домен, цены, ассортимент), при этом операционная команда сети видит всё в одной админке.

Слоты, ASAP и экспресс — три модели в одной

Окна 15 мин / 1 ч / 3 ч с динамическим открытием по мощности.

Slot engine считает фактическую мощность пикеров и курьеров на 3 часа вперёд по throughput последних 60 минут. При 90% загрузки окно закрывается, при простое — открываются экспресс-слоты.

ASAP для квик-коммерса (15–30 мин из dark store), стандартные слоты для большой корзины, гибкое расписание для премиум-сегмента.

Синхронизация с кассой каждые 3–5 минут

Остатки и прайсы — единый источник правды.

Готовые коннекторы к 1С:Розница, МойСклад, Set Retail, Frontol тянут остатки, цены, акции, скидки. Заказы возвращаются обратно как чеки с привязкой к сборщику.

Клиент не платит за товар, которого уже нет: холд резерва на оформлении, авто-снятие при отмене за 30 минут.

Замены SKU через чат с сборщиком

Сборщик и клиент договариваются без участия оператора.

Если товара нет — пикер в один тап получает 2–3 альтернативы из той же категории и тира цены (подбор по category_id + price_tier + brand_similarity на эмбеддингах).

Клиент подтверждает в чате или отказывается с частичным возвратом. Оператор подключается только при споре.

Пикер и курьер — две роли, два приложения

Раздельные KPI, бонусы, экраны.

Пикер видит карту магазина с топологией стеллажей и оптимальным маршрутом сборки. Курьер видит точки выдачи и оптимальный маршрут доставки.

Бонусы пикера: скорость сборки, процент замен, аккуратность. Бонусы курьера: точность по слоту, рейтинг доставки. Настраиваются в админке без правки кода.

Весовой товар без споров

Оценка → холд +15% → точная сумма после кассы.

При оформлении заказа клиент видит оценочную цену и холд +15%. После взвешивания на кассе магазина — webhook в нашу систему, точная сумма списывается, излишек холда возвращается клиенту.

Разбивка «оценка → факт» в чеке клиента: никаких скрытых сумм, никаких звонков «доплатите 137 рублей».

Dark store и розничный магазин в одной модели

Магазин может работать в любом из трёх режимов.

Розница с доставкой (пикер ходит по торговому залу), чистый dark store (топология стеллажей + только онлайн-витрина), гибрид (часть SKU в зале, часть в dark zone).

Топология стеллажей, ставки бонусов, SLA и слоты настраиваются на точку. Сеть может комбинировать форматы.

Принципы

Что мы держим в голове, проектируя продукт

  1. 01

    Касса — источник правды

    Остатки и цены не дублируются в нашу базу. Мы тянем их из 1С/Set Retail/Frontol и кешируем на 3–5 минут. Магазин продолжает работать со своей привычной системой, мы — поверх.

  2. 02

    Сборщик ≠ курьер

    Это разные роли, разные KPI, разные приложения. Мы видели слишком много проектов, где их слили в одну сущность — и оба недовольны. У нас сразу два приложения и два потока бонусов.

  3. 03

    Замена без оператора

    Сборщик и клиент договариваются в чате. Оператор подключается только при споре или возврате — он не диспетчер замен, у него своя работа.

  4. 04

    Слот честный или слота нет

    Если мощности пикеров и курьеров не хватает — слот закрывается. Не «продаём окно и разбираемся». Это убивает доверие и репутацию быстрее, чем что-либо ещё в q-commerce.

Возможности

Полный набор сценариев — без покупки модулей и плагинов

Каталог и заказы

Слой, через который клиент взаимодействует с ассортиментом. Здесь решается, останется ли клиент после первого заказа или уйдёт к Самокату.

Каталог с GS1-обогащением
Карточки товаров с фото, составом, КБЖУ, штрихкодом, аллергенами.

Авто-обогащение из GS1 Russia и Brand Analytics для новых SKU. Поиск с учётом синонимов и опечаток. Фильтры по бренду, диете, цене.

Картинки — через Cloudinary с responsive-обрезкой и WebP/AVIF. Карточка грузится за < 800 мс на 4G.

  • · Новый SKU автоматически получает фото и описание
  • · Конверсия поиск → корзина выше на 15–22% за счёт релевантности
// Postgres FTS + pg_trgm для опечаток
// Импорт по штрихкоду EAN-13, fallback на Brand Analytics
// GraphQL фронт ↔ NestJS бэк
Слоты с динамической мощностью
Окна 15 мин / 1 ч / 3 ч с авто-закрытием при 90% загрузки.

Slot engine считает фактический throughput пикеров и курьеров за последние 60 минут и прогнозирует на 3 часа вперёд. Экспресс-слоты автоматически открываются при простое.

Каждая зона города имеет свои слоты — близкие к dark store плотнее, дальние — реже.

  • · Нет переполненных окон и отмен
  • · Гибкая монетизация: экспресс-слот стоит дороже
// In-memory state в Redis, пересчёт каждые 30 сек
Замены SKU через чат сборщика
Сборщик в один тап предлагает 2–3 альтернативы из той же категории.

Подбор альтернатив по category_id + price_tier + brand_similarity на эмбеддингах. Клиент подтверждает в чате или отказывается с частичным возвратом — без участия оператора.

История замен записывается, аналитика показывает топ-проблемных SKU для закупок.

  • · Снижение отказов на сборке с 18% до 5–7%
  • · Меньше нагрузка на операторов поддержки
Корзина с весовым товаром
Холд +15% на оформлении, точная сумма после взвешивания.

Клиент видит оценочную цену с пометкой «вес примерный». Платёжный холд резервирует сумму +15%. Webhook на 1С после взвешивания на кассе корректирует сумму, разница возвращается клиенту до выдачи заказа.

Поддерживаются Stripe, ЮKassa, Tinkoff — все умеют capture с меньшей суммой.

  • · Прозрачность для клиента
  • · Никаких «доплатите наличными»
Частичный возврат и пересборка
До сборки клиент сам меняет корзину; во время — через чат; после — частичный возврат с фото-актом.

До начала сборки клиент свободно редактирует корзину в приложении. Во время сборки — через чат с пикером. После выдачи — частичный возврат с фото-актом.

Возврат уходит на карту через PSP с типизированным reason-кодом для аналитики.

  • · Снижение отмен заказов целиком
  • · Меньше работы оператору по разбору жалоб

Полевая команда

Сборщики и курьеры — два разных мира с разными приложениями, KPI и бонусами.

Приложение пикера
Карта магазина с топологией стеллажей и оптимальным маршрутом сборки.

Сканер штрихкодов, кнопка «нет в наличии» с авто-предложением замены, чат с клиентом. Оффлайн-сборка с синхронизацией при возврате связи.

Маршрут сборки строится по топологии стеллажей: минимальный путь по торговому залу или dark zone.

  • · Скорость сборки выше на 25–30% против бумажных списков
  • · Меньше ошибок в составе заказа
// React Native, оффлайн-режим через WatermelonDB
Приложение курьера
Маршрут доставки с учётом плотности заказов и термо-сумок.

Маршрут на Mapbox Directions с кластеризацией близких заказов. Фото-акт передачи, рейтинг получателя.

Поддержка термо-сумок с IoT-датчиками для замороженных и охлаждённых SKU.

  • · Заказов на курьер-час +20–35%
// VRPTW с фильтром по типу транспорта (вело/авто)
Пакетная сборка нескольких заказов
Один пикер собирает 2–4 близких заказа за один проход по магазину.

Алгоритм объединяет корзины с учётом стеллажной топологии и окон выдачи. Дельта пути ≤ 18% относительно одиночной сборки — иначе пакет не формируется.

Каждый заказ в пакете — со своей корзинкой/тарой; передача курьеру с подтверждением комплектности.

  • · Экономия ФОТ пикеров до 30%
  • · Больше заказов в час пик
Раздельные KPI и бонусы
Пикер: скорость, аккуратность, % замен. Курьер: точность по слоту, рейтинг.

Гибкие правила в админке: за заказ, за час, за SLA, за рейтинг. Можно настраивать на смену, точку, тип ТС.

Бонусы считаются раздельно — никаких «общая премия команде».

  • · Прозрачная мотивация
  • · Меньше текучка

Интеграции с магазином

Магазин уже работает на своей системе. Мы не вытесняем её — мы подключаемся.

1С:Розница — двусторонняя синхронизация
Остатки, цены, акции каждые 3–5 минут; заказы обратно как чеки.

REST-обмен через Web-расширение 1С (один файл, документация на 2 страницы). Webhooks по событиям изменения остатков для быстрой реакции.

Никаких правок в типовой конфигурации 1С — расширение работает поверх.

  • · Подключение за 2 часа на точку
  • · Никакого ручного импорта прайсов
// REST + webhooks
// Кеш остатков в Redis на 3–5 минут
МойСклад / Set Retail / Frontol
Готовые коннекторы к четырём POS-системам розницы.

Адаптер-паттерн позволяет добавить новую POS за один спринт. Можно использовать одновременно разные системы на разных точках сети.

При смене API провайдера обновляется только адаптер — клиент не видит ничего.

  • · Гибкость для сетей с разными системами на точках
ЭДО для B2B-клиентов
Счёт-фактура, УПД, акты через Диадок/СБИС.

B2B-кабинет с лимитами, ролями (закупщик / одобряющий), отгрузочными документами. Авто-генерация УПД и счетов при выдаче заказа.

Готовые SDK Контур.Диадок и СБИС — никаких самопальных интеграций с ЭДО-операторами.

  • · B2B-канал работает с первого дня
Опциональные IoT-датчики холодовой цепи
Bluefin или Daikin на термо-сумках, температурный лог на каждый заказ.

BLE-сканирование датчика при выдаче курьеру, загрузка лога после доставки. Авто-уведомление оператору при выходе за порог.

Опционально: можно не использовать, если в ассортименте нет термолабильных позиций.

  • · Защита от претензий и штрафов Роспотребнадзора

Аналитика и операционка

Магазин получает данные, которых у него никогда не было: онлайн-канал отдельно от офлайна, в реальном времени.

Аналитика SKU в реал-тайме
Топ продаваемых, маржинальных, проблемных SKU по часу/дню/каналу.

ClickHouse-пайплайн с материализованными view по часам. Отдельные топы для онлайн и офлайн — закупки оптимизируются раздельно.

Экспорт в Excel и Google Sheets для бухгалтерии и менеджеров категорий.

  • · Снижение out-of-stock
  • · Более точные закупки
Дашборд оператора
Карта города с курьерами, слоты, очередь сборки, alert-лента.

WebSocket-подписки на изменения, latency < 1 сек. Можно вмешаться в любую точку процесса: переназначить пикера, открыть слот, отменить заказ.

Alert-лента по проблемным заказам с типизированными причинами.

  • · Оператор видит всё на одном экране
Отчёты по точкам и сменам
Выручка, средний чек, замены, отмены, рейтинги — по точке/смене/сборщику/курьеру.

Шаблоны отчётов настраиваются в админке без правки кода. Экспорт в Excel.

Регулярные email-отчёты владельцу сети.

  • · Меньше ручной работы у бэк-офиса
Динамическое ценообразование (опционально)
Surge-наценка на доставку в пиковые часы; скидки на товары с близким сроком годности.

Правила в админке + webhook на 1С для синхронизации с офлайн-ценами. Можно ограничить по дням и категориям.

Защита от агрессии: лимит surge ≤ 1.5x по умолчанию.

  • · Экономика канала улучшается на 5–12%
Архитектура

Архитектура: q-commerce без бутылочных горлышек

Платформа собрана как набор слабосвязанных сервисов с чёткими границами. Каждый сервис независимо масштабируется под свою нагрузку: каталог и POS-синхронизация — под объёмы магазина, slot-engine — под пиковые часы заказов, picker-app — под одновременных сборщиков.

Один магазин на VPS 2 vCPU / 4 GB держит до 800 заказов в день. Сеть 50+ магазинов — кластер с горизонтальным скейлом и отдельным ClickHouse-узлом.

Customer API
Клиентское приложение и веб

Каталог, корзина, слоты, оплата, история. Stateless, кеш каталога в Redis на 60 сек.

Next.js 14 · NestJS · Redis
Picker Service
Приложение сборщика

Задачи на сборку, чат с клиентом, сканер, маршрут по стеллажам. WebSocket-сессии с sticky-routing по магазину.

NestJS · WebSocket · PostGIS
Courier Service
Приложение курьера

Маршрут доставки, точки выдачи, фото-акт, термо-логи. Push-уведомления через FCM/APNs.

NestJS · FCM · APNs
Slot Engine
Расчёт мощности и открытие/закрытие окон

In-memory state в Redis, пересчёт каждые 30 сек. Балансировка нагрузки по зонам.

Node.js · Redis
POS Gateway
Адаптеры к 1С, МойСклад, Set Retail, Frontol

Очередь на Redis Streams, retry с backoff, dead letter в Sentry. Адаптер-паттерн для новых POS.

NestJS · Redis Streams
Catalog Service
Карточки товаров и поиск

GS1-обогащение, полнотекст по trigram, материализация в Redis.

Postgres 16 · Redis
Order Service
Жизненный цикл заказа

Event-sourced состояния в Postgres, аудит в ClickHouse. Замены, частичные возвраты, статусы.

NestJS · Postgres · ClickHouse
Payment Service
Холд + capture после взвешивания

Идемпотентные операции, webhook от PSP с retry. Частичный возврат и эскроу.

Go · Postgres
Analytics Pipeline
ClickHouse-пайплайн SKU/час/канал

ReplacingMergeTree, материализованные view, шардирование по магазину.

ClickHouse · Kafka
Admin Panel
Кабинет оператора

Карта, слоты, очередь сборки, alert-лента, отчёты. Next.js SSR + WebSocket подписки.

Next.js 14 · TanStack Query

Поток данных

Клиент открывает каталог → Customer API спрашивает Catalog Service (кеш Redis) → выбирает слот через Slot Engine → создаёт заказ в Order Service → платежный холд через Payment Service.

Order Service ставит задачу в Picker Service → POS Gateway резервирует остатки в 1С → пикер собирает с чатом и заменами → передача в Courier Service.

Курьер доставляет → фото-акт → capture платежа через Payment Service → событие в Analytics Pipeline → дашборд оператора обновляется в реал-тайме.

Масштабирование

Один магазин на VPS 2 vCPU / 4 GB держит до 800 заказов в день. Сеть 50+ магазинов — кластер с горизонтальным скейлом фронтов, отдельным ClickHouse-узлом и шардированной Postgres-репликой.

Slot Engine — единая точка для региона, скейлится через Redis Cluster. POS Gateway — отдельные worker-ы на каждый тип POS.

Что ломается и как восстанавливаем

1С недоступна → переходим в read-only режим каталога, заказы продолжают приниматься с буферизацией. После восстановления — синхронизация задним числом.

Пикер потерял связь → оффлайн-сборка с синхронизацией при возврате связи. Курьер не вышел в смену → авто-переназначение через 5 минут.

PSP отвалился → заказ сохраняется со статусом «ожидает оплату», ретрай через 60 сек. Mapbox недоступен → fallback на OSM Routing.

Безопасность

TLS 1.3 везде. Платежи токенизируются через PSP — карты не хранятся в нашей базе. PCI DSS-ready контур для платёжного шлюза.

Сессии пикеров и курьеров — JWT с коротким TTL. Аудит всех изменений корзины и замен — в ClickHouse с retention 2 года. Доступ к B2B-кабинету — двухфакторный обязательно.

Интеграции

Готовые коннекторы

Что готово из коробки. Каждая интеграция — это форма в админке и тестовый прогон. Вы работаете с провайдером напрямую, мы даём готовый коннектор.

1С:РозницаPOS
Двусторонняя синхронизация остатков, цен, акций, заказов.
Самая распространённая система в РФ. Подключение через Web-расширение без правок в типовой конфигурации.
Подключение: 2 часа на точку
МойСкладPOS
Альтернатива 1С для малых сетей и dark store.
Облачная, простая в подключении, хорошо подходит для стартапов.
Подключение: 30 минут
Set RetailPOS
Корпоративная POS-система для крупных сетей.
Стандарт для сетей 50+ точек, сложная архитектура — мы её знаем.
Подключение: 1 рабочий день
FrontolPOS
Фронт-офис кассы с REST-обменом.
Распространён в региональных сетях.
Подключение: 1 рабочий день
GS1 Russiacatalog
Обогащение карточек товаров по штрихкоду EAN-13.
Новый SKU автоматически получает фото и описание — не нужно заполнять руками.
Подключение: 1 час
Brand Analyticscatalog
Данные по частным маркам и региональным брендам.
Fallback для SKU, которых нет в GS1.
Подключение: 1 час
Mapbox Directionsmaps
Маршрутизация курьеров с учётом ПДД, пробок, велодорожек.
Дешевле Google Maps в 4–6 раз при сравнимом качестве.
Подключение: 30 минут · $0.50 за 1000 запросов
Stripepayments
Холд + capture после взвешивания, частичный возврат.
Лучший для международных запусков.
Подключение: 1 час · 2.9% + 30¢
ЮKassapayments
Российский PSP с поддержкой холдов и СБП.
Покрывает все способы оплаты в РФ.
Подключение: 1–3 дня
СБПpayments
Платёж по QR-коду на дверях магазина.
До 50% клиентов в новых проектах выбирают СБП.
Подключение: Через ЮKassa/Tinkoff · 0.4–0.7%
Tinkoff Acquiringpayments
Эквайринг с холдом для весового товара.
Сильное API, быстрое подключение, низкие комиссии.
Подключение: 1–2 дня
Контур.Диадокedo
Электронные счета-фактуры и УПД для B2B.
Стандарт для B2B-клиентов.
Подключение: 1 рабочий день
СБИСedo
Альтернатива Диадоку для крупных клиентов.
Часто используется в государственных и корпоративных закупках.
Подключение: 1 рабочий день
Bluefin IoTiot
Температурные датчики на термо-сумках.
Защита от претензий по холодовой цепи.
Подключение: 1 час на калибровку · $30–80 за датчик
Daikin Cold Chainiot
Промышленные холодильные решения с API.
Для крупных dark store с серьёзным холодовым ассортиментом.
Подключение: 1 рабочий день
Firebase Cloud Messagingmobile
Push-уведомления на Android.
Бесплатно, стандарт.
Подключение: 1 час
APNsmobile
Push-уведомления на iOS.
Без них нет качественных уведомлений на iPhone.
Подключение: 2 часа
Twiliocomms
SMS и WhatsApp-уведомления о статусе заказа.
Глобальное покрытие, надёжная доставка.
Подключение: 1 час
Cloudinarymedia
CDN для фото товаров: WebP/AVIF, responsive.
Скорость карточки = конверсия.
Подключение: 30 минут
ClickHouseanalytics
OLAP-хранилище для аналитики SKU.
Сотни миллионов событий за копейки.
Подключение: Развёрнуто из коробки
Сценарии операторов

Кейсы, которые мы регулярно разворачиваем

Региональная сеть супермаркетов (12 точек)

Свой канал доставки вместо 25% комиссии Самокату

Сеть супермаркетов в Краснодаре хочет запустить доставку без зависимости от Самоката и Лавки. Уже работает 1С:Розница, две точки тестировали Delivery Club — забирает 25% комиссии.

Цель — собственный канал с подпиской на постоянных клиентов и средним чеком в 1.5 раза выше агрегаторов.

Аренда платформы за 1 день. Брендирование под их марку (логотип, цвета, домен) — параллельно.

Подключение 1С через коннектор за 2 часа на точку. Пилот на 3 точках первый месяц, затем масштабирование на остальные 9.

Через 3 месяца — запуск подписки «бесплатная доставка от 2000 ₽» с переводом 60% активных клиентов на recurring.

Что включаем
  • · POS-коннектор 1С:Розница
  • · Slot engine с динамической мощностью
  • · Подписочная модель
  • · B2B-кабинет (для офисов в перспективе)
Результат
  • · Доля собственного канала растёт с 0 до 35% за квартал
  • · Средний чек выше агрегаторного на 40%
  • · Комиссия 0% вместо 25%
Dark store-стартап в Москве

Запуск четырёх dark store с SLA 15 минут

Команда планирует запустить 4 dark store по Москве с гарантией доставки за 15 минут. Конкурируют с Самокатом и Лавкой в нишевом ассортименте (натуральные продукты, эко).

Покупка платформы с исходниками. Кастомизация UX под бренд за неделю.

Конфигурация dark store-режима с топологией стеллажей. Запуск первого dark store через 10 дней от старта.

Четвёртый dark store — через 6 недель. Маркетинг через таргет в районе обслуживания каждого dark store.

Что включаем
  • · Dark store-режим с топологией стеллажей
  • · Пакетная сборка
  • · Slot engine с ASAP 15 мин
  • · ClickHouse-аналитика по dark store
Результат
  • · SLA 15 минут в 92% случаев на первом dark store
  • · Средний чек 1800 ₽
  • · Маржинальность канала +18 п.п. к benchmark
Ограничения:SLA 15 минут требует плотности dark store — невыгодно в спальных районах с низким спросом
Гибрид: розничный магазин + dark store

Доставка из премиум-супермаркета без помех офлайну

Премиальный супермаркет в Питере хочет одновременно обслуживать офлайн-покупателей и онлайн-заказы из того же зала.

Аренда платформы. Конфигурация двух типов слотов: «обычные» 3 ч (сборка в зале) и «экспресс» 45 мин (онлайн-витрина с резервированием товара).

Пикер собирает в зале с расписанием по часам пик — не мешает офлайн-покупателям.

B2B-кабинет для местных офисов и отелей.

Что включаем
  • · Гибридный режим магазина
  • · Слоты по типам
  • · B2B-кабинет с ЭДО
Результат
  • · Онлайн-канал не давит на офлайн-выручку: 80% сборок вне пиков
  • · ROI канала за 4 месяца с учётом ФОТ пикеров
Корпоративные продуктовые наборы для офисов

B2B-подписка на еженедельные коробки

Локальная сеть здорового питания хочет добавить B2B-канал для офисов: подписка на еженедельные коробки фруктов, орехов, снеков.

Аренда + кастомизация B2B-кабинета. Лимиты на компанию, роли «закупщик / одобряющий», авто-генерация счетов и УПД через Диадок.

Подписка с фиксированным днём доставки и возможностью пропустить неделю.

Продажи через холодные звонки в HR-отделы и партнёрства с коворкингами.

Что включаем
  • · B2B-кабинет
  • · ЭДО через Диадок
  • · Подписочная модель
  • · Фиксированные слоты по дням недели
Результат
  • · 40 офисов за 3 месяца
  • · Recurring revenue $24k/мес
  • · Отток < 4%
План запуска

От оплаты до первого боевого заказа — 5–14 дней

Типовой план для команды без своей разработки. С нашей стороны: проджект-менеджер + DevOps + дизайнер брендинга на онбординге.

  1. День 1–2
    Развёртывание и брендинг
    • · Заполнить бриф: бренд, домен, цвета, e-mail оператора
    • · Получить доступ в админ-панель
    • · Сдать дизайн-кит (логотип, иконки) либо заказать дизайн
    • · Прописать домен → Let's Encrypt автоматически
    Готово, когда:
    • Тестовое приложение доступно под брендом
    • Админ-панель работает на admin.вашдомен.com
  2. День 3–7
    Подключение магазинов и платежей
    • · Подключить POS-коннектор (1С/МойСклад/Set Retail/Frontol) для пилотных магазинов
    • · Импорт каталога и остатков (полный + инкрементальный)
    • · Настроить тарифные зоны доставки и тарифы курьеров/пикеров
    • · Подключить эквайринг (ЮKassa/Stripe/Tinkoff)
    • · Тестовый заказ от оформления до выдачи
    Готово, когда:
    • Тестовый заказ проходит весь цикл
    • Возврат за тестовый заказ возвращается за 5 минут
  3. День 8–12
    Полевая команда и репетиция
    • · Обучение пикеров (приложение, сканер, чат, замены)
    • · Обучение курьеров (маршрут, термо-сумки, фото-акт)
    • · Тестовая смена с 10–20 заказами от сотрудников
    • · Настройка KPI и правил бонусов
    Готово, когда:
    • Минимум 5 пикеров и 5 курьеров прошли тестовую смену
    • Приложения одобрены в App Store / Google Play
  4. День 13–14
    Запуск на ограниченную аудиторию
    • · Открытие приёма заказов в одном районе
    • · Промокод на первый заказ
    • · Мониторинг slot-engine и очереди сборки
    • · Сбор обратной связи от первых 50 клиентов
    Готово, когда:
    • Первые 100 заказов без критичных инцидентов
    • NPS первой когорты ≥ 50
Миграция

Как перенести данные из текущей системы

Самописная админка на Bitrix + ручная диспетчеризация → wl-solution

Парсинг существующего каталога и пользовательской базы. Импорт через CSV / прямое подключение к Bitrix-БД.

POS-коннектор подключается параллельно к существующей 1С — без замены кассы.

Старая система может работать ещё несколько недель параллельно для контроля.

ИсточникУ насЗаметка
Bitrix каталогCatalog ServiceЧерез CSV или прямой импорт
Пользователи BitrixCustomer DBС перевыпуском паролей
Ручная диспетчеризацияSlot Engine + Picker Service
1С:Розница (уже есть)POS GatewayПодключение без замены
Сроки: 5–10 дней · Инструменты: CLI-импортёр CSV, Bitrix-плагин для прямого экспорта, Migration GUI в админке
Полностью у агрегаторов (Самокат / Лавка как партнёры) → wl-solution

Не выключаем агрегатор сразу. Запускаем собственный канал параллельно, переводим клиентов через бонусы и подписку.

Через 3 месяца — анализ доли каналов и решение по агрегатору (выключить или оставить как fallback).

ИсточникУ насЗаметка
Заказы из агрегатораOrder ServiceТолько новые, без миграции истории
База клиентов агрегатораCustomer DBНельзя — принадлежит агрегатору
Сроки: 3–7 дней · Инструменты: Channel-manager для опционального fallback
Альтернативы

Когда наш продукт — не лучший выбор (и когда лучший)

Собрать с нуля своей разработкой

build-from-scratch

Нанять команду 8–12 человек и потратить 10–18 месяцев на разработку платформы с нуля.

Плюсы
  • + Полный контроль над архитектурой
  • + Кастом под специфические требования
Минусы
  • $250k–$520k капитальных вложений до первого заказа
  • 10–18 месяцев без выручки
  • POS-интеграции переписываются на каждом обновлении 1С
  • Slot engine и dark store-режим — отдельные сложные модули

Наш вердикт:Имеет смысл, только если строите принципиально новый формат, который не вписывается в существующие модели. В 95% случаев — нет.

Альтернатива выигрывает, когда: Уникальная бизнес-модель + деньги на 2 года разработки без выручки.

Open-source (Grocy, Spree)

open-source

Использовать готовое open-source-решение для электронной коммерции и дописать недостающее.

Плюсы
  • + Бесплатная лицензия
  • + Можно увидеть код и изменить
Минусы
  • Нет коннекторов к 1С/Set Retail — придётся писать с нуля
  • Нет разделения пикер/курьер
  • Слоты без динамической мощности
  • Замены SKU через чат отсутствуют

Наш вердикт:Подходит для пет-проекта или прототипа. Для прода с реальной выручкой — нет.

Альтернатива выигрывает, когда: Один dark store, команда разработчиков-энтузиастов, готовых дописывать всю специфику.

Только агрегаторы (Самокат, Лавка, Купер)

no-op

Не запускать свой канал, остаться партнёром агрегаторов.

Плюсы
  • + Быстрый старт без инфраструктуры
  • + Трафик из готовой аудитории агрегатора
Минусы
  • Комиссия 25–30% от каждого заказа
  • Клиент принадлежит агрегатору — нет своей базы
  • Нет B2B-канала
  • Нет данных для лояльности и retention

Наш вердикт:Хороший канал для дополнительной выручки, но не должен быть единственным.

Альтернатива выигрывает, когда: Один магазин, нет бренда и маркетингового бюджета на свой канал.

Кастомный подряд (студия на заказ)

build-from-scratch

Заказать разработку у внешней студии.

Плюсы
  • + Не нужна in-house команда
  • + Можно зафиксировать бюджет
Минусы
  • $80k–$220k и 6–10 месяцев против $8 400 и 1–5 дней
  • Зависимость от подрядчика на поддержку
  • Качество кода — лотерея
  • Готовые коннекторы к 1С придётся писать заново

Наш вердикт:Дольше и дороже готового стека, без явных преимуществ.

Стоимость владения

За что вы платите — и за что не платите

Покупка — что внутри

Покупка $8 400 — единовременно. Получаете полные исходники, коммерческую лицензию без роялти, бесплатное брендирование и 6 месяцев обновлений.

Хостинг разворачиваете на своих VPS (Hetzner/OVH/Vultr) — это $50–120/мес в зависимости от объёма заказов.

Аренда — что внутри

Аренда $420/мес — развёртывание за 5 минут от оплаты. Инфраструктура, мониторинг, обновления продукта — на нашей стороне.

Подходит для быстрого старта и проверки рынка. В любой момент можно перейти на покупку с зачётом части арендной платы.

TCO за первый год

Аренда платформы (12 мес)
Инфра и обновления включены
$5 040
Покупка платформы с исходниками
Бессрочно, без роялти
$8 400 единовременно
Хостинг (только при покупке)
Hetzner / OVH / Vultr
$50–120/мес
Брендирование
Базовое бесплатно
$0–2 400
Публикация в App Store / Google Play
$99 Apple + $25 Google
$124 единовременно
Платёжный шлюз
ЮKassa/Stripe стандарт
процент с оборота

Что вы НЕ платите дополнительно

  • Своя разработка POS-интеграций
    $30k+ только на 1С отдельно — у нас 4 коннектора в коробке.
  • Доработка под dark store
    Топология стеллажей и пакетная сборка — это 2 месяца команды с нуля.
  • Аналитика SKU в ClickHouse
    Пайплайн с материализованными view — 1.5 месяца bi-команды.
  • Постоянные обновления POS
    1С и Set Retail обновляются — коннекторы ломаются. Мы держим их актуальными.
Что мы не делаем

Честный список ограничений

Лучше сказать сейчас, чем выяснить через месяц после оплаты. Если ваш кейс упирается во что-то из списка ниже — напишите, предложим обходной путь или честно скажем «не наш».

  • Заменить вашу 1С или Set Retail
    Это рискованно для офлайн-выручки. Мы синхронизируемся с вашей кассой, а не вытесняем её.
  • Делать собственный POS для фронта кассы
    Это другой продукт. У вас уже работает Frontol/Set Retail — мы с ним дружим, а не конкурируем.
  • Гарантировать SLA 15 минут на любой геозоне
    SLA — функция плотности dark store и курьеров, а не софта. Мы даём инструменты, чтобы вы выдерживали свой SLA.
  • Управлять закупками и приёмкой товара
    Это зона WMS/ERP вашего магазина. Мы только обслуживаем онлайн-канал поверх их данных.
  • Подменять Роспотребнадзор по холодовой цепи
    Опциональные IoT-датчики дают логи и алерты, но контроль качества — на стороне магазина и регулятора.
Глоссарий

Термины, чтобы говорить с нами на одном языке

Dark store
Магазин-склад без витрины для покупателей, обслуживающий только онлайн-заказы.
Топология оптимизирована под сборку, не под розничное хождение. Обычно — 200–600 м² в спальном районе с плотной аудиторией.
Slot engine
Движок, рассчитывающий доступные окна доставки по фактической мощности пикеров и курьеров.
Пикер (picker)
Сотрудник магазина, собирающий заказ по корзине клиента. Отдельная роль от курьера.
Замена SKU
Подбор альтернативного товара, когда оригинал отсутствует. В нашей системе — через чат сборщика с клиентом.
Весовой товар
Товар с переменным весом (мясо, овощи, фрукты), точная цена которого известна после взвешивания. Требует холда платежа +15%.
Q-commerce / Квик-коммерс
Модель доставки за 15–30 минут из dark store или магазина.
Отличается от обычной доставки сжатым SLA и плотностью точек обслуживания.
Пакетная сборка
Сборка нескольких близких заказов одним пикером за один проход по магазину.
Топология стеллажей
Карта расположения товаров в магазине, по которой строится оптимальный маршрут сборки.
Холодовая цепь
Контроль температуры товара от витрины до доставки. Требует термо-сумок и опциональных IoT-датчиков.
GS1
Международная система штрихкодов EAN/UPC. GS1 Russia — каталог обогащения карточек по штрихкоду.
ЭДО (Диадок/СБИС)
Электронный документооборот для B2B: счета-фактуры, УПД, акты без бумаги.
Channel manager
Модуль синхронизации заказов между собственным каналом и агрегаторами (Самокат, Лавка, Купер).
Surge-наценка
Динамическая надбавка к стоимости доставки в пиковые часы или плохую погоду.
B2B-кабинет
Раздел для корпоративных клиентов: лимиты, роли, ЭДО, отгрузочные документы.
Сценарии использования

Кому подходит «Доставка продуктов Express» — и как его обычно разворачивают.

Свой канал доставки вместо 25% комиссии Самокату

Сеть супермаркетов в Краснодаре хочет запустить доставку без зависимости от Самоката и Лавки. Уже работает 1С:Розница, две точки тестировали Delivery Club — забирает 25% комиссии.

Запуск четырёх dark store с SLA 15 минут

Команда планирует запустить 4 dark store по Москве с гарантией доставки за 15 минут. Конкурируют с Самокатом и Лавкой в нишевом ассортименте (натуральные продукты, эко).

Доставка из премиум-супермаркета без помех офлайну

Премиальный супермаркет в Питере хочет одновременно обслуживать офлайн-покупателей и онлайн-заказы из того же зала.

B2B-подписка на еженедельные коробки

Локальная сеть здорового питания хочет добавить B2B-канал для офисов: подписка на еженедельные коробки фруктов, орехов, снеков.

Что внутри

Готовые сценарии — не надо собирать из частей.

  • Веб-кабинет клиента + админка оператора
  • iOS-приложение (Swift / React Native)
  • Android-приложение (Kotlin / React Native)
  • Полнофункциональная админ-панель оператора
  • Маршрутизация курьеров + live-tracking
  • Тарификация по зонам и весу
  • Брендирование (логотип, цвета, шрифты, домен) — без правок исходников
  • Локализация под русский + английский, легко добавить другие
Частые вопросы

Что спрашивают операторы перед запуском «Доставка продуктов Express»

За сколько реально запустить с нашим магазином и кассой?
1–3 дня для одной точки с 1С/МойСклад. Сеть 10+ магазинов — за 1–2 недели с обучением полевой команды.
Что с весовым товаром — реально работает?
Да, в коробке. При оформлении — оценочная цена и холд +15%. После взвешивания на кассе — webhook корректирует сумму, излишек холда возвращается клиенту.
Сможем ли мы отказаться от Самоката и Лавки?
Сможете, если есть бренд и трафик. Можете оставить их как fallback на пиковые часы через channel-manager.
Как замены SKU работают на практике?
Сборщик видит «товара нет», в один тап получает 3 предложения замены из той же категории. Отправляет клиенту в чат, тот подтверждает или отказывается. Без оператора.
Можно ли подключить нашу действующую программу лояльности?
Да. Готовые коннекторы к программам в 1С + универсальный webhook-API для своих систем. Бонусы списываются на оплате, начисляются после выдачи.
Что если 1С упала на час?
Платформа продолжает работать в read-only: каталог из кеша, заказы буферизуются. При восстановлении 1С — синхронизация задним числом.
Поддерживаются ли подписки на регулярные заказы?
Да. Клиент выбирает корзину и расписание, оплата списывается автоматически, заказ создаётся за день до доставки с возможностью изменить.
Можно ли использовать как dark store без розничного магазина?
Можно. Конфигурируете точку как dark store, задаёте топологию стеллажей, включаете режим «только онлайн». Витрина в магазине не открывается.
Нужно ли что-то менять в нашей 1С?
Только установить наше Web-расширение (1 файл, документация на 2 страницы). Никаких правок в типовой конфигурации.
Как считаются бонусы пикеров и курьеров?
Гибкие правила в админке: за заказ, за час, за SLA, за рейтинг, за объём чека. Можно настраивать на смену или постоянно.
Сколько одновременных заказов держит один dark store?
До 800 заказов в день на VPS 2 vCPU / 4 GB. С пакетной сборкой — до 1200. Дальше — горизонтальный скейл.
Есть ли API для интеграции в наш сайт?
Да. REST + webhook-API для встраивания корзины и слотов в существующий сайт. Можно использовать как backend без нашего фронта.
Поддержка СБП по QR на двери магазина?
Да. Клиент сканирует QR, оплачивает через любой банк, заказ создаётся в системе. Удобно для самовывоза.
Работает ли с малой розницей (1–3 точки)?
Идеально подходит. Аренда $420/мес окупается с 80–120 заказов в месяц. Не нужна команда — настраивает один человек.
Что с App Store / Google Play публикацией?
Платформа готова к публикации, мы помогаем с подготовкой материалов и модерацией. Аккаунты разработчика — на вашей стороне ($99 Apple + $25 Google).
Поддерживается ли франшизная модель сети?
Да. Каждая точка — отдельный тенант со своими настройками, ценами, командой. Головная компания видит свод по сети.
Возвраты — как клиент получает деньги назад?
На карту через PSP за 1–3 рабочих дня. Частичный возврат — в момент выдачи с фото-актом.
Можно ли продавать алкоголь через эту платформу?
Для алкоголя — отдельный продукт del-alc с верификацией возраста и интеграцией ЕГАИС. Можно использовать обе платформы под одним брендом.
Что я получаю при покупке: исходники или только бинарник?
При покупке вы получаете исходный код в приватный Git-репозиторий, коммерческую лицензию без роялти и образ контейнера в нашем Docker-registry. Срок поддержки — 6 месяцев бесплатно, дальше по тарифу.
Где физически работает мой деплой при аренде?
На VPS вашего облака на выбор: Hetzner, OVH, Vultr, DigitalOcean, Elistrax. Регион выбираете при заказе. Управление инфрой берём на себя: установка, TLS, мониторинг, авто-скейл.
Сколько времени от заказа до боевого URL?
Аренда — 3–7 минут до зелёного HTTPS. Покупка — 1–5 рабочих дней (зависит от того, нужен ли деплой на ваш собственный VPS или вы будете разворачивать сами).
Можно подключить собственный домен и сертификат?
Да. Указываете свой домен в кабинете — TLS-сертификат выпускается автоматически через Let's Encrypt (через Caddy) при первом HTTPS-запросе. Cloudflare включён в режиме оранжевого облака для DDoS-защиты.
Как работают обновления продукта?
Каждое обновление проходит через пайплайн backup → migrate → smoke-test → switch. При любом сбое автоматический откат на предыдущий контейнер из registry. Историю обновлений видно в админ-панели.
Что если мне нужны кастомные доработки?
Берём в работу как отдельный проект на базе вашей копии. SLA на критичные баги ядра — 1 рабочий день. Кастомные фичи оцениваем индивидуально.

Готовы запустить «Доставка продуктов Express» под своим брендом?

Аренда: 5 минут от заказа до боевого URL. Покупка: 1–5 рабочих дней.