沙链框架
OPL-1 · Odoo 16-19

连接 React 与 Odoo,
真正能跑起来的桥接框架

沙链是一个分层商业框架,让你在任意 Odoo 视图中构建 React 19 + Mantine 8 组件 — 无需 Shadow DOM hack, 不依赖 Enterprise,也不修改 Odoo 核心。

5,000+

自动化测试

88%

代码覆盖率

Odoo 16–19

版本支持

OPL-1

商业许可

ARCHITECTURE

三层架构,职责清晰

Kernel 处理通用微前端基础设施,Bridge 处理 Odoo 集成,Addons 承载业务逻辑。层与层之间零渗透。

01

Kernel 内核

@shachain/react-micro-frontend

不绑定具体宿主的微前端基础设施。React-to-Web-Component 引擎、Mantine 主题、i18n 引导、共享入口桩。完全不依赖 Odoo — 任何宿主都能跑。

02

Bridge 桥接层

@shachain/odoo-react

Odoo 集成层。OWL service 注入、跨版本 RPC 适配(16/17/18/19)、SystemJS importmap 引导、Per-Component MantineProvider 策略。

03

Addons 业务层

sc_react_* / odoo_react_*

构建在 bridge 之上的业务 addon。每个都是独立的 System.register chunk,自带 vite.config.ts。JS 层 addon 之间零耦合。

DESIGN DECISIONS

我们为什么这样设计

不依赖 Shadow DOM

Mantine 的 Portal(Modal / Drawer / Menu)直接渲染到 document.body。CSS 变量在所有 Odoo 版本中自然继承 — 无 workaround,无样式泄漏。

SystemJS 架构

完全绕开 Odoo 自带的资源打包器。在 Odoo 16-19 上运行,不需要 Enterprise,不修改 Odoo 核心,不引入版本冲突。

默认测试驱动

5,000+ 自动化测试,88% 代码覆盖率。RED-GREEN-REFACTOR 工作流内置 — 每次提交都经过验证。Vitest + Playwright Component Tests。

多版本统一支持

一份代码同时支持 Odoo 16 / 17 / 18 / 19。RPC 与 ORM 的版本差异由 bridge 适配层统一处理 — 你的业务代码保持干净。

QUICK START

从零开始,
5 分钟把 React 组件嵌入 Odoo

安装 bridge addon,用 defineAddon() 注册你的组件,然后在任意 Odoo 视图里写一个 Web Component 标签。无需 webpack,无需独立构建服务器,更不用 iframe。

  1. 1从 AppStore 安装 odoo_react_bridge
  2. 2用脚手架创建新 addon: npx @shachain/create-odoo-addon my_addon
  3. 3在 react/index.ts 中声明组件
  4. 4npm run build → 输出 System.register chunk 到 static/lib/
  5. 5在任意 Odoo XML 视图中使用 <my-component />

// react/index.ts

import { defineAddon } from '@shachain/odoo-react';

import MyDashboard from './components/MyDashboard';


export default defineAddon({

specifier: 'my_addon',

components: {

'my-dashboard': MyDashboard,

}

});


<!-- In Odoo XML view -->

<my-dashboard

record-id="{{ record.id.value }}"

/>

准备升级你的 Odoo 界面了吗?

免费下载、生产可用。从 Odoo Apps 安装,今天就开始在 Odoo 中构建 React 界面。