Clarify invite-only client onboarding
This commit is contained in:
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 7.4 KiB |
@@ -444,13 +444,15 @@ const pages = {
|
||||
titleBlock('1С'),
|
||||
text(72, 168, 'Статус загрузки файлов обмена', { size: 16, weight: 500, fill: C.mid }),
|
||||
cardGrid(72, 230, [
|
||||
['counterparties_snapshot', 'Контрагенты'],
|
||||
['catalog_snapshot', 'Каталог и остатки'],
|
||||
['balances_snapshot', 'Задолженность клиентов'],
|
||||
['orders_snapshot', 'Заказы клиентов'],
|
||||
], 3),
|
||||
], 4),
|
||||
rect(72, 450, 1296, 250, { rx: 28 }),
|
||||
text(104, 494, 'Последние загрузки', { size: 24, weight: 800 }),
|
||||
orderRows(104, 530, 1232, [
|
||||
['Контрагенты', 'Загружены реквизиты и признаки доступа', 'Работает'],
|
||||
['Каталог и остатки', 'Загружено 2 418 записей · последний run сегодня', 'Работает'],
|
||||
['Задолженность клиентов', 'Баланс по клиентам с личным кабинетом', 'Работает'],
|
||||
['Заказы клиентов', 'Статусы заказов за рабочий период', 'Работает'],
|
||||
|
||||
@@ -138,23 +138,22 @@
|
||||
= Функциональные требования
|
||||
|
||||
|
||||
== Требования к регистрации и подключению клиентов
|
||||
== Требования к подключению клиентов
|
||||
|
||||
|
||||
Система должна поддерживать два базовых сценария подключения клиента:
|
||||
Система должна поддерживать подключение клиента только по инициативе менеджера:
|
||||
|
||||
- регистрация по персональному приглашению
|
||||
- самостоятельная заявка на подключение
|
||||
- менеджер создает или выбирает карточку клиента и привязывает ее к контрагенту
|
||||
- менеджер направляет клиенту персональное приглашение на электронную почту
|
||||
- клиент завершает подключение по персональной ссылке из письма
|
||||
|
||||
Функциональные требования:
|
||||
|
||||
+ Менеджер должен иметь возможность направить клиенту приглашение на регистрацию по электронной почте.
|
||||
+ Клиент должен иметь возможность завершить регистрацию по персональной ссылке.
|
||||
+ Клиент должен иметь возможность подать заявку на подключение через публичную форму.
|
||||
+ Самостоятельная заявка должна поступать в менеджерский контур на рассмотрение.
|
||||
+ Менеджер должен иметь возможность подтвердить либо отклонить заявку на подключение.
|
||||
+ При подтверждении заявки система должна предоставить клиенту возможность завершить регистрацию.
|
||||
+ После завершения регистрации клиент должен получить доступ к личному кабинету.
|
||||
+ Менеджер должен иметь возможность направить клиенту приглашение на подключение по электронной почте.
|
||||
+ Менеджер должен иметь возможность связать приглашение с контрагентом, полученным из 1С либо заведенным для клиентской работы.
|
||||
+ Клиент должен иметь возможность завершить подключение по персональной ссылке.
|
||||
+ После завершения подключения клиент должен получить доступ к личному кабинету.
|
||||
+ Публичная страница входа не должна содержать самостоятельную регистрацию или самостоятельную заявку на подключение.
|
||||
+ Система должна поддерживать подключение доступных каналов уведомлений для клиентской учетной записи.
|
||||
|
||||
== Требования к каталогу готовой продукции
|
||||
@@ -296,8 +295,7 @@
|
||||
|
||||
Система должна поддерживать уведомления по следующим событиям:
|
||||
|
||||
- приглашение к регистрации
|
||||
- подтверждение либо отклонение заявки на подключение
|
||||
- приглашение к подключению
|
||||
- публикация условий по заявке
|
||||
- изменение статуса заказа
|
||||
- изменение бонусного баланса
|
||||
@@ -350,8 +348,7 @@
|
||||
|
||||
Клиенту должны быть доступны следующие действия:
|
||||
|
||||
- завершение регистрации по персональному приглашению
|
||||
- подача заявки на подключение
|
||||
- завершение подключения по персональному приглашению
|
||||
- просмотр и изменение разрешенных профильных данных
|
||||
- подключение доступных каналов уведомлений
|
||||
- просмотр каталога готовой продукции
|
||||
@@ -372,9 +369,9 @@
|
||||
|
||||
Менеджеру должны быть доступны следующие действия:
|
||||
|
||||
- рассмотрение заявок на подключение клиентов
|
||||
- подтверждение либо отклонение заявок на подключение
|
||||
- создание или выбор клиентской карточки
|
||||
- привязка клиента к контрагенту и назначение ответственного сопровождения
|
||||
- отправка персонального приглашения клиенту
|
||||
- просмотр и обработка заявок на заказ
|
||||
- просмотр и обработка заявок на расчет
|
||||
- указание стоимости, условий поставки и сопроводительного комментария
|
||||
@@ -411,14 +408,14 @@
|
||||
[*Клиент*],
|
||||
[*Менеджер*],
|
||||
[*Суперменеджер*],
|
||||
[Завершение регистрации],
|
||||
[Завершение подключения],
|
||||
[Да],
|
||||
[Нет],
|
||||
[Нет],
|
||||
[Подача заявки на подключение],
|
||||
[Отправка приглашения клиенту],
|
||||
[Нет],
|
||||
[Да],
|
||||
[Да],
|
||||
[Нет],
|
||||
[Нет],
|
||||
[Просмотр каталога],
|
||||
[Да],
|
||||
[Да],
|
||||
@@ -528,12 +525,9 @@
|
||||
[CounterpartyProfile],
|
||||
[Профиль контрагента],
|
||||
[Юридические и банковские реквизиты клиента],
|
||||
[RegistrationRequest],
|
||||
[Заявка на подключение],
|
||||
[Самостоятельная заявка клиента на подключение],
|
||||
[Invitation],
|
||||
[Приглашение],
|
||||
[Менеджерское приглашение на регистрацию],
|
||||
[Менеджерское приглашение на подключение],
|
||||
[MessengerConnection],
|
||||
[Подключение мессенджера],
|
||||
[Связка пользователя с Telegram или MAX],
|
||||
@@ -694,29 +688,6 @@
|
||||
- createdAt
|
||||
- updatedAt
|
||||
|
||||
=== RegistrationRequest
|
||||
|
||||
|
||||
Русское наименование: Заявка на подключение
|
||||
|
||||
Назначение:
|
||||
|
||||
- хранение самостоятельной заявки клиента на подключение
|
||||
|
||||
Основные поля:
|
||||
|
||||
- id
|
||||
- companyName
|
||||
- inn
|
||||
- contactName
|
||||
- email
|
||||
- status
|
||||
- rejectionReason
|
||||
- requesterId
|
||||
- reviewedById
|
||||
- createdAt
|
||||
- updatedAt
|
||||
|
||||
=== Invitation
|
||||
|
||||
|
||||
@@ -724,7 +695,7 @@
|
||||
|
||||
Назначение:
|
||||
|
||||
- хранение менеджерского приглашения клиента на регистрацию
|
||||
- хранение менеджерского приглашения клиента на подключение к личному кабинету
|
||||
|
||||
Основные поля:
|
||||
|
||||
@@ -1116,7 +1087,7 @@
|
||||
[Приглашение клиента],
|
||||
[/clients/invite],
|
||||
[менеджер],
|
||||
[выдача приглашения на регистрацию],
|
||||
[выдача приглашения на подключение],
|
||||
[Список заказов],
|
||||
[/orders],
|
||||
[менеджер],
|
||||
@@ -1243,7 +1214,7 @@
|
||||
[Детали клиента, его заказы и бонусные данные],
|
||||
[/clients/invite],
|
||||
[Пригласить клиента],
|
||||
[Создание приглашения на регистрацию],
|
||||
[Создание приглашения на подключение],
|
||||
[/orders],
|
||||
[Список заказов],
|
||||
[Очередь заказов и заявок для менеджера],
|
||||
@@ -1477,12 +1448,13 @@ Wireframe-прототип:
|
||||
- история статусов
|
||||
- системные комментарии
|
||||
|
||||
=== Страница логина и регистрации
|
||||
=== Страница входа и завершения приглашения
|
||||
|
||||
|
||||
Назначение страницы:
|
||||
|
||||
- запуск входа в систему
|
||||
- завершение подключения по персональной ссылке из приглашения
|
||||
- запуск сценариев входа через мессенджеры
|
||||
|
||||
Состав страницы:
|
||||
@@ -1743,6 +1715,7 @@ Wireframe-прототип:
|
||||
|
||||
Система должна обеспечивать получение из 1С следующих данных:
|
||||
|
||||
- сведения о контрагентах
|
||||
- каталог товаров
|
||||
- характеристики товаров
|
||||
- складские остатки
|
||||
@@ -1752,12 +1725,12 @@ Wireframe-прототип:
|
||||
- текущая задолженность клиента
|
||||
- дата актуальности сведений, полученных из 1С
|
||||
|
||||
1С рассматривается как первичный источник учетных данных по заказам, складам, статусам, стоимости, доставке и задолженности. Личный кабинет отображает эти сведения и фиксирует дату их актуальности.
|
||||
1С рассматривается как первичный источник учетных данных по контрагентам, заказам, складам, статусам, стоимости, доставке и задолженности. Личный кабинет отображает эти сведения, связывает их с созданными менеджером кабинетами клиентов и фиксирует дату их актуальности.
|
||||
|
||||
== Основной способ обмена с 1С
|
||||
|
||||
|
||||
Основным способом интеграции является файловый обмен по согласованным структурам. Личный кабинет формирует список контрагентов, по которым требуется синхронизация, а 1С на основании этого списка формирует ответные выгрузки только по таким контрагентам и только в согласованном объеме.
|
||||
Основным способом интеграции является файловый обмен по согласованным структурам. 1С формирует регламентные snapshot-выгрузки с согласованным составом учетных данных, а личный кабинет принимает эти выгрузки, обновляет локальное представление данных и показывает клиентам только сведения, доступные их контрагенту.
|
||||
|
||||
В качестве базового формата обмена используется JSON. Если на стороне 1С по техническим причинам удобнее использовать XML или CSV, стороны могут согласовать эквивалентную структуру без изменения состава передаваемых данных.
|
||||
|
||||
@@ -1769,23 +1742,24 @@ Wireframe-прототип:
|
||||
|
||||
Базовая логика обмена:
|
||||
|
||||
+ Личный кабинет передает в 1С список контрагентов, у которых есть личный кабинет либо которые заведены в системе для клиентской работы.
|
||||
+ 1С формирует выгрузки только по указанным контрагентам.
|
||||
+ 1С формирует выгрузку контрагентов, балансов, заказов, статусов, каталога и остатков в согласованном объеме.
|
||||
+ Личный кабинет принимает snapshot, сопоставляет данные по внешним идентификаторам 1С, ИНН и иным согласованным ключам.
|
||||
+ Менеджер при создании доступа выбирает или связывает кабинет клиента с контрагентом, полученным из 1С.
|
||||
+ Каталог и остатки передаются как актуальный общий snapshot.
|
||||
+ Балансы и задолженность передаются как состояние по контрагентам на дату формирования выгрузки.
|
||||
+ Заказы и статусы передаются по указанным контрагентам за согласованный период, по умолчанию за последние 60 календарных дней.
|
||||
+ Заказы и статусы передаются по контрагентам за согласованный период, по умолчанию за последние 60 календарных дней, а также по активным заказам вне этого периода при необходимости отображения клиенту.
|
||||
|
||||
== Состав файлов обмена
|
||||
|
||||
|
||||
Минимальный состав файлов обмена:
|
||||
|
||||
- `cabinet_counterparties` — список контрагентов из личного кабинета, по которым требуется синхронизация
|
||||
- `balance_snapshot` — баланс, задолженность и дата актуальности по контрагентам из списка
|
||||
- `counterparties_snapshot` — контрагенты, реквизиты и признаки доступности для клиентского кабинета
|
||||
- `balance_snapshot` — баланс, задолженность и дата актуальности по контрагентам
|
||||
- `catalog_snapshot` — актуальная продукция, характеристики и складские остатки
|
||||
- `orders_snapshot` — заказы, статусы, состав, стоимость, доставка и существенные изменения по заказам за согласованный период
|
||||
|
||||
Файл `cabinet_counterparties` передается из личного кабинета в 1С. Файлы `balance_snapshot`, `catalog_snapshot` и `orders_snapshot` передаются из 1С в личный кабинет.
|
||||
Файлы `counterparties_snapshot`, `balance_snapshot`, `catalog_snapshot` и `orders_snapshot` передаются из 1С в личный кабинет. Обратная передача файлов из личного кабинета в 1С выполняется только для согласованных клиентских заявок или иных событий, если такой контур отдельно согласован сторонами.
|
||||
|
||||
Состав файлов может быть расширен по согласованию сторон, если в ходе интеграции появится отдельный тип данных, который нецелесообразно включать в существующие файлы обмена.
|
||||
|
||||
@@ -1808,22 +1782,24 @@ Wireframe-прототип:
|
||||
|
||||
Для заказов регулярная синхронизация ограничивается согласованным периодом. По умолчанию передаются заказы за последние 60 календарных дней, а также активные заказы, если они не попадают в этот период, но должны отображаться клиенту.
|
||||
|
||||
== Пример cabinet_counterparties
|
||||
== Пример counterparties_snapshot
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"document_type": "cabinet_counterparties",
|
||||
"document_type": "counterparties_snapshot",
|
||||
"schema_version": "1.0",
|
||||
"snapshot_id": "cabinet-counterparties-2026-05-04T10:00:00",
|
||||
"snapshot_id": "1c-counterparties-2026-05-04T10:00:00",
|
||||
"generated_at": "2026-05-04T10:00:00+03:00",
|
||||
"source": "cabinet",
|
||||
"source": "1c",
|
||||
"counterparties": [
|
||||
{
|
||||
"counterparty_external_id": "1c-counterparty-77",
|
||||
"inn": "7700000000",
|
||||
"name": "ООО Клиент",
|
||||
"cabinet_enabled": true
|
||||
"kpp": "770001001",
|
||||
"cabinet_allowed": true,
|
||||
"manager_external_id": "1c-manager-12"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1952,6 +1928,7 @@ Wireframe-прототип:
|
||||
|
||||
Интеграция с 1С считается готовой в согласованном объеме, если:
|
||||
|
||||
- контрагенты из 1С принимаются и доступны менеджеру для привязки клиентского кабинета
|
||||
- каталог и характеристики товаров получаются и отображаются в личном кабинете
|
||||
- остатки по складам отображаются в карточках товаров
|
||||
- заказы клиента получаются и отображаются с актуальными статусами
|
||||
@@ -2535,7 +2512,7 @@ Wireframe-прототип:
|
||||
|
||||
Пользовательская документация должна описывать:
|
||||
|
||||
- вход в личный кабинет и завершение регистрации
|
||||
- вход в личный кабинет и завершение подключения по приглашению
|
||||
- работу с профилем и каналами уведомлений
|
||||
- просмотр каталога готовой продукции
|
||||
- добавление товаров в корзину и отправку заявки
|
||||
@@ -2622,7 +2599,7 @@ Wireframe-прототип:
|
||||
|
||||
В состав этапа входят:
|
||||
|
||||
- регистрация и подключение клиентов
|
||||
- подключение клиентов по приглашению менеджера
|
||||
- роли и разграничение доступа
|
||||
- каталог готовой продукции
|
||||
- корзина и заявки на заказ
|
||||
|
||||
Reference in New Issue
Block a user