多用户商城系统三级分销的设计和实现

2021-03-26

分类:技术干货

根据三级分销系统的思想,我们以安菲多用户商城系统为例,一起探讨三级分销的设计和实现。


随着运营获客的成本逐渐提高,社交营销方式有着熟人及顾客沉淀的很好途径而受到很多人的青睐,尤其是以形成三级分销关系的持续性收入影响着一批人积极拓客,人人给你卖货,源源不断给平台带来低成本的流量。

三级分销的思想是用户通过分享链接或者二维码促成商品卖出,获取到一定比例的商品利润;另外用户促成交易获得一定比例的利润时,其上级用户也会获得一定比例的利润。

根据这样的思想,我们以安菲多用户商城系统为例,一起探讨三级分销的设计和实现。

首先我们设计一个分销关系表,需要记录分销用户的上线关系,我们使用用户的parentIdgrandpaId找到用户的上级与上上级的记录。

 分销关系表

然后需要用一个表来记录分销佣金,主要是用来记录已经确立分销关系的用户,在下级用户购买商品后,他的上级与上上级用户获得佣金的情况。

分销佣金表


另外我们还需要在安菲多用户商城系统的其他表中标识分销商品及设置分销佣金(用于给分销的用户分佣):

alter table `wst_goods` add isDistribut int default 0; // 是否分销商品0: 1:
alter table `wst_goods` add commission decimal(11,2) default 0; //
分销佣金

 

在店铺设置中开启三级分销,配置分销的模式:

alter table `wst_shop_configs` add isDistribut tinyint default 0; // 是否开启分销,1:开启 0:关闭

alter table `wst_shop_configs` add distributType tinyint default 1; // 分销模式,1:按商品设置提取佣金 2:按订单比例提取佣金

alter table `wst_shop_configs` add distributOrderRate int default 0; // 订单佣金比例
alter table `wst_orders` add distributType tinyint default 0; //
订单类型,1:按商品设置提取佣金 2:按订单比例提取佣金

alter table `wst_orders` add distributOrderRate int default 0; // 分成比例,如:30:20:50

alter table `wst_orders` add distributRate varchar(20); // 订单佣金占订单百分比

alter table `wst_orders` add totalCommission decimal(11,2) default 0; // 分成佣金

alter table `wst_orders` add dmoneyIsSettlement tinyint(4) default 0; // 分销佣金是否结算,1:是 0:否

alter table `wst_order_goods` add commission decimal(11,2) default 0; // 分销佣金

alter table `wst_users` add distributMoney decimal(11,2) default 0; // 分销佣金

alter table `wst_users` add isBuyer tinyint default 0; // 是否购买商品标识,1:有 0:无

 

由于安菲多用户商城系统是采用核心部分高内聚、辅助功能插件化的特性,我们只需要在它需要调用的地方埋下钩子,在调用的时候触发即可,这种设计方式会很好地降低系统的维护和二开成本。

完成了上述的操作后,我们在系统的以下几个地方存放钩子函数,在特定的场景触发:

 

商家端分销设置:

在商家端“促销管理”-“分销设置”:

“分销开关”,当开启开关,会将“wst_shop_configs”表的“isDistribut”字段设置为1,否则设置为0,开启分销开关后,商家端新增商品与编辑商品会多了“是否为分销商品”的设置。

“分销模式”对应“wst_shop_configs”中的“distributType”字段,选择“按商品设置提取佣金”字段保存的值为1,选择“按订单比例提取佣金”字段保存的值为2。这个设置的作用是告诉系统用户获得的佣金是以什么方式来进行计算的。

 

商家端新增或编辑商品:

商家端开启分销后并且“分销模式”为“按商品设置提取佣金”,这里会多了“是否为分销商品”,选择“是”将“wst_goods”的“isDistribut”改为1,否则改为0,选择“是”下面会多了一行“分销佣金”,设置分销佣金会记录“wst_goods”中的“commission”字段里。

 

商品详情页显示分销提示:

若商品为分销商品,商品详情页会显示分销提示,点击提示查看分销佣金获取的规则。

 

用户注册时:

根据用户注册时携带的shareUserId,在“wst_distribut_users”表生成一条记录,userId为用户idparentIdshareUserId。实现分销系统绑定上下级关系的操作。

用户提交订单时:

如果是含有分销商品的订单,在“wst_distribut_users”表查看当前下单的用户是否存在分销上级用户,如果存在根据“分销模式”计算出订单下,用户获得的每一个商品佣金,并记录在“wst_order_goods”订单商品表里的“commission”字段,最后还要把订单的总佣金记录在“wst_order”的“totalCommission”字段。

 

用户确认收货时:

查询订单商品表,是否含有佣金信息,如果是要往分销佣金表“wst_distribut_moneys”插入记录。

 

这样多用户商城系统三级分销的设计和实现全过程就完成了,下面我们看看实现的效果:


 

好的,以上是安菲云为大家分享的多用户商城系统三级分销的设计和实现思路,欢迎更多的朋友在文章底部留言交流。

安菲云公众号

New最新资讯

公众号

关注公众号

微信咨询

企业微信号

咨询热线

咨询热线

18696588163