8 мин

Веб-приложение для доставки цветов: заказы, статусы, курьеры

Разбираем, как спроектировать веб-приложение для доставки цветов: каталог букетов, статусы сборки, расписание курьеров и фото перед отправкой.

Веб-приложение для доставки цветов: заказы, статусы, курьеры

Что именно должно решать приложение доставки цветов

Веб-приложение для доставки цветов нужно не ради «красивого интерфейса», а чтобы каждый заказ проходил один понятный путь: принят, собран, проверен, передан курьеру, доставлен. Когда этого пути нет, начинаются звонки, уточнения в мессенджерах, потерянные адреса и спорные ситуации с качеством.

Обычно в системе работают несколько ролей, и у каждой своя зона ответственности:

  • Клиент выбирает букет, указывает адрес и время, получает статус.
  • Менеджер подтверждает детали, принимает оплату, решает вопросы с заменами.
  • Сборщик видит состав заказа, собирает букет, отмечает готовность.
  • Курьер получает маршрут и временные окна, подтверждает вручение.

Три проблемы, которые стоит закрыть с первого дня: путаница со статусами (кто и что сделал), забытые доставки (заказ есть, а в расписание никто не поставил) и отсутствие контроля качества (букет уехал, а фото никто не сделал). Еще важнее - одна версия правды. Если менеджер думает, что заказ «в пути», а курьер еще не выехал, клиенту сложно объяснить задержку.

Чтобы не переделывать все через месяц, фиксируйте базовые данные сразу. Они простые, но именно они спасают в спорных случаях:

  • Адрес доставки с подъездом, этажом, домофоном.
  • Дата и временное окно (например, 12:00-14:00) плюс «не раньше/не позже».
  • Контакты получателя и заказчика, и кто кому звонит.
  • Комментарии: открытка, «не звонить», «оставить у консьержа».
  • Замены: что разрешено менять и на каких условиях.

А вот что можно отложить, чтобы быстрее запуститься: сложные акции и промокоды, личный кабинет с историей, «умные» рекомендации букетов, интеграции с кассами и внешними CRM. Сначала важнее сделать так, чтобы заказ не терялся и всегда было видно, на каком он шаге.

Если вы собираете это в TakProsto, удобно начать с простого сценария по ролям и статусам, а затем через чат добавить расписание курьеров и правило: «без фото перед отправкой заказ не закрывается».

Минимальный запуск: заказы и статусы сборки

Для первого запуска важнее не витрина каталога, а контроль процесса: любой заказ должен быть виден, и его текущий этап должен читаться за секунду. Это быстрее дает пользу и снижает риск ошибок в пиковые часы.

Основа минимальной версии - короткая цепочка статусов, которую все видят одинаково. Обычно хватает таких: принят, в сборке, готов, передан курьеру, доставлен, отменен. Важно, чтобы статус был один, а не «где-то в комментариях». Иначе менеджер и сборщик быстро окажутся в разных реальностях.

Карточка заказа должна быть удобной для двух ролей: менеджера и сборщика. Менеджеру нужно быстро принять решение и связаться с клиентом. Сборщику - понять, что именно собрать и в каком порядке.

Хороший минимум в карточке:

  • клиент: имя, телефон, адрес и окно доставки
  • состав: выбранный букет, замены, записка, упаковка
  • оплата: способ и отметка «оплачено/не оплачено»
  • статус и ответственный: кто собирает, кто везет
  • заметки и «особые условия»: домофон, фото, без звонка

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

Чтобы разбирать спорные случаи, храните историю изменений статуса. Это несложно, но очень помогает: кто и когда перевел заказ в «готов», кто отметил «передан курьеру», какие были комментарии. В истории фиксируйте время, пользователя и старое/новое значение. Тогда если клиент говорит «курьер не приезжал», вы видите реальную цепочку действий, а не пытаетесь восстановить ее по памяти.

Данные и структура: что хранить, чтобы не переделывать

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

