Epic 1: 產品與作品集管理 (Product & Portfolio Management)
業務目標 (Business Goal)
建立一個靈活的商品管理系統,讓花店能夠輕鬆管理從標準化到完全客製化的所有商品類型,並有效利用視覺素材進行銷售與行銷,提升客戶購買體驗與成交率。
核心價值主張
- 統一商品目錄 - 集中管理所有商品類型(盆花、束花、高架、花籃、盒花)
- 彈性定價機制 - 支援標準價格、訂單層級調整、完全客製化報價
- 視覺化銷售 - 商品照片與作品集提升客戶購買意願
- 案例提案 - 利用過去作品進行客製化專案提案
成功指標 (Success Metrics)
| 指標 | 目標值 | 衡量方式 |
|---|---|---|
| 商品資料完整度 | > 90% | 含照片與描述的商品比例 |
| 商品搜尋成功率 | > 95% | 能成功找到商品的搜尋次數比例 |
| 訂單創建時商品選擇時間 | < 30 秒 | 從進入商品選擇到選定商品的平均時間 |
| 作品集使用率 | > 30% | 客製化專案提案中使用過去案例的比例 |
| 商品庫存準確率 | > 98% | 系統庫存與實際庫存的一致性 |
功能範疇 (Scope)
1. 商品類型 (Product Types)
系統支援以下標準化商品類型:
| 類型代碼 | 中文名稱 | 說明 | 定價方式 |
|---|---|---|---|
bouquet | 花束 | 切花花束類商品 | 固定參考價格 |
pot | 盆花 | 盆栽植物類商品 | 固定參考價格 |
stand | 高架花籃 | 開幕、喪禮等高架花籃 | 固定參考價格 |
basket | 花籃 | 一般花籃類商品 | 固定參考價格 |
box | 盒花 | 花盒、禮盒類商品 | 固定參考價格 |
gift | 禮品 | 其他禮品類商品 | 固定參考價格 |
custom | 客製化專案 | 會場佈置等完全客製化專案 | 報價制(無固定價格) |
2. 商品資料結構 (Product Data Structure)
標準化商品
-
基本資訊:
- 商品名稱(必填)
- 商品描述(選填)
- 商品類型(必填,下拉選單)
- SKU 編號(選填,可自動生成)
- 基礎價格(必填)
- 成本價格(選填,僅管理者可見)
-
庫存資訊:
- 庫存數量(預設 0)
- 低庫存警戒值(預設 5)
- 庫存單位(預設「個」)
-
狀態資訊:
- 是否上架(啟用/停用)
- 是否為熱門商品(用於首頁推薦)
- 是否為新品(用於標記新上架)
-
照片資訊:
- 主圖(必填,建議 800x800px 以上)
- 副圖(選填,最多 5 張)
客製化專案(會場佈置等)
-
基本資訊:
- 專案名稱(必填)
- 專案描述(選填)
- 專案類型(如:婚禮、開幕、活動)
-
無固定價格: 根據客戶需求報價
-
關聯案例: 可關聯過去的作品照片作為提案素材
3. 商品定價規則 (Pricing Rules)
基礎定價
- 參考價格: 標準化商品必須有基礎參考價格
- 成本追蹤: 可選擇記錄成本價格(用於利潤分析)
- 幣別: 預設新台幣(NT$)
訂單層級調整
- 加價項目: 訂單創建時可加價(如:加花材、升級包裝)
- 折扣調整: 可進行訂單層級的折扣(需記錄調整原因)
- 最終價格: 基礎價格 + 加價項目 - 折扣 = 最終價格
客製化專案報價
- 無固定價格: 客製化專案(如會場佈置)不設定基礎價格
- 報價單: 根據客戶需求另行報價
- 歷史參考: 可參考類似專案的歷史報價
4. 商品照片管理 (Product Photo Management)
照片規格
- 格式: JPEG、PNG、WebP
- 尺寸: 建議 800x800px 以上,最大 4096x4096px
- 大小: 單張最大 10MB
- 數量: 主圖 1 張(必填)+ 副圖最多 5 張
照片功能
- 上傳: 拖曳上傳或點擊選擇
- 排序: 拖曳調整照片順序
- 裁切: 支援基本裁切功能
- 刪除: 可刪除副圖(主圖需有替代才能刪除)
自動處理
- 縮圖生成: 自動生成列表用縮圖(200x200px)
- 壓縮: 自動壓縮為 Web 顯示用版本
- 格式轉換: 自動轉換為 WebP 格式以優化載入速度
5. 作品集管理 (Portfolio Management)
作品集用途
- 案例展示: 展示過去完成的作品
- 提案素材: 客製化專案提案時的參考素材
- 行銷素材: 官網、社群媒體使用
作品集內容
- 作品照片: 完成品照片(最多 10 張/作品)
- 作品描述: 說明文字
- 關聯訂單: 關聯至原始訂單(選填)
- 標籤分類: 可標記標籤(如:婚禮、開幕、母親節)
- 公開設定: 是否公開展示
水印功能
- 自動水印: 公開作品可自動添加店家 Logo 水印
- 水印位置: 右下角(可配置)
- 水印透明度: 30%(可配置)
6. 商品搜尋與過濾 (Product Search & Filtering)
搜尋條件
- 商品名稱(模糊搜尋)
- SKU 編號(精確搜尋)
- 商品描述(模糊搜尋)
過濾條件
- 商品類型: 花束/盆花/高架/花籃/盒花/禮品/客製化
- 上架狀態: 已上架/已下架
- 庫存狀態: 有庫存/低庫存/缺貨
- 價格區間: 最低價~最高價
- 特殊標記: 熱門商品/新品
排序選項
- 創建日期(最新/最舊)
- 價格(高→低/低→高)
- 名稱(A-Z/Z-A)
- 銷量(高→低)
User Stories 列表
核心功能 (P0 - 最高優先級)
-
- 新增商品
- 編輯商品資料
- 上架/下架商品
- 刪除商品
-
- 商品列表展示
- 搜尋商品
- 過濾商品
- 分頁導航
-
- 上傳商品照片
- 設定主圖
- 照片排序
- 刪除照片
進階功能 (P1 - 高優先級)
-
- 新增/編輯/刪除商品類型
- 自訂類型名稱
- 類型排序
-
- 庫存數量調整
- 低庫存警報
- 庫存歷史記錄
可選功能 (P2 - 中優先級)
-
- 新增作品
- 作品照片上傳
- 作品標籤管理
- 公開/私密設定
-
- 匯入 CSV/Excel
- 匯出商品列表
- 欄位對應設定
技術依賴 (Technical Dependencies)
| 依賴對象 | 依賴內容 | 影響 |
|---|---|---|
| Epic 5 (數位資產管理) | 商品照片儲存 | 照片上傳、CDN 分發 |
| Epic 2 (訂單管理) | 訂單關聯商品 | 訂單創建時選擇商品 |
| Epic 0 (系統配置) | 商品類型配置 | 自訂商品分類 |
多租戶考量 (Multi-Tenancy Considerations)
1. 數據隔離
- 所有商品資料必須與
tenantId綁定 - API 層級自動過濾(僅返回當前租戶的商品)
- SKU 編號系統採用租戶層級獨立編號
2. SKU 編號格式
{租戶代碼}-{類型代碼}-{流水號}
範例: ABC-BQT-000001 (花束)
範例: ABC-POT-000001 (盆花)
- 租戶代碼: 3-5 個字元(可在租戶設定中配置)
- 類型代碼: 3 個字元(BQT=花束, POT=盆花, STD=高架, BSK=花籃, BOX=盒花, GFT=禮品, CST=客製化)
- 流水號: 從 000001 開始
3. 跨租戶訪問保護
- 嘗試訪問其他租戶的商品返回
404 Not Found(避免資訊洩漏) - 商品照片 URL 包含
tenantId,非授權訪問返回 403
安全性考量 (Security Considerations)
1. 權限控制
| 操作 | 所需權限 | 說明 |
|---|---|---|
| 查看商品列表 | ROLE_STAFF 以上 | 所有內部用戶 |
| 新增商品 | ROLE_MANAGER 以上 | 管理者、店主 |
| 編輯商品 | ROLE_MANAGER 以上 | 管理者、店主 |
| 刪除商品 | ROLE_OWNER 以上 | 僅店主 |
| 上架/下架 | ROLE_MANAGER 以上 | 管理者、店主 |
| 查看成本價 | ROLE_MANAGER 以上 | 管理者、店主 |
| 匯入/匯出 | ROLE_MANAGER 以上 | 管理者、店主 |
2. 照片安全
- 照片上傳前驗證 MIME 類型(防止偽造副檔名)
- 檔案大小限制(最大 10MB)
- 惡意檔案掃描
3. 審計日誌
所有關鍵操作都需記錄審計日誌:
- 商品創建、修改、刪除
- 價格變更
- 庫存調整
- 上架/下架狀態變更
非功能性需求 (Non-Functional Requirements)
效能需求
- 商品列表載入時間 < 1 秒(20 筆/頁)
- 商品搜尋響應時間 < 500ms
- 照片上傳完成時間 < 5 秒(5MB 以內)
- 支援單租戶 5,000 筆商品的搜尋與過濾
可用性需求
- 商品搜尋支援即時搜尋(防抖 300ms)
- 照片上傳支援拖曳操作
- 照片預覽(上傳前預覽)
- 響應式設計(桌面/平板/手機)
擴展性需求
- 支援單租戶 20,000 筆商品
- 支援單商品 6 張照片(1 主圖 + 5 副圖)
- 支援單租戶 10GB 商品照片儲存
資料模型 (Data Model)
Product 表結構
interface Product {
id: string; // UUID
tenantId: string; // 租戶 ID
sku: string; // SKU 編號
name: string; // 商品名稱
description?: string; // 商品描述
category: ProductCategory; // 商品類型
basePrice: number; // 基礎價格
costPrice?: number; // 成本價格(選填)
stock: number; // 庫存數量
lowStockThreshold: number; // 低庫存警戒值
stockUnit: string; // 庫存單位
status: 'active' | 'inactive'; // 上架狀態
isFeatured: boolean; // 是否熱門商品
isNew: boolean; // 是否新品
mainImageUrl: string; // 主圖 URL
galleryImageUrls: string[]; // 副圖 URL 陣列
createdAt: Date; // 創建時間
updatedAt: Date; // 更新時間
createdBy: string; // 創建者 ID
updatedBy: string; // 更新者 ID
}
type ProductCategory =
| 'bouquet' // 花束
| 'pot' // 盆花
| 'stand' // 高架花籃
| 'basket' // 花籃
| 'box' // 盒花
| 'gift' // 禮品
| 'custom'; // 客製化專案
Portfolio 表結構
interface Portfolio {
id: string; // UUID
tenantId: string; // 租戶 ID
title: string; // 作品標題
description?: string; // 作品描述
orderId?: string; // 關聯訂單 ID(選填)
imageUrls: string[]; // 作品照片 URL 陣列
tags: string[]; // 標籤
isPublic: boolean; // 是否公開
createdAt: Date; // 創建時間
updatedAt: Date; // 更新時間
createdBy: string; // 創建者 ID
}
參考資料 (References)
最後更新: 2025-12-03 撰寫者: AI Assistant