UGOMK 操作手冊
07 章 / 共 7

多分店設定

多分店設定

本租戶若已開多家分店,本模組設定屬「per-store」(每間分店各自獨立設定)。 畫面頂部會看到 banner:

  • 橘色「正在編輯:[分店名]」→ 編輯的是該分店私有設定
  • 黃色「正在編輯:全店共用設定」→ 影響所有分店

切換分店:左上角當前門市切換器。

單店租戶看不到 banner(系統自動隱藏)。

發票登錄模組的 per-store 範圍(Pattern C)

本模組採 Pattern C per-store 化,覆蓋下列三大面向:

1. 活動 (ir_campaigns) 加「適用分店」

活動管理 → 建立活動 / 編輯活動 頁面的基本資料區,可選擇本活動套用到哪些分店:

  • 不選 → 全店共用活動(所有分店都能參與)
  • 選特定分店 → 只有該分店的會員可參與

2. 黑名單 (ir_blacklist) per-store

ir_blacklist.store_id 欄位語意:

  • NULL → 全店共用黑名單,所有分店活動都會擋
  • 有值 → 該分店私有黑名單,僅該分店活動會擋

於黑名單頁面頂部的 banner 切換目前要編輯的範圍即可。

3. 登錄紀錄 (ir_entries) 透過 campaign JOIN 繼承 scope

登錄紀錄不直接存分店,而是繼承它所登錄的那檔活動的分店設定

2026-09-07 修正:在此之前登錄紀錄頁與統計頁根本不受分店切換影響

這一段先前寫的「會自動只看到該分店活動相關的登錄資料」與實際行為不符 —— 兩頁在切店時完全沒有過濾,每家店看到的都是全租戶的資料。2026-09-07 起才真的生效,且兩頁口徑刻意不同: | 頁面 | 分店專屬活動 | 未指定分店(全店共用)活動 | 跟著門市切換器 | |------|------|------|------| | 登錄紀錄(清單) | 只看該店 | 列出來(待審件不能漏) | 是 | | 登錄紀錄(匯出 CSV) | — | — | (總部匯出仍為全部分店) | | 統計 | 只算該店 | 不計入(金額不能被兩店各算一次) | 是 | 因此各分店統計相加會小於全租戶合計,差額就是未歸戶活動那一批;把活動的「適用分店」設好即可歸位。

4. isBlacklisted 判斷邏輯改 per-store aware

後端 helper isBlacklisted(lineUserId, campaignId) 會同時檢查:

  • 全店共用黑名單(store_id IS NULL)
  • 該活動所屬分店的私有黑名單(store_id = campaign.store_id)

任一命中即視為被封鎖。

常見問題

Q1 舊有活動 / 黑名單會被影響嗎

不會。模組升級時既有資料 store_id 預設為 NULL,行為等同「全店共用」,與舊版相同。後續新增資料才會依目前 banner 寫入對應 scope。

Q2 全店共用的活動,黑名單會用哪一邊

全店共用活動 (campaign.store_id IS NULL) 的 isBlacklisted 檢查只看全店共用黑名單,不會去比對任何分店私有黑名單。若想針對單一分店封鎖某會員,請建立分店私有活動 + 分店私有黑名單。

Q3 單店租戶要做什麼設定嗎

不用。系統會自動隱藏 banner,所有 store_id 一律 NULL,行為與舊版完全相同。

其他問題協助

若遇本說明未涵蓋的問題,請透過後台右下角 LINE 客服 @ugomk 聯繫真人專員協助處理。