跳至主要内容

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 - 中優先級)


技術依賴 (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