From 0ce037df6ee7fe37624e144257db862e35aa0dc0 Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Fri, 15 May 2026 19:53:12 +0700 Subject: [PATCH] Update TZ request to order flow --- docs/tz-fregat.typ | 441 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 411 insertions(+), 30 deletions(-) diff --git a/docs/tz-fregat.typ b/docs/tz-fregat.typ index 7f0d3b3..b1634db 100644 --- a/docs/tz-fregat.typ +++ b/docs/tz-fregat.typ @@ -87,7 +87,7 @@ Продукт должен объединять клиентский, менеджерский, административный и интеграционный контуры в единой веб-системе. Подробный состав функций, ролей, данных, интерфейсов и интеграций установлен в последующих разделах настоящего технического задания. -Объектом автоматизации являются процессы предоставления B2B-клиентам доступа к актуальным учетным данным по заказам, статусам, составу заказов, условиям, балансу и задолженности. +Объектом автоматизации являются процессы клиентского взаимодействия по заявкам и заказам: ознакомление клиента с продуктовой онтологией, формирование заявки в личном кабинете, обработка заявки менеджером, привязка заявки к заказу 1С и дальнейшее отображение актуальных учетных данных по заказам, статусам, составу, условиям, балансу и задолженности. == Границы продукта @@ -111,7 +111,8 @@ - выполнения функций публичного B2C-магазина - прямого редактирования клиентом внутренних бизнес-правил компании - замены учетной системы 1С как первичного источника учетных данных -- предоставления клиенту каталога продукции, складских остатков, корзины или самостоятельного оформления заказа через личный кабинет +- синхронизации и отображения складских остатков в личном кабинете +- самостоятельного оформления клиентом учетного заказа без участия менеджера и без создания заказа в 1С == Пользовательские контуры @@ -122,19 +123,22 @@ - менеджерский контур - административный контур суперменеджера -Клиентский контур предназначен для просмотра клиентом своих заказов, состава заказов, статусов, условий, баланса, задолженности, уведомлений и бонусного кабинета. +Клиентский контур предназначен для просмотра продуктовой онтологии, формирования заявки, просмотра своих заявок и связанных с ними заказов, состава заказов, статусов, условий, баланса, задолженности, уведомлений и бонусного кабинета. -Менеджерский контур предназначен для создания и подтверждения клиентских кабинетов, отправки приглашений, сопровождения клиентов, просмотра данных клиента и работы с бонусными операциями. +Менеджерский контур предназначен для создания и подтверждения клиентских кабинетов, отправки приглашений, обработки заявок, привязки заявок к заказам 1С, сопровождения клиентов, просмотра данных клиента и работы с бонусными операциями. -Административный контур предназначен для управления пользователями, уведомлениями, интеграционными параметрами и отдельными сервисными настройками системы. +Административный контур предназначен для управления пользователями, продуктовой онтологией, уведомлениями, интеграционными параметрами и отдельными сервисными настройками системы. == Основные принципы работы - доступ к функциям и данным определяется ролью пользователя - клиент работает только в пределах собственных данных и данных своего контрагента - клиентский кабинет создается менеджером на основании ИНН и ОГРН/ОГРНИП +- клиент может сформировать заявку на основании продуктовой онтологии личного кабинета +- заявка, созданная в личном кабинете, хранится и отображается клиенту до момента привязки к учетному заказу 1С +- после появления и привязки заказа 1С заявка отображается как связанная с реальным заказом, а учетные сведения обновляются из 1С - данные из 1С загружаются только для клиентов, уже созданных и подтвержденных в личном кабинете -- история изменений по заказам и бонусным операциям фиксируется в системе +- история изменений по заявкам, заказам и бонусным операциям фиксируется в системе - сведения о заказах, составе заказов, статусах, условиях, балансе и задолженности обновляются из 1С = Функциональные требования @@ -163,22 +167,64 @@ == Требования к главной странице клиента -После входа клиент должен видеть сводку по своей компании без каталога продукции и без сценария оформления заказа. +После входа клиент должен видеть сводку по своей компании, последние заявки, связанные заказы, баланс или задолженность и переход к продуктовому конструктору заявки. Функциональные требования: + Система должна отображать краткую информацию о клиентской организации. + Система должна отображать текущий баланс или задолженность, если такие сведения получены из 1С. + Система должна отображать дату актуальности баланса или задолженности. ++ Система должна отображать последние заявки клиента и их текущие состояния. + Система должна отображать последние заказы клиента и их текущие статусы. ++ Система должна предоставлять переход к созданию новой заявки через продуктовый конструктор. + Система должна предоставлять переход к полному списку заказов и карточке конкретного заказа. + Система должна отображать уведомления, связанные с заказами, балансом, задолженностью и бонусными операциями. -+ Система не должна отображать клиенту каталог продукции, складские остатки, корзину или форму создания заказа. ++ Система не должна отображать клиенту складские остатки или форму самостоятельного создания учетного заказа. + +== Требования к продуктовой онтологии и конструктору заявки + + +Система должна предоставлять клиенту справочник продуктовых направлений и конструктор заявки. Конструктор предназначен для описания потребности клиента и не является складским каталогом, корзиной интернет-магазина или механизмом самостоятельного оформления заказа. + +Функциональные требования: + ++ Система должна отображать список продуктовых направлений, доступных для ознакомления и формирования заявки. ++ Для каждого продуктового направления система должна отображать описание, применимые параметры и допустимые варианты выбора. ++ Система должна позволять клиенту выбрать параметры и сформировать заявку. ++ Система должна позволять клиенту указать количество, комментарий и иную информацию, необходимую менеджеру для обработки заявки. ++ Система не должна отображать клиенту складские остатки и не должна обещать наличие продукции на складе. ++ Система не должна рассчитывать финальную стоимость автоматически, если стоимость должна определяться менеджером или учетной системой. ++ Продуктовая онтология должна администрироваться в системе и не должна зависеть от синхронизации складских остатков из 1С. + +== Требования к заявкам клиента + + +Заявка является сущностью личного кабинета и фиксирует потребность клиента до создания или привязки учетного заказа в 1С. + +Функциональные требования: + ++ Клиент должен иметь возможность создать заявку на основании продуктового конструктора. ++ Система должна сохранять состав заявки, выбранные параметры, количество, комментарий клиента и дату создания. ++ Заявка должна отображаться клиенту до момента привязки к заказу 1С. ++ Менеджер должен видеть список заявок клиентов и карточку каждой заявки. ++ Менеджер должен иметь возможность обработать заявку и связать ее с заказом 1С по номеру или внешнему идентификатору заказа. ++ До привязки к заказу 1С заявка должна отображаться как заявка личного кабинета, а не как учетный заказ. ++ После привязки к заказу 1С карточка заявки должна отображать связь с заказом и актуальные учетные сведения, полученные из 1С. ++ Если при очередной синхронизации из 1С пришел заказ, связанный с заявкой, система должна аккуратно заменить или расширить отображение заявки данными реального заказа. + +Для заявки должны поддерживаться следующие базовые состояния: + +- создана +- направлена менеджеру +- в обработке +- связана с заказом 1С +- закрыта +- отменена == Требования к заказам и их сопровождению -Система должна предоставлять клиенту и менеджеру доступ к списку заказов, карточке каждого заказа и актуальным учетным сведениям, полученным из 1С. +Система должна предоставлять клиенту и менеджеру доступ к списку заказов, карточке каждого заказа и актуальным учетным сведениям, полученным из 1С. Заказ и заявка являются разными сущностями: заявка создается в личном кабинете, заказ является учетной сущностью 1С. Функциональные требования: @@ -191,6 +237,8 @@ + Система должна отображать текущую задолженность клиента, если такие сведения получены из 1С. + Для задолженности должна отображаться дата актуальности данных. + Система должна показывать только заказы, сопоставленные с подтвержденной клиентской карточкой по ИНН и ОГРН/ОГРНИП. ++ Система должна поддерживать связь заказа 1С с заявкой личного кабинета, если такая связь установлена менеджером или определена по согласованному идентификатору. ++ После привязки заказа к заявке клиент должен видеть единый пользовательский сценарий: исходную заявку, номер заказа 1С, состав, статус, стоимость, условия и историю обновлений. == Требования к уведомлениям @@ -206,6 +254,9 @@ Система должна поддерживать уведомления по следующим событиям: - приглашение к подключению +- создание заявки клиентом +- изменение состояния заявки +- привязка заявки к заказу 1С - изменение статуса заказа - обновление сведений по заказу - изменение баланса или задолженности @@ -234,6 +285,7 @@ Система должна содержать административные разделы для управления следующими объектами: +- продуктовой онтологией и параметрами конструктора заявки - шаблонами уведомлений - параметрами синхронизации - отдельными настройками бонусного контура @@ -261,6 +313,9 @@ - просмотр и изменение разрешенных профильных данных - подключение доступных каналов уведомлений - просмотр сводки по компании +- просмотр продуктовой онтологии и конструктора заявки +- создание заявки +- просмотр списка и карточки заявок - просмотр баланса или задолженности - просмотр списка заказов - просмотр карточки заказа, состава заказа, статуса и истории изменений @@ -278,6 +333,8 @@ - создание и подтверждение клиентской карточки по ИНН и ОГРН/ОГРНИП - назначение ответственного сопровождения - отправка персонального приглашения клиенту +- просмотр и обработка заявок клиентов +- привязка заявки к заказу 1С по номеру или внешнему идентификатору - просмотр карточек клиентов и заказов - просмотр баланса, задолженности и истории заказов клиента - контроль сопоставления данных из 1С с подтвержденными клиентскими карточками @@ -291,6 +348,7 @@ Суперменеджеру должны быть доступны следующие действия: - доступ ко всем клиентам и заказам +- управление продуктовой онтологией и параметрами конструктора заявки - управление настройками уведомлений - управление параметрами интеграции и синхронизации - расширенное управление бонусным и реферальным контуром @@ -324,6 +382,22 @@ [Да], [Да], [Да], + [Просмотр продуктовой онтологии], + [Да], + [Да], + [Да], + [Создание заявки], + [Да], + [Нет], + [Нет], + [Обработка заявки], + [Нет], + [Да], + [Да], + [Привязка заявки к заказу 1С], + [Нет], + [Да], + [Да], [Создание клиентской карточки], [Нет], [Да], @@ -361,7 +435,7 @@ - доступ клиента только к данным собственного контрагента - ограничение административных функций в соответствии с ролью - журналирование значимых пользовательских действий -- хранение истории изменения статусов заказов и бонусных операций +- хранение истории изменения состояний заявок, статусов заказов и бонусных операций = Требования к данным и сущностям @@ -376,6 +450,8 @@ - пользователей и ролей - компаний и профилей контрагентов - адресов доставки +- продуктовой онтологии и параметров конструктора заявки +- заявок клиента и состава заявок - заказов, полученных из 1С - состава заказов - событий изменения статусов @@ -414,9 +490,18 @@ [MessengerConnection], [Подключение мессенджера], [Связка пользователя с Telegram или MAX], + [ProductType], + [Продуктовое направление], + [Онтология продукции для конструктора заявки], + [Request], + [Заявка], + [Заявка клиента, созданная в личном кабинете], + [RequestItem], + [Позиция заявки], + [Состав и параметры заявки], [Order], [Заказ], - [Заказ клиента, полученный из 1С], + [Заказ клиента, полученный из 1С и связанный с заявкой при наличии связи], [OrderItem], [Позиция заказа], [Состав заказа], @@ -444,6 +529,7 @@ - UserRole: CLIENT, MANAGER, SUPER_MANAGER - RegistrationStatus: PENDING, APPROVED, REJECTED - MessengerType: TELEGRAM, MAX +- RequestStatus: CREATED, SENT_TO_MANAGER, PROCESSING, LINKED_TO_1C_ORDER, CLOSED, CANCELED - OrderStatus: NEW, MANAGER_PROCESSING, WAITING_DOUBLE_CONFIRM, CLIENT_REJECTED, MANAGER_REJECTED, MANAGER_BLOCKED, CONFIRMED, IN_PROGRESS, COMPLETED - WithdrawalStatus: PENDING, APPROVED, REJECTED @@ -480,7 +566,7 @@ Назначение: - хранение клиентской, менеджерской или административной учетной записи -- связывание пользователя с компанией, заказами, бонусами и адресами +- связывание пользователя с компанией, заявками, заказами, бонусами и адресами Основные поля: @@ -498,6 +584,7 @@ - пользователь может быть связан с компанией - пользователь может иметь профиль контрагента - пользователь может иметь адреса доставки +- пользователь может создавать заявки - пользователь может выступать клиентом или менеджером в заказах - пользователь может иметь бонусные операции и заявки на вывод @@ -566,6 +653,8 @@ - token - email - companyName +- inn +- ogrn - managerId - acceptedById - expiresAt @@ -594,7 +683,86 @@ - isActive - createdAt -== Заказы и данные из 1С +== Продуктовая онтология, заявки и данные из 1С + +=== ProductType + + +Русское наименование: Продуктовое направление + +Назначение: + +- хранение продуктовой онтологии для ознакомления клиента +- хранение набора параметров, доступных в конструкторе заявки +- описание того, что клиент может запросить у менеджера + +Основные поля: + +- id +- code +- name +- description +- parameterSchema +- isActive +- sortOrder +- createdAt +- updatedAt + +Комментарий к модели: + +- продуктовое направление не является складским остатком и не подтверждает наличие продукции +- остатки по складам в личном кабинете не отображаются + +=== Request + + +Русское наименование: Заявка + +Назначение: + +- хранение потребности клиента, созданной через продуктовый конструктор +- хранение состояния обработки заявки +- хранение связи с заказом 1С после обработки менеджером + +Основные поля: + +- id +- code +- customerId +- managerId +- status +- comment +- linkedOrderId +- linkedOrderExternalId +- createdAt +- updatedAt + +Комментарий к модели: + +- заявка создается в личном кабинете клиентом +- заявка не является учетным заказом до привязки к заказу 1С +- после привязки клиент видит связь заявки с заказом и актуальные сведения из 1С + +=== RequestItem + + +Русское наименование: Позиция заявки + +Назначение: + +- хранение выбранного продуктового направления +- хранение параметров, количества и комментариев по позиции заявки + +Основные поля: + +- id +- requestId +- productTypeId +- productName +- quantity +- parameters +- comment +- createdAt === Order @@ -605,6 +773,7 @@ - хранение заказа клиента, полученного из 1С - хранение текущего статуса, стоимости, условий, состава и служебных данных синхронизации +- хранение связи с заявкой личного кабинета, если заказ создан на основании заявки Основные поля: @@ -614,6 +783,7 @@ - deliveryAddressId - deliveryAddress - managerId +- requestId - status - deliveryTerms - deliveryFee @@ -627,7 +797,8 @@ Комментарий к модели: - заказ создается или обновляется на основании данных, полученных из 1С -- клиент не создает заказ через личный кабинет +- клиент не создает учетный заказ через личный кабинет +- учетный заказ может быть связан с заявкой клиента после обработки менеджером === OrderItem @@ -642,10 +813,11 @@ - id - orderId -- productId - productName - quantity +- unit - unitPrice +- amount - createdAt === OrderStatusEvent @@ -732,7 +904,9 @@ Укрупненная структура связей определяется следующими правилами: - Company объединяет пользователей одной клиентской организации -- User связан с CounterpartyProfile, DeliveryAddress, MessengerConnection, Order, BonusTransaction и RewardWithdrawalRequest +- User связан с CounterpartyProfile, DeliveryAddress, MessengerConnection, Request, Order, BonusTransaction и RewardWithdrawalRequest +- ProductType используется в RequestItem как справочник продуктовой онтологии +- Request содержит набор RequestItem и может быть связан с Order - Order содержит набор OrderItem и историю OrderStatusEvent - реферальные связи реализуются через ReferralLink, связывающий одного пользователя с другим пользователем @@ -757,7 +931,23 @@ [Главная страница], [/], [клиент], - [сводка по заказам, балансу и задолженности], + [сводка по заявкам, заказам, балансу и задолженности], + [Продуктовый конструктор], + [/products], + [клиент], + [ознакомление с продуктовой онтологией и создание заявки], + [Карточка продуктового направления], + [/products/\[slug\]], + [клиент], + [выбор параметров заявки], + [Список заявок клиента], + [/client-requests], + [клиент], + [просмотр созданных заявок], + [Карточка заявки клиента], + [/client-requests/\[id\]], + [клиент], + [просмотр заявки и связанного заказа 1С], [Список заказов клиента], [/client-orders], [клиент], @@ -798,6 +988,14 @@ [/clients/invite], [менеджер], [выдача приглашения на подключение], + [Список заявок], + [/requests], + [менеджер], + [обработка заявок клиентов], + [Карточка заявки], + [/requests/\[id\]], + [менеджер], + [обработка заявки и привязка к заказу 1С], [Список заказов], [/orders], [менеджер], @@ -810,6 +1008,10 @@ [/settings-sync], [суперменеджер], [мониторинг и управление обменом], + [Настройки конструктора], + [/catalog-settings], + [суперменеджер], + [продуктовая онтология и параметры заявок], [Бонусная система], [/bonus-system/\\\*], [менеджер/суперменеджер], @@ -841,6 +1043,18 @@ [/login], [Вход], [Вход и первичный сценарий доступа], + [/products], + [Продуктовый конструктор], + [Справочник продуктовых направлений и создание заявки], + [/products/\[slug\]], + [Карточка продуктового направления], + [Выбор параметров заявки], + [/client-requests], + [Список заявок клиента], + [История заявок клиента], + [/client-requests/\[id\]], + [Карточка заявки клиента], + [Детали заявки и связанного заказа 1С], [/client-orders], [Список заказов клиента], [История заказов клиента], @@ -918,6 +1132,12 @@ [/orders/\[id\]], [Карточка заказа], [Состав, статус, баланс и служебные данные синхронизации], + [/requests], + [Заявки], + [Заявки клиентов, созданные в личном кабинете], + [/requests/\[id\]], + [Карточка заявки], + [Обработка заявки и привязка к заказу 1С], [/settings-sync], [1С / синхронизация], [Управление и мониторинг синхронизации], @@ -968,13 +1188,15 @@ - явное отображение статуса объекта - соответствие доступных действий роли пользователя - единый визуальный подход для клиентского и менеджерского контуров -- понятное отображение состава заказа, условий, баланса, задолженности и бонусных операций +- понятное отображение продуктовых параметров, заявки, связи заявки с заказом, состава заказа, условий, баланса, задолженности и бонусных операций -Для экранов, связанных с заказами и задолженностью, должны выполняться дополнительные требования: +Для экранов, связанных с заявками, заказами и задолженностью, должны выполняться дополнительные требования: - клиент видит только данные своей подтвержденной компании +- заявка и учетный заказ 1С визуально различаются до момента связки - сумма, условия и статусы отображаются по данным, полученным из 1С - дата актуальности данных должна быть видна в ключевых местах интерфейса +- складские остатки в интерфейсе не отображаются Ниже приведены низкодетализированные wireframe-прототипы. Они используются как визуальная фиксация состава страниц, ключевых блоков и пользовательских действий. @@ -997,7 +1219,9 @@ - отображение сводки по клиентской компании - просмотр текущего баланса или задолженности +- просмотр последних заявок - просмотр последних заказов и статусов +- переход к созданию заявки Состав страницы: @@ -1005,7 +1229,9 @@ - карточка компании - блок баланса или задолженности - дата актуальности данных +- список последних заявок - список последних заказов +- переход к продуктовому конструктору - переход к полному списку заказов - блок последних уведомлений @@ -1017,6 +1243,82 @@ Wireframe-прототип: ) +=== Продуктовый конструктор + + +Назначение страницы: + +- ознакомление клиента с продуктовыми направлениями +- выбор направления для формирования заявки + +Состав страницы: + +- список продуктовых направлений +- краткое описание направления +- доступные параметры для будущей заявки +- переход к карточке продуктового направления + +Wireframe-прототип: + +#figure( + image("public/prototypes/catalog-grid.svg", width: 100%), + caption: [Прототип продуктового конструктора], +) + + +=== Карточка продуктового направления + + +Назначение страницы: + +- просмотр описания продуктового направления +- выбор параметров заявки +- отправка заявки менеджеру + +Состав страницы: + +- заголовок направления +- описание направления +- блок выбора параметров +- количество +- комментарий клиента +- действие отправки заявки + +Wireframe-прототип: + +#figure( + image("public/prototypes/product-card.svg", width: 100%), + caption: [Прототип карточки продуктового направления], +) + + +=== Карточка заявки + + +Назначение страницы: + +- просмотр созданной заявки +- просмотр состояния обработки +- просмотр связанного заказа 1С после привязки + +Состав страницы: + +- номер заявки +- состояние заявки +- состав и параметры заявки +- комментарий клиента +- сведения о менеджере +- номер связанного заказа 1С при наличии +- ссылка на карточку заказа после привязки + +Wireframe-прототип: + +#figure( + image("public/prototypes/cart.svg", width: 100%), + caption: [Прототип карточки заявки], +) + + === Карточка заказа @@ -1149,6 +1451,7 @@ Wireframe-прототип: Назначение страницы: - просмотр сведений о компании +- просмотр заявок клиента - просмотр истории заказов - просмотр баланса и задолженности @@ -1159,6 +1462,7 @@ Wireframe-прототип: - ИНН и ОГРН/ОГРНИП - статус подтверждения клиента - баланс или задолженность +- список заявок клиента - список заказов клиента Wireframe-прототип: @@ -1169,6 +1473,33 @@ Wireframe-прототип: ) +=== Карточка заявки менеджера + + +Назначение страницы: + +- просмотр заявки клиента +- обработка заявки менеджером +- привязка заявки к заказу 1С + +Состав страницы: + +- клиент и контрагент +- ИНН и ОГРН/ОГРНИП +- состав и параметры заявки +- комментарий клиента +- состояние обработки заявки +- поле номера или внешнего идентификатора заказа 1С +- история действий по заявке + +Wireframe-прототип: + +#figure( + image("public/prototypes/manager-order.svg", width: 100%), + caption: [Прототип карточки заявки менеджера], +) + + === Карточка заказа менеджера @@ -1177,7 +1508,7 @@ Wireframe-прототип: - просмотр состава заказа - просмотр статуса, стоимости и условий - просмотр служебных данных синхронизации -- проверка связи заказа с клиентской карточкой +- проверка связи заказа с клиентской карточкой и заявкой Wireframe-прототип: @@ -1191,6 +1522,7 @@ Wireframe-прототип: - клиент и контрагент - ИНН и ОГРН/ОГРНИП +- связанная заявка при наличии - состав заказа - стоимость - доставка @@ -1215,6 +1547,30 @@ Wireframe-прототип: ) +=== Настройки конструктора + + +Назначение страницы: + +- управление продуктовой онтологией +- управление параметрами, доступными клиенту при создании заявки + +Состав страницы: + +- список продуктовых направлений +- карточка настроек направления +- набор параметров заявки +- порядок отображения направлений +- действие сохранения настроек + +Wireframe-прототип: + +#figure( + image("public/prototypes/catalog-settings.svg", width: 100%), + caption: [Прототип настроек конструктора], +) + + === Настройки синхронизации @@ -1281,7 +1637,7 @@ Wireframe-прототип: Интеграционный контур должен обеспечивать: - получение файлов обмена из 1С -- передачу в 1С файлов обмена, сформированных личным кабинетом +- передачу в 1С сведений о заявках, если такой контур отдельно согласован сторонами - передачу во внешние системы данных, необходимых для сопровождения заказов и клиентов, если такой обмен согласован сторонами - сопоставление внутренних идентификаторов и идентификаторов внешних систем - регистрацию входящих и исходящих операций обмена @@ -1291,7 +1647,7 @@ Wireframe-прототип: == Интеграция с 1С -Интеграция с 1С должна обеспечивать обмен данными, необходимыми для сопровождения подтвержденных клиентов, заказов, состава заказов, статусов, условий и сведений о задолженности клиента. +Интеграция с 1С должна обеспечивать обмен данными, необходимыми для сопровождения подтвержденных клиентов, связи заявок с заказами, состава заказов, статусов, условий и сведений о задолженности клиента. Система должна обеспечивать получение из 1С следующих данных: @@ -1299,11 +1655,12 @@ Wireframe-прототип: - сведения о заказах - состав заказов - статусы заказов +- номер или внешний идентификатор заказа 1С, используемый для связи с заявкой личного кабинета - изменения состава, стоимости, доставки и иных существенных параметров заказа - текущая задолженность клиента - дата актуальности сведений, полученных из 1С -1С рассматривается как первичный источник учетных данных по заказам, статусам, стоимости, доставке и задолженности. Личный кабинет отображает эти сведения только для клиентских карточек, заранее созданных и подтвержденных менеджером по ИНН и ОГРН/ОГРНИП, и фиксирует дату актуальности данных. +1С рассматривается как первичный источник учетных данных по заказам, статусам, стоимости, доставке и задолженности. Личный кабинет отображает эти сведения только для клиентских карточек, заранее созданных и подтвержденных менеджером по ИНН и ОГРН/ОГРНИП, и фиксирует дату актуальности данных. Заявки, созданные в личном кабинете, остаются внутренними сущностями ЛК до момента связи с заказом 1С. == Основной способ обмена с 1С @@ -1328,6 +1685,8 @@ Wireframe-прототип: + Если в выгрузке присутствуют данные по контрагенту, который не создан и не подтвержден в личном кабинете, такие данные не загружаются в клиентский контур и не создают новый кабинет автоматически. + Балансы и задолженность передаются как состояние по подтвержденным клиентам на дату формирования выгрузки. + Заказы и статусы передаются по контрагентам за согласованный период, по умолчанию за последние 60 календарных дней, а также по активным заказам вне этого периода при необходимости отображения клиенту. ++ Если заказ 1С связан с заявкой личного кабинета по номеру, внешнему идентификатору или иному согласованному ключу, система обновляет карточку заявки данными реального заказа. ++ Если заказ 1С не связан с заявкой, но относится к подтвержденному клиенту, он отображается как самостоятельный заказ клиента. == Состав файлов обмена @@ -1338,7 +1697,7 @@ Wireframe-прототип: - `balance_snapshot` — баланс, задолженность и дата актуальности по контрагентам - `orders_snapshot` — заказы, статусы, состав, стоимость, доставка и существенные изменения по заказам за согласованный период -Файлы `counterparties_snapshot`, `balance_snapshot` и `orders_snapshot` передаются из 1С в личный кабинет. Обратная передача файлов из личного кабинета в 1С не входит в базовый объем, если такой контур отдельно не согласован сторонами. +Файлы `counterparties_snapshot`, `balance_snapshot` и `orders_snapshot` передаются из 1С в личный кабинет. Передача заявок из личного кабинета в 1С не входит в базовый объем, если такой контур отдельно не согласован сторонами; в базовой схеме менеджер создает заказ в 1С и связывает его с заявкой в личном кабинете. Состав файлов может быть расширен по согласованию сторон, если в ходе интеграции появится отдельный тип данных, который нецелесообразно включать в существующие файлы обмена. @@ -1423,6 +1782,7 @@ Wireframe-прототип: { "order_external_id": "1c-order-10025", "cabinet_order_id": "FRG-2030", + "linked_request_code": "REQ-2026-015", "counterparty_external_id": "1c-counterparty-77", "inn": "7700000000", "ogrn": "1027700000000", @@ -1451,6 +1811,7 @@ Wireframe-прототип: Для сущностей, участвующих в обмене, должны поддерживаться: - внешний идентификатор учетной системы +- номер или идентификатор связанной заявки личного кабинета, если связь установлена - дата последней синхронизации - источник последнего обновления - признак успешной или неуспешной обработки @@ -1494,6 +1855,7 @@ Wireframe-прототип: - данные из 1С сопоставляются только с клиентами, заранее созданными и подтвержденными менеджером - сопоставление выполняется по ИНН и ОГРН/ОГРНИП - данные по отсутствующим в личном кабинете клиентам не создают новый кабинет автоматически +- заявка личного кабинета может быть связана с заказом 1С по номеру или внешнему идентификатору - заказы клиента получаются и отображаются с актуальными статусами - состав заказов отображается в карточке заказа - изменения заказа из 1С отображаются в карточке заказа @@ -1571,10 +1933,14 @@ Wireframe-прототип: Ключевые экранные маршруты текущей реализации: -- `/` — клиентская сводка по заказам, балансу и задолженности +- `/` — клиентская сводка по заявкам, заказам, балансу и задолженности +- `/products` и `/products/[slug]` — продуктовый конструктор и карточка направления +- `/client-requests` и `/client-requests/[id]` — клиентские заявки - `/client-orders` и `/client-orders/[id]` — клиентские заказы - `/clients` и `/clients/[id]` — менеджерский контур клиентов +- `/requests` и `/requests/[id]` — менеджерский контур заявок - `/orders` и `/orders/[id]` — менеджерский контур заказов +- `/catalog-settings` — настройки продуктовой онтологии и конструктора заявки - `/settings-sync` — настройки и мониторинг синхронизации - `/bonus-program`, `/bonus-system/*` — бонусный контур @@ -1993,7 +2359,7 @@ Wireframe-прототип: - приемлемое время открытия основных экранов - приемлемое время выполнения пользовательских действий -- отображение клиентской сводки, карточек заказов и истории заказов без заметных задержек при типовом объеме данных +- отображение клиентской сводки, конструктора заявки, карточек заявок, карточек заказов и истории заказов без заметных задержек при типовом объеме данных Точные количественные показатели производительности подлежат фиксации в рабочей документации по инфраструктуре и тестированию. @@ -2014,7 +2380,7 @@ Wireframe-прототип: Система должна обеспечивать: - сохранность пользовательских данных -- сохранность истории изменений по заказам и бонусным операциям +- сохранность истории изменений по заявкам, заказам и бонусным операциям - фиксацию ошибок интеграционного обмена - фиксацию значимых системных и пользовательских событий @@ -2025,6 +2391,7 @@ Wireframe-прототип: - сопровождения и развития клиентского контура - сопровождения и развития менеджерского контура +- изменения продуктовой онтологии и параметров конструктора без переработки базовой структуры системы - изменения параметров уведомлений без переработки базовой структуры системы - расширения интеграционного обмена с 1С и иными внешними системами @@ -2036,6 +2403,7 @@ Wireframe-прототип: - хранение актуального состояния пользовательских данных - отображение даты актуальности сведений, полученных из внешних систем, когда это применимо - защиту от потери данных при обновлении заказов и балансов из файлов обмена +- защиту заявок личного кабинета от потери при привязке и обновлении связанных заказов 1С == Требования к документации @@ -2082,10 +2450,12 @@ Wireframe-прототип: - вход в личный кабинет и завершение подключения по приглашению - работу с профилем и каналами уведомлений - просмотр клиентской сводки +- работу с продуктовым конструктором +- создание и просмотр заявок - просмотр баланса и задолженности - просмотр заказов, статусов, условий и истории изменений - работу с бонусным кабинетом, бонусным балансом и заявками на вывод -- действия менеджера по созданию клиентов, приглашению клиентов, контролю заказов и бонусным операциям +- действия менеджера по созданию клиентов, приглашению клиентов, обработке заявок, привязке заявок к заказам 1С, контролю заказов и бонусным операциям - действия суперменеджера в административных разделах, если они отличаются от действий менеджера Документация должна быть написана прикладным языком и ориентирована на выполнение пользовательских сценариев, а не на описание внутренней реализации. @@ -2168,7 +2538,10 @@ Wireframe-прототип: - подключение клиентов по приглашению менеджера - создание и подтверждение клиентских карточек по ИНН и ОГРН/ОГРНИП - роли и разграничение доступа -- клиентская сводка по заказам, балансу и задолженности +- продуктовая онтология и конструктор заявки без складских остатков +- создание и просмотр заявок клиентом +- обработка заявок менеджером +- клиентская сводка по заявкам, заказам, балансу и задолженности - просмотр списка и карточек заказов - статусы и история изменений - уведомления в согласованном объеме @@ -2193,6 +2566,8 @@ Wireframe-прототип: - сопоставление клиентских карточек с данными 1С по ИНН и ОГРН/ОГРНИП - настройка приема файлов обмена от 1С через согласованный FTP/SFTP-ресурс или иной согласованный канал - проверка получения заказов, состава заказов, статусов, баланса и задолженности +- проверка связи заявки личного кабинета с заказом 1С по номеру или внешнему идентификатору +- проверка обновления карточки заявки после поступления связанного заказа из 1С - проверка игнорирования данных по клиентам, не созданным и не подтвержденным в личном кабинете - проверка обработки дублей и ошибок обмена - проверка отображения даты актуальности данных @@ -2226,6 +2601,9 @@ Wireframe-прототип: - клиентский контур - менеджерский контур - создание и приглашение клиентов менеджером +- продуктовый конструктор и создание заявки +- обработка заявки менеджером +- привязка заявки к заказу 1С - сопоставление клиентов по ИНН и ОГРН/ОГРНИП - сопровождение заказов - отображение баланса и задолженности @@ -2254,8 +2632,11 @@ Wireframe-прототип: - обязательные пользовательские сценарии выполняются корректно - разграничение ролей и прав доступа реализовано корректно -- заказам и бонусным операциям присваиваются и отображаются корректные статусы +- заявкам, заказам и бонусным операциям присваиваются и отображаются корректные статусы - клиент видит только данные своей подтвержденной компании +- клиент может создать заявку через продуктовый конструктор без отображения складских остатков +- заявка сохраняется и отображается до привязки к заказу 1С +- после привязки заявки к заказу 1С клиент видит номер заказа, состав, статус, стоимость, условия и историю обновлений - данные по неподтвержденным клиентам из 1С не создают кабинеты и не отображаются клиентам - история изменений сохраняется и доступна в предусмотренных сценариях - сведения из 1С отображаются в согласованном объеме