Главное о кейсе
Разработано мобильное приложение для терминалов сбора данных, с помощью которого внедряется система адресного хранения товаров на складах сети строительных магазинов ВИМОС.
Реализованный функционал:
— Приёмка упаковок с автоматическим определением количества по штрих-коду;
— Постановка товаров на баланс с привязкой к адресам хранения (опция «Ввод остатков»);
— Приёмка по накладным с указанием даты производства и адреса размещения;
— Отгрузка с сортировкой товаров по адресам хранения;
— Перемещение товаров между ячейками склада.
Ключевые изменения:
— Ранее товар хранился без привязки к конкретному месту — теперь реализовано адресное хранение с точностью до ячейки;
— Вместо ручного ввода количества при каждом сканировании — автоматическое заполнение при сканировании штрих-кода упаковки;
— Произвольный порядок сборки товаров заменён на сортировку позиций накладной по адресу хранения;
— Повторный ввод одинаковых данных при приёмке партии больше не требуется — система запоминает дату производства и количество в пределах накладной.
Как проект изменил жизнь пользователей
Для кладовщиков:
— При отгрузке товары в накладной автоматически сортируются по адресу хранения — не нужно искать нужную позицию в списке;
— При приёмке крупных партий система запоминает введённые дату производства и количество, автоматически подставляя их при повторном сканировании того же товара;
— Отображается остаток товара на складе рядом с артикулом, с цветовым выделением ситуаций, когда требуемое количество превышает остаток;
— Система предупреждает о превышении количества по позиции при сканировании штрих-кода упаковки;
— Блокируются опции «Принять без записи» и «Сохранить и сформировать» для частично собранных накладных — защита от ошибочного закрытия;
— В информации о ячейке выводится не только артикул, но и название товара.
Бизнес-задача и ее решение
Задача: Реализовать функционал адресного хранения товаров на складах сети ВИМОС с возможностью приёмки, отгрузки и перемещения товаров с привязкой к конкретным ячейкам.
Решение:
—Постановка на баланс — новая опция «Ввод остатков» позволяет размещать товары по адресам хранения без привязки к накладным;
— Приёмка по накладным — товары с типом INBOUND размещаются в ячейках с указанием даты производства (поле fifoDate);
— Отгрузка — товары с типом OUTBOUND списываются из указанных ячеек, при этом валидация реализована в виде предупреждения без блокировки операции;
— Перемещение — отдельная опция для смены адреса хранения товара с проверкой наличия товара в исходной ячейке;
— Интеграция с X-Art — обмен данными через API с учётом особенности протокола, где передаётся изменение количества (дельта), а не абсолютное значение.
Крафт (мастерство), реализация, технические детали
Обработка количества как дельты:
Протокол обмена с X-Art передаёт не абсолютное количество, а изменение. Приложение корректно преобразует пользовательский ввод: при сканировании штучного штрих-кода выводит ноль, при сканировании упаковки — количество по штрих-коду (если оно не превышает разницу между требуемым и собранным). Блокируется отправка нулевых значений.
Механизм запоминания значений:
При приёмке палетами (большие партии одного товара) система запоминает введённые пользователем дату и количество. При сканировании единицы товара подставляются оба значения, при сканировании упаковки — только дата, а количество рассчитывается по штрих-коду.
Гибкая валидация при отгрузке:
Если товар отсутствует в ячейке или его количество меньше требуемого, система выводит предупреждение, но не блокирует отгрузку — это позволяет завершить операцию при расхождениях в учёте.
Контекстная блокировка опций:
Опции закрытия накладной («Принять без записи», «Сохранить и сформировать») доступны только при полной сборке.
Инсайты, гипотезы, процесс создания и взаимодействия с заказчиком
Учёт реальных сценариев работы склада:
Один из конкретных сценариев работы склада — приёмка палетами, когда дата производства и количество одинаковы для всей поставки. Это определило логику запоминания значений: экономия времени на повторном вводе идентичных данных.
Баланс между контролем и операционной гибкостью:
При отгрузке выбран подход «предупреждение без блокировки». Жёсткая валидация остановила бы работу склада при любом расхождении данных, мягкая — позволяет продолжить с фиксацией проблемы.
Скриншоты