Маркетинг, дизайн, реклама
Порталы и сервисы
Июнь 2026
Федеральное агентство радиорекламы занимается размещением сетевой и мультилокальной рекламы на радио, а также рекламой в Digital Audio. Для такого бизнеса прайс-лист радиостанции - не просто файл с ценами, а основа будущего медиаплана: в нем зашиты город, станция, период действия, стоимость спотов, НДС, скидки, сезонные коэффициенты, наценки и другие условия, которые влияют на итоговый бюджет рекламной кампании.
До проекта команда работала в старой десктопной системе на Delphi и Firebird, созданной примерно 10-15 лет назад. Она закрывала базовый процесс, но ее интерфейс, техническая база и внутренняя логика уже не соответствовали текущим задачам команды. Поддерживать и развивать такое решение было сложно: по системе оставалось мало документации, а часть знаний о ее устройстве была завязана на разработчика, который давно не участвовал в проекте.
Перед нами стояла задача не просто обновить интерфейс, а заменить старое приложение новым рабочим инструментом: сохранить привычную бизнес-логику, перенести накопленные данные и заложить основу для дальнейшего развития продукта.
На этапе технического проектирования мы разобрали старую систему, восстановили ключевые пользовательские сценарии и описали будущую архитектуру. После этого перешли к разработке нового приложения.
Нужно было реализовать:
— полноценную замену старой системы;
— миграцию исторических данных;
— новый интерфейс и дизайн-систему;
— модуль управления прайс-листами;
— генератор медиапланов;
— модуль хранения писем и вложений;
— справочники городов, радиостанций и пользователей;
— ролевую модель для специалистов и администраторов;
— основу для дальнейших доработок после первого релиза.
Отдельным условием было сохранить логику, к которой привыкли пользователи. Новое приложение не должно было ломать рабочий процесс команды: наоборот, оно должно было сделать его современнее, прозрачнее и удобнее.
Радиостанции передают условия размещения в разных форматах: PDF, DOC, PNG, TXT, письма с вложениями и другие файлы. Прайс-листы могут приходить не только по почте: радиостанция может направить их менеджеру по любому рабочему каналу. Эти условия нужно привести к единой структуре, связать с конкретным городом и радиостанцией, проверить актуальность, а затем использовать в расчетах.
Медиаплан при этом остается ключевым рабочим документом для коммуникации с клиентами и контрагентами. Он должен быть понятным, точным и пригодным для дальнейшей работы в Excel: с разбивкой по месяцам, расчетом стоимости спотов, итогами, скидками, НДС и сводными таблицами.
Сложность проекта была в том, что приложение должно было соединить два мира:
привычный Excel-формат, в котором участники рынка продолжают работать с медиапланами;
централизованную веб-систему, где хранятся прайс-листы, письма, справочники, роли и расчетные правила.

Мы спроектировали и разработали модульное веб-приложение на PHP/Symfony и Vue/PrimeVue. Бэкенд отвечает за бизнес-логику, расчеты, работу с данными и REST API. Фронтенд дает пользователям современный интерфейс для управления прайс-листами, медиапланами, письмами и справочниками.
Дизайн приложения также был разработан с нуля на стороне PWD. Бизнес-аналитик подготовил прототипы, после чего дизайнер собрал интерфейсы на UI-ките, а команда разработки реализовала их в продукте. В результате заказчик получил не просто техническую замену старого решения, а новое приложение с понятной навигацией, актуальным визуальным языком и удобными сценариями работы.
По сути, мы сохранили ядро старого бизнес-процесса, но перенесли его в новую архитектуру: обновили интерфейс, добавили новые функции, сделали работу с данными более прозрачной и подготовили систему к дальнейшему развитию.

В старой системе накопился большой объем данных за годы работы компании. В новую систему были перенесены города, радиостанции, пользователи, медиапланы и прайс-листы.
По оценке команды, речь идет о базе федерального масштаба: в справочниках присутствуют города по всей России, включая небольшие населенные пункты, а количество прайс-листов составляет десятки тысяч записей. В рабочем списке прайс-листов отображалось 506 страниц по 50 элементов, то есть более 25 тысяч прайс-листов с разными статусами: устаревшие, текущие и будущие.
Это важно для бизнеса: новое приложение стало не пустой оболочкой, а продолжением накопленной базы. Команда заказчика смогла перейти в новую систему без потери исторических данных и рабочих связей между городами, станциями и условиями размещения.

Прайс-лист в системе стал полноценной сущностью, а не просто прикрепленным файлом. Пользователь может создать прайс, связать его с городом и радиостанцией, указать период действия, тип прайса, НДС, инфляцию, предоплату, скидки, наценки, сезонные коэффициенты и другие параметры.

В модуле реализованы:
создание черновиков, просмотр, редактирование, удаление и копирование прайс-листов;
поиск, фильтрация, сортировка и пагинация списка;
настройка отображения списка;
детальная карточка прайс-листа с вкладками по смысловым блокам;
создание города или радиостанции прямо из карточки прайса;
привязка писем и файлов к конкретному прайс-листу;
статусы и визуальная подсветка прайсов по актуальности;
блокировка прайсов, которые нельзя использовать в расчете;
контроль дубликатов активных прайс-листов по связке "город + радиостанция".
Отдельно была реализована функция копирования прайс-листа. Она появилась как пострелизная доработка: в первоначальный релиз функция не вошла из-за оптимизации объема работ, но после запуска заказчик вернулся к ней как к важному ускорителю ежедневной работы. При копировании система учитывает ограничения, чтобы новый прайс не конфликтовал с предыдущим по календарным интервалам и другим важным параметрам.

