固定總價 150 萬,11 月底上線核心範圍
我們把這份規格書讀成一句話:總部只供貨,N 家獨立法人的經銷商各自收款、各自開票,貨卻從中央倉直送消費者。它不是一個電商網站,是一套帳務系統長出了電商前台。
這個判讀決定了預算怎麼花。全平台高峰每日不到 500 張訂單,效能不是問題;預算要放在三件事——額度帳務的正確性、租戶之間的隔離、以及讓招商頁看起來像一個連鎖集團。我們據此把 Phase 1 切成「上線核心範圍」(固定總價)與「上線後 30 天補齊」(另計),讓 11 月上線成為可以承諾的目標,而不是一個希望。
規格書裡有兩處會直接改變系統設計的地方——額度扣抵時點在模組 4 與模組 7 的描述不一致、50 萬預付貨款的開票時點涉及稅務認定——我們在第八節給出預設做法,請於簽約前定案。
我們讀到的生意
規格書的每一個模組都可以回推到同一個結構。同一張訂單上有四條線各走各的路:金流從消費者到經銷商、再從經銷商到總部;票流反向各開一張;額度在總部帳上被預留、扣抵;貨流則完全跳過經銷商。系統的工作,是讓這四條線在正確的時點對上。
每一筆消費者貨款直接進入經銷商自己的綠界特店,平台只負責「用對的憑證建單、把回呼分流到對的租戶」。這讓平台完全避開電子支付機構代收轉付規範,代價是每家經銷商都要有自己的特店。我們建議直接向綠界申請「平台商+子特店」方案:款項一樣直撥子特店,但開通流程由平台統一操作,經銷商不必把金鑰交來交去。
每家經銷商各是獨立開票主體,代表加值中心要 N 個帳號、字軌要各自申請。技術上這只是「用哪一組憑證」的問題;營運上卻是 100 → 1,000 店最大的瓶頸。因此我們把「經銷商開通」視為產品的一部分:Phase 1 由總部後台代建並保管憑證,Phase 2 做成經銷商自助精靈。
50 萬轉成額度、逐單按批發價扣抵——這是一本要能被會計師稽核的帳。我們以只追加、不可修改的流水帳(ledger)實作,每一筆 hold、capture、release、調整都對應一張單據;餘額永遠是算出來的,不是存起來的。扣抵時點與 50 萬的稅務認定,是簽約前必須定案的兩件事。
規模判讀:小流量、高正確性
1,000 站 × 每站每月約 10 單 ≈ 每月 1 萬張訂單、每日 330 單。這個量任何一台中階資料庫都撐得住,我們不會把預算花在效能上。真正隨規模放大的是營運動作——每多一家經銷商就多一組特店、一組發票帳號、一次測試交易——所以擴容成本模型(第七節)談的是人力與第三方費用,不是主機。
前台的目標則相反:量不大,但招商轉換率取決於「看起來像不像一個連鎖集團」。品牌主站與子站模板的設計工時我們沒有省,兩個後台則用成熟的管理框架,把設計預算集中在對外的頁面。
一張訂單的一生
下面這張圖是我們對規格書第三節的實作定義:哪個事件觸發哪一筆帳、哪一張發票。規格書模組 4 寫「訂單成立即按批發價扣抵」、模組 7 寫「出貨時開立批發發票並扣抵額度」——我們的預設做法是兩者都對:訂單成立時 hold(可用額度立即減少),出貨時 capture 並開立 B2B 發票,取消時 release。經銷商看到的可用額度即時,總部的批發發票又對得上實際出貨。
這張圖也回答了規格書沒有寫的一件事:退款怎麼辦。付款後、出貨前的取消有乾淨的回滾路徑(退款、release、作廢),Phase 1 內含;出貨後的退貨牽涉部分折讓、逆物流與額度回補的認定,我們列為上線後補齊項目,避免在時程內為一個尚未定義的流程做假設。
三個結構方針的實作回應
規格書第二節列出的三個方針我們全數採納,並各自對應到具體的系統設計。每一項我們也標出「建議你們再確認的一件事」——這些不是技術問題,但會改變技術做法。
| 方針 | 我們的實作 | 建議再確認的一件事 |
|---|---|---|
| 1 · 金流每經銷商自有特店,平台不做資金池 | 綠界 × 多特店:每經銷商的 MerchantID/HashKey/HashIV 以 KMS 加密落地、後台不回顯明文;結帳依租戶取憑證建單;回呼依訂單號分流驗簽;退款走該特店。總部自己的特店只用於一件事:收經銷商的補儲值款。 | 綠界「平台商(PlatformID)+子特店」方案是否可用於本案。款項一樣直撥子特店,但特店開通可由平台代辦,省掉每家經銷商交金鑰的資安與營運成本。建議 9 月與綠界業務一併確認。 |
| 2 · 發票雙軌,每經銷商獨立開票主體 | 綠界電子發票 × 多帳號:(a) 消費者付款成功後以該經銷商帳號開立 B2C 發票,支援手機條碼、自然人憑證、捐贈、統編;(b) 出貨事件觸發以總部帳號對經銷商開立 B2B 發票,買方為經銷商統編,金額為批發價,與 ledger capture 同一交易。作廢雙軌皆含。 | 50 萬收款時是否須先開立發票。依營業人開立銷售憑證時限表,買賣業「發貨前已收之貨款應先行開立」;若適用,隨出貨開 B2B 發票會變成重複開票。這由業主會計師定案,決定 (b) 軌的整個設計。 |
| 3 · 二級分銷Phase 1 單層,預留層級 | 資料模型預留 dealer.parent_dealer_id、dealer.level;訂單同時記錄 origin_dealer_id(在哪個子站成交)與 attributed_dealer_id(業績與額度歸誰)。單層時兩者相同,啟用二級時只改歸屬規則,不改資料結構。 |
模組 10 以選配單獨報價(30–45 萬)。啟用前請律師定案兩件事:下層是否有自己的額度錢包、下層訂單的發票主體是誰——這兩個答案決定選配的實際範圍。 |
架構與技術選型
一套系統、一個中央商品庫、掛 N 個經銷商前台。
單一資料庫、列級隔離:所有租戶資料表帶 dealer_id,由三道防線確保經銷商永遠只看到自己的資料。路徑式路由 brand.tw/{dealer} 由 Middleware 解析第一段路徑、載入租戶脈絡、注入後續所有查詢與結帳;保留字清單(products、story、franchise、stores、legal…)防止店名撞到主站路徑。
技術選型
- 應用
- Next.js + TypeScript,前台 SEO/RWD 與後台同一套語言,三名工程師可互相補位。
- 資料
- PostgreSQL(Prisma),單一資料庫;Redis 佇列處理拋單、開票、通知等非同步工作。
- 後台
- 採成熟管理框架(Refine 類),把設計預算留給對外頁面。
- 部署
- GCP 台灣區(asia-east1)Cloud Run + Cloud SQL:延遲最低、資料落地台灣、100 站規模月費一萬元內。
為什麼不用現成電商核心
- 本案的價值全在非標準邏輯:多特店金流、預付額度 ledger、雙軌發票、訂單歸屬、經銷商唯讀商品中心。WooCommerce、Medusa、Saleor、Odoo 沒有一個內建這些,硬改的成本高於自建,且每次升級都會打架。
- 商品目錄本身極簡(單一產品線、少量 SKU);現成電商的強項——大目錄、促銷引擎、多幣別——本案用不到。
- 台灣電商 SaaS(91APP、SHOPLINE、Cyberbiz)無法做「每店自有特店收款+中央額度扣抵+每店獨立開票」。
範圍與報價
下表即 Phase 1 固定總價的完整範圍,將原文寫入規格書 v2 作為驗收依據。人天以混合日費 NT$ 10,000 計,含工程、設計、PM、QA 之混合成本;金額未稅。
5.1 上線核心範圍 · 固定總價 NT$ 1,500,000
| # | 模組 | 本次交付內容 | 人天 | 金額(NT$) |
|---|---|---|---|---|
| 0 | 基礎建設 | 專案骨架、多租戶路由、三種角色帳號與權限(總部/經銷商/消費者)、CI/CD、staging+production 環境、資料模型(含層級預留欄位)、稽核日誌 | 12 | 120,000 |
| 1 | 品牌主站 | 首頁、產品線總覽、品牌故事、加盟招募(表單+資訊揭露文件下載)、全台經銷商列表、法務頁;RWD;SEO 基本盤(meta、sitemap、OG);內容由總部後台維護 | 9 | 90,000 |
| 2 | 經銷商子站 | 路徑式租戶、統一模板、商品列表/詳情、購物車、結帳(收件、發票資訊、載具)、經銷商自介頁;經銷商可編輯店名/頭像/自介/聯絡區塊 | 16 | 160,000 |
| 3 | 訂單歸屬引擎 | 訂單狀態機(待付款→已付款→已出貨→完成/取消),歸屬規則,主站不開放結帳 | 5 | 50,000 |
| 4 | 額度錢包 | 不可竄改 ledger;訂單 hold、出貨 capture、取消 release;餘額與可用額度顯示;門檻提醒(站內+Email);總部手動入帳與調整(首儲 50 萬以匯款入帳) | 10 | 100,000 |
| 5 | Dropship 出貨 | 訂單自動產生出貨單、揀貨清單、批次匯出(CSV/Excel)、批次匯入物流單號、狀態回寫、消費者 Email 通知 | 8 | 80,000 |
| 6 | 金流串接 | 綠界 × 多特店:憑證加密保管、依租戶建單、回呼分流驗簽、付款狀態同步、信用卡退款、付款紀錄查詢 | 10 | 100,000 |
| 7 | 電子發票雙軌 | (a) 經銷商→消費者 B2C:多帳號、載具/捐贈/統編、作廢、狀態同步;(b) 總部→經銷商 B2B:隨出貨自動開立、綁定 ledger capture、作廢;發票查詢 | 14 | 140,000 |
| 8 | 經銷商後台 | 訂單管理、額度餘額與流水、發票狀態、基本對帳匯出(CSV)、店面資料編輯 | 10 | 100,000 |
| 9 | 總部後台 | 經銷商生命週期(建立/開通/停權/金流與發票憑證設定)、額度總表與手動調整、商品與文案管理、中央倉簡易庫存、全平台訂單、出貨批次作業、招商表單名單 | 16 | 160,000 |
| 開發小計 | 110 | 1,100,000 | ||
| Q | 測試與上線 | 沙盒→正式切換測試、跨租戶隔離測試、上線部署;UAT 由業主執行,我方提供測試案例與驗收清單 | 15 | 150,000 |
| P | 專案管理 | 需求對照 v2、里程碑管理、驗收文件;固定每週一次會議、書面為準 | 10 | 100,000 |
| D | UI/UX 設計 | 品牌主站+子站模板完整設計(「連鎖集團感」為驗收重點);兩個後台採設計系統,不另出稿 | 15 | 150,000 |
| Phase 1 固定總價(未稅) | 150 | 1,500,000 | ||
5.2 上線後 30 天內補齊 · 另計
這些項目不影響首批經銷商開業,但會影響營運舒適度。我們建議上線後以變更單一次啟動,時程另訂。
| 項目 | 內容 | 人天 | 金額(NT$) |
|---|---|---|---|
| 線上補儲值 | 經銷商於後台以信用卡/ATM 付款給總部特店,自動入 ledger(上線初期以匯款+總部手動入帳) | 4–5 | 40,000–50,000 |
| 進階對帳報表 | 日/月結、依經銷商、發票對應、Excel 格式 | 4–5 | 40,000–50,000 |
| 折讓流程 | 出貨後部分退貨之發票折讓與額度回補(上線初期由總部於綠界後台操作) | 3 | 30,000 |
| 招商進度儀表板 | 名單漏斗、轉換率、待開通清單 | 3–4 | 30,000–40,000 |
| 經銷商總覽地圖 | 地區篩選、地圖顯示 | 2–3 | 20,000–30,000 |
| SEO 進階 | 結構化資料、效能優化、子站 SEO 策略 | 2–3 | 20,000–30,000 |
5.3 選配
| 項目 | 內容 | 人天 | 金額(NT$) |
|---|---|---|---|
| 綠界物流 API | 黑貓宅配+超商取貨(7-11/全家)一次串接,含電子地圖選店 | 10–14 | 100,000–140,000 |
| 新竹物流直接串接 | 託運單建立、單號回寫、狀態查詢 | 6–9 | 60,000–90,000 |
| 黑貓直接串接 | 不經綠界;同上 | 6–9 | 60,000–90,000 |
| LINE 通知 | LINE 官方帳號 Messaging API(LINE Notify 已於 2025 年 3 月停止服務)、經銷商綁定流程、補貨/出貨推播 | 6–10 | 60,000–100,000 |
| 經銷商自助開通精靈 | 經銷商自行上傳公司文件、填入金流/發票帳號、自動跑測試交易;解決 100 → 1,000 店的總部營運瓶頸,建議 Phase 2 | 12–16 | 120,000–160,000 |
| 模組 10 · 二級分銷 | 下層帳號與子站、下層訂單歸屬到上層、層間額度與對帳、兩個後台的層級視圖;範圍依律師定案調整 | 30–45 | 300,000–450,000 |
不含:第三方費用(綠界交易手續費、電子發票加值中心開通/年費/每張費、LINE 訊息費、網域、主機)、商品攝影與文案、法務與會計顧問。
時程、人力與里程碑
以 9/20 前簽約、10/15 UI 定稿、11/30 上線計,開發視窗約十週。後端(資料模型、多租戶骨架、金流與發票沙盒串接)在 UI 定稿前就開始,前端實作只需六週。關鍵路徑不在程式,在外部帳號:綠界特店審核約 5–10 個工作天、電子發票字軌約兩週,這段時間不在任何一方的鍵盤上。
人力配置
| 角色 | 投入 |
|---|---|
| 技術負責人/架構(全端) | 1 人,全程 |
| 全端工程師 | 2 人,全程 |
| UI/UX 設計 | 1 人,9 月中–10 月中全職,之後支援 |
| 專案經理 | 1 人,30% |
| 測試 | 1 人,10 月中起 50% |
里程碑與付款
| 里程碑 | 驗收內容 | 付款 |
|---|---|---|
| M1 簽約 | v2 定稿、資料模型與架構文件、UI 定稿 | 30% · 450,000 |
| M2 整合驗收 | 子站結帳+多特店金流+雙軌發票於沙盒通過;ledger 驗收 | 40% · 600,000 |
| M3 上線驗收 | 正式環境以真實經銷商跑完付款→出貨→雙軌開票→額度扣抵 | 30% · 450,000 |
上線後 30 天保固(修正缺陷,不含新需求),之後轉維運合約。
11/30 上線的成立前提
任一項未達成,目標日順延相同天數,不列違約金。這些前提多數在業主與 CP 手上,我們寫得具體,是為了讓每一方都知道自己的鍵盤上有什麼。
- 規格書 v2 於 9/20 前定稿並簽約,含第八節前三項之決定。
- 總部自身的綠界特店與電子發票帳號於 10/15 前開通,供正式環境測試。
- 至少一家首批經銷商於 11/5 前完成公司設立、綠界特店申請、電子發票字軌申請,作為正式環境驗收對象。
- 商品圖文、品牌素材、法務頁文案於 10/15 前交付。
- 二級分銷與稅務結構於 9 月定案,開發期間不變更。
- 業主於各里程碑五個工作天內完成驗收回覆。
擴容模型與維運
從 100 站到 1,000 站,軟體本身的增量成本是零——新增經銷商只是新增一筆資料。會隨站數成長的是三樣東西:主機規格(兩次小幅升級)、總部的開通人力、以及每家經銷商自己付給第三方的費用。
| 成本類別 | 每站增量 | 說明 |
|---|---|---|
| 軟體開發 | 0 | 多租戶架構下新增經銷商即新增一筆資料,無程式變更 |
| 主機 | 100 站 NT$ 6–15k/月 → 1,000 站 NT$ 15–30k/月 | 全平台每日不到 500 單;約 300 站與 1,000 站各升一階資料庫規格與背景工作機 |
| 總部開通作業 | 約 1–2 小時/店 | 建帳號、輸入金流與發票憑證、跑測試交易。委由我方代操約 NT$ 2–3k/店;建議 Phase 2 導入自助開通精靈,總部人力不隨站數線性成長 |
| 綠界特店 | 經銷商自行承擔 | 開通免費;信用卡手續費依綠界牌價按交易計 |
| 電子發票加值中心 | 經銷商自行承擔 | 每家公司一個帳號,依加值中心牌價之開通/年費+每張費;平台端無每站開發增量,但總部應將此費用納入招商說明 |
| 發票 API 呼叫量 | 隨訂單數,非隨站數 | 1,000 站約每月 1 萬張,技術上無壓力 |
上線後維運月費
| 項目 | 金額(未稅) | 內容 |
|---|---|---|
| 主機與基礎服務 | NT$ 6,000–15,000/月 | 台灣區雲端主機、託管資料庫、物件儲存、CDN、Email 服務、每日備份(100 站規模) |
| 維運包 | NT$ 35,000–60,000/月 | 監控與告警、每月資安修補與套件更新、備份演練、每月 8–12 小時功能調整、工作日回應 |
| 超時調整 | NT$ 1,500–2,000/小時 | 超出維運包時數之部分 |
| 第三方費用 | 依牌價 | 綠界、電子發票、LINE、網域、SSL,直接支付供應商 |
簽約前必須定案的三件事
這三項會改變系統設計,不是細節。每一項我們都給了預設做法——若 v2 沒有另行指定,我們就依預設做法實作並以此驗收。
模組 4 寫「訂單成立按批發價自動扣抵」,模組 7 寫「出貨時開立批發發票並扣抵額度」。兩者對經銷商的可用額度、對總部的發票金額,會給出不同的答案。
依營業人開立銷售憑證時限表,買賣業以發貨時為限,但「發貨前已收之貨款部分,應先行開立」。若 50 萬被認定為預收貨款而在收款時即開立發票,則隨出貨再開 B2B 批發發票會構成重複開票;若被認定為儲值或保證金性質則不同。這由業主會計師定案,答案決定 B2B 軌的整個設計。
消費者退款由經銷商特店退回?額度是否回補?雙軌發票作廢或折讓的條件與時點?運費誰負擔?這是電商系統中最常出錯、也最常在上線後被追加需求的部分。
其餘請於規格書 v2 一次補齊
以下項目影響細節設計與驗收條件;未指定者依括號內預設實作。
- 零售價是否由總部統一鎖定。技術上影響價格模型;法律上經銷商為獨立法人,總部強制統一零售價涉及公平交易法「限制轉售價格」議題,請律師一併確認。(預設:中央定價、經銷商不可改)
- 消費者身分與歸屬:訪客結帳或會員制?會員是否跨經銷商共用?在 A 店註冊的消費者到 B 店下單歸誰?是否有「消費者綁定經銷商」規則?(預設:訪客結帳+Email 識別,歸屬以下單子站為準)
- 付款方式:ATM 虛擬帳號、超商代碼、分期是否需要;非即時付款需額外處理待付款狀態與逾期取消。(預設:僅信用卡)
- 發票細節:B2C 載具種類、捐贈、統編;字軌由誰申請;首批經銷商是否已有公司登記。
- 物流:Phase 1 實際家數;超商取貨走綠界或藍新物流;運費規則與運費在批發價/額度中的計算方式。(預設:運費由消費者支付給經銷商,不進額度)
- 庫存與效期:缺貨時前台行為;保健品是否需批號與效期管理。(預設:缺貨隱藏購買鈕;不含效期管理)
- 經銷商開通流程:總部代建或自助;需上傳哪些文件;合約是否線上簽署。(預設:總部代建)
- 報表與會計整合:總部是否有既有 ERP/會計系統需對接匯出格式。
- 批發價模型:全體統一或依經銷商分級。(預設:統一)
- 主機與資料歸屬:雲端帳號由業主持有或我方代管;個資法下消費者資料的存取範圍。(預設:業主持有帳號、我方代管)
- 模組 10 的定義:下層是否有獨立額度錢包;下層訂單的發票主體。僅影響選配報價。
報價前提與交付物
報價前提
- 範圍以第 5.1 節為準並寫入規格書 v2;5.2、5.3 及 v2 以外之需求均以變更單另計。
- 單一金流商(綠界)、單一發票加值中心(綠界);改藍新或其他加值中心,模組 6/7 重估。
- 主站 Phase 1 不開放結帳;單層經銷商;物流半自動;繁體中文單語系;信用卡付款。
- 商品素材、文案、法務頁內容由業主提供並自負其責;本團隊不對商品宣稱內容負責。
- 額度 ledger 以系統流水為準;我方提供對帳工具,帳務核對責任在業主財務。
- UAT 由業主執行;我方提供測試案例與驗收清單。
- 本報價有效期 30 天;金額未稅。
交付物
- 完整原始碼與部署腳本,存放於業主指定之程式庫。
- 資料模型文件(含 ledger 帳務規則與層級預留說明)。
- 對外串接文件:金流、發票、出貨批次檔格式。
- 驗收測試案例與 UAT 清單,依里程碑分冊。
- 總部後台與經銷商後台操作手冊。
- 經銷商開通作業 SOP(含綠界特店與發票帳號申請指引,供招商使用)。
- 上線後 30 天保固。