詢問運動賽事預約系統費用時,最容易得到失真的方式,是只列「活動頁、報名表、付款頁、成功頁」四個畫面。真正影響開發與現場作業的,是付款成立後要不要產生個別票券、票券能否補發、改組或取消後如何失效,以及大量參加者同時報到時,工作人員用什麼設備核對。這些規則沒有先寫清楚,報價看似完整,上線前才會陸續增加後台與例外處理。

較可靠的估法,是把報名主檔、票券發行與現場核銷拆成三個範圍。報名主檔回答誰參加哪一項活動、目前資格為何;票券提供可攜帶的入場憑證;核銷則記錄何時、在哪個入口、由哪位工作人員完成查驗。三者可以整合,但不能只靠一張條碼圖片代表所有狀態。

先分清楚共用賽事資料與個別參加資料

Google Wallet 的票證類別與物件說明把活動票券拆成兩層:Passes Class 保存活動名稱、場地、日期時間等共用內容,Passes Object 保存座位、條碼等個別內容;每個物件也有自己的識別碼,並連回所屬類別。這種分法可以直接變成需求訪談問題:哪些資料改一次就要影響全體票券,哪些資料只屬於單一參加者?

例如場地異動是整場事件;參加者更換組別、號碼或報到狀態則是個別事件。若系統把所有文字直接複製到每張票券,改期時就得逐張更新,也難以確認是否漏掉;若又把姓名、聯絡方式等個別資料塞進共用範本,資料邊界便會混亂。規格應列出兩層欄位、更新責任、同步失敗後的補送方式,以及舊版本在前台應如何呈現。

這也影響預約系統費用。只有報名成功頁與下載憑證,和串接可更新的數位票券,是不同交付範圍;後者還會包含發行者帳號設定、憑證管理、測試環境、票券審查與正式發布。需求方不必預設一定採用某個票券平台,但必須先決定是「顯示報名編號」還是「建立可持續更新的票券」,才能比較同一基準的報價。

條碼能被掃描,不代表報到流程已完成

Google Wallet 活動票券總覽列出條碼掃描與 NFC 感應兩種核銷方向,並說明票券可由網站、電子郵件或簡訊等支援連結的管道發行。這些能力是整合選項,不代表接上後就自動具備賽事所需的現場規則。主辦方仍要定義掃描成功、重複掃描、票券失效、入口選錯與離線時的畫面和紀錄。

最低驗收情境可以從同一張票券連續掃描兩次開始。第一次應記錄入口、時間與操作人,第二次要明確顯示已使用,而不是新增第二筆報到。若票券已取消或被補發,舊票券應回傳可理解的狀態;工作人員不能只看到模糊的紅色錯誤,再靠口頭判斷是否放行。不同賽事項目若在不同入口報到,也要確認入口裝置只能核銷授權範圍內的票券。

現場網路並非永遠穩定,因此是否需要離線名單、暫存掃描或人工備援,也會改變成本。離線不是在手機存一份完整個資表就算完成,而要決定資料下載範圍、有效時間、裝置遺失風險、重新連線後如何去重,以及誰能匯出。若活動規模不需要離線核銷,可以選擇較簡單的即時查詢,但仍要事先演練斷線時的人工流程。

補發、轉讓與改組要保留前後關係

參加者找不到票券時,客服應重送同一個有效憑證,還是作廢舊票再發新票?兩種設計的風險與工時不同。若選擇補發新票,系統要保留新舊關係,確保舊條碼不能繼續入場;若只是重送,則不能因為顧客重按按鈕就建立多個有效物件。客服後台也應顯示最後發送管道與時間,但不應把能直接入場的憑證暴露給無權限的人員。

團體項目還會出現換隊員、隊長轉移與整隊取消。此時應先決定票券屬於隊伍還是個人,報到是整隊一次完成還是逐人完成。改組後,原票券上的組別、姓名或入口資訊如何更新,已核銷成員能否再次異動,都要寫成規則。這些不是畫面微調,而是資料關係與操作權限,理應在估價前確認。

從 SPORTMEET 案例建立費用範圍表

展示作品「SPORTMEET 賽事官網」(sportmeet-event)把路跑與球類賽事的資訊、路線、注意事項、報名倒數與名額狀態集中在同一個行動版流程。這個案例可用來確認「參加者先理解活動,再選項目並完成報名」的前台基礎;它沒有證明任何真實賽事成果,也不代表已包含本文討論的外部數位票券整合。

以此案例估價時,可以把交付拆為四層:第一層是活動與項目內容;第二層是報名資格、付款及個人/團體資料;第三層是票券發行、補發、失效與通知;第四層是入口裝置、核銷權限、離線備援和報到報表。每層都列出正常流程、例外情境、後台操作與驗收資料,供應商才能說明哪些屬於基本版、哪些需要額外整合。

最後用一場測試賽走完整流程:建立兩個項目,讓個人與團體各完成一筆報名,發出票券,再依序測試改期、補發、重複掃描、取消票券、錯誤入口與網路中斷。每一步都要能從票券追到報名,也能從報名查到核銷紀錄。預約系統費用的合理範圍,不是看頁面有幾張,而是看主辦方要求系統替現場承擔多少可追溯的判斷。