Skip to content

佣金比例與二級分銷

佣金比例與二級分銷

本文講清各種比例的含義、什麼時候觸發、上級的「間推」佣金怎麼計算。

四種比例

每個分銷商有 4 個比例欄位,存在 mod_reseller_admins:

欄位觸發場景計算誰的訂單
new_order_rate客戶首筆已付發票該分銷商自己的客戶
renewal_rate後續所有已付發票(續費)該分銷商自己的客戶
indirect_new_order_rate客戶首筆已付發票該分銷商 下級 的客戶
indirect_renewal_rate續費已付發票該分銷商 下級 的客戶

比例按發票 金額總額 計算(含稅,發票全額)。所有比例保留 2 位小數,範圍 0–100%。

二級分銷舉例

設定: - 分銷商 A(上級)—— new_order_rate=5, renewal_rate=3, indirect_new_order_rate=2, indirect_renewal_rate=1 - 分銷商 B(A 的下級)—— new_order_rate=8, renewal_rate=5, 間推比例 0/0

A 的客戶付了 100 元首單: - A 拿:100 × 5% = 5 元(level=1 直推) - B 拿:無(B 不是 A 的上級)

B 的客戶付了 100 元首單: - B 拿:100 × 8% = 8 元(level=1 直推) - A 拿:100 × 2% = 2 元(level=2 間推,用的是 A 的 indirect_new_order_rate)

注意:間推比例取自 上級 的記錄,不是下級的。所以 A 決定自己能從 B 出單裡拿多少。

佣金什麼時候記錄

WHMCS 的 InvoicePaid 鉤子在每張已付發票時觸發。鉤子邏輯: 1. 查發票客戶被分配給哪個分銷商。 2. 找到的話,按 new_order_rate 或 renewal_rate 計算直推佣金(level=1)。 3. 若該分銷商有上級,按上級的 indirect_*_rate 計算間推佣金(level=2)。 4. 插入 mod_reseller_commissions,狀態 pending,冪等由 (invoice_id, admin_id, level) UNIQUE 鍵保證。

UNIQUE 鍵意味著同一張發票重複觸發 InvoicePaid 也不會產生重複佣金。

直推佣金取決於客戶分配

只有當付款發票的客戶 已分配給分銷商(mod_reseller_customers.admin_id IS NOT NULL)時才會產生佣金記錄。客戶在資源池裡(admin_id 為空)時即使有付款也不會產生佣金。

要追溯補佣金:讓分銷商從客戶池認領,或者透過管理員客戶池視圖分配。

修改比例後的影響

修改比例只影響 未來 的佣金計算。佣金表裡已有的記錄不會重算。需要補差的話最簡單的辦法是在 佣金 標籤直接手動改單列金額。

防環保護

上級下拉控制: - 分銷商不能選自己。 - 分銷商不能選已經是自己下級的人(防止循環)。

直接 POST 繞過 UI 也會被服務端拒絕並記一條稽核日誌。