Заказчик
Задача
Перед WINFOX стояла задача разработать мобильное приложение, которое:
– объединит ключевые сценарии работы с ассортиментом и заказами в одном интерфейсе;
– будет интегрировано с системой учета заказчика;
– сохранит надежность, безопасность и возможность масштабирования;
– поддержит разные форматы обмена данными и дальнейшее развитие функциональности.
Подружить приложение с системой учета заказчика
Проработать архитектуру, чтобы обеспечить высокую отказоустойчивость и безопасность решения
JSON как основной, а также поддержка XML, кодировки в Base64 и сжатия в GZIP
Заложить возможности роста при разработке, чтобы в будущем без проблем добавлять новые возможности
Защита от DDOS-атак, хранение чувствительных данных в keychain, защищенное SSL/TLS-соединение
Решение
При разработке заложили архитектуру, которая поддерживает дальнейший рост продукта: интеграцию с внутренними системами заказчика, гибкую логику фильтрации и разграничение прав доступа для разных категорий пользователей. Для мобильной части выбрали Flutter, для обмена данными — REST API, а для уведомлений — Firebase. Отдельное внимание уделили безопасности: защищенному соединению, токенной авторизации и безопасному хранению чувствительных данных на устройстве.
Классический REST API обеспечивает стабильную и предсказуемую интеграцию с сервером, упрощая обмен данными и масштабирование приложения. Firebase для пуш-уведомлений позволяет мгновенно доставлять сообщения пользователям, обеспечивая удобную обратную связь и улучшая вовлеченность.
Иван
Тимлид Flutter-разработки в WINFOX
Каталог доступен как авторизованным, так и новым пользователям. Это позволяет потенциальным клиентам познакомиться с ассортиментом еще до входа в систему, а действующим партнерам — сразу переходить к рабочему сценарию: видеть актуальные цены, добавлять товары в корзину, оформлять заявки и контролировать их статус.
Для бизнеса это важно по двум причинам: приложение одновременно работает и как инструмент продаж, и как инструмент обслуживания действующей клиентской базы.

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

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

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

Для разных категорий и подкатегорий товаров предусмотрены разные наборы фильтров. Их логика определяется на стороне сервера: система управляет доступностью параметров, вариантами выбора и значениями по умолчанию без необходимости обновлять приложение у пользователя.
Для бизнеса это дает масштабируемость: ассортимент можно развивать, добавлять новые товарные группы и сложные сценарии подбора без постоянной переработки мобильного продукта.
Такое решение позволяет в будущем добавлять новые категории товаров со своими сложными системами фильтров. Обновлять приложение пользователям при этом не придется.
Иван
Тимлид Flutter-разработки в WINFOX

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

Корзина стала одним из ключевых и самых сложных экранов приложения. В ней пользователь может гибко настраивать заказ: выбирать единицы закупки, управлять сочетаниями размеров и цветов, менять объем заказа и получать подсказки прямо в процессе.
Для бизнеса это означает меньше ручных ошибок, меньше лишних коммуникаций с менеджером и более точную передачу заказа в дальнейшую обработку.
Несколько раз дорабатывали логику корзины. Для одного товара можно менять количество единиц разных сочетаний размеров и цветов, а добавлять товары в корзину можно не только штуками, но и пачками или коробками. Тут для пользователя предусмотрены динамические подсказки.
Иван
Тимлид Flutter-разработки в WINFOX

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

В приложение добавили поиск по коду маркировки, чтобы пользователь мог быстро найти товар и проверить его в системе «Честный знак». Если камера не считывает код, предусмотрен ручной ввод.
Это усиливает доверие к продукту и упрощает работу с маркируемой продукцией в повседневном B2B-сценарии.

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

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

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

Пользователь может написать своему менеджеру или обратиться в поддержку прямо из приложения. Это сокращает время на решение вопросов и помогает удерживать клиента внутри единого цифрового контура, а не уводить его в разрозненные каналы связи.

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

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

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

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

Администратор может отправлять пользователям пуш-уведомления с новостями, изменениями по заказам и другими важными сообщениями. Отправку можно планировать на конкретную дату и время.
Для бизнеса это создает дополнительный канал сервисной и маркетинговой коммуникации внутри собственного мобильного продукта.

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