编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

趁热打铁,在Nopcommerce中实现京东商城的会员晋升制

wxchong 2024-10-27 15:45:17 开源技术 116 ℃ 0 评论

上一篇介绍了.net平台下三个优秀的开源项目(见.net 平台下三个优秀强劲的开源项目(框架),你用过吗?)。这次介绍下借助Nopcommerce本身自带的角色插件、折扣插件来实现类似京东商城的会员晋升制。

先看下京东会员的级别简介:


会员级别大概分为上图几类,但我们把注册会员去掉,让注册成功并激活的账号成为铜牌会员。成长值范围、有效期及到期扣减值与上图一致。

下面设定下积分增加及扣减的规则:

获得途径:

登录送成长值:用户每日首次登录送5成长值,立即发放。

购物送成长值:

1、用户在商城下单,可获得成长值(成长值=结算金额*100%,结算金额指实际支付金额),订单完成后发放。

2、发生退货时,扣除订单已获得的成长值。

评价送成长值:对订单商品进行评价,通过审核后获得20成长值,评价审核通过后发放。

扣减途径:

1、评论被管理员删除,扣除相应成长值。

2、发生退款退货时,扣除订单已获得的成长值。

3、会员级别有效期到期扣除(数值参考上图)。

成长值规则确定好了,我们就可以开始设计数据库表了,这里需要新增两张表:成长值记录表、会员级别表,如下:

成长值记录表:

会员级别表:

将以上两张表的实体类放在nop.core.domain.customers目录下,然后在nop.data.mapping.customers下添加其映射关系。接下来就可以编写service了。会员级别的后台管理页面不在这里实现,需要的同学参照其他管理页面来做。成长值计算服务接口提供如图方法:

这里只解释下AddCustomerGrowthValue方法,因为其他方法都没什么逻辑比较简单。看下此方法的实现:

首先获取最近一次获得记录,分析出当前所处会员级别并计算最新的成长值余额。

接下来设置会员级别。

更新到数据库。

规则已经实现,接下来就是调用了,合登录送成长值为例,找到登录代码,添加以下代码:

_growthHistoryService.AddCustomerGrowthValue(5, customer,

GrowthMethod.Login, string.Format("登录账户:{0},登录时间:{1}",

usernameOrEmail, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));

注意判断是否首次登录哦,不然,呵呵,你懂的。扣减值也是一样的,只不过数值为负数而已。对于会员过期,我们可以使用Nop提供的计划任务来实现,计划任务的实现不在此讨论。

接下来,你需要添加铜牌会员、银牌会员、金牌会员及钻石会员这几个角色,并在会员级别管理中添加与这几个角色绑定的会员级别即可。

如果你需要为不同会员设置不同的折扣优惠,可以在后台促销管理->折扣管理中添加折扣,折扣类型选择为 "Must be assigned to customer role",也就是折扣与角色绑定,然后一一选择角色绑定并设置折扣值。

最近来看下用户中心显示的成长值记录:

总结:对于电子商城,会员系统是很重要的一部分,会员级别的设置也是必不可少的,但Nop中没有提供此模块,为适合国内客户,同学们可以参考此文章来实现。我这里只是简单实现一下,仅供刚接触Nop的新手参考,有兴趣或有能力的同学可以通过使用插件或其他更优的方式实现。由于篇幅问题,不能把所有代码全部贴出,还望谅解。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表