网络 · 物流门户

专为货代打造的操作台,完整呈现您的品牌形象。

您的货代通过电子邮件向您更新动态。调度 团队将里程碑填入一张共享表格,而负责刷新的人总是忘记更新。清关日期以 PDF 截图的形式传来。运价单存放在某个 SharePoint 文件夹里。集装箱出现延误时,您是从进口商追问原因才得知的。您的「货运记录」不过是从三个收件箱和一个 WhatsApp 拼凑出来的虚构档案。

TradeOS 中的物流门户是一个带有您品牌标识的操作台,货代、报关行和承运商可直接在其中工作——同一数据库,仅限其所需查看的范围。结构化 收件箱 取代了临时邮件往来。真实里程碑落入真实状态机。清关、调度、开票与沟通,全部集中在同一条记录上。多租户身份:一次登录,多个运营商工作区,各自隔离。对服务提供方免费,不替代 TMS。

预约演示查看定价

门户模块

7 · 收件箱、货运、调度、发票及另外 3 个

物流方式

海运、空运、公路、铁路、快递及另外 3 种

多租户身份

一次登录,多个运营商工作区

货代使用成本

$0 · 由运营商支付 TradeOS 费用

H彭德鲁能源物流工作区 · Oceanway Forwarding, Klang
切换运营商 ▾
首页收件箱 · 4货运调度运价发票 · 3消息设置
周三上午
早上好,瑞秋4 项事务需要您今日处理 · 2 条预订请求待处理,1 个 RFQ 截止时间为 14:00,1 项异常于夜间申报。
全球态势
6 票在途货运
查看货运 →
待回复3 条
预订
BKG-2026-4419 · Klang → Hamburg · 1×40HC就绪日期 5 月 28 日 · 要求 ETA 6 月 14 日 · 18 小时前已发送
接受还价
预订
BKG-2026-4424 · Shanghai → Rotterdam · 2×40HC就绪日期 6 月 2 日 · 要求 ETA 6 月 20 日 · 6 小时前已发送
接受还价
RFQ
RFQ-2026-0188 · Port Klang → North Europe · Ocean FCL截止时间今日 14:00 · 就绪日期 6 月 10 日
提交报价
有风险1 项异常 · 紧急
严重
SHP-2026-018 · Port of Klang 入闸延误03:17 由运营申报 · 已通知承运商 · 应对措施:改订较晚船期
处理中
今日5 项待办事项
10:00提货 · SHP-2026-026 · Long Beach
14:00RFQ-2026-0188 截止日期 · Klang → N. Europe
18:00VGM 截止 · SHP-2026-024 · Ningbo
19:30启航 · SHP-2026-022 · Shanghai
22:15抵港 · SHP-2026-016 · Hamburg
财务$184,920 未结款项
草稿2
已提交5
审核中3
已批准8
已付款 · 30天14
已逾期2
有争议1

真实的主页仪表板— 欢迎横幅、显示活跃货运实时位置的世界地图组件、双列操作队列。单次后端调用(GET /portal/logistics/home)返回全部数据。运营商品牌界面元素(徽标、颜色、工作区标签)根据运营商的租户设置渲染。

那个从未更新的里程碑

「货运可视化」的真实面貌。

货代专业,报关行高效,承运人的追踪页面也有。但当一票货物的记录系统分散在三个收件箱、两张电子表格、一个 SharePoint 文件夹和一个没人在同一时区的 WhatsApp 群里时,这一切都无济于事。

01 · 里程碑活在共享表格里

「ETA 是什么时候?」——答案来自某个没人记得刷新的标签页。

您的货代更新 Google Sheet 的节奏与追问您的进口商不同步。运营团队有两个「唯一真相」——表格和承运人追踪页面——两者相差三天。等您查到答案时,集装箱早已通关,没有任何人注意到。

货代表格操作员记录
3 天偏差·同一集装箱

02 · 清关更新活在邮件线程里

报关行在晚上 11 点发来「我们周二已申报」。您周四才看到。

报关行速度很快,但他们的沟通渠道就是当时恰好打开的那个收件箱。放行通知以 PDF 附件形式到达。您转发给财务,财务找不到申报编号,因为它藏在截图里。货物晚了三天才出运,因为没有人知道已经放行。

报关行邮件 · PDF海关记录
延误 3 天·申报编号埋在截图里

03 · 一家货代,十五个门户

您的货代无视您发给他们的门户,因为他们还有另外十五个。

