affiliate.ts
联盟推广、佣金和结算规则。
config/affiliate.ts 配置联盟推广开关、结算周期、收款方式和套餐佣金。plans 中的产品 ID 和套餐 ID 来自 products.ts,并非固定字段;没有写入 plans 的套餐不会产生推广佣金。
enabled
Prop
Type
payoutInterval
Prop
Type
payout
Prop
Type
plans
plans 的类型由 products.ts 中的产品和套餐自动确定。第一层 Key 是产品 ID,第二层 Key 是该产品下的套餐 ID。两层 Key 都由项目自行定义,也都可以不配置。
type Plans = {
[ProductId in keyof Products]?: {
[PlanId in keyof Products[ProductId]['plans']]?: AffiliatePlanConfig;
};
};套餐佣金规则
每个已配置的套餐都要填写 commission。订阅套餐还必须填写 subscriptionPaymentLimit;一次性购买不能填写该字段,并且最多只产生一笔佣金。
commission
commission 可以按比例计算,也可以使用固定金额,两种结构只能选择一种。
按比例计算
Prop
Type
固定金额
Prop
Type
subscriptionPaymentLimit
Prop
Type
模板默认配置
saavo_starter 和 license 只是模板默认配置使用的产品 ID 与套餐 ID,可以随 products.ts 一起修改,并不是 affiliate.ts 的固定属性。
| 产品 ID | 套餐 ID | 佣金方式 | 比例 | 计算基数 | 成功付款次数上限 |
|---|---|---|---|---|---|
saavo_starter | license | percentage | 2000 基点(20%) | net_subtotal | 1 |
源码注释还给出了两种写法:把 license.commission 改为 5.00 美元的固定佣金;或者先在 products.ts 中定义 monthly 套餐,再为它设置 15% 的佣金比例和 3 次成功付款上限。注释中的配置不会生效。
修改规则不会重算历史佣金
已生成的佣金记录会保留原计算结果。付款状态更新后,系统会按照修改后的配置和付款顺序,重新判断该笔付款是否超过次数上限。