Почти все интернет-магазины в России доставляют товары в почтовые ячейки. Они будто восстали из прошлого Почты России, чтобы расцвести в новой форме под флагами частных компаний, вроде Boxberry и PickPoint. Но этой рыночной нише далеко до насыщения: свободных мест много, люди хотят получать заказы у дома, интернет-ритейл растёт, а к нему присоединяются игроки, которых раньше с постаматами никак не связывали.
Кафе и рестораны тоже могут доставлять еду в постаматы. Здесь нет нерешаемых проблем и есть выгоды. Например, можно доставлять еду в офисные центры и сразу сортировать её по именным ячейкам. А можно пойти дальше и оснащать ячейками сами кафе, клиенты которых смогут забирать яства не на кассах, а в удобных ящичках, которые быстро заполняет невидимый оператор. В первой части cтатьи мы опишем базовые принципы на примере нашего проекта LunchBox. А вторую часть посвятим проблемам, с которыми столкнулись.
Главным вопросом заказчика может стать схема такой системы. В проектировании интерфейсов мы преследуем максимальный комфорт для пользователя.
Поэтому для него процесс выглядит так:
- создать заказ;
- прийти к месту выдачи и нажать кнопку «Я пришёл»;
- дождаться уведомления о готовности, если заказ ещё не собран;
- нажать кнопку «Открыть бокс»;
- забрать заказ.
Под капотом всё немного сложнее. Отталкиваясь от желаемой функциональности, мы получаем три необходимых составляющих: мобильное приложение, сервер мобильного приложения и сервер ячеек. А затем раскладываем процесс на основные «чекпойнты».
1. Создание заказа
Уже этот шаг предполагает разработку мобильного приложения. Пользователь создаёт в нём заказ и указывает время, в которое желает его забрать. На данном этапе необходимо сделать дружелюбный мобильный интерфейс, чтобы человек спокойно проходил порог и шёл к следующим шагам.
2. Визит в ресторан
Пользователь приходит в ресторан (кафе, закусочную, пункт продажи шаурмы/шавермы — кому как нравится). Самым простым способом оповестить заведение о появлении гостя является нажатие им специальной кнопки в мобильном приложении. Эта функция нужна заведению для того, чтобы точно знать о визите и быстро подать свежий продукт. Если речь идёт о еде длительного хранения, подойдёт заранее отправленное оповещение о том, что можно забрать заказ в удобное время в течение, например, пары дней.
3. Подтверждение присутствия
Не исключено, что некоторые пользователи/устройства случайно или намеренно будут сообщать заведению о своём присутствии, хотя их в нужном месте нет. Чтобы предприниматель не терял деньги, Spider Group предложила проверять данные по Bluetooth. Пользователь жмёт кнопку «Я пришёл», а приложение начинает поиск радиометки, которую мы заранее закрепили в незаметном уголке кафе. Если метка найдена, подтверждение срабатывает, а сервер получает соответствующее оповещение. Альтернативный сценарий — это сканирование QR-кода на постамате, если пользователь запретил приложению использовать Bluetooth из соображений безопасности.
4. Получение информации сервером
Приложение отправляет серверу информацию о том, что пользователь пришёл и ожидает заказ. Сервер по специальному алгоритму выбирает бокс, из которого заказ можно будет забрать.
5. Оповещение пользователя о сборке заказа
Сервер отправляет в мобильное приложение информацию о том, что заказ собирается и скоро будет доступен. Не оставляйте пользователя в неведении о происходящем, успокойте его: процесс идёт, скоро всё будет.
6. Информационное табло для персонала
Одновременно с оповещением пользователя данные получают сотрудники кафе. Самый простой способ передать информацию о поступившем заказе персоналу — разместить её на дисплее. Быстро бросив взгляд на него, они могут приступить к сборке. Мы разработали веб-интерфейс, в котором отображаются номер ячейки, информация о составе заказа и имя его сборщика.
7. Размещение заказа в ячейке
Сборщик собирает заказ, помещает его в нужную ячейку и жмёт механическую кнопку «Заказ готов». В боксе загорается приятная зелёная подсветка. Почему кнопка механическая, а не сенсорная? Это дешевле и предотвращает случайные нажатия.
8. Оповещение пользователя о готовности заказа
Наш сервер отправляет мобильному приложению информацию о том, что заказ собран и ждёт в конкретном боксе. Пользователь видит заветную кнопку «Открыть бокс» и номер бокса.
9. Нажатие кнопки
Осталось подойти к стене с ячейками. Сделав это, пользователь жмёт кнопку «Открыть бокс». Данные снова отправляются на сервер приложения, затем на сервер ячеек.
10. Разблокировка двери
Сервер ячеек даёт замку команду открыться. Человек забирает заказ, а дверь автоматически закрывается и запирается. Внутри бокса находится электроника и механика, отвечающие за движение двери, а также набор датчиков, с помощью которых мы понимаем, есть ли в боксе товар, закрыта ли или открыта дверь в данный момент. Предусмотрена защита рук пользователя: если дверь во что-то упрётся, она вернётся в положение «Открыто» и через несколько секунд повторит попытку закрытия.
Практика и трудности
В первой части этой статьи мы рассказали об алгоритмах работы автоматизированной системы выдачи заказов через ячейки в кафе с точки зрения пользователя и разработчика такой системы. В новом материале мы хотим рассмотреть непосредственный опыт внедрения с акцентом на трудностях.
Для управления каждым боксом нужно два контроллера. Один контроллер должен считывать показания датчиков (наличие груза, статус двери). Второй обеспечивает управление подсветкой и приводом двери. Взаимодействие между двумя контроллерами, а точнее, между датчиками, освещением и приводом двери потребовало реализовать интересную логику.
Интересное: Гречка для МФО: выдача займов онлайн в современных условиях
В процессе разработки нам потребовалось обрабатывать состояния «двери Шрёдингера», когда оба датчика положения двери сообщают, что дверь одновременно не открыта и не закрыта. Это не квантовый парадокс, просто дверь находится в промежуточном состоянии. Такая ситуация может возникнуть при поломках привода или отключении электричества.
Для промежуточного состояния понадобилась система самотестирования. Она проверяет состояния бокса и принудительного закрывает его. Если датчики не смогли предоставить данные, система исключает бокс из работы и не назначает на него заказы.
На объекте заказчика боксы располагаются в три ряда по девять штук. Стремление к удобству для пользователя потребовало следующего алгоритма назначения бокса:
- в первую очередь заказы распределяются на свободные ячейки в центральном ряду (на уровне плеч);
- если центральный ряд занят, заказы назначаются на боксы в верхнем ряду (на уровне подбородка);
- в последнюю очередь заказы назначаются на нижний ряд (на уровне пояса).
В случае выхода из строя одного из боксов нужно переназначать заказы на другие. Например, упаковщик может разлить кофе при помещении заказа в ячейку. Это потребует не только заменить кофе, но и очистить бокс, то есть потратить дополнительное время, которое на вес золота в часы высокой загруженности кафе. А сервис ориентирован на сбор заказа в течение 15–20 секунд.
Оператор видит сообщение о проблеме и жмёт кнопку «Аварийный режим». Все заказы для этого бокса автоматически расходятся по другим с учётом их индивидуальной загруженности. Клиент остаётся в неведении о нештатной ситуации. На экране его смартфона появится статус сборки.
Номер ячейки, в которой он заберёт заказ, появится только когда сборщик нажмёт аппаратную кнопку «Заказ готов», которую мы для соблюдения алгоритма сборки разместили на каждом боксе. Автоматизм вырабатывается довольно быстро, шаги трудно перепутать, потому что они разнесены логически и в пространстве.
P.S.
Постаматы — это универсальная история, они подходят для передачи людям любых товаров. Если предусмотреть дезинфекцию, делать это можно относительно безопасно и с точки зрения вирусов. На современных производствах контролируют сотрудников и продукцию, а обрабатывая себя и ячейку, курьер снизит опасность до минимума. Берегите себя и своих клиентов, внедряйте передовые решения, получайте конкурентные преимущества, думая о людях. И мы все будем здоровы и счастливы.
Если вам понравилась статья, поделитесь ей с друзьями. Хотите оставить отзыв о нашем блоге или предложить тему? Пишите редактору на a.lisovitsky@spider.ru. Подписаться на нас можно в Facebook, ВКонтакте, Twitter и Instagram.
В Spider Group на вас работает более чем двадцатилетний опыт в разработке мобильных приложений, веб-разработке сайтов, серверных проектов, дополненной реальности, искусственного интеллекта и Интернета вещей.