Базовый набор, который закрывает и каталог, и сборку, и доставку:

  • Каталог: букет (как шаблон) и варианты (размер, цена, доступность).
  • Заказ: сам заказ и позиции заказа (что именно купили).
  • Клиент и адрес: получатель, телефон, комментарии для курьера.
  • Доставка и курьер: отдельная запись доставки со временем, статусом и назначением курьера.
  • Контроль качества: фото перед отправкой и отметки проверки.

Чтобы дальше было удобно, разделяйте «что продаем» и «что реально собрали». В позиции заказа храните выбранный клиентом букет (ссылку на шаблон из каталога) и зафиксированную цену на момент покупки. А для сборки заведите поля «фактическая комплектация»: что заменили, что добавили, что убрали. Тогда вы спокойно учитываете ситуацию, когда розы закончились и их заменили на другой сорт после согласования.

Минимально обязательные поля, без которых все ломается:

Заказ: номер, дата, сумма, способ оплаты, статус.

Позиция заказа: товар (шаблон букета), количество, цена, комментарий сборщику.

Клиент/получатель: имя, телефон (как минимум один контакт), признак «анонимная доставка».

Адрес: город/район, улица, дом, квартира/офис, интервал доставки.

Доставка: привязка к заказу, статус доставки, плановое время, фактическое время, поле courier_id (может быть пустым).

Опциональные поля добавляйте так, чтобы они не мешали основному потоку: текст открытки, подпись, «не звонить в дверь», код домофона, фото подъезда, комментарий «позвонить за 10 минут». Для анонимной доставки важно хранить, кому можно звонить: получателю, отправителю или никому.

Допы (лента, шарики, открытка) лучше хранить отдельными строками как дополнительные позиции заказа, а не одним текстом. Тогда проще считать себестоимость, печатать сборочный лист и видеть, что забыли вложить.

Связка «заказ - доставка - курьер» должна работать даже если курьер назначается позже. Практично создавать запись доставки сразу при оформлении заказа, а назначение курьера и точное время фиксировать отдельными изменениями. Пример: заказ приняли в 10:15, поставили доставку на 13:00-14:00, курьера назначили в 12:30, а фото перед отправкой прикрепили в 12:55. Все шаги видны и не требуют перестраивать модель данных.

Каталог букетов: что показывать клиенту

Каталог - витрина, которая помогает выбрать букет за минуту, а не заставляет листать бесконечную ленту. В приложении лучше сразу заложить простую структуру: несколько понятных категорий (например, «Розы», «Сборные», «Подарочные наборы», «Свадебные») и быстрые фильтры, которые не перегружают экран.

Хорошо работают фильтры по цене и по поводу. Поводы удобнее делать как теги: «день рождения», «свидание», «маме», «коллеге», «извиниться». Поиск по названию тоже нужен, но не как главная опора. Люди чаще ищут «пионовидные» или «красный букет», поэтому стоит поддержать поиск по ключевым словам и тегам.

Карточка букета: что важно

В карточке не нужно «продавать текстом». Важно снять вопросы до оформления заказа. Обычно достаточно:

  • 3-5 фото (общий вид и крупный план)
  • состав (основные цветы и зелень) и размер (S/M/L или диаметр)
  • варианты: цветовая гамма, упаковка, открытка, доп. подарок
  • время сборки (например, 30-60 минут) и пометка «на ближайшее время», если применимо
  • условия замены: что может отличаться, если нет конкретного цветка

Наличие и ограничения

Если цветы сезонные или поставка нестабильна, лучше сказать об этом прямо: «сезонный состав, возможна замена» или «доступно по предзаказу на завтра». Для клиента это понятнее, чем «нет в наличии» в конце оформления. Можно также ограничивать выбор времени доставки, если букет требует долгой сборки.

Для постоянных клиентов полезен быстрый повтор заказа: копирование адреса и комментария к сборке, а также возможность повторить с заменой размера. Пример: клиентка раз в месяц заказывает «Нежный M» маме. Ей достаточно двух кликов, чтобы подтвердить тот же букет, а вам - сразу получить понятный заказ без уточнений.