您搭建了「自己的」门户,请货代登录并更新里程碑。他们每个客户都有一个。没有一个他们会持续查看。您的数据在他们关闭浏览器标签页的那一刻就过时了。这个门户变成了货代应付差事的系统——直到他们彻底不再应付。

又一个门户货代无视它
1 个登录 · 多项操作·因共享而被使用

7 个模块 · 一个门户

货运代理所需的每个操作界面,集中于一套导航体系。

真实的 LOGISTICS_NAV.flatLinks 来自 client/src/lib/navConfig.ts。移动端底部导航栏使用前四项:首页 · 收件箱 · 货运 · 调度。

01

首页

欢迎横幅 + 显示活跃货运的世界地图 + 双栏操作队列(Needs Response、有风险、Today、Money)。单次后端调用返回全部数据。

02

收件箱

结构化响应队列。3 个子标签页(订舱、RFQs、争议),每个标签页分为「需处理」、「Awaiting Response」和「Recently 12月ided」三个区块。逾期未处理的还盘将在 48 小时后自动提级。

03

货运

5 个标签页——追踪、集装箱、费用、清关、历史记录。单次后端调用(/shipments/overview/all)返回全部数据;各标签页为其投影视图。

04

调度

适用于陆路运输的 11 状态机。assigned → accepted_by_driver → en_route_to_pickup → arrived → loaded → departed → en_route_to_delivery → arrived → unloaded → completed(+ 失败分支)。完成须经 POD 解锁。

05

费率

费率表含生效日期、失效日期、版本号及替代版本字段。支持按行附加附加费、数量分级及最低收费。支持 1 至 500 行的原子性批量导入。

06

发票

10 状态机。3 种类型:按货运、月度合并、临时。含争议分支及处理跟踪。

07

消息

按运营商连接限定范围的线程式消息。关联至具体实体(订舱、RFQ、货运、发票)。通知通过与其他门户相同的基础设施推送。

收件箱 · 1,252 行界面

货运代理的收件箱存在于您的记录中,而非分散在三条邮件线程里。

三类工作流共享同一队列,因为从货运代理的角度来看,它们本质相同:「结构化回复、时间紧迫、我是瓶颈」——订舱请求、RFQ 和发票争议。收件箱 界面将三者汇入同一队列,并内嵌操作表单,使标准流程无需任何页面跳转。

全部 12订舱 4报价(RFQs) 5争议 3
待处理 · 4
预订
BKG-2026-4419
Klang → Hamburg · Ocean FCL · 1×40HC · 备货日期 5 月 28 日
预订过期 · 需跟进
BKG-2026-4401 · counter-quoted
Ningbo → Hamburg · 还价已于 51 小时前发出 · 等待操作员回复
RFQ
RFQ-2026-0188
Port Klang → 北欧 · Ocean FCL · 截止时间今日 14:00(剩余 5 小时)
争议
INV-2026-1142 · disputed
滞期费争议 · $1,840 · 操作员备注「船舶提前 2 天抵港」
等待回复 · 5

已提交 5 份报价 · 等待操作方决策 · 最早提交 18h 前

近期已决策 · 3

2 份报价中标 · 1 份报价落标 · 展开查看

货运 · 5 个标签页 · 单次后端调用

同一货运数据的五种视图。

货运代理的主要操作界面。GET /portal/logistics/shipments/overview/all 一次性返回全部数据;页面将其保存在内存中并按标签页分别呈现。浏览器无需扇出请求,各标签页无需单独重新获取数据。

01

货运追踪

世界地图 + 列表,显示状态、路线、最新里程碑及未处理异常。点击任意行 → 内联展开,显示该货运的完整里程碑时间线及未处理异常。

02

集装箱规划

每票货运的每个集装箱,包含箱型、装载率(CBM / 重量与集装箱上限之比)、铅封号及装货日期。即「哪些货物装在哪里」视图。

03

费用与运费

每票货运的发票收入、已付金额及未结余额。顶部显示汇总总计。可从任意行深入查看发票详情。

04

海关与合规

每票货运的报关信息:管辖地(ISO 3166)、申报类型(进口/出口/过境)、状态(7 状态机)、报关单号及申报 HS 编码。顶部汇总显示已清关/待处理/扣押数量。

05

历史记录

该货运代理名下所有货运的事件、里程碑及异常的时间顺序合并记录。按时间排列的动态流。审计日志界面。

状态机 · 数据库强制执行

货代全程经历的六个生命周期——始终在您的记录内完成,无需跳转。

