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

АРМ "Кладовщик" - +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-этикетку,
- либо сообщает, что задания нет (или печатает “заглушку” — как решит клиент);
- автоматически перемещает задание в нужную поставку;
- ведёт журнал печати— чтобы можно было восстановить любую операцию.

Интерфейс — максимально простой: выбор текущей поставки, журнал действий. Всё остальное происходит в фоне.