第三方模組
官方 App 不夠用時,除了自己寫,還可以用別人寫好的模組,統稱第三方模組(Third-party Module)。它們能省下大量開發時間,但每一個模組都是你之後要維護、升級與負責的東西。本頁說明有哪些來源、怎麼判斷能不能用,以及安全的安裝步驟。
三種常見來源
| 來源 | 特色 | 注意 |
|---|---|---|
| OCA 社群模組 | 非營利組織維護、開放原始碼、有版本分支與測試 | 首選;一次只挑真正需要的 |
| Odoo Apps 商店 | 官方的模組市集,有免費也有付費,作者是各家廠商與個人 | 品質參差,以評價與維護狀況判斷 |
| 廠商或顧問提供 | 針對特定產業或客製需求,可能是私有授權 | 確認原始碼交付、授權與後續維護責任 |
安裝前的檢查清單
裝進正式資料庫之前,先逐項確認:
- 版本相符:模組的版本標記要對應你的 Odoo 大版,例如
18.0。不要把舊版程式硬拿來用。 - 授權清楚:看模組的
__manifest__.py裡的license。常見有 LGPL-3、AGPL-3 與 Odoo 專屬的 OPL-1;商用前先讀懂條款。 - 依賴單純:
depends列出的模組是否都能取得,有沒有依賴另一個你不熟的第三方模組。 - 維護狀況:最近是否有更新、有沒有人回覆問題。多年沒人動的模組,升級時多半會壞。
- 有沒有動到核心:好模組用繼承擴充功能;直接改核心程式碼的模組,升級時容易衝突。
- 權限設定:新增的資料模型有沒有設定存取權限,避免任何使用者都能讀寫。
不要為了方便,把來路不明的 zip 丟進正式庫
模組是能在伺服器上執行的程式碼,能讀寫整個資料庫。只安裝你信任、看得到原始碼的模組。
安裝步驟
- 備份資料庫。 用 Docker 時,Docker 安裝 的開發堆疊已設定每日自動備份;動手前再確認一次備份可用。
- 在測試資料庫先做一遍,不要直接動正式庫。
- 放進附加模組資料夾:把模組目錄放到
addons_path指定的位置。用 Docker 時,通常是掛載到容器內的/mnt/extra-addons,見 Docker 安裝。 - 重新啟動 Odoo,讓它掃描到新目錄。
- 開啟開發者模式,到「應用程式」按「更新應用程式清單」。
- 搜尋模組名稱,按「安裝」。若找不到,先取消預設的「應用程式」篩選。
- 依模組 README 完成設定,並走一遍它負責的流程確認功能正常。
模組更新版本後,要在資料庫套用升級:
-u 是升級(update),--stop-after-init 讓它跑完就結束。安裝新模組則改用 -i。
之後的維護
- 鎖定版本:記下每個第三方模組的來源與版本(例如 Git 的 commit),方便重現環境。
- Odoo 升級前:逐一確認每個第三方模組已有新版本。這往往是升級最花時間的部分。
- 解除安裝要小心:卸載模組時,它建立的欄位與資料不一定會乾淨移除。先在測試庫演練。
- 少即是多:模組愈多,測試與升級成本愈高。定期檢討,把沒在用的移除。
該用第三方、還是自己寫
| 情況 | 建議 |
|---|---|
| 需求很常見,社群有成熟模組 | 用 OCA 或官方模組 |
| 只需要小改動(加欄位、改報表) | 自己寫小模組,見 最小模組 |
| 需求跟你的流程高度相關 | 自己寫,或請顧問寫並取得原始碼 |
| 模組看起來可用,但沒人維護 | 學習階段略過;正式使用要有人負責維護 |
練習
- 到 OCA 找一個
18.0分支的模組,讀它的 README 與depends - 在測試資料庫放進附加模組資料夾,更新應用程式清單並安裝
- 用
-u升級一次,觀察日誌有沒有警告 - 卸載模組,檢查資料有沒有殘留
進一步學習
- Odoo Apps 商店
- Odoo 18 文件:模組資訊清單(manifest):
depends、license等欄位的說明 - 本站:OCA 社群模組、最小模組、Odoo 指令列