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_starterlicensepercentage2000 基点(20%)net_subtotal1

源码注释还给出了两种写法:把 license.commission 改为 5.00 美元的固定佣金;或者先在 products.ts 中定义 monthly 套餐,再为它设置 15% 的佣金比例和 3 次成功付款上限。注释中的配置不会生效。

修改规则不会重算历史佣金

已生成的佣金记录会保留原计算结果。付款状态更新后,系统会按照修改后的配置和付款顺序,重新判断该笔付款是否超过次数上限。