Процесс сборки: от принятия заказа до передачи курьеру

Обновляйте без риска
Сделайте безопасное обновление: снимки и откат помогут править без страха.

Чтобы доставка работала без нервов, процесс сборки должен быть одинаковым для всех: администратор видит, что обещано клиенту, флорист понимает, что собирать, а курьер получает заказ вовремя. На практике это укладывается в простую цепочку статусов и понятные правила: кто и когда может их менять.

Базовый поток статусов

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

  • Новый: заказ создан, но еще не подтвержден
  • Подтвержден: согласовано время, состав и адрес
  • В сборке: флорист взял заказ в работу
  • Упакован: готов к выдаче
  • Передан курьеру: ответственность у курьера

Смысл не в количестве статусов, а в том, что каждый статус отвечает на один вопрос: что происходит сейчас и кто следующий.

Время сборки и обещанное время доставки

Фиксируйте два времени: обещанное время доставки и плановое время готовности (когда букет должен быть упакован). Плановую готовность удобно считать от обещанной доставки назад, с запасом на дорогу курьера.

Простой пример: клиент просит доставку к 18:00. Если дорога обычно занимает 35 минут, а упаковка и подготовка 10 минут, то плановая готовность должна быть не позже 17:10. Тогда курьер забирает в 17:20 и есть буфер на пробки.

Чтобы это работало, в карточке заказа храните: время подтверждения, время старта сборки, время упаковки и время передачи курьеру. По этим отметкам легко увидеть, где возникают задержки.

Примечания без потери деталей

Сделайте одно поле «Примечания клиента» (не редактируется после подтверждения) и одно поле «Комментарий команды» (для внутренних пометок). В примечаниях чаще всего встречаются: замена цветов, пожелания по упаковке, просьба позвонить перед доставкой, код домофона.

Хорошее правило: любые изменения после подтверждения фиксируются отдельной записью «Изменение», чтобы было видно, кто и когда согласовал замену и не возникало споров.

Отмены и возвраты без хаоса

Отмена и возврат должны быть отдельными состояниями, а не «сброшенным» статусом. Добавьте причины (например, клиент отменил, нет нужных цветов, не дозвонились, отказ при вручении) и итоговое действие: возврат денег, перенос доставки, повторная отправка.

Если вы собираете приложение через TakProsto, удобно сразу попросить в чате: «Добавь статусы отменен и возврат, причины и журнал изменений по заказу». Тогда в истории будет видно, почему заказ не дошел до этапа передачи курьеру.

Как через чат добавить расписание курьеров: шаг за шагом

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

Шаг 1: опишите правила назначения простыми фразами

Начните не с экранов, а с правил. Их удобно задать прямо в чате: по каким районам кто ездит, какие смены бывают, сколько заказов курьер может взять одновременно и как учитывать время доставки.

Хороший минимальный набор выглядит так: курьер работает в своей зоне, смена длится N часов, на ближайшие 60 минут берем только тех, кто свободен, при равных условиях выбираем меньшую загрузку.

Шаг 2: попросите добавить экран расписания

Дальше через чат попросите сделать экран, где диспетчер видит день как таблицу слотов. В TakProsto это удобно формулировать так: «Сделай экран расписания курьеров и форму редактирования смен».

На экране достаточно нескольких полей, чтобы он был полезным с первого дня:

  • смена (дата, начало, конец)
  • зона или район
  • доступность (на смене, перерыв, недоступен)
  • текущая загрузка (сколько активных доставок)
  • следующий свободный слот (время)

После этого добавьте в заказ карточку курьера: имя, телефон, статус доставки, время выезда и комментарий.

Шаг 3: автоподбор и ручная замена в два действия

Попросите систему при создании заказа предлагать курьера автоматически, но оставьте диспетчеру право быстро заменить. Удобная логика: кнопка «Подобрать курьера» показывает 3 лучших кандидата, а рядом есть «Назначить вручную» с поиском.

