解構(gòu)電商、O2O用戶端“背后”的邏輯
之前和不少剛畢業(yè)的產(chǎn)品同學(xué)交流過,用戶端是他們十分偏向選擇的產(chǎn)品線??稍趯嶋H的工作過程中,由于不太了解中后臺的情況加之邏輯上沒有那么成熟的經(jīng)驗,很容易出現(xiàn)界面設(shè)計完成后無法和中后臺的相關(guān)同學(xué)交流實現(xiàn)。所以用戶端產(chǎn)品也需要了解基礎(chǔ)的業(yè)務(wù)邏輯規(guī)則和關(guān)聯(lián)。今天我們就分享下電商、020用戶端“背后”的邏輯。
用戶端的內(nèi)部構(gòu)造
用戶端一直有著迷之尷尬的地位,既充當門面卻深受各個系統(tǒng)的“牽連”。所有系統(tǒng)的最終表現(xiàn)都依賴于用戶端的展現(xiàn),所以說用戶端是產(chǎn)品價值的最終體現(xiàn)。我們來看下用戶端內(nèi)部都有什么。
電商的用戶端主要功能是提供購買和商品展示,并能夠協(xié)助用戶進行個人服務(wù)管理。從用戶的階段來劃分,主要分成售前、售中、售后三個階段。其中個人信息的管理屬于貫穿整個使用過程。
售前環(huán)節(jié):實現(xiàn)用戶購買前的瀏覽和檢索。
- 首頁(對接CMS、商品、類目、推薦、促銷、廣告、搜索)
- 頻道頁(對接CMS、商品、類目、推薦、廣告)
- 專題頁(對接促銷、商品、CMS、廣告)
- 搜索結(jié)果頁(對接搜索、商品、推薦、廣告)
- 搜索分類頁(對接類目、商品、搜索、推薦、廣告)
- 發(fā)現(xiàn)頁(對接商品、搜索、推薦、促銷)
售前環(huán)節(jié)主要功能是完成商品的展示,頁面的信息布局和UI是此類模塊的首要功能。由于電商平臺商品、類目眾多,所以數(shù)據(jù)多是由負責(zé)規(guī)則整合的系統(tǒng)完成數(shù)據(jù)處理,然后通過頁面、內(nèi)容生成系統(tǒng)完成前臺的展示工作。
售中環(huán)節(jié):實現(xiàn)用戶的購買
售中環(huán)節(jié)也叫購買流程,是實現(xiàn)用戶從下單到完成支付的整個過程。這個流程是整個電商體系中最重要的環(huán)節(jié)。其中交易、訂單和支付系統(tǒng)負責(zé)這個環(huán)節(jié)的核心邏輯。
- 商品詳情頁(對接商品、促銷、推薦、廣告、CMS、會員)
- 購物車(對接商品、促銷、交易、推薦、廣告),其中庫存部分可放入商品或交易中合并計算,也可單獨由庫存系統(tǒng)提供處理。
- 結(jié)算頁,也叫訂單確認頁(對接商品、促銷、交易、訂單、會員)
- 收銀臺,也叫支付頁(對接支付、訂單)
- 支付完成頁,也叫訂單完成頁(對接訂單、推薦、廣告)
(1)購物車
購物車環(huán)節(jié)要考慮庫存是否需要做占用。購物車做預(yù)占庫存可以第一時間通知用戶庫存狀態(tài),但有可能出現(xiàn)較多占用后但未生成訂單的情況。而生成訂單后占庫存則能保證訂單和庫存匹配率最大,但用戶在下單后才被告知無庫存,用戶體驗相對較差。
常規(guī)做法會在購物車環(huán)節(jié)設(shè)置數(shù)量閾值,庫存小于閾值顯示用戶庫存緊張。然后在下單環(huán)節(jié)完成扣減庫存的情況。如果是秒殺或者是類似唯品會的搶購模式,則可以在購物車扣減庫存,增加倒計時(如15分鐘)提示提高用戶搶購感。
促銷金額的計算也是購物車需要考慮的主要邏輯之一,由于商品詳情頁都是單品信息,所以組合促銷的金額計算是在購物車體現(xiàn)的。
另外,作為電商的“近親”020領(lǐng)域的購物車相比傳統(tǒng)電商處理方法有所差異。020的購物車原則上很多是不跨店鋪銷售的,所以購物車是存在于單個店鋪中且以浮層的方式展示。一般來說為避免對于服務(wù)器造成壓力過大的問題,不是所有的添加商品的操作都是請求后端服務(wù),在邏輯處理上為了保證一致需要前后端都考慮邏輯統(tǒng)一的問題。
(2)結(jié)算頁
結(jié)算頁可以說是電商用戶端比較復(fù)雜的頁面之一。這里面涉及到配送邏輯判斷,送達時間計算,運費計算,訂單計算及分攤等。
配送邏輯判斷:根據(jù)提供的配送方式結(jié)合倉配情況和移倉的邏輯來判斷來預(yù)計送到的時間。此部分的物流配送的路程情況也會影響運費的計算邏輯。當無法單倉滿足或者移倉滿足時,有可能需要拆多個包裹從不同的倉發(fā)送。
運費計算:根據(jù)后臺設(shè)置的運費模板來計算實際應(yīng)該收取的運費。運費模板是指設(shè)定好的一套運費規(guī)則,比如滿XX收多少等。
訂單計算:訂單計算主要涉及到交易單各個子單之間促銷優(yōu)惠的計算和金額分攤。
- 優(yōu)惠計算主要包括優(yōu)惠券和促銷活動的金額計算。一般情況后臺會有一定的計算優(yōu)先級,比如計算促銷活動的金額,完成后再看是否滿足優(yōu)惠券的滿減金額。計算時需要考慮促銷范圍,如商家還是全場。
- 金額分攤,電商的支付類型發(fā)展到如今是越來越豐富。信用卡、匯款、支付寶、微信、白條、積分、禮品卡等等各種各樣??紤]到訂單逆向(整單退,部分退)的情況,需要將所有支付的金額包括優(yōu)惠券都分攤到每一個商品上,以便退款時可以保證金額不錯。分攤計算有兩個要注意的事情,一個是各項支付方式退款的優(yōu)先級,先退什么在退什么。原則上先退成本低的,在退成本高的。二是當分攤時金額除不盡的時候多余的部分如何分攤,小數(shù)后三位的時候四舍五入還是直接舍掉。這個規(guī)則要和后端、報表保持一致,避免出現(xiàn)一分錢誤差的烏龍。
(3)收銀臺
訂單生成后要通過支付系統(tǒng)完成支付操作,所以收銀臺的主要對接系統(tǒng)就是支付系統(tǒng)。對接第三方支付的時候需要注意的是,第三方支付客戶端返回的狀態(tài)原則上不能作為最終支付成功的狀態(tài),要通過第三方支付服務(wù)端返回信息為準。理論上這兩種狀態(tài)是同步的,但設(shè)計時要考慮交互和數(shù)據(jù)傳輸異常的情況。
售后環(huán)節(jié):提高信息透明和服務(wù)體驗
- 訂單詳情頁
- 訂單列表頁
- 在線客服
售后環(huán)節(jié)主要是訂單生成后到訂單交付完成的整個過程。這部分主要的功能就是跟客服和訂單打交道。這里就不展開說了。只說一些需要注意的經(jīng)驗。
- 訂單列表一般會保留三個月左右的用戶顯示數(shù)據(jù),而用戶端的刪除不是物理刪除只是訂單上打標記而已。
- 在處理數(shù)據(jù)時考慮到歷史數(shù)據(jù)較多,部分O2O的APP會使用歷史訂單數(shù)據(jù)和當日訂單數(shù)據(jù)分開的讀取的方式。
- 訂單詳情一般會有再來一單的功能,電商系統(tǒng)只需要判斷是否存在可售賣的SKU即可。而O2O則需要增加判斷區(qū)域?qū)傩浴?/li>
- 在線客服要考慮是否是對接第三方應(yīng)用,在嵌入對方的SDK時一些通用的標準要符合滿足(比如IPV6)。另外對方SDK包是否會對自己APP的大小造成較大影響也需要注意。
個人中心:服務(wù)中轉(zhuǎn)站
個人中心作為用戶的統(tǒng)一服務(wù)中心,里面承載了所有涉及用戶資產(chǎn)和服務(wù)的信息。大多數(shù)是信息匯總查看的頁面(如我的訂單、我的積分、我的優(yōu)惠券等)。
這里強調(diào)一個小的細節(jié),APP用戶端有時候排查問題需要了解用戶的基本信息,比如版本號,手機型號。用戶的反饋很容易出現(xiàn)信息誤差,他們大多會說已經(jīng)是最新版了。所以獲取版本信息的渠道可以在個人中心中。我以前的一個經(jīng)驗可以給大家借鑒。在意見反饋自動增加版本,手機型號信息回傳,或通過關(guān)于APP的部分讓用戶一鍵復(fù)制以便提供給客服進行排查問題。
用戶端的“親屬關(guān)系”
用戶端作為“門臉”,和各個系統(tǒng)有著錯綜復(fù)雜的關(guān)系,讓我們看下他們之間的關(guān)系是如何。
在整個電商系統(tǒng)體系里面。用戶端需要面對眾多系統(tǒng),而這些系統(tǒng)的數(shù)據(jù)又相互依存,他們之間通過API進行傳輸對接。
直接對接系統(tǒng)
頁面系統(tǒng)
- CMS系統(tǒng)
- 廣告系統(tǒng)
購買流程
- 交易系統(tǒng)
- 支付系統(tǒng)
- 訂單系統(tǒng)
規(guī)則整合
- 搜索系統(tǒng)
- 推薦系統(tǒng)
- 促銷系統(tǒng)
用戶體系
- 會員系統(tǒng)
- 客服系統(tǒng)
這些直接提供數(shù)據(jù)給用戶端,負責(zé)用戶端的生養(yǎng)問題,用戶端對他們有著很強的依賴。在設(shè)計時要充分考慮這些系統(tǒng)的數(shù)據(jù)邏輯情況,下面我們會詳細說明下如何考慮這些系統(tǒng)。
間接對接系統(tǒng)
- 庫存系統(tǒng)
- 商品系統(tǒng)
- 價格系統(tǒng)
- 物流系統(tǒng)
- 商家系統(tǒng)
間接對接的系統(tǒng)多是提供基礎(chǔ)信息的系統(tǒng)或者平臺。他們承擔著數(shù)據(jù)最底層的管理工作,他們的結(jié)構(gòu)決定了前端展示的信息數(shù)據(jù)項。由于涉及的細分系統(tǒng)眾多,這里指列舉了部分主要系統(tǒng)。
API
API主要是傳輸通道,理論上不做邏輯運算。但現(xiàn)在很多實際的情況下API也需要夾雜很多業(yè)務(wù)規(guī)則的計算和處理。API主要包括幾個部分的功能:
(1)數(shù)據(jù)傳輸
API的基本功能,完成基本數(shù)據(jù)的傳輸,往往是以頁面為單位計算API的數(shù)量。
(2)數(shù)據(jù)整合
由于數(shù)據(jù)可能涉及到多個系統(tǒng)之間的調(diào)用,所以API內(nèi)部可能需要進行數(shù)據(jù)的整合。比如促銷活動信息需要調(diào)用促銷信息和商品基礎(chǔ)信息。
(3)部分邏輯處理
在實際產(chǎn)品迭代過程中,考慮到APP發(fā)版時間限制等制約因素,一些處理邏輯可能需要放在API進行操作,比如部分信息項的篩選、ABtest、灰度發(fā)布切換邏輯。另外有些功能為了快速上線且后續(xù)可以進行延展,一些固定的邏輯也會考慮先不做后臺,在API中通過配置文件的方式來實現(xiàn)。比如提示文案、icon等。
(4)緩存功能
提供給用戶端的數(shù)據(jù)中,不是所有數(shù)據(jù)都需要實時更新獲取的,所以API會將部分更新周期較長的數(shù)據(jù)放入緩存中定時去更新。比如用戶信息、類目信息。
數(shù)據(jù)統(tǒng)計系統(tǒng)
數(shù)據(jù)統(tǒng)計系統(tǒng)主要用來處理用戶端埋點的信息,用于監(jiān)測流量數(shù)據(jù)的情況。
一般數(shù)據(jù)統(tǒng)計重要分為使用第三方或者自建BI系統(tǒng)兩種情況。用戶端需要做的主要是進行埋點事件的命名和選擇觸發(fā)點。
?結(jié)言
用戶端看似只是關(guān)注用戶體驗和界面功能設(shè)計,實則反應(yīng)了整個電商生態(tài)下所有系統(tǒng)運作的最終結(jié)果。了解中后臺的基本邏輯和流程有助于在構(gòu)想界面時提高可行性和合理性。
相關(guān)閱讀
解構(gòu)電商、O2O:訂單系統(tǒng),平臺的“生命中軸線”
解構(gòu)電商、020:探秘搜索系統(tǒng)的“簡歷”
解構(gòu)電商、020:促銷系統(tǒng)的“進化”之路
解構(gòu)用戶消費心理:卓越的服務(wù)體驗始于「心」
作者:高暉(微信號公眾號@產(chǎn)品老高),10余年IT經(jīng)驗,互聯(lián)網(wǎng)老兵。
本文由 @高暉 微信公眾號原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
高暉老師也在人人都是產(chǎn)品經(jīng)理旗下起點課堂開設(shè)了《訂單產(chǎn)品全流程設(shè)計與實戰(zhàn)》課程,系統(tǒng)講解了訂單產(chǎn)品的底層邏輯,教你學(xué)會從0到1搭建訂單產(chǎn)品以及現(xiàn)有產(chǎn)品的優(yōu)化升級方法。感興趣的同學(xué)可以添加蘑菇老師(ID:qdxymg)咨詢,或者戳右側(cè)鏈接了解>>https://996.pm/76PEA
有沒有2B的內(nèi)容呀
我現(xiàn)在又做020了
2B確實沒整理,最近比較忙了。
感謝分享
感謝分享,會一直關(guān)注您的文章
好文章 高質(zhì)量
很清晰,最近做電商,幫我理清了好多模塊,贊
謝謝贊賞,后續(xù)會梳理電商的一些具體系統(tǒng)和模塊。歡迎持續(xù)關(guān)注
很多實踐中的小經(jīng)驗和小細節(jié)分享,很落地的一篇文,喜歡。
謝謝,后續(xù)我會陸續(xù)寫一些電商、020系統(tǒng)的解構(gòu)系列,可以持續(xù)關(guān)注
對于新手,很有幫助哦
謝謝關(guān)注
最近要開始著手公司的一個電商項目,臨時抱抱佛腳。文章很受教,感謝作者從售前售中售后勾勒了一個電商平臺的框架,個人對貫穿其中的個人信息管理這塊一直理不清,期待作者更細致的分享
謝謝認同,后續(xù)我會逐步解構(gòu)一些電商的系統(tǒng)情況??梢猿掷m(xù)關(guān)注
唉,這等文章也能上頭條
這個文章開始寫的時候定位是給初級產(chǎn)品了解基本結(jié)構(gòu)快速入門的,所以很多東西并沒有展開細化。畢竟太深的東西對于初級產(chǎn)品可能不太容易理解。所以里面不少內(nèi)容在高級別的產(chǎn)品看來有些簡陋了。呵呵
呵呵,有什么好文章還望不吝分享
呵呵,有什么好文章還望不吝分享
后臺的業(yè)務(wù)邏輯是非常復(fù)雜的。但優(yōu)惠券這一塊,要做完善都很難。
嗯。同意。這里只是對關(guān)聯(lián)的關(guān)系和情況做了一些說明。并沒有涵蓋所有的點了。
我是一個新入行的小菜鳥,這個文章對我很有用
謝謝回復(fù),能夠有用就是對我最大的獎勵了。呵呵