@jean
2016-11-30T10:01:43.000000Z
字数 6288
阅读 1707
未分类
这个项目的目标是开发一个「返利系统」并完成一个「B 端后台」, 让导购合作方 (下文统称为: 流量主) 可以随时查看返利业绩以及申请提现 (和我们合作订单的返利). 项目上线之初可能会在内部以及与现在的流量主先试用, 没有问题后开始向更多流量主开放.
@Panda 希望我们的海淘从 to C 转型成 to B 以便实现平台化, 进而提出将整个业务以模块化的形式分拆的想法, 其中包括单独的返利系统.
流量主需求
1.1 可通过我们给予的 App Key 打开返利商品, 当然这些商品必须可以下单;
1.2 对于 (基于 App Key 展示的) 返利商品产生的订单, 可获得相应的返利;
1.3 可查看业绩报表, 根据自己的账号而非任何人可看到所有人的业绩报表;
1.4 可将返利申请提现, 这说明此项目还需要有配套的财务后台;
1.5 适配问题: 暂时只需要考虑 iOS / Android / H5 平台, 不需要考虑其他平台比如 PC, 微信端等
1.6 账号体系对接: 有体系可不注册, 没体系还需要注册 6city.
运营团队需求
为了让项目更早上线, 内部测试阶段暂无运营需求
财务部需求
流量主申请的返利提现, 此功能前期通过数据导出, 不单独开发配套后台查看. 因此需要给财务相关人员开通查看 6 city 相应后台的账号和权限 (每月 10 号返利, 增加一个文字提醒).
搭建在 6 city 现在的后台上, 导航位置如下图所示 (待补):
登录之后直接打开「业绩报表 - 日期报表」即可.
日期报表可用于数据分析和对账, 订单报表可用于查看具体订单的金额状态和返利情况等, 两者各有各的用处并不互相冲突, 需要都做.
条件 | 控件 | 默认状态 | 输入数据 | 控件要求 |
---|---|---|---|---|
开始时间 | (无时分秒的) 日历控件 | 空 | 已被控件限制 | 详见补充说明 |
结束时间 | (无时分秒的) 日历控件 | 空 | 已被控件限制 | 详见补充说明 |
汇总规则 | 下拉框 | 按天显示 |
已被控件限制 | 详见补充说明 |
补充说明:
- 开始时间设置好后, 代表点击「查看」按钮时, 会从该日期的 0:00:00 作为筛选条件
- 结束时间设置好后, 代表点击「查看」按钮时, 会从该日期的 23:59:59 作为筛选条件
- 如果开始时间或者结束时间没有设置的话, 则认为不以该时间作为筛选条件, 都没设置则查看所有记录
- 汇总规则下拉框:
- 按天显示 (默认项)
- 按月显示
- 按年显示
- 还需要一个导出成 Excel 的按钮, 点击之后按当前筛选结果导出
标题 | 展示数据 | 示例 |
---|---|---|
日期, 以此字段倒序显示 | 每一天的日期 | 20161125 |
全部订单数 | 商品被用户提交支付的次数 (不论是否付款) | 50,000 |
有效订单数 | 用户支付成功的商品件数 (退款后不会减少) | 45,000 |
全部订单额 | 全部订单中商品金额的累加 | 1,500,000 |
有效订单额 | 支付成功的订单中商品金额的累加值 | 1,200,000 |
全部返利额 | 全部订单乘以各平台返点之后金额的累加值 | 45,000 |
有效返利额 | 支付成功的订单乘以各平台返点之后金额的累加值 | 40,000 |
条件 | 控件 | 默认状态 | 输入数据 | 控件要求 |
---|---|---|---|---|
订单创建开始时间 | (无时分秒的) 日历控件 | 空 | 已被控件限制 | 详见补充说明 |
订单创建结束时间 | (无时分秒的) 日历控件 | 空 | 已被控件限制 | 详见补充说明 |
转运开始时间 | (无时分秒的) 日历控件 | 空 | 已被控件限制 | 详见补充说明 |
转运结束时间 | (无时分秒的) 日历控件 | 空 | 已被控件限制 | 详见补充说明 |
商品编号 | 文本框 | 空 | 不限制 | 去两端空格, 精确匹配 |
商品状态 | 下拉框 | 全部状态 |
已被控件限制 | 详见补充说明 |
补充说明
- 开始时间设置好后, 代表点击「查看」按钮时, 会从该日期的 0:00:00 作为筛选条件
- 结束时间设置好后, 代表点击「查看」按钮时, 会从该日期的 23:59:59 作为筛选条件
- 如果开始时间或者结束时间没有设置的话, 则认为不以该时间作为筛选条件, 都没设置则查看所有记录
- 商品状态的下拉框选项中, 将所有状态列出:
- 全部状态
- 待付款
- 已取消
- 等待官网发货
- 官方已发货
- 转运中 (可结算)
- 已收货 (可结算)
- 还需要一个导出成 Excel 的按钮, 点击之后按当前筛选结果导出
标题 | 展示数据 | 示例 |
---|---|---|
商品编号 | - | 391477525006898664 |
商品状态 | 商品当前的处理状态 | 详见补充说明 |
商品名称 | 商品的名称, 商品链接作为其超链接 (从新窗口打开) | Apple Macbook Air 11.6" 1.3 GHz Core i5 128 GB SSD, 4GB RAM, Yosemite- MD711LL/A |
数量 | 用户下单时所选择该商品的数量 | 1 |
外币价格 (单价) | 该商品在其网站上的价格 | $USD 399.99 |
实付金额 (单价) | 用户实际支付的金额 | 详见补充说明 |
返点 | 该商品所在网站的返点 | 3% |
返利金额 (总价) | 实付金额 (× 商品数量) × 返点 | 详见补充说明 |
下单时间, 以此字段倒序显示 | 用户付款时间 (不会未付款) | 2016-11-24 12:14:28 |
转运时间 | 用户提交转运时间 | 2016-11-30 12:14:28 |
补充说明
- 商品状态的状态:
- 待付款
- 已取消
- 等待官网发货
- 官方已发货
- 已入库
- 转运中 (可结算)
- 已收货 (可结算)
- 实付金额
- 财务未收到打款时, 则显示「-」
- 财务收到打款时, 将用户实际支付的金额填入
- 返利金额
- 金额 = 实付金额 (× 商品数量) × 返点
账号信息是个页面, 但最初的数据来源是注册页面.
标题 | 控件 | 是否必填 | 控件要求 |
---|---|---|---|
原密码 | 密码类型文本框 | 是 | 6~18个字符以上的英文和数字字组成, 暗文显示不可切换成明文 |
新密码 | 密码类型文本框 | 是 | 6~18个字符以上的英文和数字字组成, 暗文显示不可切换成明文 |
确认密码 | 密码类型文本框 | 是 | 需要和「新密码」完全一致 (包括大小写), 暗文显示不可切换成明文 |
- 点击「修改」时, 依次做如下判断:
- 如果表单中有必填项未填写, 则按字段从上至下顺序提醒「请填写XXX」
- 如果原密码不正确, 则提示「原密码不正确」
- 如果新密码没有按照要求填写, 则提示「请按要求填写新密码」
- 如果确认密码和新密码不一致, 则提示「两次密码填写不一致」
- 点击「取消」时, 不修改密码, 返回「银行信息」页面
标题 | 控件 | 是否必需 | 控件要求 |
---|---|---|---|
银行名称 | 下拉框 | 必选 | 选项 如图 所示, 第一项为默认项, 右边提示「如没有列出您的银行卡, 请选择其他. 请不要在这里设置信用卡.」 |
银行所在省市 | 三个联动下拉框 | 必选 | 下拉框会随着左边的下拉框变动, 而且在右边提示「为了您可以正常收款,请仔细填写」 |
开户行支行名称 | 文本框 | 必填 | 无 |
银行账号 | 文本框 | 必填 | 考虑到以后可能出支付宝打款, 这个文本框还是不要做输入数据的限制了 |
账号性质 | 下拉框 | 必选 | |
选择「公司账户」时 | - | - | - |
公司账户名称 | 文本框 | 必填 | 无 |
营业执照号 | 文本框 | 必填 | 无 |
营业执照正面 | 图片上传控件 | 必传 | 在右边提示「请上传 jpg、png、gif 格式的扫描件,大小不超过 10M」, 上传限制同说明 |
开户许可证 | 图片上传控件 | 必传 | 在右边提示「请上传 jpg、png、gif 格式的扫描件,大小不超过 10M」, 上传限制同说明 |
选择「个人账户」时 | - | - | - |
开户人 | 文本框 | 必填 | 无 |
身份证号 | 文本框 | 必填 | 无 |
身份证正面 | 图片上传控件 | 必传 | 在右边提示「请上传 jpg、png、gif 格式的扫描件,大小不超过 10M」, 上传限制同说明 |
身份证背面 | 图片上传控件 | 必传 | 在右边提示「请上传 jpg、png、gif 格式的扫描件,大小不超过 10M」, 上传限制同说明 |
标题 | 控件 | 是否必填 | 控件要求 |
---|---|---|---|
用户名 | 文本框 | 是 | 由4~10个字符的小写英文字母或数字组成 |
密码 | 密码类型文本框 | 是 | 6~18个字符以上的英文和数字字组成, 暗文显示不可切换成明文 |
账号性质 | 下拉框 | 已被控件限制 | 默认选中「企业」, 可切换选项为「个人」 |
企业名 | 文本框 | 是 | 详见补充说明 |
联系人真实姓名 | 文本框 | 是 | 无 |
邮箱地址 | 文本框 | 是 | 无 |
联系人 QQ | 文本框 | 是 | 只能输入数字 |
移动电话 | 文本框 | 是 | 只能输入数字 |
短信验证码 | 文本框 | 是 | 边上配有一个「获取短信验证码」的按钮 |
补充说明
- 点击告知用户「*
为必填项」, 其实目前都是必填项;
- 如果「账号性质」选择了「企业」, 则下拉框下方额外显示一项 (其他项目相应下移)「企业名」, 切换成「个人」时,「企业名」一项隐藏
- 点击「注册」时, 依次做如下判断:
- 如果表单中有必填项未填写, 则按字段从上至下顺序提醒「请填写XXX」
- 如果短信验证码不正确, 则提示「短信验证码不正确」
- 如果用户名没有按照要求填写, 则提示「请按要求填写用户名」
- 如果密码没有按照要求填写, 则提示「请按要求填写密码」
- 告知用户「真实姓名不可更改,请谨慎填写」;
待确定
就用现在后台的登录页面, 但需要增加一个「忘记密码?」的纯文字按钮.
页面不用太复杂, 填写正确之后自动发送电子邮件至注册邮箱.
每月 10 日发放, 需要提现请于该月 5 日 23:00 之前申请, 在此时间之后申请的提现将会于下月发放.
标题 | 控件 | 是否必需 | 控件要求 |
---|---|---|---|
提现金额 | 文本框 | 必填 | 只能输入数字和小数点, 保存时去两端空格 |
开户人 | 下拉框 | 必选 | 该账号打开此页面时, 已添加的银行账户开户人 |
银行名称 | 无边框只读文本框 | 无法编辑 | 切换「开户人」选项后, 自动填充 |
支行名称 | 无边框只读文本框 | 无法编辑 | 切换「开户人」选项后, 自动填充 |
银行卡号 | 无边框只读文本框 | 无法编辑 | 切换「开户人」选项后, 自动填充 |
预计到账时间 | 无边框只读文本框 | 无法编辑 | 显示预计到账时间 (11.04 提现则提示 11.10, 11.25 提现则显示 12.10, 以每月 5 日为界限) |
补充说明
- 必填 (选) 项没有填写时点击「申请提现」, 则提示「请填写 XXX」, 都没填写时点击则提示「请填写提现金额」
- 提现金额文本框右边增加提示「可申请提现的余额为: XXXX 元」, 填写的提现金额如果大于这个金额点击「申请提现」, 则提示「申请失败, 提现金额超过最大值」, 提示的优先级低于未选择银行账户
标题 | 展示数据 | 示例 |
---|---|---|
日期 | 如上图 | 2016年01月 |
获得的返利 | 该账号该月所有返利订单金额的总合 | 2,532.41 元 |
申请的提现 | 该账号该月申请提现金额的总和 | 9,600.00 元 |
余额 | 帐户上剩余可提现的金额 | 40,574.15 元 |
补充说明
- 获得的返利是财务认为可结算的日期来计算, 记的也是可结算的返利金额, 而非用户下单时间和待付款等金额, 单位都是人民币
- 申请的提现是上个月 10 日到该月 10 日之间申请的全部提现金额的总和, 而非自然月中所有申请提现金额的总和
- 余额不包括已经申请的提现部分: 帐户总金额 10,000 元, 该月已申请提现 (不论是否到账) 9,000 元, 则余额为 1,000. 这样可以避免因为歧义而重复提现. 这里先不考虑财务是否真的打款, 只要申请提现就从余额中扣除.
- 找一个位置增加一个下拉框, 可以让用户选择不同的年份来显示汇总信息 //为了简便, 可以直接列出一年所有的月份 (不用管返利是否产生和提现), 选项先做两个2016 年
&2017 年
, 其他以后慢慢加
标题 | 展示数据 | 示例 |
---|---|---|
申请日期 | 单位为自然日 | 20161121 |
支付日期 | 单位为自然日 | 20161110 /只显示每月 10 日, 该笔申请没支付则不显示 |
开户名 | 申请提现的银行帐户 | 王俊杰 |
银行名称 | 申请提现的银行名 | 招商银行 |
银行账号 | 申请提现的银行卡号 | 6214********3969 |
申请金额 | 单位为人民币 | 800.00 元 |
由于商品链接中需要写 C 端用户 uid, 批量生成链接没有意义, 因此这里只需要写明链接规范和参数说明.
标题 | 链接规则 |
---|---|
添加商品 | http://m.6city.com/ProductCrawl/AddCart? 「crawlUrl = 商品地址」&「uid = 用户唯一号」&「fromClient = 客户端类别」&「AppKey」 |
购物车 | http://m.6city.com/ShoppingCart/List? 「uid = 用户唯一号」&「fromClient = 客户端类别」&「AppKey」 |
我的订单 | http://m.6city.com/ProductOrder/List? 「uid = 用户唯一号」&「fromClient = 客户端类别」&「AppKey」 |
http://m.6city.com/ProductCrawl/AddCart?crawlUrl=http://www.6pm.com/calvin-klein-benton?PID=7739958&AID=10536619&utm&Uid=003&fromClient=2&appKey=e0711b5d1adf4ac383016a188078e27a
http://m.6city.com/ProductCrawl/AddCart?crawlUrl=http://www.6pm.com/calvin-klein-benton?PID=7739958&AID=10536619&utm&Uid=003&fromClient=2&appKey=e30765f266bc4d12a0d349e70c73aa03
http://m.6city.com/ShoppingCart/List?Uid=001&fromClient=2&appKey=e0711b5d1adf4ac383016a188078e27a
http://m.6city.com/ProductOrder/List?uId=001&fromClient=2&appKey=e0711b5d1adf4ac383016a188078e27a
参数名 | 类型 | 说明 | 示例 |
---|---|---|---|
crawlUrl | string, 需要 encode | 商品详情页url地址 | Http://www.xxx.com/ |
uid | string | 用户的唯一标识key | 「123」或者「abc」 |
fromClient | 固定值:2代表iOS、4代表Android | 来源客户端 | 「iOS」或者「2」 |
AppKey | string | 代表这个应用 | auhsduahfiafjhiasfjioaf |