Skip to content

Кабинет клиента

Личный кабинет покупателя автомобиля: параметры подбора, предложения от менеджера и поставщиков, решение по осмотру/покупке, статус доставки. Отдельный UI (/cabinet, layout client), API — модуль ClientCabinet.

Цель

Дать клиенту единое место, где он:

  • видит, что ищут (параметры подбора);
  • получает предложения (менеджер + ответы поставщиков);
  • принимает / отклоняет предложения;
  • после осмотра решает покупать или нет;
  • после одобрения покупки видит статус доставки.

Менеджер/директор работают с теми же данными со стороны CRM (/dashboard/clients).

Связь с ролями

РольДоступ
clientТолько свой кабинет /cabinet, маркет /cabinet/market. Право view_client_cabinet.
manager«Мои клиенты», карточка клиента, параметры подбора, отправка предложений, осмотр, статус доставки.
director / admin / superadminВсе клиенты + то же управление; invite с правом create_client_invite.

Как клиент попадает в кабинет

  1. Менеджер создаёт приглашение (POST /invite, TTL ~7 дней).
  2. Клиент получает email со ссылкой /client/invite?token=….
  3. На странице задаёт пароль → аккаунт активируется → вход в /cabinet.
  4. Приглашение может быть связано с amo_lead_id — параметры подбора подтягиваются из сделки AmoCRM.

Пока аккаунт не активирован (status ≠ 1) — экран «Аккаунт недоступен».

Навигация клиента

РазделURLНазначение
Кабинет/cabinetПодбор, предложения, выбранное авто, доставка
Маркет/cabinet/marketКаталог авто (только просмотр / реакция на ответы поставщиков)
Карточка предложения/cabinet/offers/{id}Детали предложения менеджера
Карточка маркета/cabinet/market/{id}Детали авто из маркета / ответа поставщика

Шапка: логотип, ФИО, «Кабинет» / «Маркет», колокольчик уведомлений, выход.

Главный экран /cabinet

До выбора авто

  • Параметры подбора — марка/модель, год, пробег, ДВС, привод, бюджет, комментарий, опции и т.п.
  • Карточка менеджера — имя, телефон, Telegram / WhatsApp.
  • Таблица предложений — от менеджера и от поставщиков:
    • фото, марка/модель, VIN, год, пробег, ДВС, привод, комплектация, цена, статус;
    • клик → детальная карточка.

Источники предложений:

  • manager — client_vehicle_offers;
  • supplier — ответы поставщиков на запрос подбора.

После «одобрено к осмотру» / выбранного авто

Показывается выбранное ТС (принятое предложение), пока нет финального «одобрено к покупке».

После одобрения покупки

  • Карточка выбранного авто + статус доставки.
  • История статусов.
  • Карта трекинга (заглушка/виджет).
  • Список «новых» предложений скрывается.
  • Архив предложений — отдельная модалка.

Уведомления — баннер непрочитанных на главной.


Предложение менеджера

Статусы предложения (client_vehicle_offers)

СтатусСмысл
draftЧерновик у менеджера (ещё не отправлено)
newОтправлено клиенту, ждёт решения
acceptedКлиент одобрил → можно делать осмотр
rejectedКлиент отклонил (с причиной)
reviewНа рассмотрении (промежуточный)

Действия клиента по предложению

  1. Открыть карточку → фото, PDF комплектации, параметры, цена, менеджер.
  2. Принять / Отклонить (причина обязательна при отказе) / задать вопрос менеджеру.
  3. Доступно только при status = new (canRespond).

Действия менеджера

  1. Создать draft → медиа / PDF опций → отправить клиенту (email + статус new).
  2. После accept клиента — провести осмотр (черновик → submit).
  3. Клиент видит результат осмотра и принимает решение.

Осмотр и решение о покупке

Статусы осмотра (client_vehicle_offer_inspections)

СтатусСмысл
draftМенеджер заполняет
submittedОтправлен клиенту («Осмотр проведен»)
purchase_approvedКлиент одобрил покупку
purchase_rejectedКлиент отказался от покупки

Сценарий

  1. Клиент принял предложение → менеджеру уведомление / email.
  2. Менеджер заполняет осмотр и отправляет клиенту.
  3. Клиент: одобрить покупку или отклонить (с комментарием).
  4. При одобрении:
    • статус покупки фиксируется;
    • инициализируется воронка доставки;
    • в AmoCRM уходит статус «одобрено к покупке» (настраиваемый amo_status_id);
    • менеджеру — уведомление и письмо.

Воронка доставки (после покупки)

Конфиг delivery_funnel_statuses (синхрон с AmoCRM):

  1. Одобрено к покупке
  2. Ожидание оплаты
  3. Оплата получена
  4. Авто в пути
  5. Таможенное оформление
  6. Автомобиль передан клиенту

Менеджер меняет статус вручную (PUT .../delivery-status).
Клиент видит текущий статус и историю.
Смена статуса пишется в client_vehicle_delivery_status_history.


Маркет клиента

/cabinet/market — витрина актуальных авто:

  • фильтры: марка/модель, год, пробег;
  • только просмотр (без редактирования карточки);
  • карточка /cabinet/market/{id};
  • для ответов поставщиков — accept / reject (как по предложению).

Сторона менеджера (CRM)

ЭкранЧто делает
/dashboard/clientsСписок клиентов (свои / все), поиск, предупреждение «нет параметров подбора»
Карточка клиентаДашборд как у клиента + редактирование подбора, отправка офферов, осмотр, доставка
InviteСоздание клиента по email/телефону + письмо

Уведомления менеджеру:

  • клиент принял предложение;
  • нужены параметры подбора;
  • решение по покупке;
  • (и связанные типы в client_cabinet_notifications).

Бейдж в меню CRM — счётчик непрочитанных по client-cabinet.


Уведомления

Типы:

  • offer_accepted
  • inspection_submitted
  • purchase_approved / purchase_rejected
  • selection_params_required

Клиент: баннер + колокольчик.
Менеджер: баннер на списке клиентов + меню.
Плюс email-письма (invite, оффер, осмотр, решения).


Данные (кратко)

СущностьНазначение
client_cabinet_invitesПриглашения, токен, TTL, amo_lead_id
client_vehicle_selectionsПараметры подбора
client_vehicle_offersПредложения менеджера + медиа/PDF
client_vehicle_offer_inspectionsРезультат осмотра и решение о покупке
client_vehicle_delivery_status_historyИстория доставки
client_cabinet_notificationsIn-app уведомления

Связь с поставщиками — через supplier request / responses, попадающие в дашборд клиента как supplierResponses.


Интеграции

  • AmoCRM: поля сделки → параметры подбора; статусы сделки при одобрении покупки и доставке.
  • Email: invite, оффер, осмотр, решения.
  • Поставщики / маркет: предложения и витрина в кабинете клиента.

Типовые сценарии

Новый клиент
Invite → пароль → кабинет → видит подбор и менеджера → ждёт предложения.

Предложение менеджера
Менеджер шлёт оффер → клиент принимает → осмотр → клиент одобряет покупку → статусы доставки.

Отказ
Клиент отклоняет оффер или покупку с причиной → менеджеру уведомление.

Поставщик
Ответ на запрос → в таблице предложений клиента → accept/reject → при accept дальше логика сделки/осмотра по правилам системы.

Маркет
Клиент смотрит каталог, открывает авто, при необходимости реагирует на предложение поставщика.