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