Подробная история кейса: с чего начинали, что сделали, что экономится
Кратко. AI-студия Лютик сделала для DaoMatcha кабинет владельца вендинговых матча-аппаратов: он сам забирает данные аппаратов, показывает выручку и прибыль по каждому напитку, считает остатки сырья по рецептам и переводит поломки на понятный язык. Новый аппарат подключается по номеру. Оплату картой через терминалы студия настроила в самих аппаратах.
Паспорт. Отрасль: вендинг, матча-аппараты — собственная разработка DaoMatcha со своей программой на Android. Кабинет — внутри приложения DaoMatcha, вход по паролю.
С чего начинали
Аппараты сами по себе не говорят владельцу ничего: ни сколько продано, ни сколько осталось сырья. Цифры приходилось смотреть у самого аппарата.
Что было
Владелец ездил к аппаратам за цифрами и угадывал, где что кончилось. Если аппарат ломался, было непонятно, что именно случилось и вернул ли он деньги покупателю.
Что сделали: 5 задач
1. Все аппараты на одном экране
Как было. чтобы узнать продажи, нужно было дойти до аппарата; своя программа у аппарата на Android, данные живут в облаке производителя оборудования. Логично для такого бизнеса: владелец нескольких точек не знает, какая сегодня работает, а какая стоит. Сделали. Кабинет сам опрашивает облако Yile и показывает список аппаратов: фото точки, адрес, выручка за сегодня и за месяц и одна строка состояния — «Всё в норме», «Заканчиваются стаканы», «Заканчивается церемониальная матча», «Подача льда не работает», «Не на связи», «Не в эксплуатации» (14 дней без связи). Цвет карточки — по тяжести. Фото точки можно сделать прямо с карточки. Что дало. Утром открыл телефон — видно все точки сразу: где идут продажи, где что-то кончается, где поломка. Ехать нужно туда, где проблема, а не по кругу.
2. Подключение аппарата по номеру и связь с облаком Yile
Как было. у аппаратов своя закрытая программа и шифрованный вход. Документация производителя — английская, с опечатками; ключ доступа живёт около трёх часов и «сгорает». Сделали. Сервер входит в облако Yile ключом оператора (номер оператора + секретный ключ — один на весь аккаунт, хранится в настройках сервера, в браузер не попадает) и сам обновляет «сгорающий» пропуск, пока данные идут. Новый аппарат добавляют в кабинете по его номеру: кабинет проверяет, что такой аппарат есть у оператора, и сразу открывает его карточку. Сделана русская выжимка документации и обход её ловушек: запросы по месяцам, постраничная загрузка, часы аппарата вместо часового пояса облака. Что дало. Новая точка появляется в кабинете за минуту — без программиста и без входа в кабинет производителя оборудования.
3. Выручка, прибыль и продажи по напиткам за любой период
Как было. статистику смотрели у аппарата. Логично для такого бизнеса: прибыль по напиткам считали бы вручную в таблице, если считали вообще. Сделали. По каждому аппарату — выручка, прибыль и число продаж за сегодня, вчера, неделю, месяц или свои даты. Ниже — каждый напиток: сколько штук, выручка, себестоимость, прибыль. Себестоимость берётся из рецептов оператора в облаке Yile; если её там нет — кабинет честно предупреждает, что прибыль неточна. Что дало. Видно, какие напитки кормят точку, а какие занимают место в меню. Решения по ценам и ассортименту — по цифрам, не по ощущениям.
4. Свой учёт сырья: рецепты, заливки, списание с каждой продажи
Как было. Аппарат не сообщает, сколько в нём осталось матчи, молока, сиропов и стаканов: в пробном отчёте 19.06 облако Yile вернуло по боевому аппарату пустой список расходников и «−1» вместо запаса. Логично для такого бизнеса: остаток прикидывали на глаз при обслуживании, а кончившееся сырьё замечали, когда аппарат переставал продавать. Сделали. Для каждого напитка один раз задают рецепт — сколько граммов матчи, молока, миллилитров сиропа и сколько стаканов уходит на порцию; стакан в рецепт ставится сам. После обслуживания вносят только то, что засыпали, — кабинет прибавляет это к расчётному остатку. Каждая продажа из облака списывает сырьё по рецепту. Видно «учтено / использовано / осталось», мало — красным. Остаток можно поправить по факту («ред.»), каждая заливка и поправка ложится в историю «было → стало». Что дало. Владелец знает, сколько матчи и стаканов в каждом аппарате, не открывая его, и везёт на точку то, что там действительно кончается.
5. Поломки и несостоявшиеся продажи понятным языком
Как было. если аппарат сломался, было вообще непонятно, где смотреть. Облако отдаёт ошибки английскими кодами вида «ice machine connect failure». Сделали. Раздел «Ошибки»: состояние аппарата, связь, подписка, ошибки узлов (лёд, стаканы, помол, мотор, вода, дозатор, связь с «головой» аппарата) — переведены в короткие русские фразы, рядом исходный код. Сводка несостоявшихся продаж по причинам и по напиткам, журнал по каждой: напиток, время, вернул ли аппарат деньги. Невозврат денег поднимается в статус карточки: «Ошибка возврата денег». Что дало. Сразу ясно, что сломалось, сколько продаж из-за этого потеряно и надо ли кому-то вернуть деньги. Мастеру можно сказать конкретно: «не работает подача льда».
Что экономит и приносит деньги
- Меньше простоя из-за кончившихся стаканов и сырья. Остаток каждого ингредиента считается с каждой продажи; при < 15 стаканов или < 50 г/мл сырья карточка аппарата получает «Заканчивается…». Оценка: если аппарат раз в неделю полдня стоит пустым, это потерянные продажи полудня; кабинет показывает нехватку заранее, до остановки.
- Поломки замечают в тот же день. Ошибка аппарата сразу видна в списке точек понятной фразой; в разделе «Ошибки» — сколько продаж из-за неё не состоялось. Оценка: поломка, замеченная в тот же день, — это продажи, которые не сорвутся за неделю простоя.
- Прибыль по напиткам — основа решений по меню и ценам. По каждому напитку: штуки, выручка, себестоимость (из рецептов оператора в Yile) и прибыль за любой период. Оценка: эффект зависит от решений владельца; без этих цифр меню и цены выбирают на ощущениях.
- Не нужны поездки «посмотреть цифры». Выручка за сегодня и за месяц по каждой точке — в телефоне. Оценка: минус поездки к аппаратам ради статистики — топливо или такси и время человека.
- Возвраты не теряются. По каждой несостоявшейся продаже видно, вернул ли аппарат деньги; невозврат поднимается в статус карточки. Оценка: меньше спорных случаев и жалоб покупателей; размер — по факту, не замерялся.
Что экономит время
- Посмотреть выручку всех точек. Список аппаратов с выручкой за сегодня и месяц открывается с телефона. Оценка: дорога до точки 20–60 минут → около минуты.
- Узнать, сколько сырья в аппарате. Расчётный остаток по каждому ингредиенту — в разделе «Остатки». Оценка: 10–15 минут на аппарат (открыть, прикинуть, записать) → секунды; сверка с фактом — только иногда.
- Понять, что сломалось. Ошибка переведена на русский, рядом исходный код и список несостоявшихся продаж. Оценка: поиск кода ошибки в английской документации или переписка с поставщиком — от получаса → минута.
- Свести продажи по напиткам за месяц. Кнопка «Месяц» или свои даты — готовая разбивка по напиткам с прибылью. Оценка: час-два в месяц на таблицу → 0.
- Собраться на обслуживание. До выезда видно, на какой точке что кончается, — везут нужное. Оценка: минус повторные поездки «забыл стаканы».
Где проходит наша граница
Мы отвечаем за то, что кабинет правильно забирает данные аппаратов, считает выручку и списывает сырьё по рецептам. Остатки — расчётные: их стоит иногда сверять с фактом и поправлять. Оплату картой через терминалы мы настроили в самих аппаратах, поэтому в кабинете её настроек нет; напоминания о нехватке сырья — следующий шаг, сейчас нехватку видно в кабинете.
Частые вопросы
Что показывает кабинет вендинговых аппаратов?
Все точки с выручкой и состоянием, продажи и прибыль по напиткам за любой период, остатки сырья по рецептам и поломки понятным языком.
Как считаются остатки сырья?
Владелец вносит, сколько засыпал, а каждая продажа списывает граммы по рецепту напитка. Остаток можно поправить по факту.
Как подключить новый аппарат?
Ввести его номер — кабинет сам начнёт забирать его продажи и состояние.
Можно ли в аппарате заплатить картой?
Да. Оплату картой через терминалы мы настроили в самих аппаратах, а продажи с неё кабинет видит вместе с остальными.