礼品卡,从线下实体商场、超市,发展到线上电商,已经成为一种便捷的消费方式,企业员工福利送礼、亲朋好友好礼赠送,礼品卡逐渐演变成了一种消费时尚。下面我们就聊聊电商行业中怎么从0到1搭建一个礼品卡系统核心。
礼品卡功能模块
礼品卡主要分为实体卡和虚拟卡,实体卡主要用于包装成实体商品进行线上、线下售卖,由持卡人在电商应用兑换入口上进行绑定激活,后续可用于商城购买消费。而虚拟卡实质上就是一个虚拟商品,直接由用户在商城应用上进行线上购买、绑定、激活等操作。礼品卡核心基础模块主要拆分为礼品卡管理和礼品卡资金账户。
礼品卡管理:
礼品卡规格配置:礼品卡创建模版、包括了卡面定义、卡类型、面额、库存、发行渠道、使用有效期等卡属性定义。
礼品卡记录:根据礼品卡模版生成的具体卡记录信息。
礼品卡赠送流水:跟踪用户礼品卡转赠行为流水,包含赠送人、赠送卡号、赠送时间、受赠人、受赠时间等。
资金账户:
用户资金账户:礼品卡绑定激活后,开具对应的虚拟资金账户,用于后续资金交易。
资金交易流水:礼品卡资金交易变动明细,跟踪账户余额变动。
数据库实体设计
基于功能模块上的业务分析,礼品卡的发放创建,需要先不同的卡面、价格、库存、卡类型、发行渠道、使用有效期等属性定义好规格配置,当用户发生购买发卡或者实体卡批量生成操作时,系统需根据每个卡规格配置定义生成具体的礼品卡;用户绑定激活礼品卡时,需根据卡面额给予用户开具礼品卡虚拟资金账户,用户后续消费场景;当用户发生消费交易业务时,交易订单驱动用户资金账户余额变动,登记账户资金变动台账流水。直接上干货,表设计如下:
典型业务流程设计
讲完数据库实体设计,继续分析主要业务流程设计,下面将从购卡、赠送、激活、支付分解各个流程的处理操作。
线上购卡(商城应用内礼品卡购买场景)
用户在商城进行礼品卡下单购买操作(微信支付),由下单系统进行订单统一处理,检查礼品卡库存,如库存足够,向礼品卡系统发起库存扣减,扣减成功直接返回下单成功,扣减失败或库存不足,直接返回下单失败。
用户操作微信支付确认,支付完成后,微信支付回调订单系统支付成功结果,订单系统同步礼品卡系统订单支付状态,并由礼品卡系统对用户进行发卡操作,完成购卡流程。
礼品卡赠送
为了实现线下礼品卡送礼收礼的业务场景,用户对未激活的礼品卡可发起转赠,当用户提交赠送操作后,礼品卡系统后台更新持卡人持卡赠送状态,记录赠送流水,并构建分享token返回前端处理。
当赠送人将分享链接通过微信聊天窗口、朋友圈等分享后,受赠人点击链接地址签收礼品卡,系统后台对链接请求token进行数据有效性验证、并发控制处理,更新赠送流水状态,填入受赠人信息,并更新礼品卡的持卡人关系状态
绑定激活
用户对未激活的礼品卡进行绑定激活操作(虚拟卡直接激活绑定,线下实体卡通过卡号密码方式进行输入绑定激活),系统后台校验卡状态,如可正常激活,更新持有人礼品卡状态,针对礼品卡创建对应的用户资金账户,根据卡面金额,做一笔充值交易将金额转入礼品卡资金账户中。
礼品卡支付
用户在商城内做商品购买时,可选择使用礼品卡支付,这个流程和普通下单流程一样,经过订单系统进行下单结算处理,资金清算渠道变为礼品卡系统,由礼品卡进行资金交易处理,记资金变动明细,更新用户资金账户余额,完成整个下单流程处理。
回顾总结
整个礼品卡的设计核心,主要是围绕着礼品卡管理和资金账户体系,礼品卡管理对应卡产品维度业务,包括建卡、发卡、赠卡等业务,只要没有激活绑定,卡就不具备资金结算能力。而资金账户体系,是从另外一个维度赋予了卡的资金结算职能,这两者是有必要做好业务抽象的。礼品卡每一家公司都有自己的一套玩法,没有最好的解决方案,只要适合自身平台的业务场景就是好的解决方案。