Page __PAGENO__

🧮 New SKU Safety Stock Calculator
新產品安全(補貨)庫存計算器 使用說明書

版本 v1.4 | 更新日期:2026年2月11日

📋 目錄

A開發者筆記(Developer Notes)

本段為開發者與維護者快速參考,列出目前前端程式中的關鍵變數、函式與 UI id,方便對照與修改。

核心資料與函式

重要 UI 元素 (id)

其他說明

1程式簡介

1.1 什麼是 Safety Stock 計算器?

Safety Stock(安全庫存)計算器是一個專為零售業設計的網頁工具, 幫助您根據店鋪的不同特性(區域、舖類、貨場面積)來計算每間店鋪所需的 安全庫存數量。

1.2 主要功能一覽

功能 說明
🏪 店鋪管理 支援無限數量的店鋪,可按多種條件篩選
📊 安全庫存計算 根據對照表或權重自動計算每店所需庫存
⚙️ 權重計算 支援自訂權重參數,快速產生計算矩陣
🎨 主題切換 多種配色主題可選擇
📥 資料匯出 支援 CSV、Excel、JSON 格式匯出
💾 本地儲存 瀏覽器自動保存設定,離線可用
👤 OM 管理 可按營運經理分組檢視和管理店鋪

1.3 程式架構

New SKU Safety Stock Calculator/
├── index.html      # 主頁面與 UI 骨架
├── styles.css      # 樣式表(支援多種主題)
├── app.js          # 應用程式邏輯
├── config.js       # 業務資料與參數配置
└── stores-template.csv  # 店鋪批量匯入模板
💡 小提示:這是一個純前端應用程式,無需後端伺服器, 所有計算都在您的瀏覽器中完成,資料安全無虞。

2系統需求與安裝

2.1 系統需求

項目 最低需求
瀏覽器 Chrome 60+ / Firefox 60+ / Safari 12+ / Edge 79+
網路 首次載入需要網路(用於 SheetJS 庫)
硬碟空間 約 500 KB

2.2 安裝方式

方法一:直接開啟(最簡單)

# Windows
在檔案總管中找到 index.html,雙擊用瀏覽器開啟

# macOS
open index.html

# Linux
xdg-open index.html

方法二:使用本地伺服器(推薦)

# 使用 Python(需安裝 Python 3)
cd /path/to/calculator
python -m http.server 8000

# 使用 Node.js(需安裝 Node.js)
cd /path/to/calculator
npx http-server -p 8000

# 使用 PHP
cd /path/to/calculator
php -S localhost:8000
🌐 開啟網址:http://localhost:8000
⚠️ 注意:使用本地伺服器可獲得最佳體驗, 避免瀏覽器的跨域安全限制。

3介面導覽

3.1 主介面結構

📸 主介面截圖(結構示意圖)
🧮 New SKU Safety (Replenishment) Stock Calculator - 新產品安全(補貨)庫存計算器
📋 Safety Stock 對照表
🇭🇰 香港 (HK)
Class\Size XL L M S XS
A級(遊客)1715131210
A級(混合)1715131210
A級(本地)1715131210
🇲🇴 澳門 (MO)
Class\Size XL L M S XS
A級(遊客)2725161312
A級(混合)2725161312
A級(本地)2725161312
編輯對照表 保存 套用到選擇店鋪
📍 選擇店鋪
全選 取消全選 反向選擇 取消篩選 顯示 84 間 / 已選 0 間
按區域: 🇭🇰 HK 🇲🇴 MO
按舖類: A級 B級 C級 D級
按客源: T M L
按組別: HA HB HC HD
特別店鋪: HA40 HB87 HB91
按OM: Candy Eva Hippo Ivy Queenie Violet Windy
📊 計算結果
🔢 計算 Safety Stock 📥 匯出 CSV 📊 匯出 Excel 📊 匯出 Excel (含公式) 💾 匯出配置 🖨️ 打印
HK/MO 舖類 面積 客源 代碼 店數 SS 小計 Carry
🇭🇰 香港AXLTHKAXL51785Y
🇭🇰 香港ALMHKAL1215180Y
🇭🇰 香港AMLHKAM813104Y
TOTAL:97SS:856
分頁說明:上方提供「🧮 計算器」與「📊 快速報表」兩個分頁,可依需求切換操作模式。

3.2 店鋪類型代碼說明

店鋪類型代碼由三部分組成:區域 + 舖類 + 面積,客源類型 (Type) 會以獨立欄位顯示。

