Бизнес-модель клиента: закупка у поставщиков, собственный склад, упаковка и отгрузка на Ozon и Wildberries. Параллельно идут услуги фулфилмента для других селлеров, чьи товары проходят через тот же склад.
Всё хозяйство держалось на россыпи Excel-макросов: под каждую операцию свой файл и ручной перенос данных между ними. Заработок упаковщиков считали в конце месяца по таблице, поэтому человек весь месяц не знал, сколько уже заработал, и переставал стараться.
Защиты от приписок не было: можно ввести «упаковал 700 терок», когда на первичном складе их 400, и никто не заметит до сверки. Пересортицы, недостачи и переупаковки всплывали через несколько дней после факта и превращались в расследование по нескольким файлам.
Упаковщик на складе работает руками. Электронная таблица для него лишний барьер: он не видит, сколько уже заработал, и работает вслепую.
Теперь упаковщик открывает свой рабочий день в веб-приложении на телефоне и сканирует штрих-коды камерой: каждое действие сразу уходит в систему. На экране у него счётчик заработанных денег в реальном времени, а что делать дальше, система подсказывает сама.
Упаковщик может запросить аванс одним нажатием, видит свой график смен, знает свою месячную статистику.
Раньше менеджер узнавал о приписках, недостачах и пересортицах через несколько дней, при сверке Excel-файлов. Сейчас аномалии прилетают в Telegram сразу: кто, что, во сколько, на какой смене.
Менеджер видит активность каждого упаковщика в реальном времени. Может закрыть смену сотрудника, который забыл нажать «я ушёл». Подтверждает аванс одним кликом. Назначает перепроверку конкретных артикулов конкретным сотрудникам.
Клиент оказывает услуги фулфилмента другим селлерам: упаковывает их товары на своём складе. Внутри компании это отдельный бизнес со своей экономикой.
В систему встроен личный кабинет заказчика ФФ: каждый клиент видит свои операции, баланс, может оплачивать счета с автоматической комиссией. Это превратило складскую функцию из внутреннего инструмента в полноценный сервис с биллингом и юридической документацией.
Изначально логика была такая: упаковщик пытается списать больше, чем есть на остатке, — ввод блокируется. На практике это сломалось сразу: поставщик мог прислать 515 шт вместо заказанных 500, и упаковщик честно работал с фактом. Блокировка останавливала реальную работу.
Поменяли принцип: уходим в минус, обязательно уведомляем менеджера. Это превратило защиту из жёсткой стенки в детектор аномалий. Сейчас я применяю этот же принцип в других проектах: не блокировать пользователя, но видеть отклонения от нормы.
Стартовали с задачи учёта упаковки. По ходу проекта выяснилось, что услуги фулфилмента сторонним селлерам — это отдельный бизнес со своей экономикой. Каждой операции нужны две цены: одна сотруднику (расценка), другая клиенту (комиссионная стоимость услуги).
Добавили вторую цену в модель расценки, появились личный кабинет заказчика, счета, оплаты, лимиты долга. Один продукт незаметно стал двумя: учётным для своих и сервисным для клиентов.
Изначально «пересчёт» был одной кнопкой: счётчик, который начисляет деньги упаковщику. На живом складе выяснилось, что под этим словом живут три разные процедуры: полная документная ревизия с протоколом, поштучная приёмка нового товара с размещением на полки и стихийный пересчёт по запросу менеджера.
Разделили на три отдельных интерфейса с разной логикой работы и разными правами доступа. Это сняло половину путаницы у менеджера.
Упаковщику не нужно знать, что такое PackagingSession и StockMovement. Ему нужно отсканировать штрих-код и увидеть, сколько он за это заработал. Всю сложность ролей мы убрали внутрь: снаружи у каждого свой короткий экран, и система сама ведёт человека по шагам.
Снаружи это выглядит как одна система, а внутри их несколько: учёт для своих, сервис для клиентов фулфилмента, биллинг. Держит их вместе общее доменное ядро. Попытка собрать «одно решение для всех» развалилась бы здесь на первой же роли.
Покажу, как выглядят пять ролей изнутри и во что обошлось перевести людей с макросов. Сроки и бюджет назову честно, вместе с тем, что пошло не так.
Связаться