现在 BeeX 展示的商品来自 TikTok、Shopee 等三方平台接口。商品价格、图片、佣金等事实数据不由 BeeX 维护。
但运营需要对部分商品做额外配置:
| 原则 | 说明 |
|---|---|
| 商品事实数据来自三方平台 | BeeX 不重复维护商品库,只引用 country_code + platform + platform_product_id。 |
| 买家基础权益全员一致 | 同一个商品的“商品基础返现 + 平台补贴”对所有买家一致;用户自己的券、活动、账户权益可以另算。 |
| 推广者佣金单独配置 | 达人配置只影响“谁推广后拿佣金、拿多少”,不影响买家看到的商品基础返现。 |
| 点击时保存规则快照 | 运营配置会变化,订单可能延迟回传。结算必须按点击当时的规则,不是订单回来时的最新规则。 |
| 缺省回退现有返佣规则 | 商品没有命中推广规则时,继续走现有默认返佣规则,不影响普通商品搜索和下单链路。 |
| 表 | 职责 | 一句话说明 |
|---|---|---|
product_promotion_rules | 商品买家权益规则 | 管买家看到什么权益。 |
product_promotion_rule_tags | 商品展示标签 | 管前端展示什么标签。 |
product_promotion_promoters | 推广者佣金规则 | 管谁推广后能拿佣金。 |
product_promotion_rule_audit_logs | 操作日志 | 记录谁在什么时候改过规则。 |
flowchart TD A["运营粘贴商品链接"] --> B["后端解析三方商品"] B --> C["保存商品权益规则"] C --> D["配置展示标签"] C --> E["配置推广者佣金"] D --> F["商品详情/蜜源圈/高返列表展示"] E --> G["达人或用户分享商品"] F --> H["用户点击下单"] G --> H H --> I["生成 affiliate_clicks"] I --> J["保存买家权益快照和推广者佣金快照"] J --> K["跳转 TikTok/Shopee 下单"] K --> L["平台订单回传"] L --> M["按点击快照计算收益"] M --> N["写 commission_records / wallet pending"]
管“买家看到什么权益”。
| 字段 | 含义 | 说明 |
|---|---|---|
id | 规则 ID | 主键。 |
country_code | 国家 | 例如 ID。 |
platform | 平台 | 例如 TIKTOK / SHOPEE。 |
platform_product_id | 三方商品 ID | 三方平台商品事实 ID。 |
source_product_url | 原始商品链接 | 运营粘贴的商品链接。 |
product_name_snapshot | 商品名快照 | 后台展示和历史兜底,不是商品事实来源。 |
image_url_snapshot | 商品图快照 | 后台展示和历史兜底。 |
shop_name_snapshot | 店铺名快照 | 后台展示和历史兜底。 |
price_minor_snapshot | 价格快照 | minor 单位。 |
currency_snapshot | 币种快照 | 例如 IDR。 |
external_snapshot_json | 三方原始快照 | 保存解析时的三方关键数据。 |
status | 规则状态 | DRAFT / ACTIVE / DISABLED。 |
start_at / end_at | 有效期 | 用于后台计算“待生效/生效中/已过期”。 |
priority | 优先级 | 多规则命中时选择唯一生效规则。 |
user_cashback_bps | 买家商品返现比例 | 例如 600 表示 6%。 |
platform_subsidy_type | 平台补贴方式 | NONE / FIXED / BPS。 |
platform_subsidy_minor | 固定补贴金额 | platform_subsidy_type=FIXED 时使用。 |
platform_subsidy_bps | 比例补贴 | platform_subsidy_type=BPS 时使用。 |
budget_amount_minor | 预算总额 | 0 表示不限预算。 |
used_amount_minor | 已使用预算 | 按订单幂等扣减。 |
release_delay_days | 结算释放天数 | 用于收益快照;为空可回退平台/全局配置。 |
remark | 备注 | 运营说明。 |
created_by / updated_by | 操作人 | 用于审计。 |
created_at / updated_at | 时间 | 创建和更新时间。 |
管“前端展示什么标签”。标签只影响展示,不直接参与结算。
| 字段 | 含义 |
|---|---|
id | 主键。 |
rule_id | 关联 product_promotion_rules.id。 |
tag_code | 标签编码。 |
tag_name | 标签展示名。 |
tag_style | 标签样式配置。 |
display_position | 展示位置。 |
sort_order | 排序。 |
created_at | 创建时间。 |
示例标签:
| tag_code | tag_name |
|---|---|
HIGH_CASHBACK | 高返 |
HOT_PRODUCT | 爆品 |
EXCLUSIVE | 达人专属 |
LIMITED_SUBSIDY | 限时补贴 |
HONEY_SELECTED | 蜜源圈精选 |
管“谁推广后能拿佣金”。
| 字段 | 含义 | 说明 |
|---|---|---|
id | 主键 | |
rule_id | 关联商品推广规则 | |
promoter_type | 推广者类型 | ALL / USER / USER_GROUP / CHANNEL。 |
promoter_ref_id | 推广者引用 ID | 用户 ID、用户组 ID 或渠道 ID。 |
promoter_commission_bps | 推广者佣金比例 | 例如 200 表示 2%。 |
status | 状态 | 启用 / 停用。 |
start_at / end_at | 有效期 | 可独立控制推广者佣金生效窗。 |
created_at / updated_at | 时间 |
| promoter_type | 含义 |
|---|---|
ALL | 所有人推广都有佣金。 |
USER | 指定达人。 |
USER_GROUP | 达人组,后续扩展。 |
CHANNEL | 指定渠道,比如 honey_feed / whatsapp。 |
{
"product": "商品 A",
"userCashbackBps": 600,
"promoter": {
"promoterType": "USER",
"promoterRefId": "usr_mars",
"promoterCommissionBps": 200
}
}
含义:所有买家看到商品 A 都是 6% 返现;Mars 推广产生订单后,Mars 额外拿 M * 2% 推广佣金。其他达人不拿这笔佣金,除非另有配置。
管“谁改过规则”。这个表必须有,因为配置会影响钱。
| 字段 | 含义 |
|---|---|
id | 主键。 |
rule_id | 关联规则。 |
operator | 操作人。 |
action | 操作类型。 |
before_json | 变更前内容。 |
after_json | 变更后内容。 |
created_at | 操作时间。 |
操作类型:CREATE / UPDATE / ENABLE / DISABLE / BUDGET_ADJUST / TIME_ADJUST。
商品列表仍然来自三方平台。BeeX 在返回给前端前,用 country_code + platform + platform_product_id 匹配生效中的 product_promotion_rules,把推广配置合并到商品展示模型中。
三方平台商品接口 + BeeX 商品推广规则 = 前端展示商品
返回给前端时带上 promotion:
{
"promotion": {
"ruleId": "ppr_xxx",
"tags": ["高返", "蜜源圈精选"],
"userCashbackBps": 600,
"platformSubsidyType": "FIXED",
"platformSubsidyMinor": 500000,
"estimatedCashbackMinor": 685700
}
}
country + platform + platformProductId 如果有多条 ACTIVE 规则,必须按状态、有效期、预算、priority 选择唯一生效规则,保证前端展示和结算快照一致。USER_CASHBACK:商品返现。PLATFORM_SUBSIDY:平台补贴。COUPON_CASHBACK:返现券。REBATE_FUND:返佣基金。ACTIVITY_CASHBACK:活动奖励。PROMOTER_COMMISSION:推广者佣金。DIRECT_COMMISSION 或其他用户权益叠加,需要在结算规则中显式配置。推荐计算口径:
| 收益项 | 公式 |
|---|---|
| 买家商品返现 | M * user_cashback_bps |
| 平台固定补贴 | platform_subsidy_minor |
| 平台比例补贴 | USER_CASHBACK * platform_subsidy_bps |
| 推广者佣金 | M * promoter_commission_bps |
M 是三方平台订单回传的 BeeX 可分配佣金基数,不是订单 GMV,也不是商品成交价。生成转链或点击下单时,在 affiliate_clicks 保存以下字段:
promotion_rule_idpromotion_rule_snapshot_jsonpromotion_promoter_snapshot_jsonpromotion_source买家权益快照示例:
{
"ruleId": "ppr_xxx",
"userCashbackBps": 600,
"platformSubsidyType": "FIXED",
"platformSubsidyMinor": 500000,
"releaseDelayDays": 30,
"tags": ["高返"]
}
推广者佣金快照示例:
{
"promoterType": "USER",
"promoterRefId": "usr_mars",
"promoterCommissionBps": 200
}
orderId + ruleId + benefitType 幂等处理,不在点击时扣预算。商品推广配置
| 字段 | 说明 |
|---|---|
| 商品 | 商品图、商品名、商品 ID。 |
| 平台 | TikTok / Shopee 等。 |
| 国家 | 例如 ID。 |
| 标签 | 高返、爆品、蜜源圈精选等。 |
| 用户返现 | 买家基础返现比例。 |
| 平台补贴 | 固定补贴或比例补贴。 |
| 推广者佣金 | 推广者配置概览。 |
| 预算 | 预算总额、已使用、剩余。 |
| 有效期 | 开始和结束时间。 |
| 状态 | 草稿、待生效、生效中、已过期、预算耗尽、已停用。 |
| 最后修改人 | 最近一次操作人。 |
| 最后修改时间 | 最近一次更新时间。 |
| 操作 | 查看、编辑、复制、启用、停用、查看数据。 |
| 类型 | 状态 | 说明 |
|---|---|---|
| 数据库状态 | DRAFT | 草稿,不对前端生效。 |
| 数据库状态 | ACTIVE | 启用,但是否正在生效还要看时间窗和预算。 |
| 数据库状态 | DISABLED | 已停用。 |
| 后台展示状态 | 草稿 | 由 DRAFT 得出。 |
| 后台展示状态 | 待生效 | ACTIVE 且当前时间早于 start_at。 |
| 后台展示状态 | 生效中 | ACTIVE 且在有效期内且预算未耗尽。 |
| 后台展示状态 | 已过期 | 当前时间晚于 end_at。 |
| 后台展示状态 | 预算耗尽 | 预算大于 0 且已用预算达到上限。 |
| 后台展示状态 | 已停用 | 由 DISABLED 得出。 |
DRAFT / ACTIVE / DISABLED;“待生效、已过期、预算耗尽”是后台根据时间和预算计算出来的展示状态。| 建议 MVP 先做 | 暂缓 |
|---|---|
|
|
| 问题 | 建议口径 |
|---|---|
| 商品基础权益一致,是否表示最终返现完全一致? | 不是。同一商品的商品基础返现和平台补贴一致;用户自己的券、活动、账户权益可以另算。 |
| 多规则命中怎么办? | 按状态、有效期、预算、优先级选择唯一生效规则,不要让前端展示和结算快照分裂。 |
| 什么时候扣预算? | 点击只保存快照。订单回传并确认可结算时,按 orderId + ruleId + benefitType 幂等扣减和写收益。 |
| 推广者佣金和邀请人奖励是什么关系? | PROMOTER_COMMISSION 是商品推广配置产生的佣金,不默认替代直接邀请人奖励 DIRECT_COMMISSION。BeeX 只有一层直接邀请关系;两项是否叠加必须显式配置。 |
| release_delay_days 优先级是什么? | 商品规则快照优先;否则回退平台配置,例如 TikTok 7 天、Shopee 15 天;再否则回退全局默认。 |
| 没有命中商品推广规则怎么办? | 走现有默认返佣规则,不影响普通商品搜索和下单链路。 |
| 配置变更是否影响历史收益? | 不影响。收益生成时锁定规则版本、金额、释放时间;历史调整需要单独的人工批量重算或调账流程。 |
相关文档:蜜源圈 · 需求与技术方案 · 活动规则引擎(ECA) · 首页商品列表 → 购买链路