代碼 區域 舖類 貨場面積 客源類型 範例店鋪
HKAXL 🇭🇰 香港 A 級 XL(特大) 遊客區 (T) 銅鑼灣旗艦店
HKAL 🇭🇰 香港 A 級 L(大) 混合型 (M) 中環店
HKAM 🇭🇰 香港 A 級 M(中) 本地型 (L) 旺角店
MOAD 🇲🇴 澳門 A 級 D 遊客區 (T) 澳門半島店

3.3 店鋪等級說明

等級 說明 權重預設值
A 級 優先級最高(核心店鋪、高銷售量) 3
B 級 優先級較高 2
C 級 優先級中等 1.5
D 級 優先級最低 1.5

3.4 貨場面積說明

代碼 說明 面積範圍 權重預設值
XL 超大型 >500㎡ 4
L 大型 200-500㎡ 3
M 中型 100-200㎡ 2.5
S 小型 50-100㎡ 2
XS 超小型 <50㎡ 1.5

3.5 客源類型 (Type) 說明

代碼 名稱 說明 權重預設值
T 遊客區 主要服務遊客客源 1.2
M 混合型 遊客與本地客源混合 1.0
L 本地型 主要服務本地客源 0.9

4基本操作流程

4.1 快速開始指南

系統提供兩種操作模式:

步驟 1
選擇分頁
步驟 2
設定對照表/權重
步驟 3
選擇店鋪
步驟 4
計算/匯出
計算模式:
  • 模式 1:級別 / 類別 / 面積(Class + Type + Size)
  • 模式 2:級別 / 面積(Type 固定為 M)
  • 模式 3:級別 / 類別(Size 固定為 M)

4.2 選擇店鋪

方法一:手動勾選

  1. 在店鋪列表中找到您要選擇的店鋪
  2. 點擊店鋪名稱前面的核取方塊
  3. 已選擇的店鋪會顯示為藍色背景

方法二:使用快捷按鈕

按鈕 功能
全選 選擇所有顯示的店鋪
取消全選 取消選擇所有店鋪
反向選擇 反轉目前的選擇狀態
取消篩選 清除所有篩選條件

方法三:使用篩選器

您可以結合多個篩選條件來精準選擇店鋪:

開始篩選
選擇篩選條件
是否選擇區域?
🇭🇰 HK / 🇲🇴 MO
是否選擇舖類?
顯示符合條件的店鋪
📝 篩選範例

範例 1:選擇所有香港 A 級店鋪

→ 按區域:🇭🇰 HK

→ 按舖類:A級

✓ 結果:顯示所有香港 A 級店鋪

範例 2:選擇特定 OM 負責的店鋪

→ 按營運經理:Candy

✓ 右側面板顯示 Candy 負責的所有店鋪

4.3 調整 Safety Stock 參數

方式一:直接編輯對照表

  1. 點擊 編輯對照表 按鈕
  2. 點擊要修改的儲存格(表格內容會依計算模式變化)
  3. 輸入新數值
  4. 點擊 保存(僅保存到對照表草稿)
  5. 點擊 套用到選擇店鋪(才會更新店鋪 Safety Stock)
提示:
  • 模式 2:對照表以「級別/面積」為主,Type 固定為 M。
  • 模式 3:對照表以「級別/類別」為主,Size 固定為 M。

方式二:使用權重計算

  1. 展開 ⚙️ 權重快速設定
  2. 調整 Class / Size / Type 權重與基礎值、區域係數
  3. (可選)輸入銷售目標與天數,系統自動計算目標總 Safety
  4. 點擊 👁️ 預覽結果
  5. 點擊 🚀 套用權重計算 更新對照表
  6. 最後點擊 套用到選擇店鋪 套用到店鋪

4.4 執行計算

  1. 確認已選擇至少一間店鋪
  2. 點擊 🔢 計算 Safety Stock
  3. 系統會顯示計算結果(可直接點擊彙總表中的 Safety Stock 進行微調)

4.5 查看結果

計算完成後,結果區域會顯示三個表格:

📊 按店鋪類型彙總表

欄位 說明
HK/MO區域
舖類A/B/C/D 級別
貨場面積XL/L/M/S/XS
客源T(遊客) / M(混合) / L(本地)
類型代碼店鋪類型代碼
店鋪數量該類型的店鋪數量
Safety Stock每間店鋪的安全庫存量
ALL SHOP QTY該類型所有店鋪的總庫存量
CarryY = 需要備貨 / FALSE = 不需要備貨

👤 按營運經理 (OM) 彙總表

欄位 說明
營運經理OM 姓名
區域分佈香港/澳門店鋪數量
店鋪數量該 OM 負責的店鋪數量
平均 SS平均 Safety Stock
SS 總計該 OM 負責店鋪的 Safety Stock 總和
佔比佔整體的比例
Carry需要備貨的店鋪數量

