Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

GOODDY — холодильники с готовым питанием для офисов в Санкт-Петербурге. Среди поставщиков компании — «ВкусВилл», «UPPETIT», «Шоколадница», «Добрый» и многие другие бренды, которые у вас на слуху. Рассказываем, как мы нашли причину отказа от покупок и вернули продажи на прежний уровень. А ещё избежали краж из холодильников!

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

Сибирские айтишники, которые могут (почти) всё

Привет! Это Софториум — команда с хардовым подходом в разработке. Уже 3 года мы развиваем продукты компаний и решаем задачи, с которыми справляются не все. Свои проекты нам доверяют Sokolov, Альпинтех, Umai.kg, аптечные сети «Столички» и «Неофарм».

К нам приходят, чтобы:

  • найти причину отмены покупок и падения продаж;

  • закодить push-уведомления в приложении;

  • понять, почему техника не «слушается» программу;

  • избавить менеджеров от ручного прогнозирования поставок.

За 9 месяцев мы сделали всё вышеперечисленное и даже больше для GOODDY — сервиса по продаже готовой еды. В кейсе расскажем как.

GOODDY — сеть микромаркетов с ассортиментом из 1000+ блюд

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

Так HR-бренд работодателя растёт и процветает, поставщики увеличивают продажи, а GOODDY зарабатывает деньги на комиссиях. Все в плюсе.

IT-инфраструктура GOODDY выглядит так:

  • серверная часть — он же бэкенд;

  • холодильники с управляющей платой — устройством, которое регулирует температуру, управляет вентиляцией, освещением и так далее;

  • административная панель — управляющий софт для владельцев GOODDY, их партнёров и поставщиков. В ней можно отслеживать всё, что происходит с холодильниками и управлять мобильным приложением;

  • мобильное приложение для покупателей.

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

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

Теперь расскажем обо всем подробнее.

Как холодильники потеряли связь с бэкендом

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

Симптоматика одна, а причин может быть множество. Долго искали, что не так — нашли целых две проблемы.

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

  2. Во-вторых, отваливался websocket-сервер.

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

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

Так вот сервер переставал работать из-за того, что диск устройства был полностью заполнен логами — записями событий в системе. Новые логи формировались постоянно, а старые при этом не стирались. Память на диске переполнялась, и это останавливало работу многих сервисов, в том числе WebSocket-сервера.

Как решили проблему

Сделали функцию очистки диска, проверки статуса WebSocket-сервера и его перезагрузки в административной панели. После перезапуска настроили вывод лога с записью о последнем событии в программе, чтобы понимать, не произошёл ли какой-то баг.

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

Отказ от PWA из-за ухода зарубежных библиотек с рынка

Мобильное приложение GOODDY — нативное, то есть, по сути, у компании два разных приложения для iOS и Android. Поддержка и продвижение таких сервисов стоят дорого, поэтому у заказчика была идея отказаться от них и сделать PWA.

PWA — лёгкое веб-приложение, которое запускается и работает в браузере непосредственно в момент обращения к нему. Оно не «болтается» в памяти телефона, и им можно быстро пользоваться. Обслуживать веб-приложение намного дешевле, потому что это сайт, который визуально трансформируется в мобильный клиент.

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

Были сомнения, что запрос заказчика можно реализовать. Да так, чтобы PWA стабильно работало, выполняло все функции и не плодило баги. Поэтому сперва решили оценить риски и запустить прототип — на этом-то этапе и вскрылись проблемы.

Самая главная функция приложения — сканирование штрих-кодов — не работала. Делать PWA без этой опции не имело никакого смысла, ведь с помощью штрих-кодов люди оплачивают товары, а система учёта фиксирует продажи.

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

И если библиотеки для Android были в свободном доступе и работали стабильно, то с iOS было сложнее. Платные библиотеки ушли из России, бесплатных было несколько, но они не работали на последних версиях айфонов — 14 и 15. Из-за этого камера не фокусировалась и не могла распознать штрих-код.

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

Внезапное падение продаж

В мае 2023 года у GOODDY резко упали продажи. Холодильники стояли, люди к ним подходили, но покупку не завершали — в статистике было много отмен. Внимание, Софториум, вопрос: что не так?

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

Делайте ваши ставки в комментариях, откуда пошёл сбой.

Беда пришла, откуда не ждали — платёжный шлюз PayU глючил. PayU — это зарубежная система, которая то уходила из России, то проводила ребрендинг и меняла домены, то отказывалась принимать оплату с определённых карт. В итоге мы предложили отказаться от них и подключили отечественный шлюз, который исправно выполняет свои функции. И — импортозамещение.

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

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY
Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY
Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

В целом, у мобильного приложения был огромный минус — большая часть логики была на клиенте, в том числе платёжная. Работа шлюзов и обработка запросов с платежами шли со стороны клиентской части — то есть фронтенда. Чтобы внести в сервис хоть какие-то изменения, приходилось постоянно обновлять приложение в сторах.

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

Чиним геопозицию пользователя, чтобы избежать краж

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

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

