2026年8月2日8 分鐘電子發票 · 產品架構 · 系統設計 · MIG 4.1 · POS · 模組化

一套系統賣給所有人,還是讓客戶自己組 — 我們把電子發票做成三前台 × 三後台

同一套電子發票系統,賣給貿易商、賣給夜市攤位、賣給連鎖餐飲,需求完全不一樣。過去的做法是「做一套大的,用不到的功能就放著」—— 客戶付了不需要的錢,我們維護了沒人用的程式碼。2026 年 7 月我們把它拆成三種開票前台配三種營運後台,客戶自己組。這篇講為什麼這樣拆、怎麼拆、以及模組化真正的成本在哪。

陳先生 (Henry)

一套系統賣給所有人,還是讓客戶自己組 — 我們把電子發票做成三前台 × 三後台 — 文章主視覺

「你們的系統多少錢?」 「看你要做哪種生意。」

這個回答聽起來像在打太極,但它其實是我們花了好幾年才學會的事。

電子發票這件事,在台灣是同一套法規、完全不同的生意。一家貿易商跟一個夜市攤位,都要開發票、都要符合財政部的規範,但他們需要的東西幾乎沒有重疊。

這篇講我們怎麼把一套電子發票系統,拆成一條可以自由組合的產品線。

一、先講問題:一套大系統,兩邊都不划算 #

早期的做法很直覺 —— 把所有功能做進同一套系統,客戶買了之後用得到哪些算哪些。

聽起來很大方,實際上兩邊都吃虧:

對客戶:一家只做 B2B 開票的貿易商,買到的系統裡塞著觸控結帳、開班結班、庫存扣減 —— 全部用不到,但這些功能的開發成本都攤在報價裡。

對我們:每加一個客戶,就多一組「他只用其中三成功能」的維護負擔。改一個共用的地方,要回歸測試所有人的情境。沒人用的程式碼不會自己消失,它會在每次改版時提醒你它還在。

更麻煩的是需求會互相打架。餐飲客戶希望結帳畫面越大按鈕越好、越少步驟越好;企業開票的客戶希望欄位齊全、可查可改、有稽核紀錄。這兩種需求放進同一個畫面,只會兩邊都不好用。

二、怎麼拆:先找出真正的分界線 #

拆模組最容易犯的錯,是照技術結構拆(前端一包、後端一包、報表一包)。這種拆法對工程師有意義,對客戶沒有 —— 客戶沒辦法從「我要買前端」開始思考。

我們最後找到的分界線是兩個問題:

  1. 你開哪一種發票? → 決定前台
  2. 你要管哪一種生意? → 決定後台

依這兩個問題,整條產品線長這樣:

三種開票前台 #

前台 開什麼票 典型使用者
企業開票端 B2B / B2G、折讓單、空白發票申報 貿易商、製造業、對政府機關開票的廠商
零售門市開票端 B2C 收據、買方統編、載具 攤位、夜市、市集、文創展售、門市
餐飲點餐開票端 B2C 收據,點餐流程整合 餐飲店、小吃店

三種營運後台 #

後台 管什麼
零售商品中樞 商品、庫存、進銷貨
餐飲營運中樞 菜單、品項、餐飲營運
總部中樞 多點統整、跨店報表

客戶挑自己需要的組合就好。 只做 B2B 的,買企業開票端,後台可以完全不要;夜市攤位要零售前台加商品中樞;連鎖餐飲則是餐飲前台配餐飲中樞再加總部中樞。

這個拆法的關鍵,不在於模組切得多細,而在於分界線是用客戶的語言定義的。客戶不需要理解我們的技術架構,只要回答「我開哪種票、做哪種生意」。

三、共用的地方要共用,不共用的不要硬湊 #

拆成產品線之後,最危險的誘惑是「既然都拆了,那全部都做成可設定的」。

我們的原則很簡單:法規要求的東西共用,生意邏輯的東西不共用。

必須共用(因為法規只有一套):

  • MIG 4.1 的 XML 產生與驗證
  • 字軌號碼管理與追蹤
  • 作廢、註銷、折讓的處理規則
  • 上傳與回執的處理

這一層做錯,是全部客戶一起出事,所以它只能有一份實作、一份測試。法規會改,改的時候我們只想改一個地方。

堅持不共用(因為每種生意本來就不同):

  • 結帳畫面與操作流程
  • 商品/菜單的資料模型
  • 報表的呈現方式

餐飲的「品項」跟零售的「商品」看起來很像,硬做成同一個抽象只會兩邊都彆扭。寧可兩份清楚的實作,不要一份到處都是條件判斷的萬用實作。

四、兩個逆向的產品決策 #

拆產品線的過程中,有兩個決定跟現在的主流做法是反的。

決策一:離線桌面,不做 SaaS #

現在幾乎所有系統都往雲端走。我們的開票端反而堅持離線桌面應用

理由很實際:開發票不能因為網路斷線就停擺。 客人在櫃檯前面等,網路剛好不通,這個情境是不能接受的。發票開立本身完全在本機完成,上傳是另一件事、可以稍後補。

也因為離線,我們提供三種彈性的上傳方式(本機 Turnkey、遠端 SMB/FTP、CSV 匯出),客戶依照自己的 IT 環境挑一種,不必為了配合系統去改網路架構。

決策二:一次買斷,不收月費 #

訂閱制對廠商是更好的商業模式,這點我們很清楚。但對台灣中小企業,每個月固定扣款是一個心理門檻,尤其是開發票這種「本來就該有」的基礎功能。

一次買斷讓客戶算得出總成本,也讓我們少掉一整套帳務與催繳流程。我們寧可把力氣花在系統本身。

五、模組化真正的成本 #

講完好處,也講代價 —— 產品線不是免費的。

測試矩陣會變大。 三前台配三後台,加上不同的上傳方式,組合數比單一系統多得多。我們的做法是把共用層(法規那一層)的測試做厚,組合層只驗介面接得起來,不重複驗法規邏輯。

文件與教育訓練要跟著拆。 客戶只買了兩個模組,就不該收到一本包含所有功能的手冊 —— 那只會讓他覺得「我是不是買少了」。

報價要說得清楚。 模組化的副作用是報價變複雜。我們的處理方式是先問清楚生意型態,直接給對應組合的價格,而不是丟一張模組價目表讓客戶自己加總。

六、這個思路不只適用於電子發票 #

如果你手上的系統有這些症狀,可能也到了該拆的時候:

  • 不同客戶用的功能重疊度很低,但買的是同一套
  • 兩種客戶的需求在同一個畫面上互相打架
  • 改一個共用的地方,要回歸測試一堆不相干的情境
  • 報價很難解釋,因為裡面包了客戶用不到的東西

拆的時機比拆的方法重要。 太早拆,會為了還不存在的客戶做抽象,白做工;太晚拆,共用的地方已經纏在一起,拆的成本會高得嚇人。

我們的判斷是:同一個功能出現第三種明顯不同的用法時,就該認真考慮拆了。 一種是特例,兩種可以用條件判斷擋著,三種代表這是結構性的差異,不是例外。


想知道你的情況該用哪個組合、或現有系統值不值得拆,直接跟我們說你的生意型態就好 —— 通常聊十分鐘就能判斷。

有類似的問題想解決?

先聊聊你的狀況,我們給你可執行的方向。諮詢免費,依工時報價。

3Q · 摩葳實業 / 牛寶創意科技社 / 倍新有限公司 — 企業 IT 系統,做了 23 年