通行證依分店篩選
每張通行證都有一個 locationIds 陣列,列出它所屬的分店。顧客端會透過 isPassAtLocation() 工具函式進行篩選,只有 locationIds 包含目前選定分店的通行證才會被顯示。
因此,若一張通行證僅設定給 A 分店,顧客在瀏覽 B 分店時就完全看不到,即使是同一個品牌與同一個顧客帳號也一樣。若希望通行證在所有分店都能購買,請在 locationIds 中加入所有相關分店。
課程與行事曆的篩選方式
課程清單在 class store 中以 locationId 進行篩選,與後台共用的同一個 store 會回傳對應分店的子集合給顧客頁面。
行事曆的標題列提供內嵌切換器方便切換分店,行事曆事件本身則以 selected()?.locationId 進行篩選。因此:
- 從標題列切換分店時,行事曆會立即重新排版。
- 同一時段在其他分店的課程不會被列入。
- 預約按鈕只會作用在目前選定分店的課程上。
在多個分店都有通行證的顧客會看到什麼
在多個分店都持有通行證的顧客,所有通行證仍會保留在同一個帳號中,但瀏覽或預約時,只會看到與目前分店相符的通行證。透過切換器更換分店後,顯示的清單也會跟著切換。
顧客在 A 分店開啟行事曆時,會看到 A 分店的課程,並能用 A 分店的通行證進行預約;切換到 B 分店後,會看到 B 分店的行事曆與 B 分店的通行證。資料不會被刪除或永久隱藏,可見範圍只是隨著目前選定的分店變動。
