Задача
Без системы процесс распадается на части: менеджер ведёт людей, маршруты и договоры в таблицах, мерчендайзер отправляет фотографии в мессенджер, аудитор пишет собственный протокол, клиент ждёт сводный отчёт, который кто-то собирает руками. Проверить, действительно ли товар выложен по планограмме в конкретном магазине конкретного числа, при таком устройстве нельзя — можно только поверить на слово.
Второй узел — деньги и доверие. Оплата исполнителю должна опираться на принятую работу, а не на отправленный отчёт. Значит, между «мерчендайзер сдал» и «клиент принял» обязан существовать проверяемый путь: независимый аудит, замечание к конкретному критерию, доработка, повторный визит. И вся эта цепочка держится на мобильном приложении, которое работает там, где интернета нет.
Решение
Одна сквозная цепочка данных. Клиент → договор и проект → регион и торговая точка → ассортимент и правила выкладки → визит и задача → анкета и фотография → аудит и замечание → решение клиента → начисление исполнителю. Любая цифра в отчёте разворачивается до исходного снимка полки, а не остаётся строкой в презентации.
Offline-first как архитектура, а не аварийный режим. Перед маршрутом на устройство сохранялись задания, адреса, справочники, анкеты и инструкции. Ответы, комментарии и фотографии писались локально и не зависели от наличия сети. Синхронизация построена как управляемая очередь пакетов: текстовые изменения и статусы уходят отдельно от тяжёлых вложений; фотографии сжимаются и передаются последовательно; прерванная передача возобновляется без повторной отправки уже принятого; каждый пакет имеет состояние ожидания, передачи, подтверждения или ошибки; повторные запросы обрабатываются идемпотентно и не создают дублирующих аудитов; конфликты версий и записи, заблокированные на время проверки, показываются пользователю явно; черновик удаляется с устройства только после подтверждения сервером. Приложение сохраняло диагностическую информацию, поэтому менеджер видел причину задержки, а не просто отсутствие отчёта.
Анкета настраивается — приложение не переиздаётся. Конструктор анкет: разделы, типы вопросов, варианты ответов, ветвление, обязательные и условные поля, требования к фотографиям, инструкции. Менеджер меняет сценарий проверки в административном контуре проекта, и новые правила приходят в поле без выпуска версии в сторах.
Аудит отделён от исполнения. У аудитора собственный маршрут и собственное приложение: полевой, совместный или клиентский аудит, повторные ответы на критерии и сравнение с отчётом исполнителя, свои фотографии и комментарии, оценка, тип и причина замечания. Замечание привязывается к конкретному вопросу, товару или изображению; на доработку возвращается отдельный пункт или весь аудит. Связка «ответ мерчендайзера — вывод аудитора — замечание — решение клиента» сохраняется целиком, поэтому исправленная фотография не теряет контекст предыдущей проверки.
Клиент видит исполнение, а не занятость подрядчика. Карта и реестр точек с фильтрами по региону, проекту и состоянию, история визитов по каждому магазину, отчёты по выкладке, наличию, ценникам и рекламным материалам, исходные фотографии рядом с ответами анкеты, замечание к конкретному критерию, приёмка, возврат на доработку и отслеживание повторной проверки, сводная аналитика по территориям и типам нарушений, экспорт протоколов. Мобильное приложение клиента даёт тот же контроль в коротком сценарии — открыть магазин или аудит, посмотреть фото и оценку, оставить замечание, подтвердить результат.
Допуск, а не просто регистрация. Исполнителей находили через Avito и другие внешние каналы, но профиль в системе не означал доступ к данным клиента. Кандидат проходил приглашение, регистрацию, проверку удостоверяющих документов, договор, привязку к территории и проекту, выдачу прав — и только после этого получал рабочие задания.
Изоляция данных по нескольким осям сразу. Права считались по роли, организации, проекту, региону и статусу оформления пользователя. Мерчендайзер видел только назначенные ему магазины и задания, аудитор — только проверки своего контура, клиент — только собственные проекты, операционный менеджер — разрешённые ему территории и команды. Персональные документы исполнителей и коммерческие данные клиентов защищались отдельным набором прав, а журнал фиксировал приглашения, изменения анкет, назначения, загрузки, решения аудитора, согласования клиента и операции с начислениями — по нему восстанавливается, кто и на каком этапе изменил результат проверки.
Начисления из принятых работ. Правила оплаты по проекту и типу задания, реестр принятых работ, корректировки, подготовка данных для расчёта с исполнителями. Основанием служит не отправленный отчёт, а работа, прошедшая проверку и принятая клиентом.
Результат
Аутсорсинг мерчендайзинга стал проверяемым цифровым сервисом. Подрядчик получил единый контур найма, оформления, планирования, диспетчеризации, полевой работы, контроля качества и расчётов вместо десятка таблиц и переписок. Мерчендайзер — маршрут, понятную анкету, приложение, которое не теряет данные без связи, и личный раздел с начислениями по принятым заданиям. Аудитор — независимый контур со своим протоколом. Клиент — прямой доступ к результатам по каждому магазину и возможность вернуть работу на доработку, а не ждать очередного ручного отчёта. Управленческая отчётность собирается из первичных данных: покрытие точек по территориям, выполнение маршрутов, повторяющиеся нарушения выкладки, доля материалов в ожидании проверки, качество по исполнителям и группам, причины возвратов, состояние синхронизации устройств.