https://www.jianshu.com/p/3ef577eaacac

1.三个真实的案例

案例1:最近面试的将近20位产品经理里面,我都会问一道问题:请您为我公司的订单系统设计一套订单号的生成规则。应聘者里面有一两年的职场新人,也有工作将近十年的老鸟,当然也不乏运营或者开发转岗到产品的,有些甚至还做过订单与支付系统,但几乎所有的面试者都没能说的很全面。

案例2:去年的某个时间,朋友A所在的公司订单系统改造升级,开发在没有知会运营和市场的前提下将订单号长度由14位改到了19位(事后得知产品人员当时也不知情),而公司现有的用户至少70%都在使用货到付款的刷卡支付,即每次刷卡前都需要输入订单号,然后你懂的,整个市场炸锅了,开发于是紧急发版,又把订单号的长度改回了14位。

案例3:再说说6年前的一个经历。当时朋友(简称为C吧)在一家游戏公司做PHP网站开发,C和其他几位开发完成了整个游戏的在线支付系统,并且联调成功了。系统运行后发现了一个情况,某游戏玩家充值了5万块钱,当时运营人员想查下是什么时间充值的,但后台系统里面没有记录充值时间,无奈之下只能去数据库查到了时间戳,然后根据时间戳反查出来了充值时间。

2.近20位产品经理给出的答案

再回到上述案例1里面的问题,其实题干里面还隐含了一个关节信息,即该系统是为我公司设计的,而不是其它公司设计的(我公司现在做酒饮类B2B,未来可能会做B2C或其它)。但回答者几乎都忽略了这一点。

这些应聘者的原话记不清了,但主要就以下这些思路及其组合,括号里面是我的点评(吐槽):

订单号由数字和字母和连字符-组成(您考虑过英文和拼音发音分不清楚的用户么?连字符起什么作用?);

订单号由时间/年月日时分秒和随机数组成(仅时间20161111112233就14位了啊,随机数你打算再来几位?考虑到支付峰值每秒10万笔订单,系统怎么来随机?再加5位数?)

订单号前几位标识商品,比如茅台编码是001,五粮液是002,既有茅台又有五粮液是003,后面由日期+随机码构成(商品标记会有什么意义?即便商品数量只有几十个的情况下,他们的排列组合也很多啊,这个得多少位?);

由下单日期+用户手机号+随机数构成(即便日期只取月和日会占4位,加上11位手机号也15位了,而且日期会重复,每个用户每天可能会下很多单,而且用户手机号不具有唯一性。后来有人提过类似的规则,只不过将用户手机号换成了唯一的user id,但user id还是会很长);

根据卖家和买家的ID+随机数生成订单号(如果是C2C网站,用户体量在几千万上下,这样就需要至少8位来标记用户ID,随机数即便1位的话订单号也得17位,但实际情况有可能买家经常在某个卖家那买东西,3位随机码都不一定够用);

根据商品的品类+时间+随机数生成订单号(他没有具体说是大的品类还是小的品类,如果是小的品类,可能也会很多);

那么问题来了,一个好用又好看的订单号,应该具备哪些规则和依据呢?

关于这个问题,知乎和简书上都有很多相关的讨论,比如这篇《电子商务网站中订单号设计有什么规则和依据吗?》和这篇《电商订单号设计思考》,里面一些关于订单号的生成规则和依据很值得参考,在此,我说点自己的理解。

3.订单号怎样生成才好用

回到问题的本质,订单号是拿来干嘛用的?谁会关注订单号?简而言之,订单号是用来标记/查询订单(查询的时候可能更关注于物流单号)用的,一般会在订单有支付/售后/异常问题的时候会用到,也就是说订单号主要是拿给客服/运营/开发部门用的。

那么客服在处理一笔订单的时候,什么格式的订单号才会好用呢?首先订单号中最好避免数字以外的其它字符类型,订单号尽量短,订单号尽量能结合当前的业务情况有特定的标识,如渠道编号(包括平台、下单渠道、支付方式)、业务类型和时间信息等。为了便于理解,下面还是举例说明:

平台:这个以游戏举例,目前很多手游除了官方服务器外,还有一些是和其它平台比如小米、腾讯联合运营的,但是充值有可能是用的同一套,这种情况就很有必要在订单号中标记平台;

