Авторизация
Забыли пароль?
Сброс пароля
Вернуться к авторизации

Разработка легковесного сервиса для поиска товаров в розничной сети

10 марта ‘26

Заказчик: NDA

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

Агентство-исполнитель кейса

Софториум

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

1. Вводная задача от заказчика, проблематика, цели

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

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

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

Существующие терминалы позволяли клиентам:

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

Необходимо было объединить информацию из различных источников, что создавало серьезные технические сложности.

2. Описание реализации кейса и творческого пути по поиску оптимального решения

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

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

3. Результаты сотрудничества

Тестирование проводилось на компьютерах с минимальной конфигурацией (Windows 7, 4 Гб ОЗУ, процессор Intel Core 2 Duo).

Изначально рассматривался вариант решения на базе Docker-контейнера с PHP-сервером на платформе Laravel. Для тестирования мы развернули виртуальную машину с конфигурацией, соответствующей минимальным требованиям заказчика, и проверили, как система будет работать при низкой нагрузке. Однако в процессе тестирования оказалось, что Docker-контейнер не запускается на Windows 7, что делает это решение неподходящим для эксплуатации в реальных условиях сети.

Учитывая данное ограничение, мы решили попробовать альтернативное решение на языке Go, который известен своей кроссплатформенностью и низким потреблением ресурсов. После реализации тестовой сборки на Go, мы получили отличные показатели производительности — приложение использовало всего 12 Кбайт оперативной памяти, что значительно превосходило первоначальные результаты.

Таким образом, мы выбрали Go как наиболее подходящее решение для разработки сервиса, обеспечивающее необходимую легковесность и стабильную работу на имеющемся оборудовании.

4. Заключение

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

Агентство-исполнитель кейса

Софториум

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