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

Проблемы в химчистке обычно начинаются там, где информация разбросана: бумажные квитанции, фото в телефоне, переписка в мессенджере, устные договоренности. В итоге съезжают сроки, путаются вещи, а спор с клиентом превращается в «кто что говорил». Поэтому веб-приложение для химчистки в первую очередь должно собрать процесс в одну понятную цепочку: прием -> производство -> контроль -> выдача.
В работе чаще всего есть три роли. Приемщик оформляет заказ и общается с клиентом. Производство видит, что именно делать, и отмечает прогресс. Администратор настраивает услуги, цены, статусы, шаблоны сообщений и следит за отчетностью. Даже если в маленькой точке роли смешаны, интерфейс лучше все равно разделять по задачам: «принять», «в работе», «контроль и финансы».
Самое важное фиксируется в момент приемки. Это не формальность, а страховка от споров. Минимум, который стоит сделать обязательным:
Пример: клиент приносит пальто и платье. По пальто фиксируете «пуговицы ослаблены» и «пятно у манжеты». По платью - «деликатная ткань» и «риск усадки». Эти же формулировки видит мастер, а клиент получает квитанцию с тем же смыслом.
Границы MVP держите жесткими. Сначала достаточно приемки, списка заказов, статусов и выдачи, плюс простых уведомлений. Склад химии, сложные скидки, интеграции с кассой и глубокая аналитика подождут, пока не появится стабильный поток данных.
Основа учета проста: один заказ может включать несколько вещей, а у каждой вещи свои пятна и риски. Такая структура не дает перепутать цены, сроки и ответственность, когда клиент приносит пакет одежды.
Для веб-приложения для химчистки удобно держать ядро из сущностей: клиент, заказ, позиция (вещь), пятно, риск, оплата. Заказ хранит общие параметры (кто сдал, когда, общий комментарий), а позиция - конкретную вещь и ее обработку.
Связь почти всегда «один заказ - много позиций». Клиент оформляет один заказ, а внутри вы добавляете 2-10 позиций: «пальто», «брюки», «ковер». Клиенту на выдаче удобнее видеть один заказ с деталями, а производство работает по позициям.
Пример: «пуховик» и «платье» идут как один заказ, но две позиции. У пуховика отмечено «пятно: жир на рукаве» и «риск: возможна потеря объема наполнителя». У платья - «пятно: вино» и «риск: усадка ткани». Приемка фиксирует реальность, производство видит план действий.
Для позиции обычно хватает:
Пятна и риски лучше хранить отдельными записями, привязанными к позиции. Тогда их можно закрывать по мере обработки, добавлять фото и не превращать карточку вещи в длинный текст.
Фото и файлы храните как вложения к заказу или позиции (кто загрузил, когда, подпись). Текстовые комментарии не смешивайте с системными отметками: отдельно «заметка приемщика», отдельно «служебная причина риска», отдельно «пожелание клиента». Это экономит время в спорных случаях.
Статус должен отвечать на один вопрос: что делать дальше и кто отвечает. Для учета заказов химчистки начните с короткого маршрута, понятного всем.
Базовый набор статусов:
Частая ситуация: часть вещей готова раньше. Поэтому удобнее хранить статусы на уровне позиций, а общий статус заказа считать по правилу. Например, заказ становится «Готов», только когда все позиции «Готовы» или «Выданы». Если одна позиция уже «Готова», а другая «В работе», заказ остается «В работе», но приемка видит возможность частичной выдачи.
Нестандартные случаи продумайте заранее, чтобы они не ломали маршрут. Отмена чаще всего возможна до начала работ. После начала работ лучше фиксировать «Претензия» или «Возврат» с причиной и комментарием. Для возврата полезны обязательные поля «кто принял» и «что дальше» (переделка, скидка, списание). Для претензии добавьте требование фото или заметки, иначе это быстро станет пустой меткой.
Чтобы не было хаоса, задайте правила переходов. Обычно «Принят» меняет приемка, «В работе» и «На контроле» - производство, «Выдан» - приемка/касса при оплате и выдаче. Любой переход назад (например, с «На контроле» в «В работе») лучше делать только с причиной.
Один экран «для всех» в химчистке обычно мешает. Приемке важна скорость и минимум ошибок. Производству нужен четкий рабочий список. Администратору - настройки, справочники и контроль.
Экран приема должен открываться быстро и вести по короткому пути: найти клиента -> создать заказ -> добавить позиции. Поиск удобнее по телефону и фамилии. Если клиента нет, создание должно занимать считанные секунды.
Карточка заказа на приемке - это «центр правды». В ней нужны состав заказа (позиции, услуги, количество), сумма и скидка, фото (особенно по сложным пятнам и дефектам), заметки по рискам и история статусов, чтобы сразу понимать, где заказ завис.
Роли и права чаще всего такие:
Мастеру нужен список «что делать»: что в работе, что на контроле, что срочно. Полезны фильтры по статусу и дате обещания. В списке по каждой позиции должно быть видно главное: тип вещи, услуги, пометки по рискам и есть ли фото.
Пример: в заказе пальто и платье. По пальто стоит «пятно неизвестного происхождения», по платью - «деликатная ткань». Мастер сразу понимает, где нужно аккуратнее.
Админ-панель лучше делать простой: пользователи и права, услуги и цены, статусы и справочники (типы вещей, материалы, риски, причины отказа), настройки печати и уведомлений, формат номера заказа.
Уведомления нужны не «для красоты», а чтобы снизить количество звонков и ускорить выдачу. Для MVP хватит трех событий: прием, готовность и мягкое напоминание.
Достаточно 3-4 типов, чтобы клиент понимал логику и не уставал от сообщений:
Держите простые правила: одно сообщение на событие, не больше одного напоминания в сутки, тихие часы (например, не отправлять раньше 9:00 и позже 21:00). Не смешивайте «готово» с просьбами оценить сервис.
Для MVP выберите один канал и доведите его до стабильности: SMS проще, мессенджер часто дешевле, email легко теряется. В карточке клиента храните явное согласие на уведомления (галочка и дата) и выбранный канал. Если согласия нет, сообщение не отправляется, а на приемке видно предупреждение.
Пример: «Приняли заказ 1542, срок до 18:00 24.01». Когда статус стал «Готов», уходит «Заказ 1542 готов. Сумма: 1200 руб». Если через 5 дней не забрали: «Заказ 1542 ждет вас. Если нужно дольше хранение, напишите или позвоните».
Шаблоны храните с переменными: номер заказа, срок, сумма, часы работы. Тогда тексты будут одинаково понятными и без ручной правки.
AI лучше всего работает там, где нужно аккуратно оформить текст по уже готовым данным: квитанция, короткое SMS, формулировки по рискам. Он не должен придумывать цены, сроки и условия. Его задача - изложить то, что уже записано в карточке заказа.
Чтобы результат был стабильным, давайте строго структурированный ввод: позиции, услуги и цены, срок готовности, отмеченные пятна и риски, контакты и канал уведомлений.
Дальше помогает связка «шаблон + переменные». Шаблон фиксирует порядок (позиции, итого, сроки, риски), а переменные подтягиваются из базы. Так вы не переписываете одно и то же вручную, а система собирает текст в одинаковом стиле.
Перед отправкой нужен человеческий контроль. Удобный вариант - кнопка «Сформировать» и экран подтверждения, где сотрудник видит текст и при необходимости правит пару строк.
Проверьте обязательно:
MVP для химчистки не должен быть сложным. Важно, чтобы приемщик быстро заводил заказ, производство видело задачи, а администратор понимал, где застряло.
Сначала опишите процесс на одной странице: что спрашиваем у клиента, что фиксируем по вещи, какие обещания даем, кто и когда меняет статус. Затем соберите базовые справочники: услуги, типовые материалы, риски, шаблоны комментариев.
Дальше двигайтесь короткими шагами:
На статусах не усложняйте. Хватит 5-7: «Принято», «В работе», «Ожидает согласования», «Готово», «Выдано», «Отмена», «Претензия/возврат» (если нужно). Журнал изменений нужен сразу, иначе спорные ситуации будут решаться «по памяти».
Частая проблема - система выглядит «почти готовой», но в смене начинает путать людей. Обычно это не про дизайн, а про мелочи в модели данных, правах и уведомлениях.
Первая ловушка - смешать статусы заказа и статусы позиций без правил. Если у заказа один общий статус, приемка либо ставит «Готово» слишком рано, либо держит все «В работе», хотя часть можно выдавать. Надежная схема: статус хранится у позиции, у заказа - вычисляемый итог и понятные правила частичной выдачи.
Вторая ловушка - слабая фиксация состояния при приеме. Если не записаны дефекты, пятна и предупреждения, спор почти гарантирован. Нужны короткие поля с вариантами выбора (зона, тип, риск) и место для одной фразы.
Третья ловушка - права и деньги:
С уведомлениями тоже легко ошибиться: дубли, ночные отправки, «Готово» до реальной готовности. Храните согласие клиента, выбранный канал и простой переключатель «уведомления включены» на заказе. Шаблоны держите короткими: что готово, когда можно забрать, как связаться.
Перед стартом проверяйте не функции, а реальные ситуации: очередь на стойке, спорный случай с пятнами, доплата, срочность, возврат за квитанцией.
Если все проходит без ручных обходных путей, запускайте пилот на одной точке и собирайте замечания от приемки и производства.
Клиент приносит пальто и брюки. Приемщик создает один заказ и добавляет две позиции. У каждой позиции свой срок и статус.
На приемке по пальто находят пятно на рукаве и предупреждают о риске: ткань может дать усадку, а пятно может не уйти полностью. Приемщик фиксирует это в карточке позиции и делает фото.
В карточке позиции обычно достаточно: описание вещи, дефекты и пятна (где и какие), риск и согласие клиента, фото до чистки, срок готовности и цена.
Дальше производство меняет статусы по позициям. Брюки могут быстро пройти «В работе» -> «Готово». Пальто может потребовать дополнительной проверки. Общий статус заказа остается «Частично готов», пока не готовы обе позиции.
На выдаче приемка сверяет позиции, фиксирует оплату и факт выдачи. После выдачи последней позиции заказ становится «Выдан», а в истории остаются: кто принял, кто менял статусы, какие риски согласовали и когда уходили уведомления.
Когда MVP уже принимает вещи, двигает заказ по статусам и помогает находить «что где», начинается самая полезная часть: подгонка под реальную работу. Делайте это короткими итерациями на 3-7 дней, чтобы не усложнять учет и не ломать привычки.
Сначала соберите обратную связь у приемщиков и производства. Обычно выясняется, что часть полей лишняя, а каких-то не хватает (например, «срочно», «нужно согласование по цене», «клиент просит позвонить»). Затем приводите в порядок коммуникации: квитанция и сообщения должны быть одинаково понятны и не требовать ручных правок.
Вторым шагом чаще всего добавляют: более точные шаблоны уведомлений под типовые случаи (доплата, перенос срока, найден дефект), историю отправок (что ушло и когда), и правила тона (без канцелярита, одна просьба в одном сообщении).
Отдельный слой - защита от ошибок. Цена ошибки в химчистке высокая: перепутали клиента, удалили позицию, изменили сумму задним числом. Продумайте роли, запреты на редактирование после ключевых этапов и сценарий восстановления, если что-то пошло не так.
Если вы собираете приложение на TakProsto (takprosto.ai), это удобно делать через чат в режиме планирования: описать роли, статусы и поля, а затем быстро собрать интерфейс и логику. Когда процесс устоится, пригодятся экспорт исходников, хостинг и снимки с откатом, чтобы безопасно выкатывать изменения.
Лучший способ понять возможности ТакПросто — попробовать самому.