下单渠道:目前很多电商产品都涵盖多平台,包括WEB、APP(Pad)和门店(比如1919和苏宁等),比如通过订单号发现近期反映的问题都来自于APP,则理论上可以推断出APP渠道有问题。

支付渠道:如上文案例2所说,不同支付方式会遇到的问题也是不一样的,比如货到付款的刷卡支付仅POS机错误代码就几十项,而支付宝基本不会有这些。比如APP不支持公司转账,如果某订单有了代表公司转账的标识位,不用后台查询即可知道这是一笔来自WEB的订单等等。同样,用户反映该订单号无法使用红包,客服人员也可以通过支付渠道标识位来识别出是因为红包功能在APP上没有上线造成的;

业务类型:以前在游戏行业的时候,我们一般会把订单号的某一位用来标识游戏名称,比如梦幻西游、魔兽世界和阴阳师分别用1、2、3来标识。这样遇到相关问题时,不用后台查询即可快速识别出问题并把其转给相关游戏团队。同理的还有零售和团购,自营订单和入驻商家订单,2B业务订单和2C业务订单;

时间信息:有时间信息会让客服/运营人员看到订单时不需要经过后台查询即可知道该订单时哪天产生的,可以简单的判断问题的紧急程度。同时在B2B业务中,我们也可以根据该时间推算出大致的清分结算时间等等。所以我的建议是如果业务类型决定了客服类问题比较多,则有必要在订单号里面加上这个信息。但时间的完整格式2016年11月11日 11点22分33秒这样的显示出来就是20161111112233,年和时分秒信息略显多余,只记录月和日即可;

综上,我给出的好用的订单规则是这样的:

下单渠道1位+支付渠道1位+业务类型1位+时间信息4位+下单时间的Unix时间戳后8位(或是这8位数字加上随机码和随机规则进行随机后的数字)+用户user id后4位。然后你会说,这样算下来就订单号就19位了啊,一点都不精简啊,不好记不好念不好输的。但我说的上面的这些业务标记,你不一定要全部加上啊。

然后我们再来看看《电商订单号设计思考》中提到的那2个问题:

问题1:为什么淘宝单号这么长?前几年还12、13位,现在都16位了?订单号之所以那么长,我的理解是短了不够用,毕竟那么大的用户基础和订单量。至于现在都是16位?我查询了2011年的淘宝订单,发现是14位的,并不是该简友说的12/13位,但由14位扩充到16位,应该很大一部分原因是业务增长的原因。

问题2:为什么自己的淘宝单号最后4位都一样呢?这4位数字代表什么?2011年3月之前的订单,后4位是不一样的;3-7月之后(4/5/6三个月我没有下过单)的淘宝订单,后4位是一样的。我猜想可能是user id,后来我验证了下,一定程度上是的,比如我的ID后4位是1190,订单的后4位是9910,由此看来,淘宝订单后4位是将user id后4位简单处理过的。至于前12位,我 猜想其中有10位可能是由Unix时间戳加随机规则生成的。

4.订单号怎样生成才好看

相信很多人都受够了银行卡上面不分段的银行卡号了吧,还有就是快递单上面不分段的快递单号码(顺丰的就很好),这些简直就是反人类设计。其实订单系统里面也可以借鉴顺丰的这个思路分段显示,方便查看和诵读。

如果做的再智能点,支持WEB上双击复制或者APP上长按复制(点击后可复制),是不是更好看更人性化更便捷了呢?

顺丰快递单号

5.几句题外话

前几天我看到了宅妈妈APP的订单号,4位纯自增的数字,极其精简。当时我就在想他们为什么会把订单号设计这么短,后来仔细想了下她们的具体业务情况,或许是这样的:处于业务开拓起步阶段的宅妈妈不希望用户在反馈问题时报上冗长的订单号,同时她们希望用户通过订单号能感受到该APP有很多人在使用并下单,进而打消她们的部分顾虑。

滴滴出行因为每次行程都有司机车牌号,所以在遇到问题时直接反馈“时间+起点+车型车牌号”可能更方便。饿了么同理,我在反馈问题的时候也不会去报订单号,直接报时间和商家名更方便,订单号可能在客服处理问题的时候会用的更多一点吧。

拓展问题:订单号、交易号、流水号分别有什么意义?

作者:詹仕波
链接:https://www.jianshu.com/p/3ef577eaacac
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

