| Class\Size | XL | L | M | S | XS |
|---|---|---|---|---|---|
| A級(遊客) | 17 | 15 | 13 | 12 | 10 |
| A級(混合) | 17 | 15 | 13 | 12 | 10 |
| A級(本地) | 17 | 15 | 13 | 12 | 10 |
| Class\Size | XL | L | M | S | XS |
|---|---|---|---|---|---|
| A級(遊客) | 27 | 25 | 16 | 13 | 12 |
| A級(混合) | 27 | 25 | 16 | 13 | 12 |
| A級(本地) | 27 | 25 | 16 | 13 | 12 |
版本 v1.4 | 更新日期:2026年2月11日
本段為開發者與維護者快速參考,列出目前前端程式中的關鍵變數、函式與 UI id,方便對照與修改。
calculateBtn - 執行計算exportBtn / exportExcelBtn - 匯出 CSV / ExcelexportExcelWithFormulasBtn - 匯出 Excel(含公式)printBtn - 打印結果exportConfigBtn / importFile - 匯出 / 匯入 JSON 設定storesCsvFile - 店鋪 CSV 上傳 inputeditMatrixBtn / saveMatrixBtn - 編輯對照表themeToggleBtn, themePanel, themeList - 主題切換storesContainer - 店鋪列表容器(內含 `.editable-store-stock` 可 inline 編輯)qrExportExcel, qrOmFilter, qrTable - 快速報表區域Safety Stock(安全庫存)計算器是一個專為零售業設計的網頁工具, 幫助您根據店鋪的不同特性(區域、舖類、貨場面積)來計算每間店鋪所需的 安全庫存數量。
| 功能 | 說明 |
|---|---|
| 🏪 店鋪管理 | 支援無限數量的店鋪,可按多種條件篩選 |
| 📊 安全庫存計算 | 根據對照表或權重自動計算每店所需庫存 |
| ⚙️ 權重計算 | 支援自訂權重參數,快速產生計算矩陣 |
| 🎨 主題切換 | 多種配色主題可選擇 |
| 📥 資料匯出 | 支援 CSV、Excel、JSON 格式匯出 |
| 💾 本地儲存 | 瀏覽器自動保存設定,離線可用 |
| 👤 OM 管理 | 可按營運經理分組檢視和管理店鋪 |
New SKU Safety Stock Calculator/ ├── index.html # 主頁面與 UI 骨架 ├── styles.css # 樣式表(支援多種主題) ├── app.js # 應用程式邏輯 ├── config.js # 業務資料與參數配置 └── stores-template.csv # 店鋪批量匯入模板
| 項目 | 最低需求 |
|---|---|
| 瀏覽器 | Chrome 60+ / Firefox 60+ / Safari 12+ / Edge 79+ |
| 網路 | 首次載入需要網路(用於 SheetJS 庫) |
| 硬碟空間 | 約 500 KB |
# 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
| Class\Size | XL | L | M | S | XS |
|---|---|---|---|---|---|
| A級(遊客) | 17 | 15 | 13 | 12 | 10 |
| A級(混合) | 17 | 15 | 13 | 12 | 10 |
| A級(本地) | 17 | 15 | 13 | 12 | 10 |
| Class\Size | XL | L | M | S | XS |
|---|---|---|---|---|---|
| A級(遊客) | 27 | 25 | 16 | 13 | 12 |
| A級(混合) | 27 | 25 | 16 | 13 | 12 |
| A級(本地) | 27 | 25 | 16 | 13 | 12 |
| HK/MO | 舖類 | 面積 | 客源 | 代碼 | 店數 | SS | 小計 | Carry |
|---|---|---|---|---|---|---|---|---|
| 🇭🇰 香港 | A | XL | T | HKAXL | 5 | 17 | 85 | Y |
| 🇭🇰 香港 | A | L | M | HKAL | 12 | 15 | 180 | Y |
| 🇭🇰 香港 | A | M | L | HKAM | 8 | 13 | 104 | Y |
| TOTAL: | 97 | SS: | 856 | |||||
店鋪類型代碼由三部分組成:區域 + 舖類 + 面積,客源類型 (Type) 會以獨立欄位顯示。
| 代碼 | 區域 | 舖類 | 貨場面積 | 客源類型 | 範例店鋪 |
|---|---|---|---|---|---|
| HKAXL | 🇭🇰 香港 | A 級 | XL(特大) | 遊客區 (T) | 銅鑼灣旗艦店 |
| HKAL | 🇭🇰 香港 | A 級 | L(大) | 混合型 (M) | 中環店 |
| HKAM | 🇭🇰 香港 | A 級 | M(中) | 本地型 (L) | 旺角店 |
| MOAD | 🇲🇴 澳門 | A 級 | D | 遊客區 (T) | 澳門半島店 |
| 等級 | 說明 | 權重預設值 |
|---|---|---|
| A 級 | 優先級最高(核心店鋪、高銷售量) | 3 |
| B 級 | 優先級較高 | 2 |
| C 級 | 優先級中等 | 1.5 |
| D 級 | 優先級最低 | 1.5 |
| 代碼 | 說明 | 面積範圍 | 權重預設值 |
|---|---|---|---|
| XL | 超大型 | >500㎡ | 4 |
| L | 大型 | 200-500㎡ | 3 |
| M | 中型 | 100-200㎡ | 2.5 |
| S | 小型 | 50-100㎡ | 2 |
| XS | 超小型 | <50㎡ | 1.5 |
| 代碼 | 名稱 | 說明 | 權重預設值 |
|---|---|---|---|
| T | 遊客區 | 主要服務遊客客源 | 1.2 |
| M | 混合型 | 遊客與本地客源混合 | 1.0 |
| L | 本地型 | 主要服務本地客源 | 0.9 |
系統提供兩種操作模式:
| 按鈕 | 功能 |
|---|---|
| 全選 | 選擇所有顯示的店鋪 |
| 取消全選 | 取消選擇所有店鋪 |
| 反向選擇 | 反轉目前的選擇狀態 |
| 取消篩選 | 清除所有篩選條件 |
您可以結合多個篩選條件來精準選擇店鋪:
範例 1:選擇所有香港 A 級店鋪
→ 按區域:🇭🇰 HK
→ 按舖類:A級
✓ 結果:顯示所有香港 A 級店鋪
範例 2:選擇特定 OM 負責的店鋪
→ 按營運經理:Candy
✓ 右側面板顯示 Candy 負責的所有店鋪
計算完成後,結果區域會顯示三個表格:
| 欄位 | 說明 |
|---|---|
| HK/MO | 區域 |
| 舖類 | A/B/C/D 級別 |
| 貨場面積 | XL/L/M/S/XS |
| 客源 | T(遊客) / M(混合) / L(本地) |
| 類型代碼 | 店鋪類型代碼 |
| 店鋪數量 | 該類型的店鋪數量 |
| Safety Stock | 每間店鋪的安全庫存量 |
| ALL SHOP QTY | 該類型所有店鋪的總庫存量 |
| Carry | Y = 需要備貨 / FALSE = 不需要備貨 |
| 欄位 | 說明 |
|---|---|
| 營運經理 | OM 姓名 |
| 區域分佈 | 香港/澳門店鋪數量 |
| 店鋪數量 | 該 OM 負責的店鋪數量 |
| 平均 SS | 平均 Safety Stock |
| SS 總計 | 該 OM 負責店鋪的 Safety Stock 總和 |
| 佔比 | 佔整體的比例 |
| Carry | 需要備貨的店鋪數量 |
顯示所有選擇店鋪的詳細資料(含客源 Type、OM、Carry)。
您可以對單一店鋪的 Safety Stock 值進行獨立編輯:
1. 在店鋪列表中找到目標店鋪
2. 點擊 Safety Stock 欄位
3. 直接輸入新數值
4. 按 Enter 確認,或點擊其他位置自動保存
在「按店舖類型彙總」表格中,點擊 Safety Stock 欄位即可快速修改該類型數值,系統會即時更新總計。
若已對個別店鋪做過編輯,可使用 🔄 重設自訂值 來恢復對照表的預設值(只會重設已選擇的店鋪)。
程式支援多種配色主題,點擊右上角的 🎨 按鈕選擇:
權重計算系統讓您可以透過調整參數,自動產生符合業務需求的 Safety Stock 對照表, 而不需要手動輸入每個數值。
| 等級 | 說明 | 預設值 |
|---|---|---|
| A 級 | 核心店鋪 | 3 |
| B 級 | 高優先級 | 2 |
| C 級 | 中優先級 | 1.5 |
| D 級 | 低優先級 | 1.5 |
| 面積 | 說明 | 預設值 |
|---|---|---|
| XL | 超大型 | 4 |
| L | 大型 | 3 |
| M | 中型 | 2.5 |
| S | 小型 | 2 |
| XS | 超小型 | 1.5 |
| 類型 | 說明 | 預設值 |
|---|---|---|
| T | 遊客區 | 1.2 |
| M | 混合型 | 1.0 |
| L | 本地型 | 0.9 |
| 區域 | 說明 | 預設值 |
|---|---|---|
| HK | 香港 | 1.0 |
| MO | 澳門 | 1.33 |
系統提供多種預設模板:
| 模板名稱 | 說明 | 適用場景 |
|---|---|---|
| 預設權重 | 標準配置 | 一般業務需求 |
| 平衡權重 | 中等權重差異 | 追求平衡的策略 |
| 保守型 | 較高的權重值 | 謹慎管理,降低缺貨風險 |
| 積極型 | 較低的權重值 | 降低成本,減少庫存 |
如果您有特定的 Safety Stock 總量目標:
銷售目標計算功能讓您可以根據預期的銷售數量,自動計算所需的 Safety Stock 總量。 這對於新產品上市或規劃促銷活動時特別有用。
| 元素 | 說明 |
|---|---|
| 📊 銷售目標數量 | 輸入預期的月銷售數量(例如:36,000 件) |
| 📅 Safety Stock Days | 調整保障的庫存天數(1-30 天) |
| 🎯 目標總 Safety Stock | 自動計算的 Safety Stock 目標值(只讀) |
| 件 / 月 | |
|
7 天
|
|
| ⚡ 自動計算 |
| 範例 | 銷售目標 | 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(手動) |
當您點擊 🚀 套用權重計算 時,系統會:
scaleMatrixToTarget() 函數將對照表縮放至目標值情境:月銷售目標 36,000 件,需要保護 7 天
→ 目標總 Safety Stock = 36,000 ÷ 30 × 7 = 8,400
→ 系統根據店鋪權重分配:
| 店鋪類型 | 權重比例 | 分配庫存 |
|---|---|---|
| HK A級 XL | 25% | 2,100 |
| HK A級 L | 20% | 1,680 |
| HK A級 M | 15% | 1,260 |
| 其他類型 | 40% | 3,360 |
銷售目標計算的參數會自動保存在瀏覽器中:
safetyStockCalculatorV2 → weightConfig 中,包含 salesTarget、safetyStockDays、targetTotal。
| 工作表名稱 | 內容 |
|---|---|
| 店鋪詳細清單 | 所有店鋪的詳細資料 |
| 彙總表 | 按類型彙總的計算結果 |
| OM彙總 | 按營運經理分組的統計 |
.json 檔案店鋪詳細清單 生成日期: 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
可能原因:
| 情況 | 結果 |
|---|---|
| ✅ 正常關閉瀏覽器 | 資料保存在 localStorage |
| ✅ 刷新頁面 | 資料不會遺失 |
| ⚠️ 清除瀏覽器快取 | 資料會遺失 |
| ⚠️ 更換瀏覽器 | 資料不會同步 |
為避免在文件中暴露密碼,請不要在公開文件中記錄或張貼任何密碼。如果您需要變更管理員密碼,請透過受控且安全的渠道處理:
Safety Stock(安全庫存)是為防止缺貨而預留的額外庫存, 其計算考量以下因素:
| 因素 | 說明 |
|---|---|
| 前置時間(Lead Time) | 供應商交貨所需的天數 |
| 需求變異 | 需求的波動程度 |
| 服務水準 | 期望的庫存充足率 |
| 參數 | 說明 | 範圍 |
|---|---|---|
| 基礎值 | 最低庫存基準 | ≥ 0 |
| Class權重 | 店鋪等級係數 | 0 - 5 |
| Size權重 | 店鋪面積係數 | 0 - 5 |
| Type權重 | 客源類型係數 | 0 - 2 |
| 區域係數 | 區域調整係數 | 0 - 2 |
| 區域 | 舖類 | 面積 | 客源 | 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 |
| 條件 | Carry 狀態 | 說明 |
|---|---|---|
| Safety Stock > 0 | Y | 需要備貨 |
| Safety Stock = 0 | FALSE | 不需要備貨 |
| 按鍵 | 功能 |
|---|---|
| Enter | 確認編輯 |
| Esc | 取消編輯 |
| Ctrl + S | 匯出配置(需焦點在頁面) |