聯盟行銷計畫
推薦連結、佣金與每月結算。依產品需求調整佣金政策後即可使用,款項仍由管理員審核後支付。
Saavo 範本內建完整的聯盟行銷系統,涵蓋推薦連結產生、註冊歸因、依方案計算佣金、使用者端佣金總覽,以及後台每月結算等核心功能。
開發自己的產品時,通常不必從零建立佣金系統。只要啟用聯盟行銷,並依實際方案設定佣金比例,系統就會在使用者付款成功後自動記帳。
請注意,範本只負責記錄與顯示佣金資料。實際付款,例如透過 PayPal 或銀行帳戶匯款,仍需人工操作。系統不會取代人工審核,也不會自動執行款項結算。
既有功能
範本初始化後,即可使用下列功能:
| 功能 | 預設入口 | 預設狀態 |
|---|---|---|
| 推廣介紹頁面 | /affiliate | 隨時可存取 |
| 推薦連結 | /ref/:code | 啟用聯盟行銷時註冊 |
| 使用者聯盟行銷中心 | /account/affiliate | 需要登入,且已啟用聯盟行銷 |
| 聯盟行銷使用者 | /dashboard/affiliates/users | 管理員可存取 |
| 每月結算 | /dashboard/affiliates/payouts | 由管理員審核並付款 |
系統透過 HttpOnly Cookie(saavo_affiliate_referral)記錄推薦碼,並採「首次接觸優先」原則。匿名訪客首次透過有效的推薦連結造訪時,系統會儲存該推薦碼。之後即使再次按下其他推廣連結,也不會覆寫原本的歸因關係。
新使用者完成註冊後,系統會自動將使用者歸因至對應的推廣者。已登入的使用者按下推薦連結,也不會改寫原本的歸因關係。系統對推廣者資格與款項安全設有明確條件,使用者必須登入並完成電子郵件驗證,才能進入聯盟行銷中心並啟用推廣者身分。收款資料屬於敏感資訊,只有符合條件的推廣者才能存取此模組,讀取或儲存收款資訊時,還必須通過 Step-up 驗證,再次確認身分。
佣金資料會在付款 Webhook 處理成功後自動寫入。設定佣金政策時,必須對應 config/products.ts 中已存在的產品 ID 與方案 ID。如果指向未設定的方案,系統就無法產生並記錄佣金。

先體驗聯盟行銷流程
修改佣金比例前,建議先了解預設流程。
推廣者在帳號中心啟用聯盟行銷
↓
取得 8 位推薦碼,連結為 /ref/{code}
↓
訪客開啟推薦連結,寫入推薦 Cookie
↓
訪客註冊
↓
該使用者日後購買已設定佣金的方案
↓
付款成功後寫入佣金紀錄
↓
管理員在月結頁面重新整理、審核並記錄付款預設政策只會為範例方案 saavo_starter.license 計算佣金,比例為淨額的 20%。
目前預設設定將結算次數限制為 1 次,表示不會隨每個帳單週期重複計算,佣金只結算一次。單次購買的產品不適用此週期設定,系統預設只結算一筆佣金。
提示
20% 與 license 方案都是範例。正式對外提供服務前,必須改成自己的產品與實際佣金政策,否則系統會依範本比例記帳。
設定聯盟行銷
聯盟行銷總開關與佣金政策,都在 config/affiliate.ts 中設定。
啟用或停用聯盟行銷
預設已啟用:
enabled: true,不需要聯盟行銷時,請設為 false。關閉後:
- 不再註冊
/ref/:code。 /account/affiliate回傳 404。- 帳號導覽不再顯示聯盟行銷項目。
- 使用者端的聯盟行銷 API 回傳 404。
管理員停用聯盟行銷後,計畫介紹頁面 /affiliate 仍可存取,但會提示目前無法使用此功能。管理後台的聯盟行銷模組不會移除,管理員仍可查看既有推廣者、佣金等歷史資料。
依方案設定佣金
plans 必須對應產品目錄中的 ID,未設定的產品不會產生佣金。
百分比範例:
saavo_starter: {
license: {
commission: {
type: 'percentage',
basisPoints: 2000,
base: 'net_subtotal',
},
subscriptionPaymentLimit: 1,
},
},其中:
basisPoints: 100代表 1%,2000代表 20%。base: 'subtotal'依折扣前、未稅小計計算,base: 'net_subtotal'依折扣後、未稅小計計算,base: 'total'則依最終含稅金額計算。subscriptionPaymentLimit: 1依成功扣款次數計算,不是依曆月計算。1表示只計算第一筆。
也可以改為固定金額。每個方案同時只能啟用一種佣金形式。修改政策不會改寫已儲存的佣金快照,但重新整理月結資料時,訂閱次數上限會依目前設定重新計算。
設定結算規則
同一份檔案也控制結算週期與提款方式:
payoutInterval: '1 month',
payout: {
methods: ['paypal', 'wise', 'wechat'],
minimumAmountMinor: 2000,
currency: 'usd',
},minimumAmountMinor 使用貨幣的最小單位,2000 搭配 usd 表示 20.00 美元。管理員在後台重新整理月結資料並審核後,再自行向推廣者付款,並儲存付款紀錄。
在業務功能中使用聯盟行銷
對大多數產品而言,聯盟行銷不需要額外的業務程式碼。付款成功後,範本會依 Price ID 找到對應方案並記帳,但仍需確認:
- 產品目錄中的方案 ID 與聯盟行銷政策一致。
- 所有需要計算佣金的方案,都已寫入
affiliate.plans。 - 推廣入口指向使用者自己的
/ref/{code}。
不要在 Checkout 成功頁面自行新增佣金資料列,也不要另外建立一套類似 user_credits 的平行佣金帳本。
如果產品有自己的到達網頁,也可以沿用現有的推薦 Cookie 記錄邏輯,不要再建立第二個歸因 Cookie。
上線檢查
聯盟行銷涉及實際分潤,上線前建議至少確認:
- 佣金政策已從範例的 20% 改為自己的設定,並對應實際的 product/plan ID。
- 購買未設定佣金的方案後,確實不會產生佣金。
-
/ref/{code}可以寫入推薦 Cookie,新使用者註冊後可以歸因至推廣者。 - 使用測試卡購買一次計算佣金的方案後,後台可以看到佣金紀錄。
- 推廣者可以在
/account/affiliate查看佣金,並填寫收款方式。 - 尚未驗證電子郵件的使用者無法啟用聯盟行銷,修改收款資料時會要求 Step-up 驗證。
- 管理員可以重新整理月結資料、審核並記錄付款。
- 若不需要聯盟行銷,
enabled已設為false,帳號入口已不再顯示。
建議使用兩個帳號測試,一個作為推廣者,另一個作為受到推薦並完成購買的新使用者。
常見問題
接下來
依接下來要開發的功能,可以繼續閱讀:
- 想了解實際產品如何設計方案與使用權益 → WebpageToPDF 實作教學
- 想確認付款入帳 → 付款與方案
- 想在後台審核付款 → 管理後台
大多數產品完成本章後,只需要修改開關與佣金政策。
付款、稅務與合約仍由你自己的營運流程處理。