Чтобы не путаться, при замене сохраняйте причину (например, «затор», «курьер заболел») и фиксируйте время переназначения.

Шаг 4: заложите исключения, которые бывают каждый день

Проверьте сценарии, которые ломают расписание, и сразу попросите учесть их:

  • выходной или внезапная недоступность курьера
  • форс-мажор с переносом времени доставки
  • два заказа в один адрес (объединить в одну поездку)
  • перегруз в пиковые часы (ограничение по активным заказам)

Когда эти вещи учтены, расписание перестает быть «табличкой» и реально помогает доставлять вовремя.

Контроль качества: «фото перед отправкой»

Контроль качества с фото
Сделайте правило: без фото заказ не уходит курьеру, все по ролям.

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

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

Чтобы фото действительно помогало, задайте короткий стандарт, одинаковый для всех заказов. Чаще всего хватает 2-3 снимков:

  • букет целиком (видно форму, высоту, обертку)
  • крупный план ключевых цветов и декора (видно качество)
  • открытка и текст (если есть), чтобы исключить опечатки

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

Полезно добавить два статуса: «Фото загружено» и «Фото подтверждено». Если менеджер отклоняет, заказ не должен уходить в доставку. Вместо этого сделайте понятное действие «Вернуть на доработку» с причиной (например, «не тот цвет ленты», «нет открытки», «пятна на упаковке»).

Фото стоит хранить прямо внутри заказа как отдельные вложения с временем, автором и комментарием. Для порядка настройте доступ по ролям:

  • сборщик: загрузка и просмотр своих заказов
  • менеджер: просмотр всех, подтверждение и отклонение
  • курьер: только просмотр подтвержденного фото (без возможности менять)
  • клиент (по желанию): показ одного итогового снимка без внутренних комментариев

Если вы собираете приложение в TakProsto через чат, попросите сделать блок «Фото перед отправкой» в карточке заказа, добавить обязательность фото для определенных статусов и правила видимости по ролям. Тогда контроль качества станет частью процесса, а не дополнительной нагрузкой.

Уведомления и статусы: чтобы все видели одно и то же

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

Статусы, которые понимают все

Клиенту важны простые и честные этапы: заказ принят, готовится, в пути, доставлен. Иногда нужен промежуточный статус вроде «ожидаем уточнения» (например, если нет выбранных цветов и требуется замена). Главное правило: статус меняется только при реальном событии, а не «по плану».

Команде статусы обычно чуть детальнее, чтобы были видны узкие места: «в сборке», «ожидает фото», «ожидает курьера», «курьер назначен». Но не делайте отдельную «внутреннюю» вселенную. Проще держать один набор статусов и раздать разные права и видимость полей.

Какие уведомления отправлять и куда

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

Клиенту обычно достаточно 3-4 сообщений за весь заказ:

  • подтверждение: заказ принят и время доставки зафиксировано
  • вопрос: если нужна замена или уточнение адреса
  • старт доставки: «курьер выехал» с окном времени
  • финал: «доставлено» (при необходимости с отметкой времени)

Команде важны уведомления, которые помогают не сорвать срок: срочные заказы, просрочка этапа (например, сборка дольше 20 минут), замена курьера, отмена или смена времени. Представьте ситуацию: флорист отметил «готово», но курьер задержался. Тогда система должна подсветить риск и предложить действие: переназначить курьера или согласовать новое окно с клиентом.

Чтобы уведомления не превратились в шум, задайте простые правила: отправляйте только изменения статуса и критические отклонения, объединяйте мелкие события в одно сообщение, включайте «тихий режим» ночью и делайте понятные настройки для роли (клиент, флорист, курьер, администратор).

Если вы собираете это в TakProsto, удобно начать с одного статуса на событие и сразу описать условия отправки: «когда меняется статус на X, отправь уведомление в приложении и, если отмечено, SMS».

Пример рабочего дня: один заказ от оформления до вручения

