Дорожная карта¶
Статус проекта: функционально полон и активно дорабатывается, работает в прод-режиме на https://test142.ru. Тестовый набор — более 200 тестов (SQLite in-memory).
Выполнено¶
Этап 1 — авторизация и аккаунты ¶
- Guard'ы
agent/client/srm_admin/web; модели личностей. - Админка Filament
/admin, вход email+пароль. - SPA Inertia + Vue 3.
- Вход/регистрация посредника, OTP-вход клиента, реф-ссылки.
- Мультиарендность (
BelongsToAgent) + система прав ПДИУ. - Telegram/MAX боты (вебхуки, OTP).
Этапы 2–5 — ядро домена ¶
- Деньги (
LedgerService, атомарность). - Заказ → проверка → оплата (стейт-машины,
CommissionService). - Выкуп → консолидация (статусы позиций, группы, возвраты).
- Отгрузки → грузы → приёмка (полный логистический цикл).
Этап 6 — настройки и справочники ¶
Курс (ручной/авто/ладдер), выкупные аккаунты, карты, способы доставки, упаковки, страховки, ТК, пункты самовывоза, уведомления, время работы, самовыкуп, приём оплаты.
Этап 7 — типы заказов и импорт ¶
Standard / Самовыкуп / Свободный; мастер импорта XLS/CSV с авто-маппингом.
Этап 8 — курсы и переводчик ¶
ЦБ РФ, bestchange, Google Translate (i18n RU/EN/CN). Alipay/WeChat — информативно.
Этап 9 — админка СРМ ¶
AgentResource (модерация), CrmTariff, AgentInvoice, каталоги доставки, переводы, чек-листы.
Этап 10 — периферия ¶
Публичная страница посредника, чат заказа (realtime Reverb), поиск, реакции.
Эпик «Доставка отгрузки» ¶
6 фаз: фундамент данных (14 таблиц), Filament-каталоги, окно установки курсов, вкладка каталогов посредника, страница доставки (6 секций), расчёт, оплата клиентом из касс.
UI под прототип app.taomaster.ru ¶
Перестройка обеих сторон под Metronic-стиль: списки заказов с фильтрами по стадиям, богатая карточка заказа (группы, статусы выкупа/прибытия, кредит/скидка, печать этикеток, «Как у клиента»), разделы Отгрузки/Грузы, карточка клиента (4 вкладки), сотрудники, спецразделы (Возвраты/Скидки/Кредит).
Чат — полный набор ¶
Поиск, смайлы, собеседники+онлайн, «не требует ответа», автоподпись, внутренняя переписка, автоперевод, файлы, реакции, правка, непрочитанные.
Финансовый флоу ¶
Оплата через пополнение общего баланса (не списание в заказ); «Оплатить с баланса» / «Запросить пополнение»; расчёт по данным посредника (agent_*); полная историзация заказа (order_activities); глобальный AJAX (preserveState).
Единый телефон-вход ¶
Телефон+пароль/OTP для клиента и посредника; подтверждение Telegram Start / MAX код; обязательный поддомен + редирект после входа; ужесточённое восстановление; SESSION_DOMAIN=.test142.ru.
Локализация ¶
Полное обёртывание UI (≈ 935+ ключей), автоперевод динамики, реактивная смена языка, управляемый словарь и баннеры.
Чек-лист посредника ¶
Стартовый чек-лист «Первые шаги» над заказами, управляемый из админки (checklist_steps).
Волна доработок (мультивалютность, услуги, сервис) ¶
- Доп. услуги к товарам — каталог услуг (фото/видео/обмер/пересчёт), цены по валюте, оказание с загрузкой медиа, публичный аплоад с телефона (
/su/{token}). См. Доп. услуги. - Кастомные уведомления — баннеры посредника для клиентов + глобальные от СРМ.
- Заметки сотрудников — личный блокнот и заметки к объектам.
- Онбординг-визард посредника + переключение кабинетов (мульти-членство).
- Мультивалютность углублена — валютные пары в ладдерах, валюта счёта/клиента, базовая валюта доставки, авто-конвертация счетов.
- Профили и аватары клиента и сотрудника; сброс пароля через код в мессенджер.
- OTP-защита просмотра реквизитов, рефактор шифрования карт (
CardCipher). - Сканер кодов, глобальные настройки (
app_settings), новые Filament-ресурсы (услуги, уведомления, пользователи, сотрудники, сайты выкупа).
Chrome-расширение для клиента (v1) ¶
Отправка товара со страницы магазина (1688, Taobao/Tmall, Poizon + универсальный парсер) в черновик заказа. Токен-API /api/ext/*, авторизация по токену из кабинета, расширяемые парсеры площадок. См. Chrome-расширение.
В планах по расширению
Часть для посредника; серверная конфигурация селекторов парсеров; публикация в Chrome Web Store; тонкая настройка адаптеров на живых страницах площадок.
Волна доработок (заказы, деньги, локализация) ¶
- Название заказа (
orders.title), категории товаров (product_categories), ручные переопределения комиссии/курса по заказу, отметка «просмотрен», отключение автогруппировки, комментарий клиента к позиции. - Финансы: унификация валюты
RUR → RUB, овердрафт клиента, пополнение баланса вне заказа, валюта доп. услуг, снимок курсов на отгрузке. Новые страницы: «Баланс клиента», «Запросы на пополнение» у посредника. - Страны посредника (
agent_countries) для онбординга; кэш фавиконов площадок (site_favicons). - Локализация через URL:
SetLocaleчитает?lang=— ссылки с лендинга открывают систему сразу на нужном языке. - Маркетинговый лендинг как главная страница: гость на
/видит лендинг и идёт на регистрацию; залогиненный — в кабинет.
Обратная связь и RBAC админки ¶
- Тикеты обратной связи (
feedback_tickets): кнопка у посредника/клиента → скриншот + пометка элемента + контекст + автоперевод комментария на RU → тикет в админке (категория, ответственный, ответ автору в мессенджер). См. Доп. модули. - RBAC администраторов СРМ (
srm_admins.is_super+permissions): разграничение прав по разделам админки + управление администраторами.
В планах / отложено¶
| Задача | Статус | Примечание |
|---|---|---|
| Изоляция валют при оплате доставки | отложено | Списывать доставку строго с баланса shipping_currency без конвертации (по модели мультивалютности). Не начинать без явного запроса |
| Внутренний чат-агрегатор «Новые сообщения» | идея | Сейчас — счётчики per-staff; полноценный агрегатор/внутренний чат сотрудников — отдельная подсистема |
| Пополнение Alipay/WeChat — платёжный шлюз | идея | Сейчас — ручная заявка вне системы; интеграция merchant API — большая задача |
| Карго-расчёт (кг/$) отдельно в грузах | Глубже текущей модели; «История груза» + файлы груза | |
| Полировка | HTML печати этикеток в i18n; drag-n-drop в каталогах; per-status визуальная сверка; live-проверка Telegram Start |
Известные упрощения¶
- «Оплата при получении» клиента не персистится per-service (сумма отложенного — в чат/активность).
- Старые простые каталоги (
delivery_methods/packagings/insurances/…) оставлены для совместимости; новый флоу использует таблицыdelivery_*/cargo_*. - Per-staff read-трекинг чата использует общий
agent_read_atкак прокси. - Owner-
AgentStaffне имеет явного флага owner (ownership неявный — первый сотрудник).
Регламент сопровождения
Сайт в прод-режиме (config:cache / route:cache). Перед php artisan test — optimize:clear; после — optimize + rates:fetch-cbr. После обновления Filament — filament:assets + копирование в вебрут. Подробнее — Инфраструктура.