Направление работ: AdmLk Код раздела: 3.8 Раздел: Управление > Сервисные промокоды Статус: черновик Ответственный: Панкова Л.А. Версия: 0.2 Обновлено: 04.08.26


1. Назначение

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

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

Раздел зависит от Back: 8.4.1 Администрирование > Параметры системы > Сервисные промокоды. Также раздел зависит от Back: 2.7.1 Объекты и предложения > Скидки > Акции и промокоды.

2. Ключевые понятия

Сервисный промокод — промокод, который сотрудник сервисного кабинета настраивает для одной, нескольких или всех партнерских зон.

Промокод — ручная скидка, применяемая по уникальному коду при создании заказа.

Условия активации — настраиваемые в форме параметры заказа, при которых действует сервисный промокод: дни недели, время действия, время до начала, порядок действия и минимальная длительность заказа.

Персонализация — ограничение доступности сервисного промокода выбранными клиентами или группами клиентов.

Архив сервисных промокодов — записи, отображение которых сотрудник включает или выключает отдельным действием на странице.

3. Scope

Входит

S1: Страница сервисных промокодов.

S2: Создание сервисного промокода.

S3: Состояние загрузки и адаптивы.

S4: Удаление сервисного промокода.

Не входит

4. BR

Связанные BR относятся к разделам Back: 8.4.1 Администрирование > Параметры системы > Сервисные промокоды и Back: 2.7.1 Объекты и предложения > Скидки > Акции и промокоды.

5. Функциональные требования (UC + FR)

IDСценарийФункциональное требованиеBRВесСтатус
S1: FR3.8-1Сотрудник открывает раздел «Сервисные промокоды»Интерфейс открывает страницу «Промокоды» и показывает:
- поле «Найти»;
- фильтр «Скидка на»;
- действие «Скрыть архив» или «Показать архив»;
- кнопку создания промокода;
- кнопку с тремя точками для открытия «Настроек отображения»;
- таблицу сервисных промокодов.

Если столбцы не помещаются в доступную ширину экрана, интерфейс позволяет прокручивать таблицу по горизонтали.
1Реализовано
S1: FR3.8-2Сотрудник ищет сервисный промокодИнтерфейс фильтрует список по введенному в поле «Найти» названию (коду) промокода или описанию.2Реализовано
S1: FR3.8-3Сотрудник фильтрует сервисные промокоды по виду скидкиИнтерфейс позволяет выбрать в фильтре «Скидка на» одно из значений:
- «Все»;
- «На заказ»;
- «На время»;
- «На позиции».

Интерфейс показывает записи, соответствующие выбранному виду скидки; значение «Все» снимает ограничение.
2Реализовано
S1: FR3.8-4Сотрудник просматривает список сервисных промокодовИнтерфейс показывает в таблице столбцы:
- «Промокод»;
- «Описание»;
- «Действует на»;
- «Период действия»;
- «Сферы»;
- «Города»;
- «Источники»;
- «Скидка на»;
- «Время действия»;
- «Время до начала»;
- «Порядок действия»;
- «Длительность от»;
- «Персонализация»;
- «Общее кол-во исп.»;
- «Кол-во исп. на клиента»;
- «Статус».

При нажатии на промокод в таблице интерфейс открывает в новой вкладке AdmLk 4.2 «Отчёт по заказам» с фильтрацией по выбранному промокоду.
1Реализовано
S1: FR3.8-5Сотрудник управляет архивом сервисных промокодовИнтерфейс позволяет показать или скрыть архивные сервисные промокоды отдельным действием над списком.

При попытке отключить активный сервисный промокод интерфейс открывает окно подтверждения «Вы действительно хотите отключить сервисный промокод?» с действиями «Отмена» и «Отключить». Действие «Отмена» закрывает окно без изменений. Действие «Отключить» подтверждает отключение сервисного промокода.
2Реализовано
S1: FR3.8-6Сотрудник открывает настройки отображения таблицыИнтерфейс открывает панель «Настройки отображения» со списками «Открыто» и «Скрыто», которые вместе содержат полный перечень доступных столбцов таблицы, и действием «По умолчанию».3Реализовано
S1: FR3.8-7Сотрудник настраивает отображение столбцов таблицыИнтерфейс позволяет:
- скрыть или показать отдельный столбец;
- скрыть все открытые столбцы действием «Скрыть все»;
- показать все скрытые столбцы действием «Показать все»;
- изменить порядок столбцов перетаскиванием;
- показать все столбцы в порядке «По умолчанию» одноименным действием.
3Реализовано
S1: FR3.8-8Сотрудник начинает создание сервисного промокодаИнтерфейс по действию добавления открывает боковую панель «Создание промокода».1Реализовано
S2: FR3.8-9Сотрудник просматривает форму создания сервисного промокодаИнтерфейс показывает основные настройки:
- «Код промокода»;
- «Промокод действует на» для выбора партнерских зон;
- «Период действия».

Ниже интерфейс показывает разделы:
- «Установить ограничения»;
- «Установить скидку»;
- «Условия активации»;
- «Дополнительно»;
- «Персонализация»;
- «Количество использований».

