# 鐵刻運動｜23–28 連續專案 brief

## 目標與範圍

- 訪客：想在家建立訓練空間的消費者。
- 主要任務：瀏覽商品 → 加入購物車 → 填寫訂單 → 查看 server-authoritative 結果。
- 次要任務：送出聯絡資料並取得可觀察回應。
- 視覺：黃色與鐵灰為主，紅色只用於特價、錯誤與少量提示。

## 頁面

| 頁面 | 檔案 | 責任 |
| --- | --- | --- |
| 首頁 | index.html | 品牌、精選商品與商品入口 |
| 商品 | products.html | 顯示名稱、圖片、售價、特價與 active 商品 |
| 購物車 | cart.html | localStorage 加減、刪除與前端估算 |
| 結帳 | checkout.html | 購買人、性別、電話、地址、信箱與商品數量 |
| 訂單結果 | order-success.html | 顯示後端回傳的編號、金額與狀態 |
| 聯絡 | contact.html | 姓名、性別、電話、信箱與內容 |

## 資料模型

- Product：productId、name、image、price、salePrice、active。
- Order：orderNo、buyer、gender、phone、address、email、subtotal、shipping、total、status、items。
- Contact：contactNo、name、gender、phone、email、message、status。

## 23–28 累積路線

1. L23：planning-only；只完成本 brief、預覽與 evidence，不建立商店功能。
2. L24：建立語意 shell、首頁與商品入口。
3. L25：只用 local mock 完成商品、購物車、checkout 與聯絡；不發網路請求、不寫外部資料。
4. L26：加入 GAS Web App 的 listProducts／createOrder／createContact GET/POST 契約。
5. L27：加入 Products／Orders／Contacts schema、server-authoritative totals、submissionId 去重及 idle/loading/success/error/timeout。
6. L28：以同一份 canonical descriptors 產生 Solution 與 dist/project/e-commerce，完成本機 release smoke；不宣稱已部署。

## 本階段

- Stage：starter
- TODO：逐欄補上訪客任務、資料欄位與每章驗收證據。