Один из ключевых модулей приложения - генератор медиапланов. Пользователь выбирает прайс-листы из базы, задает параметры рекламной кампании, календарные интервалы и время выхода, после чего система формирует Excel-файл в нужном формате.

В генераторе реализованы:
индивидуальная страница медиаплана для специалиста, чтобы разные пользователи не затирали данные друг друга;
список радиостанций, сгруппированных по городам;
поиск по городу и радиостанции;
выбор одного или нескольких прайс-листов для медиаплана;
сортировка временных и календарных интервалов;
сохранение медиаплана и версионность через создание копии при генерации;
запуск генерации с подтверждением;
прогресс выполнения по количеству обработанных месяцев;
размещение каждого прайс-листа на отдельном листе Excel;
формирование клиентской и менеджерской сводных таблиц;
разные режимы итогов: без сводки, без разделения, с разбивкой по месяцам, по НДС, по месяцам и НДС.
Медиаплан может включать до 100-200 прайс-листов в одном файле. Система собирает данные из выбранных прайсов и формирует документ, в котором по каждому листу доступны расчетные блоки, месяцы, споты, минуты, скидки, НДС и итоговый бюджет.

Excel в проекте не был "остатком прошлого", который нужно любой ценой убрать. Для рынка это привычный формат обмена медиапланами с клиентами и контрагентами, поэтому мы сохранили его как финальный рабочий документ.
В веб-приложении остались подготовка и управление данными:
структурирование прайс-листов;
выбор городов, радиостанций и условий;
хранение исходных писем;
настройка параметров медиаплана;
запуск генерации;
разграничение доступа.
В Excel вынесена финальная рабочая форма медиаплана: документ, который можно передавать дальше, согласовывать и использовать в процессе размещения. При этом файл генерируется из централизованных данных, а не собирается вручную с нуля.
Такой подход позволил не ломать привычный сценарий работы команды и контрагентов, но убрать значительную часть ручной подготовки из самого процесса.
В системе предусмотрено разделение прав. Специалист по медиапланам работает со своим разделом и видит ограниченный набор функций, необходимый для подготовки медиапланов. Администратор получает доступ ко всем возможностям системы: прайс-листам, медиапланам, письмам, справочникам, пользователям и дополнительным операциям.
Такая модель помогает разделить ответственность:
специалисты по прайс-листам поддерживают базу коммерческих условий;
специалисты по медиапланам формируют документы для рекламных кампаний;
администраторы управляют системой, справочниками и расширенными сценариями.
Система рассчитана не только на внутреннюю команду заказчика. Доступ к ней могут получать и внешние участники процесса: например, менеджеры со стороны контрагентов, которые работают с прайс-листами и передают данные. Технически решение закладывалось с запасом по росту и может поддерживать сотни пользователей, хотя реальная активная нагрузка зависит от того, сколько партнеров заказчик переведет в систему.

Так как прайс-листы часто приходят письмами или передаются менеджерам по другим каналам, в приложении реализован отдельный модуль для работы с письмами и файлами.
Система позволяет:
автоматически подгружать письма по настройкам почты;
вручную запускать синхронизацию;
загружать письма с устройства в форматах OFT, MSG и TXT;
исключать повторную загрузку уже существующих писем;
хранить отправителя, получателя, тему, тело письма и вложения;
искать и фильтровать письма;
привязывать письма и файлы к конкретным прайс-листам.
Это закрывает важную операционную задачу: если нужно проверить источник условий, пользователь может перейти от прайс-листа к связанному письму и вложениям, а не искать документ в почте или локальных папках.

После первого релиза у заказчика появились новые запросы к системе. Один из них - защита сформированного Excel-файла. В медиаплан добавили брендирование, чтобы сохранить авторство документа и снизить риск его некорректного использования.
Также появилась задача ограничить редактирование файла, чтобы контрагенты не могли произвольно менять суммы и другие расчетные данные.
Еще одно направление развития - обработка уже заполненного медиаплана. Этот сценарий нужен, когда специалист сформировал медиаплан, отправил его контрагенту, а затем получил обратно файл с ручными изменениями: удаленными блоками, заполненными спотами, измененными ячейками или дополнительными данными.
Для следующего этапа была подготовлена отдельная спецификация. По этой логике администратор загружает Excel-файл обратно в систему, приложение распознает прайс-листы внутри документа, сопоставляет их с базой, предлагает выбрать найденные позиции и генерирует новый корректный медиаплан. При обработке система должна забирать из файла пользовательские изменения, но пересчитывать ключевые коммерческие данные по актуальным прайс-листам из приложения.
Такой механизм должен снизить объем ручной сверки: вместо сравнения двух Excel-файлов пользователь сможет получить обработанный документ, где сохранены нужные изменения, а расчетные данные приведены к правилам системы.

PWD помогла заказчику перейти от устаревшей легаси-системы к современному веб-приложению для ежедневной работы с прайс-листами и медиапланами.

Что получил заказчик:
полноценную замену старого приложения;
новый интерфейс и дизайн, разработанные с нуля;
перенесенную историческую базу по городам, радиостанциям, пользователям, медиапланам и прайс-листам;
единую систему хранения прайс-листов и исходных писем;
контроль актуальности и применимости прайсов;
автоматическую генерацию сложных Excel-медиапланов;
ролевую модель для специалистов и администраторов;
основу для дальнейших доработок после запуска.
Решение сохранило привычный для бизнеса Excel-контур, но перенесло подготовку данных, контроль и часть расчетной логики в централизованное приложение. За счет этого команда получила более управляемый процесс: от исходного письма с прайсом до готового медиаплана для клиента. Новое приложение стало основой, которую можно развивать дальше без зависимости от старой системы и ее ограничений.