В нижней части формы доступны действия «Отменить» и «Сохранить».
1Реализовано
S2: FR3.8-10Сотрудник вводит код промокодаИнтерфейс позволяет ввести значение в поле «Код промокода» или заполнить его действием «Сгенерировать».1Реализовано
S2: FR3.8-11Сотрудник выбирает партнерские зоныПоле «Промокод действует на» поддерживает поиск партнерской зоны по введенному значению и открывает готовый выпадающий список партнерских зон. Интерфейс позволяет выбрать одну, несколько или все партнерские зоны и отменить выбор.2Реализовано
S2: FR3.8-12Сотрудник выбирает период действия промокодаИнтерфейс раскрывает календарь и позволяет выбрать одну дату или период.

Сотрудник может выбрать месяц и год из списков или переключать месяцы стрелками назад и вперед.

Действие «Применить» переносит выбранную дату или период в форму создания промокода. Действие «Сбросить» отменяет текущий выбор в календаре и возвращает предыдущее значение периода в форме.
2Реализовано
S2: FR3.8-13Сотрудник ограничивает действие промокода по сферамИнтерфейс позволяет выбрать одну, несколько или все сферы и показывает выбранные значения в форме. Действие «?» рядом с заголовком «Установить ограничения» открывает подсказку по ограничениям.2Реализовано
S2: FR3.8-14Сотрудник ограничивает действие промокода по городамИнтерфейс позволяет выбрать один, несколько или все города и показывает выбранные значения в форме.2Реализовано
S2: FR3.8-15Сотрудник ограничивает действие промокода по интерфейсам создания заказаИнтерфейс позволяет выбрать один, несколько или все интерфейсы создания заказа:
- «Мобильное приложение»;
- «Каталог»;
- «Виджет»;
- «Внешние календари»;
- «Telegram bot».
2Частично #[OQ3.8-1]
S2: FR3.8-16Сотрудник выбирает скидку на заказИнтерфейс позволяет выбрать «На заказ» и числовое значение скидки в процентах с шагом 5%. Минимальное значение скидки — 5%. При выбранной скидке на заказ элементы «На время» и «На позиции» недоступны. Действие «?» рядом с заголовком «Установить скидку» открывает подсказку по настройке скидки.1Частично #[OQ3.8-2]
S2: FR3.8-17Сотрудник выбирает скидку на время или позицииИнтерфейс позволяет выбрать «На время» и «На позиции» по отдельности или совместно и выбрать значение для каждого выбранного вида скидки. При выборе скидки на время или позиции элемент «На заказ» недоступен.1Реализовано
S2: FR3.8-18Сотрудник настраивает условия активации промокодаИнтерфейс позволяет настроить:
- один, несколько или все дни недели с понедельника по воскресенье;
- время действия;
- время до начала заказа;
- порядок действия;
- минимальную длительность заказа.

Действие «?» рядом с заголовком «Условия активации» открывает подсказку по условиям активации.
2Реализовано
S2: FR3.8-19Сотрудник выбирает время действия промокодаИнтерфейс позволяет выбрать время начала и окончания интервала действия и добавить один или несколько интервалов.2Реализовано
S2: FR3.8-20Сотрудник выбирает время до начала заказаИнтерфейс позволяет выбрать значение ограничения «Время до начала заказа» с шагом один час.2Реализовано
S2: FR3.8-21Сотрудник выбирает порядок действия промокодаИнтерфейс позволяет выбрать для «Порядка действия» значение «Заранее», «День в день» или «Всегда».2Реализовано
S2: FR3.8-22Сотрудник выбирает минимальную длительность заказаИнтерфейс позволяет выбрать значение ограничения «Длительность заказа от» с шагом один час.2Реализовано
S2: FR3.8-23Сотрудник добавляет описаниеИнтерфейс позволяет раскрыть поле действием «Добавить описание» и ввести описание сервисного промокода.3Реализовано
S2: FR3.8-24Сотрудник персонализирует промокодИнтерфейс позволяет найти клиента по имени, телефону или email, выбрать одного, нескольких или всех клиентов и показывает выбранных клиентов и группы в форме.2Реализовано
S2: FR3.8-25Сотрудник ограничивает количество использованийИнтерфейс позволяет выбрать «Общее кол-во использований» и «Кол-во использований на клиента» или оставить общее количество без ограничения.2Реализовано
S2: FR3.8-26Сотрудник сохраняет новый сервисный промокодПока обязательные поля «Код промокода» и значение скидки не заполнены, действие «Сохранить» неактивно, а интерфейс показывает подсказку «Установите код промокода и размер скидки для сохранения». После заполнения обязательных полей действие «Сохранить» становится доступным.1Реализовано
S2: FR3.8-27Сотрудник отменяет создание сервисного промокодаИнтерфейс позволяет закрыть панель или выбрать «Отменить» без сохранения нового сервисного промокода.2Реализовано
S2: FR3.8-28Сотрудник настраивает дополнительные ограничения (на будущую реализацию)Интерфейс позволяет добавить ограничения «На группы клиентов» и «На сумму» при создании сервисного промокода.3Не реализовано
S2: FR3.8-29Сотрудник ограничивает количество заказов в партнерской зоне (на будущую реализацию)Интерфейс позволяет выбрать «Кол-во заказов на одной парт. зоне» для сервисного промокода.3Не реализовано
S2: FR3.8-30Сотрудник сбрасывает выбранную настройкуИнтерфейс показывает действие удаления в виде крестика у каждого заполненного пункта настройки. Нажатие на крестик сбрасывает значение соответствующего пункта, не изменяя остальные настройки формы.2Реализовано
S3: FR3.8-31Сотрудник открывает страницу, данные загружаютсяИнтерфейс показывает состояние загрузки для поля поиска, фильтра, действий и строк таблицы до получения данных сервисных промокодов.2Реализовано
S3: FR3.8-32Сотрудник использует раздел на разных ширинах экранаИнтерфейс адаптирует страницу сервисных промокодов, связанные блоки, фильтры, действия и таблицу для desktop, laptop и tablet без потери доступных функций.2Частично #[OQ3.8-3]
S4: FR3.8-33Сотрудник включает режим удаления сервисных промокодовИнтерфейс отмечает действие удаления как активное и показывает действие удаления в каждой строке таблицы.1Реализовано
S4: FR3.8-34Сотрудник выбирает сервисный промокод для удаленияИнтерфейс по действию удаления в строке открывает окно подтверждения с текстом «Удалить промокод „[код промокода]“?» и действиями «Отмена» и «Удалить».2Реализовано
S4: FR3.8-35Сотрудник отменяет удаление сервисного промокодаИнтерфейс по действию «Отмена» закрывает окно подтверждения без удаления сервисного промокода.2Реализовано
S4: FR3.8-36Сотрудник подтверждает удаление сервисного промокодаИнтерфейс по действию «Удалить» удаляет выбранный сервисный промокод, закрывает окно подтверждения и обновляет список.1Реализовано

