网站首页 > 开源技术 正文
上一篇介绍了.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的新手参考,有兴趣或有能力的同学可以通过使用插件或其他更优的方式实现。由于篇幅问题,不能把所有代码全部贴出,还望谅解。
猜你喜欢
- 2024-10-27 解析开源商城系统的五大天王:功能丰富,你选哪个?
- 2024-10-27 .NET 中依赖注入组件 Autofac 的性能漫聊
- 2024-10-27 基于.NET Core企业级免费开源的内容管理系统SSCMS
- 2024-07-20 10个.NET开源源码框架(net 开源)
- 2024-07-20 5个yyds的.Net商城开源项目(开源商城app源码)
- 2024-07-20 基于.NET Core的优秀开源项目合集
- 2024-07-20 Util应用框架核心(二)- 启动器(uos启动器)
- 2024-07-20 Util应用框架概述(utilitymanager)
- 2024-07-20 基于.NET Core全球最受欢迎的开源免费电商平台
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)