Заказчик
В последние годы компания значительное внимание уделяет развитию цифровых платформ, улучшая доступность своих товаров для клиентов по всей России. Merz расширяет онлайн-продажи и внедряет цифровые инструменты для удобного взаимодействия между сотрудниками и клиентами.
Задача
Перед командой WINFOX стояла задача разработать решение для веба и мобильных устройств, интегрированное с внутренней платформой заказчика и системой складского учета.
Решение
Такой подход позволил построить не просто интерфейс для оформления заявок, а устойчивую внутреннюю систему, которая учитывает специфику фармацевтической компании и поддерживает сложные бизнес-процессы без опоры на типовые внешние решения вроде SAP или 1С.
Были сложности с правильным отображением равного количества наборов и промоматериалов на странице каталога из-за того, что наборы и промоматериалы представляют разные сущности. Решили эту задачу с помощью бэкенда, обеспечив правильную пагинацию и обработку фильтров.
Борис
Бэкенд-разработчик
серверный алгоритмический язык программирования и PHP-фреймворк для реализации всех функций приложения
система управления базами данных для хранения и обработки данных приложения
библиотека для создания и парсинга документов MSOffice
система аутентификации/авторизации
Публичная часть. PromoMall — это многофункциональный раздел внутренней платформы MerzCity для сотрудников, который облегчает работу с электронными и печатными промоматериалами.
Этот раздел непосредственно связан с мероприятиями в Merz Claud и с базой врачей в Merz City.
В публичной части работают пользователи с ролями «Менеджер СКК» и «Территориальный Менеджер».
Медицинские представители, которые зарегистрированы в корпоративной информационной системе MerzCity, могут входить без дополнительных данных, например, логина и пароля.
Авторизация реализована весьма необычно с точки зрения бизнес-логики. Так как это внутрикорпоративное приложение, данные пользователей хранятся в информационной системе MerzCity. Наше приложение не хранит никаких чувствительных данных пользователя. Это и есть главный механизм защиты.
Борис
Бэкенд-разработчик

В профиле пользователь может управлять личными данными и настраивать уведомления. Для бизнеса это не просто удобный экран, а способ поддерживать актуальность контактной информации и персонализировать взаимодействие с системой без участия администраторов.

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

Поиск в сервисе сделан многоуровневым: по виду, типу, названию, препарату, статусу и ответственному лицу. Это ускоряет доступ к нужным материалам и снижает время на ручной поиск в большом массиве контента.
Для компании такой сценарий важен напрямую: чем быстрее сотрудник находит нужные материалы, тем быстрее он переходит к заказу, отправке или подготовке к мероприятию.

В каталоге пользователи могут просматривать, фильтровать и сортировать материалы по категориям, количеству и актуальности. Это делает систему удобной не только для разового заказа, но и для регулярной операционной работы.
Для бизнеса каталог — это не просто витрина, а инструмент управления доступностью материалов и сокращения лишних запросов к внутренним командам.

В карточке материала менеджер может заказать продукт, добавить его в корзину, скачать электронную версию, увидеть остатки на складе при срочном заказе и отправить запрос на материалы, которых нет в наличии.
Такой экран сокращает число лишних шагов и объединяет все действия вокруг материала в одной точке, что особенно важно при высокой операционной нагрузке.

На этапе корзины пользователь может добавлять и удалять позиции, формировать заказ и отправлять его на согласование. Дополнительно система дает рекомендации по количеству материалов в заказе.
Это снижает вероятность ошибок, помогает соблюдать внутренние правила заказа и уменьшает нагрузку на сотрудников, которые раньше согласовывали детали вручную.

Если мероприятие планируется заранее, пользователь может оформить регулярный заказ независимо от текущих остатков на складе. Если материалы нужны срочно, можно отправить срочный заказ — он будет принят, если нужные позиции есть в наличии.
Такое разделение делает систему ближе к реальной логике бизнеса: плановые активности обслуживаются по одному сценарию, а срочные запросы — по другому, без смешения процессов.

Весь процесс исполнения заказа сопровождается уведомлениями: от создания до отгрузки и доставки. Пользователь понимает, на каком этапе находится заявка, а бизнес получает более прозрачный и управляемый процесс без постоянных уточнений вручную.
Это особенно важно для распределенной корпоративной среды, где в процессе участвуют разные роли и подразделения.
Интересный кейс — отправка отложенных уведомлений. Чтобы все сделать правильно и надежно, использовали паттерн «Наблюдатель», который в Laravel реализуется с помощью системы событий и слушателей. Для отправки уведомлений с задержкой и по расписанию подключили механизм очередей, что не только позволило реализовать необходимый функции, но и снизило нагрузку на сервер.
Борис
Бэкенд-разработчик
Мы разработали административную часть сервиса для бренд-менеджеров и координаторов Merz. Через нее можно контролировать движение промоматериалов на каждом этапе заказа, обрабатывать заявки и выполнять регулярные операционные действия без ручного учета в сторонних таблицах.
Для бизнеса это означает переход от фрагментированного процесса к централизованному управлению.
Администраторы размещают на сайте промоматериалы, заполняют карточки материалов, добавляют и редактируют описания, смотрят аналитику, одобряют заказы, контролируют наличие печатных материалов и отправляют материалы в архив. Мы все предусмотрели!
Сергей
Фронтенд-разработчик
Все пользователи могут просматривать наличие материалов, использовать фильтры и поиск, а также выгружать данные в Excel. Бренд-менеджеры и координаторы могут создавать, редактировать и удалять карточки материалов, контролировать наличие печатной продукции, работать с архивом и отслеживать аналитику.
Это делает административную часть не просто служебной панелью, а полноценным инструментом управления внутренним контентом и запасами.

Материалы, которые обычно заказывают вместе, объединили в наборы. Это упрощает навигацию в системе и позволяет оформлять типовые заказы быстрее.
Для бизнеса это означает меньше ручной сборки заказов, меньше ошибок и более удобную работу с повторяющимися сценариями.

Если в одном заказе есть материалы, за которые отвечают разные бренд-менеджеры, система автоматически распределяет согласование между ними. Бренд-менеджер может скорректировать, допечатать, согласовать или отклонить заказ. После согласования заказ переходит к координатору, который может продолжить обработку, выгрузить данные в Excel или отправить материалы в отгрузку.
Это снижает ручную координацию между участниками процесса и делает согласование масштабируемым.
Когда заказ согласован, он попадает к координатору. Он может скорректировать заказ, выгрузить его в Excel или отгрузить.
Сергей
Фронтенд-разработчик

Координатор и администратор могут отправлять уведомления всем пользователям сервиса — например, сообщать о поступлении новых промоматериалов на склад. За счет этого PromoMall работает не только как система заказа, но и как канал операционной коммуникации внутри корпоративного процесса.

Результат
Для бизнеса это означает:
— снижение доли ручных операций при заказе и сопровождении промоматериалов; — более прозрачный контроль остатков и движения материалов; — ускорение согласования между разными ответственными; — более удобную работу сотрудников и партнеров с веба и мобильных устройств; — устойчивую работу системы даже при высокой одновременной нагрузке.
У нас получилось, потому что вся команда ответственно отнеслась к работе, а внутри царило полное взаимопонимание между участниками. Каждый осознавал свою ответственность и прикладывал все силы для правильной и своевременной реализации своих задач.
Станислав
Менеджер проекта
фреймворки для разработки интерфейсов
язык программирования
работа со стилями
работа с запросами на сервер
сборщик проекта
Сергей
Саид
Алексей