📋 店鋪詳細清單

顯示所有選擇店鋪的詳細資料(含客源 Type、OM、Carry)。

4.6 快速報表(Quick Report)

  1. 切換到 📊 快速報表 分頁
  2. 使用上方篩選(區域 / OM)快速縮小範圍
  3. 勾選要匯出的店鋪(可使用全選/取消全選)
  4. 下方會即時顯示統計與彙總表
  5. 點擊 📊 匯出 Excel(只會匯出目前可見且已勾選的店鋪)

5進階功能

5.1 個別店鋪編輯

您可以對單一店鋪的 Safety Stock 值進行獨立編輯:

📝 編輯步驟

1. 在店鋪列表中找到目標店鋪

2. 點擊 Safety Stock 欄位

3. 直接輸入新數值

4. 按 Enter 確認,或點擊其他位置自動保存

💡 小提示:個別店鋪的自訂值會覆蓋對照表的預設值。

5.2 彙總表即時調整

在「按店舖類型彙總」表格中,點擊 Safety Stock 欄位即可快速修改該類型數值,系統會即時更新總計。

5.3 重設自訂值

若已對個別店鋪做過編輯,可使用 🔄 重設自訂值 來恢復對照表的預設值(只會重設已選擇的店鋪)。

5.4 主題切換

程式支援多種配色主題,點擊右上角的 🎨 按鈕選擇:

💄 莎莎粉(預設) 🏢 企業標準 🌙 深色模式 🌅 暖色調 👁️ 高對比度 💜 優雅紫 ◻️ 極簡白

6權重計算系統

6.1 什麼是權重計算?

權重計算系統讓您可以透過調整參數,自動產生符合業務需求的 Safety Stock 對照表, 而不需要手動輸入每個數值。

6.2 計算公式

Safety Stock 計算公式
SS = 基礎值 + (Class權重 × Size權重 × Type權重 × 區域係數)
模式差異:
  • 模式 2:Type 固定為 M(不參與計算)
  • 模式 3:Size 固定為 M(不參與計算)
公式說明:
  • 基礎值:所有店鋪的 Safety Stock 基礎數值(預設 2)
  • Class權重:根據舖類級別(A/B/C/D)設定的權重係數
  • Size權重:根據貨場面積(XL/L/M/S/XS)設定的權重係數
  • Type權重:根據客源類型(T/M/L)設定的權重係數
  • 區域係數:香港(HK)通常為 1.0,澳門(MO)通常較高(如 1.33)
  • 特例:當區域係數為 0 時,該區域 Safety Stock 直接為 0

6.3 權重參數說明

Class 權重(A:B:C:D)

等級 說明 預設值
A 級核心店鋪3
B 級高優先級2
C 級中優先級1.5
D 級低優先級1.5

Size 權重(XL:L:M:S:XS)

面積 說明 預設值
XL超大型4
L大型3
M中型2.5
S小型2
XS超小型1.5

Type 權重(T:M:L)

類型 說明 預設值
T遊客區1.2
M混合型1.0
L本地型0.9

區域係數

區域 說明 預設值
HK香港1.0
MO澳門1.33

6.4 快速模板

系統提供多種預設模板:

模板名稱 說明 適用場景
預設權重標準配置一般業務需求
平衡權重中等權重差異追求平衡的策略
保守型較高的權重值謹慎管理,降低缺貨風險
積極型較低的權重值降低成本,減少庫存

6.5 使用權重計算的步驟

點擊權重快速設定
調整權重參數
預覽結果
套用計算
  1. 點擊 ⚙️ 權重快速設定 展開面板
  2. 調整各項權重參數
  3. (可選)選擇快速模板
  4. 點擊 👁️ 預覽結果 查看計算結果
  5. 確認後點擊 🚀 套用權重計算
  6. 點擊 套用到選擇店鋪 應用到店鋪

6.6 計算範例

✅ 範例 1:正常計算
條件: A級店鋪 (Class權重=3) + 大型貨場 (Size權重=3) + 遊客區 (Type權重=1.2) + 澳門 (區域係數=1.33)
計算: 4 + (3 × 3 × 1.2 × 1.33) = 4 + 14.36 ≈ 18
Safety Stock = 18
⚠️ 範例 2:區域係數為 0
條件: B級店鋪 (Class權重=2) + 中型貨場 (Size權重=2.5) + 混合型 (Type權重=1.0) + 某區域 (區域係數=0)
計算: 區域係數為 0 → Safety Stock 直接為 0
Safety Stock = 0
⚠️ 注意:當區域係數為 0 時,表示該區域不需要庫存。