Проблема в том, что продажи GOODDY во многом построены на доверии. Холодильник может открыть любой человек. Очевидно, не у всех возникнет честное желание отсканировать код и отдать деньги за товар. Для этого и необходимо определять геопозицию — чтобы зафиксировать, у какого холодильника находится пользователь и избежать краж.

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

Продажи через штрих-коды

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

Как всё происходит:

  1. Штрих-коды для продукции формируются через управляющий софт.

  2. GOODDY распечатывают их и наклеивают на упаковки.

  3. Пользователь сканирует штрих-код через мобильное приложение и оплачивает товар.

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

Функцию разрабатывали с нуля: подключали библиотеку формирования штрих-кодов и настраивали их генерацию таким образом, чтобы они подходили по формату для принтера наклеек. Там своя специфика с размерами, отступами и так далее.

Штрих-коды стали базой для создания системы аналитики продаж, которой пользуются поставщики, партнёры и владельцы GOODDY. С помощью наклеек легко отследить, какие продукты есть в наличии и где они находятся, а также что и в каком объёме покупают. Но об этом ниже.

Превратили административную панель в центр управления бизнесом

Самый большой фронт работ касался административной панели. Нам предстояло сделать из уже существующего управляющего софта гибрид ERP-платформы и аналитической системы. Подробнее расскажем о каждом направлении задач ниже.

Доработка статистики и отчётов

Требовалась доработать систему аналитики, чтобы GOODDY, их партнёры и поставщики могли видеть, какие позиции пользуются спросом, а что потребители берут реже. Готовая еда — скоропортящийся продукт, в его продаже важно всеми способами избежать списаний.

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

Мы сделали систему фильтров для формирования отчётов по продажам. С её помощью можно посмотреть, например, сколько салатов, супов и вторых блюд купили в выбранном минимаркете, сформировать документ со статистикой и выгрузить его в XLS-формате.

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

Разработка системы прогнозирования поставок

Важная деталь бэк-офиса GOODDY — оформление поставок в микромаркеты. Чтобы сделать этот процесс проще, исключить ручные расчёты и последствия человеческого фактора, наша команда разработала систему прогнозирования поставок.

Она собирает статистические данные по продажам:

  • сколько продукции поставили;

  • в какие автоматы;

  • сколько товаров купили;

  • по какой цене;

  • какая вышла прибыль;

  • и другие показатели.

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

Теперь поставщикам понятно, какие товары и в каком объёме нужно привезти в конкретный холодильник.

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

Улучшение системы скидок и промо-акций

Система аналитики продаж раскрутила маркетинг. Зная оборот товаров в конкретной точке, можно управлять спросом с помощью промо-акций. Если у товара истекает срок годности, скидка сделает его более привлекательным. Возможно, он избежит списания.

Наша команда разработала в админке функции, позволяющие:

  • устанавливать скидки на конкретные позиции и категории;

  • регулировать период, в который действует скидка;

  • выбирать минимаркеты, которые участвуют в акции.

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

Push-уведомления

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

Сделали функцию, через которую можно выбрать группу людей, контекст использования приложения, написать текст уведомления и массово разослать его. Например, если пользователи не заходили в систему месяц и не совершали покупки, можно настроить для них рассылку с промо: «Зайдите в приложение и получите скидку». Более того — пуши можно рассылать не только покупателям, но и поставщикам с партнёрами.

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY

Вот такой мы получили отзыв о нашей работе

Мне понравилось взаимодействие с ребятами, спасибо им за отзывчивость и профессионализм.

Мне кажется, что важно приходить к ребятам с объёмом задач, в таком случае, они могут собрать команду именно под ваш проект.

В противном случае, всё будет двигаться урывками, с паузами и низким уровнем вовлечённости. У нас было по разному, но в большей степени это зависило от частоты траншей с нашей стороны.

Изначально мне казалось, что аутсорсинг/аутстаффинг это дорогая и не удобная модель, но это совсем не так. Мало того, что вы экономите средства на HR, лиде, который будет всем этим управлять и налогах, так вы ещё и получаете в команду проверенных ребят, которые могут затащить любую задачу, а это супер важный поинт.

Бывает так, что попадаешь на разработчиков, которые ковыряются - ковыряются, а по итогу ничего сделать толком не смогли, а часы оплачены. Так что 100% могу рекомендовать Софториум, "дяде Жене" отдельный привет 😉

Петров Алексей, основатель GOODDY

За 9 месяцев решили много задач — всё в один материал не уместить. Если вы дошли до этого момента, наверняка у вас остались вопросы — пишите их в комментариях.

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

Внезапное падение продаж и отваливающиеся холодильники: как мы помогли GOODDY
2020
55
11
16 комментариев

была похожая проблема на одном проекте. диск логами засирался. хорошо, что наш софт был, решили вопрос.

3

А у нас весь софт чужой, но мы справляемся!))

2

У нас стоял такой холодильник. Очень удобно было)

3

А сейчас стоит?

2

Ну вообще огонь, ребята!!! Даже импортозамещение получилось!!!

2

Да, классно получилось

2

Куда без него;)

1