Расписание курьеров без таблиц
Добавьте расписание смен, зоны и быстрый подбор курьера прямо из карточки заказа.

Утро, 09:10. Клиент оформляет заказ: букет «Нежный розовый», доставка сегодня к 12:00, адрес офиса, комментарий: «позвонить за 5 минут». Заказ сразу появляется у менеджера со статусом «Новый» и временем доставки.

Менеджер открывает карточку заказа и видит: состав букета, сумму, пожелания, выбранный интервал и контакт получателя. В 09:15 менеджер созванивается с клиентом. Выясняется, что нужной эустомы нет, но можно заменить на похожую по цвету. Менеджер фиксирует замену прямо в заказе (чтобы сборщик не гадал) и меняет позицию в составе. Клиент просит перенести доставку на 12:30. Менеджер меняет время и переводит заказ в статус «Подтвержден».

Дальше менеджер ставит заказ в работу: статус «В сборке» и назначает сборщика. Если у вас есть правила, например «заказы на ближайшие 2 часа всегда в приоритете», это удобно показывать меткой или сортировкой в очереди.

К 10:40 сборщик заканчивает букет, отмечает «Собрано» и добавляет «фото перед отправкой». Фото нужно не для контроля ради контроля, а чтобы:

  • менеджер быстро подтвердил, что все верно по замене и открытке
  • клиенту можно было показать подтверждение в спорных случаях
  • в команде была одна версия правды

Менеджер в 10:45 проверяет фото, видит, что лента не того оттенка, и просит поправить это комментарием в карточке. Через 10 минут сборщик обновляет фото, и менеджер переводит заказ в статус «Готов к выдаче курьеру».

В 11:20 курьер получает задачу в своем списке: адрес, время 12:30, контакт, пометка «позвонить за 5 минут» и кнопки статусов. Курьер забирает букет и отмечает «В пути». В 12:25 отмечает «На месте», звонит получателю. В 12:33 вручает и ставит «Доставлено», добавляя короткую заметку (например, «вручил охране, получатель спустился через 2 минуты»).

Такой сценарий легко собрать в TakProsto: начинаете с заказов и статусов, а затем через чат добавляете поля для замен, загрузку фото и экран курьера с кнопками «В пути» и «Доставлено».

Чеклист перед запуском и следующие шаги

Перед запуском важнее не доделать еще одну кнопку, а убрать то, что сломает работу в первый же день. Чаще всего проблемы три: статусов сделали слишком много (никто не понимает, какой выбрать), у заказа нет конкретного ответственного и нет истории изменений (почему поменяли адрес, кто сдвинул время, где потерялось фото).

Быстрый чеклист перед стартом

Пройдитесь по этим пунктам и исправьте слабые места до того, как подключите реальных клиентов:

  • Статусы: 6-8 понятных шагов без дублей (принят, в сборке, ожидает фото, передан курьеру, доставлен, отменен).
  • Роли и права: кто может менять адрес, время, состав букета, а кто только читает.
  • Контроль качества: обязательное «фото перед отправкой» для определенных заказов (например, дорогие букеты или корпоративные).
  • Курьеры: расписание, зоны и понятное правило назначения (вручную или автоматически по свободному).
  • Просрочки: простой отчет или список «горит сейчас» по сборке и доставке.

После этого прогоните приложение на реальных сценариях. Хороший минимум - 10-20 тестовых заказов, где вы специально создаете неудобные ситуации: клиент меняет адрес после оплаты, сборщик заменяет цветы из-за отсутствия на складе, курьер задерживается, фото не загружено, заказ отменяют за 5 минут до выезда. Проверьте, что в каждом случае ясно: кто отвечает, какой статус ставить и что видит администратор.

Следующие шаги после первого запуска

