每個情境都真的走一遍完整下單流程(選麵包 → 籃子 → 填資料 → 取貨 → 付款 → 送出),逐步截圖,並比對前台顯示 × 後端實算 × 人工試算三方金額。
涵蓋 6 種取貨 × 5 種付款 × 會員/非會員 × 切片各態 × 選物 × 免運邊界。金額欄=後端 dry 實算,與前台顯示、人工試算三方一致。
| 情境 | 取貨 · 付款 · 身份 | 品項與重點 | 總計 | 結果 |
|---|---|---|---|---|
| C1 | 竹北自取 現場付款 · 非會員 · 不切 |
薩爾道夫整條 $320、香草肉桂捲 $135 肉桂捲驗證「不可切」不出現切片選項;抹醬 $150→$135 搭麵包折 |
$590 | 通過 |
| C2 | 木柵自取 綠界信用卡 · 會員 · 全切 |
黑麥整條 $280→$252、拖鞋 $90→$81 會員省 $37;切片黑麥+$10、拖鞋+$5(切片不打會員折) |
$348 | 通過 |
| C3 | 恬野書自取 綠界 ATM · 非會員 · 半條切 |
特製仿窯烤重黑麥半條 $210、燕麥片 $160 燕麥片驗證「原價不折」——前後端都維持 $160,未被搭麵包折 |
$375 | 通過 |
| C4 | 警衛室自取 綠界信用卡 · 會員 · 整條切 |
仿窯烤重黑麥整條 $300→$270 驗證「現場付款」正確不出現(僅竹北提供);整條切+$10 |
$280 | 通過 |
| C5 | 台北機車配送 綠界信用卡 · 非會員 · 免運邊界 |
薩爾道夫+布里歐 三段門檻全對:麵包<$500 不可選 → $680 收運費 $80 → 滿 $800 免運 |
$760→$1000 | 通過 |
| C6 | 冷凍宅配 貨到付款 · 非會員 · 預設切 |
布里歐吐司整條 $360 冷凍預設切且免加價;運費 $230、代收 $30;後端地址落欄 col70/71/73 正確 |
$620 | 通過 |
| C7 | 冷凍宅配 綠界信用卡 · 會員 · 過免運門檻 |
6 款大單(原價 $1,810) 達會員 $1,800 → 免運;會員折扣前後端完全一致,無四捨五入誤差 |
$1,630 | 通過 |
現場/貨到付款不經金流、以真流程呈現;信用卡/ATM 屬金流導回後的畫面,以程式內建示範資料呈現(非真交易)。
「訂單成立,取貨時付款」· 綠勾 · 竹北自取資訊 · 取貨時現場付。
「訂單成立,宅配貨到付款」· 綠勾 · 提示準備現金交黑貓(含代收)。
「付款完成,訂單成立!」· 綠勾 · 付款完成後才出現。
「還差一步!請完成轉帳」· 橘沙漏、不打勾 · 顯示銀行代碼/虛擬帳號/金額/期限。符合「成立=付款到位」原則。
| 項目 | 測法 | 結果 | 判定 |
|---|---|---|---|
| 電話 886 格式 | 輸入 886 開頭手機 | 前台正確換算成 09 開頭並辨識會員 | 正確 |
| 電話 9 碼(漏前導 0) | 輸入少一個 0 的手機 | 前台顯示原價、後端卻給 9 折 → 顯示≠實收 | 見 F1 |
| LINE Pay | 檢視付款選項 | 顯示「即將開放」灰色、不可點 | 正確 |
| 反機器人 honeypot | 檢查隱藏欄位 | 欄位存在、後端有接 | 正確 |
客人若把手機打成 9 碼(漏掉開頭的 0,例如 975623175),前台會顯示非會員原價,但送出後後端仍判定為會員、只收 9 折。顯示 $280、實收 $252。
影響:低——客人反而少付、且要「剛好漏 0」才會遇到(欄位提示是 09xx)。但顯示與實收不一致該收。
修法(前台,我來):把前台電話正規化對齊後端(9 碼開頭 9 自動補 0),顯示與實收就一致。等你點頭我修。
目前選台北機車配送,填任何地址(含非台北)都不會被擋,只擋「麵包未滿 $500」。範圍/路程驗證的程式已寫好但放在 drafts/、未部署。
要上線需你出手:把 Google Maps 金鑰放進 Cloudflare + 開 Routes API + 同意客人地址送 Google 算距離。這是你先前選「先寫好備著、不上線」的狀態。
前台目前只有訂購人一組姓名/電話,冷凍宅配的收件人=訂購人本人。後端欄位(收件人姓名/電話)已備好、對得上,只差前台加欄位。
去向:訂單 v9 daily-log 已列為「排 LINE 登入之後」的待辦(送禮/代訂情境才需要)。不擋一般開賣。
#3 橄欖油風味、#5 小布里歐餐包、#7 猶太安息日 只出現在「下一批(僅預覽)」、目前點不了、不能下單,故本輪未測。等它們輪到本批時我再補測一輪。