自建電商最貴的成本,不在開發,而在三年後的維護。報價單上寫的是一次性金額,但真正決定你未來現金流的,是平台選型帶來的長期綁定。在跟客戶討論 Shopify、自建、或 WooCommerce/Medusa 這類開源方案之前,我們的經驗法則是:先誠實回答三個問題。答不出來,選型就是賭博。
問題一:你的差異化到底在哪一層?
如果差異化在商品、品牌、內容行銷,那平台只是收銀台,Shopify 這類 SaaS 幾乎永遠是對的答案。它把金流、物流、資安、稅務更新這些「你不想每季開會討論」的事情外包掉。
但如果你的差異化在流程本身——例如複雜的 B2B 分級報價、預售與客製化配置、跨倉庫調度、或會員經營需要串既有 ERP——那 SaaS 的擴充點很快會撞牆。這時候不是「要不要自建」的問題,而是「自建哪一部分」。多數健康的架構是 hybrid:前台或購物流程用成熟平台,把獨特邏輯抽成獨立服務,用 API 串起來。
舉個例子,假設一家傳產轉型的機械零件電商,客戶下單需要根據料號、數量、客戶等級即時計算報價,這段邏輯放在 Shopify 的 Script 或 Function 裡會極痛苦,但把它做成一個獨立的定價 API、再讓前台呼叫,就合理很多。
問題二:三年後誰來維護?
這題比第一題更常被忽略。自建與開源方案的 TCO(總持有成本)不是寫在 GitHub README 上的。你要問的是:
- 三年後,最初寫這套系統的人還在嗎?
- 換人接手時,交接文件、CI/CD、測試覆蓋率,撐得住嗎?
- 遇到金流商 API 改版、物流商規格變更、個資法規更新,誰負責?
SaaS 把這些變動當成產品責任幫你吸收;自建則是每次都要重新排 sprint。中小企業如果沒有穩定的內部工程團隊,選開源方案要特別小心——「開源免費」只是授權費免費,維運工時一分都不會少。
問題三:金流與物流的複雜度,你估對了嗎?
這是最容易低估的一塊。台灣市場的金流不只是刷卡,還有超商代碼、ATM 虛擬帳號、行動支付、分期、定期定額;跨境還要考慮多幣別、稅務、退款鏈路。物流則牽涉超商取貨、宅配、冷鏈、逆物流。
每一條串接,官方文件看起來都很單純,但實際踩到的坑通常在:非同步通知的重試與冪等、對帳差異、退款與部分退款、以及跨系統的訂單狀態機。示意如下:
// 示意:處理金流回呼時,冪等性比什麼都重要
async function handlePaymentCallback(payload) {
const exists = await db.txn.findByProviderId(payload.id);
if (exists) return ack(); // 重複通知直接回 200
await db.txn.create(payload);
await orders.markPaid(payload.orderId);
return ack();
}
這段程式碼真正的難點不是寫出來,而是「訂單狀態機」怎麼設計,才能同時容納金流、物流、客服手動介入這三條線的變動。
我們的觀察
選型不是選技術,是選你未來三年願意在哪裡花時間。SaaS 讓你把時間花在賣東西,自建讓你把時間花在系統本身——兩者沒有絕對優劣,只有匹不匹配。我們在報價時通常會建議客戶:先用 SaaS 把生意跑起來,直到明確撞到擴充點,再把那一塊、也只有那一塊,抽出來自建。過早自建,是中小企業電商最常見、也最貴的一個錯誤。