6.7 目標總量調整

如果您有特定的 Safety Stock 總量目標:

  1. 目標總 Safety 輸入目標值(例如:1200)
  2. 系統會自動根據店鋪數量和權重比例分配
  3. 點擊 預覽結果 查看分配結果

6.8 銷售目標計算功能

銷售目標計算功能讓您可以根據預期的銷售數量,自動計算所需的 Safety Stock 總量。 這對於新產品上市或規劃促銷活動時特別有用。

6.8.1 功能概述

元素 說明
📊 銷售目標數量 輸入預期的月銷售數量(例如:36,000 件)
📅 Safety Stock Days 調整保障的庫存天數(1-30 天)
🎯 目標總 Safety Stock 自動計算的 Safety Stock 目標值(只讀)

6.8.2 計算公式

銷售目標驅動的 Safety Stock 計算公式
目標總 Safety Stock = 銷售目標數量 ÷ 30 × Safety Stock Days

6.8.3 使用步驟

  1. 展開 ⚙️ 權重快速設定 面板
  2. 銷售目標數量 輸入框中輸入月銷售目標(例如:36000)
  3. 拖動 Safety Stock Days 滑塊調整庫存天數(預設 7 天)
  4. 系統會自動計算目標總 Safety Stock
  5. 點擊 👁️ 預覽結果 查看計算結果
  6. 確認後點擊 🚀 套用權重計算
  7. 點擊 套用到選擇店鋪 套用到店鋪

6.8.4 介面示意圖

📸 銷售目標計算區域示意圖
📈 目標總量設定(銷售目標模式)
件 / 月
7 天
⚡ 自動計算
📝 計算說明: 36,000 ÷ 30 × 7 = 8,400

6.8.5 計算範例

範例 銷售目標 Safety Stock Days 計算過程 目標總 Safety Stock
標準情況 36,000 件 7 天 36,000 ÷ 30 × 7 8,400
增加保護期間 36,000 件 14 天 36,000 ÷ 30 × 14 16,800
減少保護期間 36,000 件 3 天 36,000 ÷ 30 × 3 3,600
手動模式 (未填) (不影響) 使用者手動輸入 1,200(手動)
💡 模式切換說明:
  • 銷售目標模式:輸入銷售目標後,目標總 Safety 輸入框變為只讀(灰色背景),值自動計算
  • 手動模式:不輸入銷售目標時,目標總 Safety 輸入框可手動編輯
  • 混合模式:可先使用自動計算,再手動調整最終值

6.8.6 與權重計算的整合

當您點擊 🚀 套用權重計算 時,系統會:

  1. 讀取已計算或手動輸入的「目標總 Safety Stock」
  2. 根據各類型店鋪的權重比例,自動分配庫存到對照表
  3. 使用 scaleMatrixToTarget() 函數將對照表縮放至目標值
  4. 完成後請點擊 套用到選擇店鋪 以更新店鋪 Safety Stock
📝 整合計算範例

情境:月銷售目標 36,000 件,需要保護 7 天

目標總 Safety Stock = 36,000 ÷ 30 × 7 = 8,400

→ 系統根據店鋪權重分配:

店鋪類型 權重比例 分配庫存
HK A級 XL25%2,100
HK A級 L20%1,680
HK A級 M15%1,260
其他類型40%3,360

6.8.7 資料持久化

銷售目標計算的參數會自動保存在瀏覽器中:

儲存位置:系統會將銷售目標相關設定寫入 localStorage 的 safetyStockCalculatorV2weightConfig 中,包含 salesTargetsafetyStockDaystargetTotal
💡 小提示:刷新頁面後,您的設定會自動恢復,無需重新輸入。

7匯入與匯出

7.1 匯出計算結果

匯出 CSV

  1. 完成計算後,點擊 📥 匯出 CSV
  2. 檔案會自動下載到您的電腦
  3. 可用 Excel 或其他試算表軟體打開

匯出 Excel

  1. 點擊 📊 匯出 Excel
  2. 會產生包含多個工作表的 Excel 檔案:
工作表名稱 內容
店鋪詳細清單所有店鋪的詳細資料
彙總表按類型彙總的計算結果
OM彙總按營運經理分組的統計

匯出 Excel(含公式)

  1. 點擊 📊 匯出 Excel (含公式)
  2. 會產生可編輯的對照表工作表,並用公式連動明細與彙總

打印

  1. 點擊 🖨️ 打印
  2. 會以新視窗開啟列印版面,可輸出為 PDF