每个工作流均具备显式状态机——采用 Postgres 枚举类型或 CHECK 约束实现。服务层的状态转换规则严格校验各状态间的合法流转路径。无魔法字符串,无 UI 端状态管理。

预订 · 6 个状态

待接受已还价已接受

终止状态:已拒绝·已取消·已过期。接受操作将自动创建关联货运记录。

询价单 · 7 个状态

已发送已报价已中标

分支状态:已失标·拒绝报价·已过期·已撤回。后端强制每条 RFQ 仅允许一个待处理报价。

调度 · 11 个状态

已分配司机已接单前往取货中已到达取货地已装载已发车前往送货中已到达送货地已卸载已完成

任意活跃状态均可附带原因转入 failed。完成操作须先完成 POD 采集(界面中通过提示框锁定)。

发票 · 10 个状态

草稿已提交审核中已批准已计划付款已部分付款已付款

分支状态:已逾期·存在争议·已核销。发票类型共三种:按货运·按月合并·临时。

报关申报 · 7 个状态

草稿已提交已受理已清关

分支状态:已扣押(文件/付款/查验待处理)·待查询(海关提出问题)·已拒绝(终止)。按管辖区 × 申报类型划分。

异常 · 3+3 枚举

信息/警告/严重

严重级别 × 状态。状态流转路径为 待处理 → 处理中 → 已解决。与里程碑相互独立——异常须声明登记,缓解措施可追踪,处理结果留存审计。

8 种物流模式 · 按模式里程碑模板

八种物流模式——因为真实货运无法套用同一个模板。

logistics_mode 枚举包含八个值,每个值对应独立的按模式里程碑模板(在服务端验证,而非通过数据库枚举,因此新增里程碑无需执行 ALTER TYPE)。

整箱海运
字段: 箱号、船名、航次、提单号、VGM、装卸港。
里程碑: 已订舱 → VGM 已申报 → 进闸 → 已装船 → 已离港 → 已中转 → 已抵港 → 已卸船 → 海关 → 已交付。
拼箱海运
字段: CFS、主提单与分提单、拼箱参考号、装箱单。
里程碑: 已订舱 → CFS 已收货 → 已拼箱 → 已装船 → 已离港 → 已抵港 → 已拆箱 → 海关 → 已交付。
空运
字段: AWB、航班、ULDs、机场、危险品申报。
里程碑: 已订舱 → 舱单申报 → 已交运 → 已装机 → 飞行中 → 已落地 → 已接收 → 海关 → 已交付。
整车公路运输
字段: 车牌、司机、挂车、集装箱、单点提货与配送。
里程碑: 完整 11 状态调度状态机(见上文)。
拼车公路运输
字段: 按站点排序、多托运人拼载、每站签收 POD。
里程碑: 含多站提货与配送循环的调度状态机。
短驳运输
字段: 底盘车、港口预约、海关扣押放行、集装箱落箱或直接卸货标识。
里程碑: 调度状态机 + 港口预约工作流。
铁路
字段: 车厢、列车、站场、换轨里程碑。
里程碑: 已调度 → 已装车 → 已发出 → 边境 → 换轨 → 已抵达 → 已卸车 → 已交接。
快递 / 包裹
字段: 跟踪号、承运商、末端配送尝试次数、签收 POD。
里程碑: 已揽收 → 运输中 → 派送中 → 已交付(或已退回)。

一个货代 · 多个操作方

一个货代账号登录,多个操作方工作空间,各自完全隔离。

一家同时服务 彭德鲁能源、AcmeCorp、生物医学环球 及其他七家客户的货代,只需一条用户记录、一次登录,即可通过 external_memberships 表(迁移 121)访问十个操作方工作空间。一键切换。每个操作方的订舱记录、运价单、里程碑节点、发票及往来沟通均通过 connection_id 隔离——不存在任何 API 路径可将数据跨操作方泄露。

您的承运商 API 凭证存储于 external_organization 层级(迁移 289)——配置一次,通过 KMS 插件加密,在您所服务的所有操作方工作空间中复用。

彭德鲁能源
欧盟子公司 · 4 票在途 · 2 票待截关
当前工作空间
AcmeCorp 贸易
新加坡总部 · 7 票在途 · 1 票海关扣押
切换 →
生物医学环球
3 票在途 · 发票已审批
切换 →
+ 7 个更多操作方工作空间
共计:10 个已连接操作方
查看全部
各自隔离 · 操作方之间无法查看对方数据

保密性 · 架构

跨运营商保密性由平台强制执行,而非依赖政策约定。