Когда базовый процесс работает стабильно, добавляйте функции, которые дают деньги или экономят время:

  • отчеты: причины отмен, среднее время сборки, просрочки по курьерам
  • акции: промокоды, подарки к заказу, условия бесплатной доставки
  • повторные заказы: «заказать снова», шаблоны для корпоративных клиентов
  • интеграции: оплата, SMS/мессенджеры, печать наклеек и чеков
  • настройки каталога: сезонные подборки и быстрые замены позиций

Если вы собираете прототип через TakProsto, проще всего описать в чате экраны и правила (статусы, права, когда требовать фото, как назначать курьера), включить planning mode и согласовать логику до деталей. А когда процесс «устаканится», можно экспортировать исходники, развернуть проект с хостингом и подключить свой домен - и уже дальше развивать продукт без пауз. Если нужно, ориентируйтесь на takprosto.ai как на базовую площадку, где удобно итеративно добавлять функции по мере роста бизнеса.

FAQ

Что в первую очередь должно решать приложение для доставки цветов?

Минимально нужно провести заказ по понятной цепочке: приняли, собрали, проверили, передали курьеру, доставили. Если на каждом шаге есть ответственный и один общий статус, пропадают звонки «а где заказ» и снижается число ошибок.

Какие статусы стоит сделать в самом начале?

Хватит 6–8 статусов, которые отражают реальные действия: новый/принят, подтвержден, в сборке, готов (или упакован), передан курьеру, в пути, доставлен, отменен. Главное — чтобы статус менялся только после факта, а не «по плану».

Как не потерять важные комментарии и изменения по заказу?

Сделайте два блока: «примечания клиента» и «комментарий команды». Примечания клиента лучше фиксировать после подтверждения и не переписывать, а изменения в заказе оформлять отдельной записью, чтобы было видно, кто и когда согласовал замену или перенос времени.

Какие данные в заказе нельзя откладывать «на потом»?

Обязательны адрес с деталями (подъезд, этаж, домофон), окно доставки и отметка «не раньше/не позже», контакты заказчика и получателя, состав и цена на момент заказа, оплата и один текущий статус. Эти поля чаще всего спасают в спорных ситуациях и при передаче заказа между ролями.

Как правильно хранить замены цветов и фактический состав букета?

Разделяйте «что продаем» и «что реально собрали». В заказе фиксируйте выбранный букет и цену, а в фактической комплектации — согласованные замены и изменения. Тогда вы сможете честно объяснить клиенту, что именно уехало, и не сломаете учет при росте.

Нужно ли заводить отдельную сущность «доставка», если курьеры появятся позже?

Создайте отдельную запись «доставка», привязанную к заказу, сразу при оформлении. Курьера можно назначать позже, но у доставки должны быть окно, статус и плановое/фактическое время — так расписание и контроль просрочек появятся без переделки модели.

Как внедрить правило «фото перед отправкой» так, чтобы оно работало, а не мешало?

Определите одну точку контроля: после упаковки, но до передачи курьеру. Сделайте правило, что без загруженного фото заказ не может перейти в этап передачи курьеру, и храните у фото автора, время и короткий комментарий — тогда это реально снижает споры.

С чего начать расписание курьеров и назначение доставок?

Начните с простых правил: зоны/районы, смены, максимальная загрузка и ограничение для ближайшего часа. Затем добавьте экран дня со слотами и в карточке заказа кнопку автоподбора курьера с возможностью быстрой ручной замены и фиксацией причины переназначения.

Какие уведомления реально нужны, чтобы не создать «шум»?

Клиенту обычно достаточно подтверждения, сообщения при вопросе по замене, уведомления «курьер выехал» и «доставлено». Команде важнее уведомления о просрочках, переносах и смене курьера; если сообщений слишком много, люди перестают их читать и снова начинается хаос.

Что лучше всего попросить TakProsto сделать через чат на первом этапе?

Попросите сделать заказы, роли и права, статусы, историю изменений и обязательность фото для нужных этапов. Дальше добавляйте расписание курьеров, экран курьера с кнопками статусов и правила автоподбора; лучше идти маленькими шагами и проверять на 10–20 тестовых заказах с неудобными сценариями.

Похожие статьи