Прилавок в твоем мобильном — исключаем терминал из схемы работы

Один из наших клиентов, компания Го!Поедим, обратилась к нам с запросом на разработку мобильного приложения МиниМаркета — магазина самообслуживания без продавца.

Мы уже рассказывали вам о своем опыте работы над концептом МиниМаркета:

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

Концепт — простой, и этим подкупает:

мини-кухня в каждый офис, состоящая из холодильных камер, всевозможных вендинговых автоматов, кофемашин, а еще — терминала оплаты и эко-уголка для релакса.

В этом проекте мы разработали простую и эффективную архитектуру с 1С системой в виде серверной стороны и красочным веб-интерфейсом, решили вопросы синхронизации и даже подключили облачную кассу, исключив человека из работы системы.

Что если пойти еще дальше?

Смартфон вместо терминала оплаты

Смартфон сегодня есть у каждого и он умеет не только звонить и делать красивые фото в Инстаграм.

С помощью телефона, например, можно оплачивать покупки — это стало нормой в 2019 году.

Мы решили воспользоваться этим и заменить при покупке обеда в МикроМаркете Го!Поедим терминал оплаты вместе со всеми прилагающимися к нему сканерами штрихкодов и устройствами для считывания бонусных карт лояльности на мобильное приложение — таким образом покупатель может не только автономно оплачивать товары, но и выбрать, например, себе обед заранее.

Проект в деталях. Немного аналитики или почему 1С выступает в качестве сервера

Обычно схема работы выглядит так:

Схема работы системы

1с — сайт — приложение. Так работает, например наш проект MYBOX .

Переосмысление работы системы: сервер — 1С. Нагрузочное тестирование

Переосмысление работы системы

В нашем новом варианте серверная сторона (back) представлена учетной системой 1С Комплексная Автоматизация.

Да, это нетипично и порой вызывает недоумение как у разработчиков, так и у клиентов.

ИНТЕРВОЛГА не из тех, кто недоумевает попросту, мы берем, и делаем.

Мы симулировали работу на своих машинах, чтобы определить максимальное число запросов от пользователей, которые будет поддерживать система без необходимости оптимизации.

Нагрузили компьютер нашего разработчика (без какой-либо оптимизации, не сервер, без многопоточности и профилировки кода 1С) запросами к наиболее тяжелому методу API в несколько потоков.

Вот результаты:

Результаты тестирования

Выводы:

  1. Текущая конфигурация отдает данные со скоростью 100-300 мс при числе запросов до 14 в секунду в 4 потока. Далее время начинает расти без увеличения производительности.
  2. Можно утверждать что при текущих условиях нагрузка до 840 последовательных обращений к 1С в минуту не будет вызывать просадки скорости.
  3. При 30 развернутых Го!Поедим и 150 заказах в день на каждом получаем 4500 заказов в день. Каждый заказ требует максимум 10 вызовов методов API.
    45000 запросов. Пусть они все распределены на 1 час.
    45000 запросов /60 минут = 750 запросов в минуту

Резюме: даже если все заказы с 30 Го!Поедим будут выполняться за 1 час через мобильное приложение, текущая конфигурация должна справиться.

Подобное решение хорошо тем что: 

  • 1С Комплексная Автоматизация уже умеет работать с интернет-торговлей. Корректно выводит товары, чеки, заказы;
  • 1С работает с мобильным приложением также, как с сайтом.

1С хорошо умеет считать скидки. Дублировать эту логику в мобильное приложение или на сайт — долго и чревато ошибками.

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

Из 1С на сайт выгружаются только данные о МикроМаркетах — количестве товаров в каждом, бонусах сотрудников.

Импорт МикроМаркетов из 1С на сайт происходит по расписанию один раз в день, ночью.

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

Теперь — о технике

База пользователей хранится на сайте.

В 1С покупатель = строка справочника Партнеры. Для отличия покупателей мобильного приложения и партнеров в 1С мы привязали пользователей из мобильного приложения к определенной группе, чтобы не выгружать их в 1С или выгружать с пометкой.

Схема авторизации пользователя

Пользователь может авторизоваться через 

  • мобильное приложение, прочитав QR-код с идентификатором пользователя с экрана телефона.
  • Через привязанную к пользователю бонусную карту.

Покупка

То, ради чего все затевалось — покупка с помощью одного только телефона… или нет?

Кейсов использования эквайрингового терминала оплаты два:

1. Выбор товаров;

2. Оплата и получение чека (все об оплате через облачные кассы читайте у нас в статье ).

Какие варианты внедрения мобильного приложения мы выделили:

  • выбрал в МП -> оплатил на терминале (печать чека);
  • выбрал в МП -> оплатил в МП (чек на емейл).

Итак, пользователь просто выбирает нужный ему МикроМаркет на карте

Выбор нужного минимаркета на карте

При открытии карты ее центр соответствует текущему положению телефона.

Если положение определить не удалось — центр соответствует центру города, масштаб больше.

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

Кроме того, в шапке есть кнопка сканирования QR-кода на МикроМаркете для выбора конкретной точки.

Кнопка сканирования QR-кода на МикроМаркете для выбора конкретной точки

В приложение подтягивается каталог, сам МикроМаркет и пользователь.

После этого пользователь может выбрать свой обед:

  • найти позицию в каталоге;
  • отсканировать штрих-код товара на полке.

Каталог

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

Оплата и фиксация чека

Выбранный товар, можно оплатить как через терминал (сканируем QR-код телефона), так и непосредственно в приложении.

При безналичной оплате в приложении  используется агрегатор платежей. В нем уже есть свое готовое API и интерфейсы оплаты, оплата через Google Pay и Apple Pay. Также в будущем они могут добавлять новые способы оплаты без потребности для нас вносить правки в свое приложение.

Мы выбрали агрегатор CloudPayments.

Согласно ФЗ-54 «О применении контрольно-кассовой техники при осуществлении расчетов в Российской Федерации» существуют нормы о формировании кассового чека покупателю при расчетах в интернете.

Терминал МикроМаркета печатает чеки через 1С и облачную кассу Orange Data.

Как это работает:

Заказ оплачивается в приложении. Приложение передает в 1С информацию о заказе с идентификатором МикроМаркета и почтой пользователя. Главная 1С отсылает данные для печати чека в Orange Data. Оттуда пользователю на почту приходит чек.

Выводы

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

В рамках сферы фудтеха мы успешно работаем над разными интересными проектами и готовы к новым задачам, тем более, что наш опыт в этой сфере — достаточно богатый.

ИНТЕРВОЛГА поможет и вам реализовать мобильное приложение для своего бизнеса, усовершенствовать службу доставки или найти решение сложной задачи.

Напишите нам!

Оцените статью: