Мобильное приложение со сканированием для склада на Odoo
Штатный Barcode-модуль не выдерживал 900 строк отбора в смену и падал при потере Wi-Fi. Сделали приложение на Flutter с офлайн-очередью и синхронизацией через JSON-RPC.
О проекте
- Заказчик
- Дистрибьютор автозапчастей
- Отрасль
- Дистрибуция
- Срок
- 7 недель
Почему не хватило штатного модуля
У клиента 12 000 SKU и до 900 строк отбора в смену. Штатный веб-интерфейс сканирования Odoo работал, но:
- при просадке Wi-Fi в дальних рядах стеллажей операция срывалась и приходилось начинать заново;
- на каждый скан уходил сетевой запрос — на слабом сигнале до 2–3 секунд;
- не было пакетного отбора по нескольким заказам одновременно;
- ТСД Zebra с аппаратным сканером в браузере работали неудобно.
Что сделали
Приложение на Flutter
Одна кодовая база под Android-ТСД (Zebra TC21/TC26) и обычные смартфоны. Работа с аппаратной кнопкой сканера через DataWedge, крупные элементы интерфейса под работу в перчатках, звуковое и вибро-подтверждение операции.
Офлайн-очередь
Ключевое решение: приложение хранит локальную копию задания на отбор и пишет все действия в локальную очередь (SQLite). Синхронизация с Odoo — фоновая, с ретраями и разрешением конфликтов на сервере. Кладовщик физически не может «застрять» из-за сети.
Кастомный модуль на стороне Odoo
Чтобы не гонять по сети лишнее, написали модуль с компактным JSON-RPC API:
wave.picking— волновой отбор: система группирует заказы в волны по зонам склада;- один запрос отдаёт всё задание целиком, включая штрихкоды, ячейки и остатки;
- подтверждение операций пакетом, с идемпотентными ключами (повторная отправка не создаёт дублей);
- фиксация расхождений с фото прямо из приложения.
Маршрут отбора
Порядок строк рассчитывается по фактической геометрии склада — операторы больше не ходят из конца в конец, а идут по одному проходу.
Результат
- скорость сборки заказа выросла в 2.4 раза;
- ошибки пересорта снизились на 91% — отгрузка невозможна без скана штрихкода позиции;
- потеря Wi-Fi больше не останавливает работу;
- приёмка, инвентаризация и перемещения работают в том же приложении.
Технические детали
Аутентификация — сервисный пользователь Odoo с ограниченными правами и токеном устройства. Все операции идут от имени реального сотрудника (по PIN-коду при входе в смену), поэтому в Odoo видно, кто и что сделал.
Похожая задача?
Расскажите о процессе — оценим объём работ и сроки.
Похожие материалы
Odoo с нуля на пищевом производстве: партии, сроки годности, себестоимость
Компания росла без ERP: заказы в мессенджерах, склад в тетради. За 10 недель развернули Odoo 18 с производством, партионным учётом и прослеживаемостью до сырья.
Миграция с 1С:УПП на Odoo 17: завод металлоконструкций
Перенесли производственный учёт с 1С:УПП на Odoo 17: справочники, остатки, спецификации и незавершённое производство. Параллельный период — один месяц, потерь данных нет.
Кастомные отчёты для бухгалтерии в Odoo: как это устроено
ОСВ, акты сверки, книга покупок и продаж, управленческий P&L. Разбираем, какие механизмы Odoo использовать под каждый тип отчёта и где не стоит изобретать своё.
