Перейти к содержанию

Дорожная карта

Статус проекта: функционально полон и активно дорабатывается, работает в прод-режиме на 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 testoptimize:clear; после — optimize + rates:fetch-cbr. После обновления Filament — filament:assets + копирование в вебрут. Подробнее — Инфраструктура.