系統地圖 老闆報告 Spec · #W8 POS 硬體接口
SPEC · #W8 · 需老闆採購 + 商業決策才能動

#W8 — POS 硬體接口(出單機 / 收銀機 / 廚房單)

老闆 wish:「要有管道讓用戶可以接出單機、收銀機等等常用的 POS 硬體設備」。完整 5 Phase Plan,需老闆採購硬體 + 回 5 問題才能動 code。

📍 老闆原話

要有管道讓用戶可以接出單機、收銀機等等常用的 POS 硬體設備

🔴 為什麼這 wish 不能睡覺時段完成

  1. 要採購硬體驗證:出單機 / 收銀機 / cash drawer / scanner / customer display 都需實體採購測試
  2. iOS 平台限制:USB / 並列埠 不可直接,只能 BLE / Network / MFi accessory
  3. 驅動程式:每家品牌 SDK 不同(EPSON ePOS-Print SDK / Star StarIO / Bixolon / 統盟)
  4. 法規:在台灣 POS 出統一發票需先進 ERP / 加值中心 串接
  5. 生態多元:沒有 single 標準,要先決定 supported hardware list

📊 現狀 audit

POS app 目前沒有任何硬體 integration:

🛠 Phase Plan

Phase 0 · 商業決策(老闆拍板,不寫 code)1-3 天
  1. 主要客戶用什麼硬體?台灣餐廳常用:
    • 熱感應出單機:EPSON TM-m30III(BLE/Ethernet)、Star mC-Print3、SP742 等
    • 收銀機 cash drawer:接出單機的 RJ11/RJ12 通過 print command 開啟
    • 廚房單機:同熱感應,Ethernet 接 router
    • 發票機:藍新 / ECPay / 統一 / 凱基 加值中心 → 走 cloud API 不需硬體
  2. 是否支援藍芽 / WiFi / Ethernet 混用?
  3. 預算範圍?(EPSON TM-m30 ~ NT$10,000 一台)
  4. 建議優先採購 1 台 EPSON TM-m30III BLE 版作開發機
Phase 1 · Receipt + Cash Drawer(MVP)2-3 週

範圍:結帳完成 → 印 receipt + 開錢箱

Tech stack:

新檔案:

Apps/ChefsMatePOS/Hardware/
  ReceiptPrinter.swift      ← 抽象介面
  EpsonPrinter.swift        ← EPSON 實作
  ESCPOSBuilder.swift       ← 命令組裝 (cash drawer kick)
Features/Settings/
  PrinterSettingsView.swift ← BLE 搜尋 / 配對 / 測試列印

新 DB:

CREATE TABLE printer_configs (
  id UUID PK, restaurant_id UUID,
  name TEXT, kind TEXT ('receipt' | 'kitchen'),
  protocol TEXT ('ble' | 'ethernet'),
  device_identifier TEXT,  -- BLE peripheral UUID / IP
  paper_width INT,  -- 58 or 80mm
  enabled BOOLEAN
);

Integration points:

Phase 2 · Kitchen Receipt(廚房單)1-2 週

範圍:KDS 收到新訂單 → 自動印一張到指定廚房印表機

邏輯:

Phase 3 · Barcode Scanner(會員卡 / 商品碼)1 週

範圍:接 USB / BLE scanner,結帳輸入會員 ID / SKU

Tech:HID keyboard wedge mode 不需 SDK,直接接到 TextField focus 用 keystroke 模擬

Phase 4 · Customer Display(2 副螢幕顯示金額)2 週

範圍:結帳時讓客人看金額 + 找零

Tech:USB-C HDMI 接 secondary display,Swift 用 UIScreen.screens API

Phase 5 · Receipt printer over LAN(Ethernet)1 週

範圍:同店多印表機(廚房 + 結帳 + 飲料吧)走 LAN

Tech:TCP socket port 9100,raw ESC/POS command

⏱ 時間估計

Phase時間老闆要先做的
0 商業決策0(老闆 1 天)拍板品牌 + 採購機器
1 Receipt + Cash2-3 週主要 MVP
2 Kitchen1-2 週廚房體驗
3 Scanner1 週加分
4 Customer display2 週加分
5 LAN multi printer1 週scale 用

總計: ~ 2 個月認真做(全職)

❓ 給老闆的問題(回覆後我才動)

Q1. 首批支援哪家?
EPSON TM-m30III 推薦(BLE + Ethernet 都支援,SDK 穩)。預算 1 台 NT$10K
Q2. 要支援錢箱嗎?
通常掛印表機後面,結帳自動開
Q3. 廚房單?
餐廳如果有獨立廚房值得做
Q4. 發票呢?
藍新雲端發票 vs 串實體發票機
Q5. scanner / customer display 第一輪不做可嗎?
第一輪聚焦 Phase 1-2 應該夠用

⚠️ 風險

2026-05-17 #W8 spec · 等老闆 confirm 採購 + 5 問題才動 code