快速報表匯出 Excel

  1. 切換到 📊 快速報表 分頁
  2. 勾選要匯出的店鋪後,點擊 📊 匯出 Excel
  3. 會產生「店鋪詳細清單 / 類型彙總 / OM彙總 / 對照表」四個工作表

匯出配置(JSON)

  1. 點擊 💾 匯出配置
  2. 會保存目前的設定:
備註:匯出配置不包含權重設定與個別店鋪的自訂值。

7.2 匯入配置

  1. 點擊 📤 匯入配置
  2. 選擇之前導出的 .json 檔案
  3. 系統會自動載入所有設定
提示:匯入配置只會還原「對照表自訂值、已選店鋪、店鋪名單」。若需要權重設定,請在權重面板中重新調整。

7.3 匯出格式說明

CSV 格式範例:

店鋪詳細清單
生成日期: 2026/02/08 15:30:00

HK/MO,代號,店鋪,類型代碼,舖類,貨場面積,Safety Stock,Carry
HK,HA01,銅鑼灣一號,HKAL,A,L,6,Y
HK,HA02,銅鑼灣二號,HKAM,A,M,5,Y
MO,MA01,澳門廣場,MOBM,B,M,7,Y

8常見問題

Q1:為什麼看不到計算結果?

可能原因:

Q2:如何重置為預設值?

  1. 點擊 編輯對照表
  2. 點擊 重置為預設
  3. 確認重置操作

Q3:資料會遺失嗎?

情況 結果
✅ 正常關閉瀏覽器 資料保存在 localStorage
✅ 刷新頁面 資料不會遺失
⚠️ 清除瀏覽器快取 資料會遺失
⚠️ 更換瀏覽器 資料不會同步
💡 建議:定期匯出配置備份

Q4:如何在多台電腦上使用?

  1. 手動同步:在一台電腦上匯出配置,在另一台電腦上匯入
  2. 雲端同步:將整個專案資料夾放在雲端硬碟(Dropbox、OneDrive)
  3. 版本控制:使用 Git 上傳到 GitHub

Q5:如何變更管理員密碼?

為避免在文件中暴露密碼,請不要在公開文件中記錄或張貼任何密碼。如果您需要變更管理員密碼,請透過受控且安全的渠道處理:

  1. 聯絡系統管理員或維護人員由其在安全環境下進行修改。
  2. 若需在程式碼中設定或更新,請使用受保護的設定管理流程(例如環境變數或受限的設定檔),並避免在版本控制或公開文件中硬編碼密碼。
  3. 變更後請立即更新相關憑證管理與備份流程,並通知受影響的管理人員。

Q6:權重計算結果不合理?

  1. 檢查各項權重值是否正確
  2. 嘗試使用「預設權重」模板
  3. 逐步調整參數並預覽結果

9計算公式說明

9.1 Safety Stock 基本概念

Safety Stock(安全庫存)是為防止缺貨而預留的額外庫存, 其計算考量以下因素:

因素 說明
前置時間(Lead Time) 供應商交貨所需的天數
需求變異 需求的波動程度
服務水準 期望的庫存充足率

9.2 本程式的權重計算公式

Safety Stock 計算公式
SS = 基礎值 + (Class權重 × Size權重 × Type權重 × 區域係數)

公式說明:

參數 說明 範圍
基礎值 最低庫存基準 ≥ 0
Class權重 店鋪等級係數 0 - 5
Size權重 店鋪面積係數 0 - 5
Type權重 客源類型係數 0 - 2
區域係數 區域調整係數 0 - 2

9.3 計算示例表

區域 舖類 面積 客源 Class權重 Size權重 Type權重 區域係數 基礎值 Safety Stock 計算過程
HK A XL T 3 4 1.2 1.0 4 19 4 + (3×4×1.2×1.0) = 18.4 ≈ 19
HK A L M 3 3 1.0 1.0 4 13 4 + (3×3×1.0×1.0) = 13
HK A M L 3 2.5 0.9 1.0 4 11 4 + (3×2.5×0.9×1.0) = 10.75 ≈ 11
HK B M M 2 2.5 1.0 1.0 4 9 4 + (2×2.5×1.0×1.0) = 9
MO A M T 3 2.5 1.2 1.33 4 16 4 + (3×2.5×1.2×1.33) = 15.97 ≈ 16

9.4 Carry 狀態判斷

條件 Carry 狀態 說明
Safety Stock > 0 Y 需要備貨
Safety Stock = 0 FALSE 不需要備貨

📎 附錄

鍵盤快速鍵

按鍵 功能
Enter確認編輯
Esc取消編輯
Ctrl + S匯出配置(需焦點在頁面)