订单号怎样生成才能好用又好看,难倒了20多位产品经理相关推荐

  1. python生成订单号或生成任意序列

    python生成订单号或生成任意序列 示例代码: import time# 生成订单号 def get_order_code():# 年月日时分秒+time.time()的后7位order_no = ...

  2. java订单编号工具类_[idmiss-common] Java 工具类之- 顺序订单号的生成

    1.前言 这是我写的工具类之一:根据日期生成唯一顺序订单号. 用Java 配合 Redis 实现包含日期的顺序订单号的生成, 效率可以达到 2500+/s 1000W+/h 个 . 2.基本介绍 框架 ...

  3. php小米订单组,解析电商订单号的生成

    2015年10月25日 电子商务及类电子商务的系统越来越多,订单号的生成就成了这类系统中最常见的问题.订单是整个电子商务的核心,整个电子商务的流程也是围绕订单的状态执行的.下面雷雪松向大家介绍订单号的 ...

  4. 订单号的生成规则和不同生成策略-总结

    订单号的不同生成策略-总结 一. 订单命名的几种规则 不重复:订单号的唯一行 安全性:订单编号中不要透露任何和公司有关的信息,不要使用流水号,容易暴露公司的运营情况 不要使用大规模随机码:随机编码可以 ...

  5. 简易发号SQL,可用于生成指定前缀自增序列,如订单号,生成优惠券码等

    需求1:订单号要求唯一.长度不太长.自增.但不能通过早上订单号和晚上订单号相减推算出平台大概一天的单量 需求2:要求生成10w张优惠券,要求券码唯一.不能太长,不能轻易猜测出其他券码 根据这些需求提供 ...

  6. java获取不重复订单号,Java 生成永不重复的订单号

    package com.taiping.test; import java.text.SimpleDateFormat; import java.util.Date; import java.util ...

  7. java生产订单号_java 生成订单号

    public class Order { private static int orderNum = 0001; public static String getOrderNo(){ long No ...

  8. 电子商务网站中订单号设计有什么规则和依据吗?

     https://www.zhihu.com/question/19805896#answer-31069940 你是个程序员. 隔壁老王通过你老婆找到你,说要做个"巨牛逼电商网站&qu ...

  9. 电商“订单号”的思考

    1.三个真实的案例 案例1:最近面试的将近20位产品经理里面,我都会问一道问题:请您为我公司的订单系统设计一套订单号的生成规则.应聘者里面有一两年的职场新人,也有工作将近十年的老鸟,当然也不乏运营或者 ...

最新文章

  1. QueryList的使用
  2. SpringBoot+webservice
  3. 博客上一些项目相关源码链接
  4. loadrunner如何监控linux,以及重点指标分析
  5. java游戏贪吃蛇_Java实现贪吃蛇游戏
  6. mysql5.7 mysql库下面的user表没有password字段无法修改密码
  7. 【scala初学】scala 语法 声明
  8. 十多年前的 Adobe ColdFusion 漏洞被用于勒索攻击
  9. 一个杯子帮你理解软件测试
  10. uvalive 3126 Taxi Cab Scheme
  11. 论文:Scalable and accurate deep learning for electronic health records研读笔记
  12. 自定义错误页面 404.html
  13. JS实现省市县三级联动
  14. 叉乘点乘混合运算公式_小学数学所有公式和顺口溜都在这里了,考试肯定能用到!...
  15. 2022广东省安全员B证第四批(项目负责人)考试题模拟考试题库及答案
  16. 我的理想高中作文理想是计算机,我的理想 高中作文
  17. java 随机姓名_随机组合生成好听的名字(java)
  18. 鸿蒙是什么动物,悟空是猴,八戒是猪,沙和尚是什么动物?乌巢禅师一句话说出答案...
  19. [转] 公共DNS,114.114.114.114和8.8.8.8
  20. Linux下批量重命名文件或文件夹(rename命令)

热门文章

  1. 口红送什么色号,这是一个难题,爬取口红数据,希望对你有所帮助
  2. CSDN博客2014年4月24日清理缓存
  3. LeetCode-Python-277. 搜寻名人
  4. Java二级页面打不开,什么是二级页面 电脑二级页面打不开了怎么办?
  5. C#排序算法之希尔排序
  6. 95后二本生争抢互联网职位:工资高福利好,为了改变命运背水一战
  7. c语言的文字游戏,C语言之文字游戏
  8. rsync的限速专题
  9. NewH3C—IP路由原理(静态路由)
  10. Screen position out of view frustum解决办法