
Odoo 19 庫存計價深度解析:告別 SVL 與重塑永續盤存架構
Odoo 19 在庫存計價上做了大的底層變革:徹底移除 stock.valuation.layer 表。這不只是效能優化,更是對「永續盤存」邏輯的重新定義。本文將解析 18 與 19 版本的核心差異,並分享如何透過開源模組找回消失的設定。
Topics
WRITTEN BY

- Name
- Harry Chang
如果你還在 Odoo 19 的資料庫裡搜尋 stock.valuation.layer (SVL),或是苦尋會計設定中那顆熟悉的 「Anglo-Saxon Accounting」開關,19版本已不存在,這正代表你正見證 Odoo 史上重大的成本會計變革。這一次,庫存計價架構迎來了徹底簡化,正大步向「一體化發票觸發 (at invoicing)」的全新時代邁進。
- 核心觀點:Odoo 19 的「去 SVL 化」是一場效能與邏輯的雙重革命
- 實戰舉例:採購原料的分錄對照表
- 實操指南:設定牆 (Configuration Wall)
- 補充說明:定期盤存制的自動結轉排程機制
- 社群版計價設定開源模組分享:cx_inventory_valuation
- 迎接更乾淨的 Odoo 19 計價時代
- 參考資料 (References)
核心觀點:Odoo 19 的「去 SVL 化」是一場效能與邏輯的雙重革命
SVL 調整由一個視圖來管理,讓用戶能彈性選擇是否使用,並取消了庫存計價的「自動」分錄,直接將貨務價值存儲在 stock.move (SM) 紀錄中。
這項改變意味著,以前習慣的「自動分錄」已不存在,但也挑戰了許多資深顧問的對帳習慣。

實戰舉例:採購原料的分錄對照表
讓我們用具體的例子來看 Odoo 19 在不同模式下的表現,這能幫助你更清晰地理解底層運作。首先,我們將前年我自己出版書籍中的分錄差異整理如下表,方便進行對照:
| 項目 | 永續盤存制 (Perpetual) | 定期盤存制 (Periodic) |
|---|---|---|
| 盤存制度 | 永續盤存制 | 定期盤存制 |
| 對應成本 | Anglo Saxon | 歐陸會計 (Continental) |
| 採購入庫 (庫存計價) | 借:1231-商品 貸:2179-暫估應付帳款 | (不產生庫存計價分錄) |
| 採購入庫 (應付請款) | 借:2179-暫估應付帳款 貸:2171-應付帳款 | 借:5101-進貨 貸:2171-應付帳款 |
| 銷售出貨 (庫存計價) | 借:1239-已出貨待驗收 貸:1235-製成品 | (不產生庫存計價分錄) |
| 銷售出貨 (應收請款) | 借:1191-應收帳款 貸:4111-銷貨收入 借:5111-銷貨成本 貸:1239-已出貨待驗收 | 借:1191-應收帳款 貸:4111-銷貨收入 |
| 期末盤點 / 結轉 | (盤盈時) 借:1231-商品 貸:7485-存貨盤盈 | (月底/年底結轉銷貨成本) 借:5111-銷貨成本 5123-進貨退出及折讓 貸:5113-期初存貨 5100-進貨 借:5114-期末存貨 貸:5111-銷貨成本 |
實操指南:設定牆 (Configuration Wall)
這裡將兩種盤存制的設定流程整理為「設定牆」,因為在 Odoo 19 中,大部分的底層邏輯已經自動化,我們只需確保關鍵開關配置正確即可。
1. 定期盤存制 (Periodic - at Closing)
定期盤存制適合習慣平時先進費用,待期末再一併結轉至資產的企業;只需在設定中確認計價模式與類別科目,系統即可在背景自動記錄貨物價值,並於結轉時補足會計分錄。
2. 永續盤存制 (Perpetual - at Invoicing)
此模式下所有的庫存價值變動都會在「確認發票/帳單」時即時觸發資產入帳,確保財務價值與實際庫存緊密對齊。
補充說明:定期盤存制的自動結轉排程機制
在 Odoo 19 中,如果您不想每次都手動執行結轉,可以設定按「手動、每日或每月」自動執行。 庫存價值匯計排程 (Stock Account: Inventory Valuation Closing): 負責在背景掃描所有尚未結轉的 stock.move,並計算其對應的價值(Value),確保數據的準確性與即時性。

IMPORTANT
重要觀念釐清:每月結轉 vs. 月加權平均
可能有些人會以為「每月結轉」會聯想到台灣成本結算的 「月加權平均 (Monthly Weighted Average)」。
但請注意:Odoo 19 的「定期盤存 (Periodic)」底層依然是根據產品設定的移動平均 (AVCO) 或 FIFO 進行即時成本計算。每一筆移轉 (Stock Move) 在發生時就已經算好了當下的價值,只是系統「延後」到月底才幫你把這些碎散的數值加總成一筆會計分錄。
換句話說,這只是會計分錄的「匯計」,而非重新分配整個月成本的「計算」。如果您所在的產業嚴格要求月加權(分母為全月進貨總量),仍需透過客製模組或報表調整來達成。
社群版計價設定開源模組分享:cx_inventory_valuation
一如既往,ODOO19社群版的一些核心的成本法與盤存制設定從前端「隱藏」了,甚至連定期盤存必要的「結轉選單」都極其難找。
透過一系列的除錯與研究,參考企業版的介面位置,開發了一個 Odoo 19 社群版的增強模組:cx_inventory_valuation。
為了讓大家也能測試看看,我已經將該模組推送到 GitHub 共用空間,大家可以直接下載使用: 👉 GitHub: odoo-share-module
模組核心功能:
- 找回消失的設定:在會計設定介面,直接顯示庫存計價與成本法的設定區塊。
- 快捷結轉選單:在會計「報告」下新增「庫存計價」入口(對應
/stock-valuation-closing動態報告)。

迎接更乾淨的 Odoo 19 計價時代
總結來說,Odoo 19 原生功能對於台灣特殊的成本計算需求並未帶來直接的「利多」,但從產品架構的瘦身與效能優化中,我們看到了 Odoo 追求卓越的決心
然而,身為顧問,我依然認為「收貨即時產生計價分錄」機制的淡化有些可惜。那曾是一個非常直觀且有效的過渡核對機制;未來在 19 版中,我們可能需要透過更完善的報表體系,來補足期末結帳時的帳務檢核點。
值得期待的是,由於 19 版的底層關聯與架構更加單純,我去年所開發的月加權平均計算功能,在這一代應該能更高效地實現。
參考資料 (References)
- Odoo 19 Inventory Valuation Cheat Sheet: 官方發布紀錄
- odoo-share-module (GitHub Repo): 本文提到的開源模組 (cx_inventory_valuation)
- Odoo 19 Inventory Valuation Analysis (Video): 官方技術解析影片








