АРМ "Кладовщик" - +100% к скорости работы склада за счет автоматизации печати QR-этикеток

Задача
ООО “Мастер Плюс” — ребята, которые торгуют картинами по номерам на Wildberries. А мы получили заказ: сделать приложение, которое будет сканировать штрихкоды, стучаться в API Wildberries, и печатать этикетки без участия шаманов.
Им надо было:
• убрать ручную проверку заданий,
• автоматизировать печать,
• исключить человеческий фактор
Решение
Неделя 1: Разработка и MVP
Совместно с клиентом проанализировали, как работают задания Wildberries, какие данные нужны для печати и каким образом проходит весь процесс на складе. Вместе сформировали понятное техническое задание.
Вместе написали небольшое ТЗ описывающее общую концепцию, но как и принято, все время от него отклонялись.
• Подключили API Wildberries.
• Совместно с клиентом решили что сканер лучше подключать через эмуляцию клавиатуры, а не прямое сканирование COM порта.
Приложение начало узнавать штрихкод → стучаться в API → и либо печатать, либо кричать “нет задания”.
Неделя 2: “Нам нужен интерфейс. Но без интерфейса.”
Кладовщик боялся интерфейсов, поэтому сделали минималистичный UI (На самом деле задача была — не усложнять. Сотрудники склада должны сканировать и печатать, а не разбираться в интерфейсах. Поэтому мы убрали всё лишнее и оставили только важное):
• окно с логами,
• список заданий,
• кнопка “повторно напечатать”.
Выглядит как калькулятор — работает как швейцарский нож.
Мы решили действовать по схеме быстрого внедрения, делаем MVP - отдаем заказчику, первая версия программы выглядела как-то так:
Неделя 3: “Печатает, перемещает”
К этому моменту базовая схема работала: сканер → API → печать.
• Добавили логику перемещения заданий
По пожеланию заказчика, приложение теперь:
• Автоматически перемещает найденные задания в заранее выбранную поставку;
• Даёт возможность выбрать поставку перед запуском сессии;
• Показывает уведомление, если перемещение не удалось — с человеческой формулировкой;
--- Финальные тесты печати — и немного крови
Реальная боль началась на этапе подключения разных принтеров:
Один клиентский принтер по сети жил своей жизнью и не принимал формат этикетки, но в итоге мы победили и добились печати на принтерах заказчика;
--- Фидбек, правки, доработка
На этом этапе сотрудники клиента уже активно пользовались приложением в полу-тестовом режиме. От них поступили следующий фидбек:
• “Хотим повторную печать последней этикетки” — реализовано через историю печати;
• “Приложение не ругается, если интернет упал” — добавили ошибку в лог.
Также усилили логирование:
• журнал печати теперь сохраняется в файл,
• ошибки отображаются сразу в UI (В зависимости от уровня логирования),
Неделя 4: "UI/UX ренессанс, который никто не просил"
После того как вся функциональность была реализована, мы решили сделать небольшой редизайн — навели порядок, добавили современную типографику, цветовую палитру, аккуратные иконки. Всё выглядело свежо и уверенно, как будто приложение наконец-то выспалось и начало пить колдбрю.
Показали заказчику. Но решили оставить все как есть, тут вступили в бой сотрудники склада, которые за эти 3 недели уже сроднились с первым интерфейсом, как с любимой кофемашиной — некрасивая, но понятная.
Так что итог: редизайн есть, скрины заказчику показаны, но в прод ушёл “тот самый интерфейс”, который был с нами с первых дней — функциональный, простой и напоминающий чуть улучшенную бухгалтерию из 2004 года.
Возможно, в будущем модерновый UI всё-таки обретёт свою минуту славы. Пока же он лежит на диске, тихо плача пикселями и мечтая, что его когда-нибудь тоже полюбят.
Результат
💡 Что получили в итоге
• Кладовщик сканирует код — и сразу печатается нужная этикетка,
• Если задание не найдено — приложение сообщает об этом или печатает заглушку,
• Вся история сканирований и печатей сохраняется в журнале,
• Приложение перемещает задания в нужную поставку автоматически,
• Ошибки исчезли, а время на обработку заданий сократилось в разы.
• Мы сэкономили сотрудникам клиента кучу времени, а себе — пару лет жизни, потому что проект прошёл без эксцессов (ну, почти).
Мы разработали небольшое, приложение, которое:
- работает сразу после запуска, без лишних настроек;
- принимает скан из Bluetooth-сканера;
- через API Wildberries проверяет, есть ли такое задание;
- либо сразу печатает нужную QR-этикетку,
- либо сообщает, что задания нет (или печатает “заглушку” — как решит клиент);
- автоматически перемещает задание в нужную поставку;
- ведёт журнал печати— чтобы можно было восстановить любую операцию.
Интерфейс — максимально простой: выбор текущей поставки, журнал действий. Всё остальное происходит в фоне.