架构保障,而非口头承诺。真实的 redactFor(entity, row, viewerRole) 位于 server/src/modules/portal-shell/redaction.ts — 与供应商和客户门户采用相同模式。

按连接划定范围

每个查询均携带来自 JWT 的 connection_id

物流门户 API 不存在任何可跨运营商扩散的路径。跨运营商访问返回 404(而非 403),从而隐藏资源的存在性— 已在投影测试套件中验证(portal-logistics/__tests__/projector.test.ts)。

字段级脱敏

物流方永远看不到商业价值数据

采购价、销售价、利润率、成本基础— 在记录离开数据库之前全部剥除。redactShipmentForClientredactFor('shipment', raw, 'logistics') 函数强制执行此规则。唯一例外是提单:法律要求的收货人数据会出现在提单文件中,受基于 Incoterms 的可见性规则管辖(见下一节)。

运费隐私保护

您与某一运营商约定的费率对其他运营商不可见

费率表按 logistics_connection_id 限定范围。运营商侧的费率交易市场用于跨提供商比价(Solo+ 功能),而非反向查询— 货运代理无法枚举「谁获得了比我更优惠的费率」。RFQ 结果(中标 / 未中标)仅向相关货运代理本人展示,绝不跨货运代理聚合。

贸易术语 · 可见性配置

货运代理所能看到的内容,取决于哪一方是法定发货人。

连接的 visibility_config JSON(迁移 122 列;schema 文档见 291)按 Incoterm 设置原产地和目的地的可见性——国家 / 港口 / 城市 / factory_name / factory_address / full_address。此外支持按 Incoterm 的覆盖规则及标签覆盖规则。

DDP · CIF · CFR

运营商 = 法定发货人

制造商身份在运输单据中被抽象处理。货运代理看到的发货地为运营商地址;运营商的租户设置控制 BOL 发货人字段。除非明确覆盖,否则制造商名称不会向货运代理显示。

发货地运营商地址 ▸ Port Klang, MY
目的地收货人地址 ▸ Hamburg, DE
BOL 发货人运营商法律实体

FOB · EXW · FCA

工厂 = 法定发货人

制造商因法律要求须作为 BOL 上的法定发货人。制造商名称及提货地址对货运代理可见;visibility_config 仍可限制运营商下游客户所能看到的内容(客户门户的信息遮蔽规则单独适用)。

发货地工厂 ▸ 新月制造,巴生
目的地按 Incoterm 规定
BOL 发货人制造商法律实体
司机 · Oceanway
SHP-2026-026 · DRAYAGE
Long Beach Port → AcmeCorp DC, Compton
当前状态
已到达取货地
采集时间 14:08 · GPS 33.7701, −118.2186 · 1 张照片
下一步
已装货 → 已离开
确认铅封编号,点击推进
确认装货
PWA · 支持离线 · 重新联网后自动同步

司机 · PWA

同一门户,范围限定为「仅您的调度任务」。

司机将物流门户安装至主屏幕——manifest.webmanifest + service worker——完成一次登录后,即可查看仅限其本人作为指定司机的调度任务队列。不涉及运价、发票或其他货运信息。里程碑节点记录 GPS 经纬度坐标及照片上传;POD 要求在允许切换至 completed 状态前,提供签名、签署人姓名及职务。

每个事件记录 6 个里程碑来源值:user(运营人工录入)、driver(移动端采集)、carrier_apiocrscheduled_auto_advanceoperator_override。里程碑表为仅追加模式——触发器拒绝 UPDATE 操作;更正操作通过插入新行实现,新行中的 supersedes_milestone_id 指向原始记录。

基于地理围栏的自动状态转换、BOL 上传的 OCR 处理流水线,以及 iOS 和 Android 原生应用均已列入路线图——里程碑来源枚举已为其预留对应槽位。

权限分级 · 15 个功能项

货运代理免费使用。运营商的 层级 决定哪些功能可见。

实际的 tier_features 注册表(迁移 291)定义了物流门户的 15 个功能门控。物流服务商不会看到付费墙;接入运营商的 层级 决定该运营商在您工作区中的可用功能。[路线图] 标签标注的功能,其 tier_feature 键已存在,但实现将于上线后完成。

