ccairn

設定與範本

設定是整個租戶共用的一份——公司抬頭、寄件身分、訂單怎麼指派、錢收進哪個帳戶。你用 settings API 讀寫的,和管理者在後台設定頁做的完全等價。

本篇帶你看租戶設定的全貌,以及兩種「範本」資源:給客人發訊息的罐頭訊息,與要客人簽署的同意書

租戶設定是一份 singleton

每個租戶只有一份設定,不是 per-user:

  • 讀整份:GET /api/v1/settings;改一部分:PATCH /api/v1/settings(partial update——只帶你要改的欄位,沒帶到的不動)。
  • 可寫欄位包含公司抬頭(companyName / companyPhone / taxId / companyAddress / logoUrl)、回覆信箱(emailReplyTo)、寄件人 local-part(senderLocalPart)、證件效期提醒天數(passportExpiryWarningDays)。
  • 站台 SEO 預設另走 PATCH /api/v1/settings/seo
說明

設定屬管理範圍:/settings 多數端點要 role.manage 權限,連讀取都擋(與後台「機密遮罩」一致)。少數子資源用更細的權限——收款帳戶與費用路由要 receiving_account.manage、費用類別要 operating_expense.*,下面各段會標。

你方案啟用了哪些模組(訂房 / 會計 / 登山…)是平台方決定的,你只能唯讀查:GET /api/v1/settings/modules。租戶端改不了模組開通。

付款憑證(per-tenant、只回遮罩)

ECPay 收款憑證是每個租戶各自設定的,不是平台共用:

  • 一次填齊特店 ID、HashKey、HashIV:PUT /api/v1/settings/ecpay-credentials;清除:DELETE
  • HashKey / HashIV 加密保存、永不回讀,查詢只回末幾碼的遮罩值供顯示確認(write-only)。

詳細的收款生命週期、測試模式與「上線未設定憑證即擋下收款」的行為,見 付款流程

寄件網域

寄交易信(訂單確認、付款成功、同意書提醒…)不需要你準備任何憑證——平台代為寄送。你能控制的是寄件身分,分兩層:

  • 預設(零設定):從平台共用網域寄出,顯示名稱用你的公司名、回信導去你的 emailReplyTo。客人不會看到平台網域以外的東西,你也不必動任何 DNS。
  • 自有網域(可選升級):若你已綁定自有站台網域,可改用 info@<你的網域> 寄件。

升級走一條 DNS 驗證生命週期:

動作端點
查目前狀態與待設 DNS recordGET /api/v1/settings/sending-domain
啟用(無網域參數,用你綁定的網域)POST /api/v1/settings/sending-domain/enable
設好 DNS 後重新檢查驗證POST /api/v1/settings/sending-domain/verify
停用、退回平台網域POST /api/v1/settings/sending-domain/disable
說明

寄信是 fail-open:自有網域驗證一旦失效,會自動退回平台網域寄送,信照寄不中斷——和付款憑證「設錯就擋下」的 fail-closed 取捨相反。寄件人 local-part 用 senderLocalPart 調整(預設 info)。

訂單指派

新訂單要落到哪個業務手上,由租戶的指派模式決定:

  • 設定模式與兜底業務:PATCH /api/v1/settings/assignment
  • 可被指派的業務名單:GET /api/v1/settings/assignable-staff
模式(assignmentMode行為
manual_review進待審池,由人工指派
auto_round_robin自動輪流分配給可受派業務
auto_customer_choice由客人選擇承辦業務

收款帳戶與費用分類

你可以維護自己的收款帳戶目錄,並決定不同性質的款項各自路由到哪個帳戶;公司營業費用也有一套可自訂的分類。

用途端點權限
收款帳戶目錄(銀行 / 現金 / 外幣池…)GET · POST · PATCH /api/v1/settings/receiving-accountsreceiving_account.manage
費用性質 → 最終收款帳戶的路由GET · PUT /api/v1/settings/fee-category-routesreceiving_account.manage
公司營業費用類別目錄GET · POST · PATCH /api/v1/settings/expense-categoriesoperating_expense.read / .manage
內外帳利潤試算的費率PATCH /api/v1/settings/ledger-feesrole.manage

收款帳戶是租戶自管、與產品種類無關的——同一個帳戶可收任何訂單的款。停用某帳戶不刪歷史,只是讓它不再出現在新的收款選項中。

罐頭訊息與同意書範本

兩種「範本」資源,性質很不一樣——一個可改可刪,一個只增不改。

罐頭訊息範本(可編輯)

給客人發 LINE / Email 通知用的可重複文字:

  • 列表 / 建立:GET · POST /api/v1/message-templates;單筆 / 改 / 刪:/api/v1/message-templates/{id};啟停:POST /api/v1/message-templates/{id}/active
  • 一筆範本帶 stage(對應 SOP 階段)、channellineemail)、titlebodySingle(單人版內文),可選 bodyMulti(多人版,留空沿用單人版)、key(程式化引用識別碼)、isActive
  • 讀取要 message_template.read,異動要 message_template.manage

同意書範本(版本化、不可竄改)

要客人簽署的同意書是只增不改的——你不會「編輯」一份已存在的同意書,而是發布新版本

  • 列表(同類別最新版在前,每筆帶其綁定的簽署份數):GET /api/v1/consent-templates,可用 kind 過濾類別。
  • 發布新版本:POST /api/v1/consent-templates;看單一版本:GET /api/v1/consent-templates/{id}
  • 一律 consent_template.create 權限(後台讀寫共用同一把)。
注意

同意書範本沒有改 / 刪端點——這是刻意的。已簽署的版本必須原封保留(簽署當下客人同意的是哪份文字,是法遵的證據),任何文字調整都要走「發布新版本」。

下一步

Command Palette

Search for a command to run...