6. Открытые вопросы

Контекст сверки. BRD версия 0.2 (обновлено 04.08.26). Репозиторий: musbooking.weblk.adminpanel, commit 3a107bd (origin/main, 2026-09-06). Дата сверки: 2026-09-08. Якорь в коде: pages/management/promocodes.vue, widgets/promo-codes/**, entities/promo-code/**, features/promo-code-*/** (FSD-слайсы, Nuxt 3 + Vue, Vuetify). Первая полная сверка — колонка «Статус» была пустой. Гайдбук не передавался — маршрутизация вопросов без сверки с гайдбуком.

IDИсточникВопросКомуСтатусРекомендацииИтоговое решение
OQ3.8-1FR3.8-15Требование говорит: фильтр/ограничение «Промокод действует на интерфейсы создания заказа» должен содержать ровно пять значений — «Мобильное приложение», «Каталог», «Виджет», «Внешние календари», «Telegram bot». В коде: список источников подгружается динамически из справочника OrderSourcesService.fetchList() (entities/order-source/store/order-sources.api.ts:19-21, features/promo-code-drawer/model/usePromoCodeDrawer.options.ts:110-118) без каких-либо захардкоженных значений — фактический состав зависит от данных справочника на бэкенде/в БД, который с фронта не проверить.БизнесOpenСверить содержимое справочника источников заказов (GetOrderSources) в проде/на стенде с перечнем из FR3.8-15; при расхождении — актуализировать справочник или формулировку требования.
OQ3.8-2FR3.8-16Требование говорит: скидка «На заказ» задаётся только в процентах, с шагом 5% и минимумом 5%. В коде: для режима «На заказ» доступен тот же компонент выбора единицы измерения %/₽, что и для «На время»/«На позиции» (features/promo-code-discount/ui/PromoCodeDiscountSection.vue:64-85, shared/ui/discount-value-input/DiscountValueInput.vue:22-33,63-66 — шаг/минимум применяются только при выбранной единице percent), то есть скидку «На заказ» можно также указать в рублях.РазработкаOpenУбрать выбор единицы «₽» для режима «На заказ» либо, если возможность задавать скидку на заказ в рублях — осознанное решение продукта, обновить формулировку FR3.8-16.
OQ3.8-3FR3.8-32Требование говорит: страница сервисных промокодов, фильтры, действия и таблица должны адаптироваться под desktop, laptop и tablet без потери функций. В коде: ни в features/promo-code-list/ui/PromoCodesList.vue, ни в widgets/promo-codes/ui/PromoCodesWidget.vue, ни в features/promo-code-drawer/ui/PromoCodeDrawer.vue нет ни одного @media-запроса; ключевые элементы имеют фиксированную ширину (поле поиска 360px и фильтр «Скидка на» 240px — PromoCodesList.vue:706-717; drawer формы 460px — PromoCodeDrawer.vue:6). Отдельного файла техдолга по разделу промокодов в docs/technical debt/ нет.РазработкаOpenПроверить раздел вручную на планшетных ширинах (≈768–1024px) и добавить адаптивные стили для фильтров и формы при необходимости.

0 items under this folder.