功能
入门版
单人版
商业版
企业版
订舱 + 货运 + 手动里程碑
司机 PWA + 移动端里程碑采集 + POD
文档上传 + 可见性标签共享
运费表 + RFQ 流程(6 状态订舱 · 7 状态 RFQ)
承运商 API 集成(project44 已上线;更多开发中)
多承运商交易市场(比价报价)
自动化报关文件(按货运批次模板填充)
美国 ABI/ACE 直接申报(持牌报关行)
AI 拼箱建议路线图
跨租户绩效洞察路线图
网络信誉聚合路线图
多运营商拼箱路线图
自定义承运商 API · TMS 直连集成 · SAML SSO

Roadmap = 在迁移 291 中注册的 tier_features 键(参见 db/migrations/291_logistics_tier_features_and_visibility_overrides.sql);引擎、聚合及 UI 实现将于上线后按物流 Spec §19、§14、§25 交付。

规划路线图

物流门户即将推出的功能。

v1 包含 7 个模块、6 个状态机、仅追加的里程碑日志、多租户身份管理、字段级脱敏、Incoterms 驱动的可见性,以及跨 15 个功能键的 层级 gating。部分市场团队希望立即对外宣称的能力已如实标注为规划路线图。

01

AI 整合建议

迁移 290 交付 consolidation_groups 表结构。填充该表的建议引擎作为上线后的后台任务运行;v1 界面暂不展示任何内容。层级 功能键 logistics.ai_consolidation_suggestions 已为 Business+ 注册。

02

跨租户绩效洞察 + 网络信誉

层级 功能键 logistics.cross_tenant_insightslogistics.network_reputation_display 已为 Business+ 注册。聚合引擎及 ≥3 个运营商的反推断阈值将于上线后落地。

03

多运营商整合(Enterprise)

跨运营商整合需要尚未明确的同意机制。迁移 290 明确推迟此项— 「intentionally NOT modelled here」。层级 功能键已预留。

04

BOL 上传的 OCR 流水线

里程碑来源枚举值 'ocr' 已注册;负责读取 BOL 图像、提取集装箱/船舶/铅封/航次字段并发布相应里程碑的 OCR 服务将于上线后提供。

05

地理围栏驱动的自动状态转换

基于地理围栏进入/退出的调度状态转换(arrived_at_pickup、arrived_at_delivery)目前尚未实现。v1 在司机点击里程碑时捕获 GPS;基于地理围栏的自动推进将于后续版本提供。

06

承运人 API 覆盖范围— 直接集成

v1 集成注册表:project44(live),Freightos Baltic / Xeneta / Drewry / 3月ineTraffic / Vizion(运费率 + AIS 可视化)。与 Maersk / MSC / CMA CGM / ONE / HMM / Hapag-Lloyd 的直接集成、面向航空的 IATA Cargo IQ,以及面向快递陆运的 FedEx / UPS / DHL / USPS,将随底层 API 接入后逐步开通。logistics_carrier_api_credentials.carrier_name 为自由文本 TEXT 字段,新增承运人无需变更表结构。

07

iOS / Android 原生司机应用

PWA 是 v1 的司机端界面(manifest + service worker 已在 client/public/ 上线)。支持生物识别认证、原生相机 API 及推送通知的原生应用将于上线后推出。

08

承运人 API 定期轮询节奏

logistics_carrier_api_credentials 表包含 last_polled_at 字段。按各自节奏轮询每个已连接承运人的定时任务(海运每日、关键空运航段每小时、铁路每 12 小时)将于上线后提供。

常见问题

每位货运代理最先提出的问题。

不是。我们不与 CargoWise、Magaya、Descartes 或 Project44 竞争。我们是您的 TMS 与委托您的运营商之间的协调层。请继续使用 TMS 处理内部运营;使用物流门户处理 TMS 之外的运营商侧工作流——运营商发起的预订、运营商所需的里程碑可视化、针对运营商货运的报关申报、运营商查询的费率表和 RFQ,以及运营商支付的运费发票。针对使用 CargoWise / Magaya / Descartes 的运营商的 TMS 集成在 Enterprise 层级 提供。

向我们发送您的货运代理名单和一个进行中的预订,我们将搭建一个沙箱物流门户,并在 30 分钟内带您的一位货运代理完整走一遍。

发送一份包含您主要货运代理的 CSV 文件和一个开放中的货运单。我们将搭建一个带有您 tenant 品牌标识的沙箱物流门户,以您的货运代理名单作为 external_organizations,并带领一位真实货运代理完整体验:接受 RFQ、发布里程碑、报关申报,以及开具发票。无演示数据。您的货运代理,您的货运单。

预约演示联系销售

查看完整网络——4 个 portals,一条记录 →

物流门户 · 专为货代设计的操作台 | TradeOS