红包

背景

我们是一个硬件初创公司,经过几个月的努力,新产品终于要上架了.
这个项目,之前是在indiegogo上众筹的项目,为了感谢天使用户的支持,我们决定给最早一批支持者每人一个VIP卡,有了这个VIP权限,以后购买我们产品都有折扣.

需求

虽然看上面说的是挺简单的,可是实际落地的时候还是要涉及到几个部门的协作,后台要做数据库,前台程序需要判定是否弹出VIP激活页面,激活交互逻辑流程是啥样的,硬件(VIP卡)要怎么印刷,几千个随机的VIP编码应该如何印刷出来?

有了上面的场景需求,首先就要捋一捋具体要怎么落地了,到底有几件事,软硬件的逻辑是怎么样的呢?

  1. 首先要生成一批VIP码.
  2. 把VIP激活码打印到卡片上.
  3. 把卡片随同产品包装,寄到用户手上.
  4. 用户打开APP,输入激活码.
  5. 用户头像上会显示一个VIP标识.
  6. (未来)用户购买产品时,系统判断用户是否是VIP用户,如果是VIP用户则自动打折.

先画张图:
VIP激活流程

如何落地实现呢?

生成激活码

首先是生成一定数量不重复的激活码.(设计师跟供应链的同事一听就郁闷了,这么多随机码,还不是按顺序的,怎么输出设计稿呢?但是道理大家也明白,激活码没有逻辑以免被用户猜到啊.)
可以选择在线生成的或者找程序员写一下,随机生成还是蛮容易的,不过这里注意几件事:

  1. 位数,随机码的位数不能太长,大小写最好不做区分,这样用户输入起来体验会好一点.(比如)
  2. 随机码生成的文件格式.建议使用 CSV或者txt的,后期处理起来比较方便.
  3. 数量,这个根据需要印刷和在线提供的活动需求生成.

后台逻辑

拿到激活码后,跟后台的同事体需求:

  1. 需要吧事先生成的随机码导入到数据库中.(确定格式,大小写和位数.)
  2. VIP码需要有几个状态:0-没用过; 1-已经用过 ;空(不存在).
  3. 用户状态需要添加VIP状态:1-是VIP 0-不是VIP(默认)
  4. 当用户不是VIP且激活码正确未被使用过,则把用户状态标示为 1(VIP)
  5. 当用户已经是VIP时,不可重复激活.

前端/原生开发

ui需要设计相应的页面:

  1. 用户登录后闪屏效果.
  2. VIP 激活页面
  3. VIP激活成功后的页面
  4. 用户激活后,用户信息界面的VIP标识符

开发人员的相应需求:

  1. 判断用户是否为VIP.
  2. 根据需求做VIP激活页面跳转,查询,判断,提示框功能开发.
  3. 根据UI,调整成功后用户个人信息界面的VIP标识符.

page-1-001vip_弹框-w375page-1-003vip_填写激活码-w375

page-1-005vip_激活成功-w375

平面设计,VIP卡片制作

设计师按照需求设计VIP卡片,这个需求比较容易,难点在于如何批量的打印输出.
供应链的小伙伴们找了几家供应商,一来是时间比较紧急,二来是大家之前印的都是按顺序的码,你这一下给了几万个随机码,他们也没啥好方法.

按理说按照数据库里面打印一批随机码,本来不是什么难事儿,你看各种标贴什么的不都是可以打印么?怎么打印一个随机码这么难?
经过跟几个工厂沟通,发现他们使用的打印软件,还是经典的 CorelDraw 系列,其他的标贴打印没法做到分色印刷,网频啊,等专业需求,所以工厂的需求是:要么就是我们一次性输出给他们,他们直接印刷,要么就把数据给他们,他们人工输入,但是时间跟成本要翻倍.

后来经过研究,发现CDR里面有一个经典的功能,叫做合并打印,也就是可以设置一个变量表,表里面可以有相应的值,然后把变量名放入到页面中,就可以快速完成设计输出了.
有几点需要注意:

  1. 需要先了解印刷厂的纸张尺寸,比如印刷纸张的开数.
  2. 印刷厂最好先提供他们的预印文档,有我方团队根据预印文档再次生成随机码,这样才不会导致太多重复工作.
  3. 根据单页印刷的数量设计变量值的个数.比如一页有30张,可以做三十个变量值.
  4. 使用CSV格式来处理数据更方便(支持EXCEL编辑)

VIP卡片
(一次生产N多页的随机码打印预览)