Отгрузки, грузы и доставка¶
После выкупа и консолидации товары упаковываются в отгрузки, отгрузки объединяются в грузы, груз едет международной доставкой до страны получателя.
Иерархия¶
flowchart TD
O[Заказ] --> S1[Отгрузка 1]
O --> S2[Отгрузка 2]
S1 --> I1[Позиции: товар × qty]
S1 --> SV[Услуги: доставка/страховка/доп]
S1 --> D[Груз]
S3[Отгрузка другого клиента] --> D
D --> Tr[Международная доставка]
- Отгрузка (
shipments) — часть заказа в одной посылке; наполняется позициями (shipment_items: товар + qty, дробление допускается). - Груз (
deliveries) — набор оплаченных отгрузок (возможно разных клиентов одного посредника). Отгрузка не более чем в одном грузе.
Статусы¶
Что отгружать¶
Доступно к отгрузке только то, что выкуплено и прибыло:
CreateShipment блокирует отгрузку невыкупленного/неприбывшего.
Каталоги доставки¶
Двухслойная модель (CatalogService):
agent_id = NULL→ системный дефолт (управляет админ СРМ в Filament), виден всем посредникам;agent_id = <id>→ свой вариант посредника;- посредник может «выключить у себя» системный дефолт (
agent_catalog_disables).
Каталоги: страны, города, способы доставки из Китая (карго) + методы скорости, упаковки, страховки, транспортные компании, пункты самовывоза.
Страница доставки отгрузки¶
Общий компонент Pages/Shipment/Delivery.vue (агент и клиент). Два режима:
- Полный режим (6 секций с зависимостями): страна → города → карго/ТК/самовывоз; способ доставки, скорость, упаковка, страховка; получатель/адрес (инлайн); вес / объём / места / срок.
- Режим расчёта: сводка + курсы (снимки
rate_*_snapshot) + «Стоимость услуг» (shipment_services): Доставка (flat/per_kg), Страховка (fixed/percent, вкл/выкл), доп-услуги — в 元/$/₽, с флагом «оплата при получении». Автозаполнение из карго и страховки.
После расчёта отгрузка → await_pay. Уведомление клиенту в чат со ссылкой.
Оплата доставки клиентом¶
Клиент видит read-only сводку, выбирает «оплата при получении» / «к оплате сейчас», оплачивает из касс (рубли + юани, юани→₽ по курсу) через LedgerService → статус paid.
Валюты доставки
USD — расчётная валюта для цен доставки/услуг; итог сводится в ₽. Изоляция мультивалют (списание строго с баланса shipping_currency без конвертации) — отложенная задача (см. Дорожная карта).
Грузы¶
DeliveriesController: формирование груза из оплаченных отгрузок, статусы (Сформирован → В пути → Прибыл), трек-номера, история (delivery_history). Список грузов: клиенты (уникальные по отгрузкам), страна/город, дни в работе, вес, расчёт. Вкладки «Текущие / Архив доставок».
Сервисы¶
| Сервис | Роль |
|---|---|
CatalogService |
Видимость каталогов (system + own − disabled) |
ShipmentDeliveryService |
Сборка формы доставки, расчёт, сводка (present/detailView) |
DeliveryCalcService |
Расчёт стоимости доставки |
OrderFlowService |
Продвижение заказа по цепочке + авто-завершение |
RefundService |
Возвраты (товары + доставка пропорц. непривезённому) |