訂單號怎么生成才好用?有人問我相關(guān)的問題。之前做過電商項目的我也只是二次開發(fā),訂單這塊的業(yè)務(wù)邏輯也是電商系統(tǒng)中較復(fù)雜的一環(huán),單說訂單號的設(shè)計生成也有很多講究。
正常來說,訂單號的生成規(guī)則一般正常會想到以下:訂單號由數(shù)字或字母組成,數(shù)字可能是年月日時分秒,也可能是隨機數(shù)字,也可能是商品標識品類,比如食品是1,書籍是2,還有可能是用戶手機號,用戶ID等等
那么問題來了,這些數(shù)字都組合在一起,長度和復(fù)雜度太高,那么一個好用又好看的訂單號應(yīng)具備哪些規(guī)則和依據(jù)呢?
回到問題本質(zhì),先說說訂單號的作用,誰用訂單號?訂單號用來查詢訂單用的,一般是在支付或售后過程中有問題時用到的,也就是客服/運營/開發(fā)部門用的。另外,訂單號盡量短,且不能重復(fù),盡量能結(jié)合當前業(yè)務(wù)情況有特定的標識,如渠道編號,支付方式,業(yè)務(wù)類型等。比如:平臺- 移動還是PC平臺的,下單渠道和支付渠道- 支付寶還是現(xiàn)付,業(yè)務(wù)類型 和時間信息。
以下是訂單規(guī)則的例子:
下單渠道1位+支付渠道1位+業(yè)務(wù)類型1位+時間信息8位+用戶userid4位
最后我們也看看業(yè)界電商平臺都是什么樣的訂單號。
1.淘寶單號,前幾年還是12位、現(xiàn)在16位了,淘寶訂單的后4位是user id,至少前12位可能是時間加隨機數(shù)。
2.京東,之前是9位,現(xiàn)在11位了,但沒看出規(guī)則。猜想應(yīng)該是 有一個全局數(shù)據(jù)庫,這個數(shù)據(jù)庫中只有一張訂單表(Order),表中只有一個自增的字段Id,這個自增的字段Id就是訂單號。所有生成訂單的API會首先訪問全局數(shù)據(jù)庫的Order表獲得訂單號,然后再生成訂單。這樣就可以保證子庫訂單號不重復(fù)。
3.ecshop,原來的訂單號形式為:年月日 + 5位隨機數(shù)字,例如:2016101718830
其實訂單號沒有對與錯,只是簡潔方便查詢就可以,其實與產(chǎn)品的使用場景有關(guān),比如滴滴打車,遇到問題,直接反饋時間+起點+車型車牌號,更方便,餓了么也同理,直接報時間和商家名更方便。