電商技術(shù)解密之購物車

16 評(píng)論 34965 瀏覽 299 收藏 10 分鐘

雙十一剛過,京東、天貓又創(chuàng)神跡。今天來跟大家聊一聊購物流程中比較重要的一個(gè)環(huán)節(jié):購物車。

話說早期的電商是沒有購物車這個(gè)東西的,印象中應(yīng)該是從2007年才開始有購物車(哎,又暴露年齡了),早期沒有購物車的主要原因主要有2個(gè),一個(gè)是那時(shí)候電商還沒有那么成熟,網(wǎng)購的人還沒有現(xiàn)在這么瘋狂,購買頻率不高,最主要的是大多數(shù)人一次只買一個(gè)商品。另外一個(gè)原因是那時(shí)候還沒法解決根據(jù)賣家拆單后貨款怎么分?同一個(gè)訂單有多個(gè)賣家郵費(fèi)怎么算等類似問題。后面隨著整個(gè)電商的發(fā)展才有了購物車這個(gè)東東,現(xiàn)在購物車在整個(gè)購物流程中已經(jīng)是非常重要的一個(gè)環(huán)節(jié),購物車目前主要有下面幾個(gè)主要作用。

購物車的主要功能

收藏的功能:

有的人喜歡把購物車當(dāng)做收藏夾,很多看好的商品直接放到購物車?yán)锩?。根?jù)用戶的這個(gè)習(xí)慣購物車的幾個(gè)細(xì)節(jié)也隨之產(chǎn)生變化。

一個(gè)是默認(rèn)全選功能變?yōu)橛涗浻脩魵v史勾選商品,早期是默認(rèn)將購物車?yán)锏纳唐愤M(jìn)行全選然后進(jìn)行提交訂單,因?yàn)楹芏嘤脩袅?xí)慣將購物車作為收藏夾來使用,購物車?yán)锩娴纳唐凡⒉灰欢ㄊ且欢ㄒ徺I的,如果每次都是全選的話,用戶需要將收藏的商品手動(dòng)勾選掉,體驗(yàn)比較不友好,所以慢慢演變成購物車會(huì)記錄用戶勾選了哪些商品,在用戶下次進(jìn)入購物車的時(shí)候只有上次勾選的商品才會(huì)默認(rèn)被勾選。

另一個(gè)是購物車異常區(qū)域,因?yàn)橛行┥唐房赡芗尤胭徫镘嚂r(shí)間比較久,那么過段時(shí)間再打開購物車的時(shí)候里面的部分商品信息可能會(huì)發(fā)生變化,尤其是商品下架或者庫存為零這種導(dǎo)致用戶不能正常下單的時(shí)候需要在購物車?yán)锩鎸?duì)這部分商品進(jìn)行提醒,所以也就有了購物車的異常區(qū)域。如下圖所示。

購物車失效

購物車的降價(jià)提醒,因?yàn)橛脩舭奄徫镘嚠?dāng)做收藏夾來用,那么當(dāng)用戶加入購物的商品有降價(jià)的時(shí)候,現(xiàn)在主流的購物車也會(huì)進(jìn)行降價(jià)的提醒,這需要購物車將當(dāng)時(shí)用戶加入商品的價(jià)格記錄下來,后面用戶每次打開購物車的時(shí)候?qū)Ρ茸钚碌膬r(jià)格,如果有降價(jià)那么在購物車進(jìn)行提醒,用戶加入購物車的商品一般是比較感興趣的,如果購物車能提示用戶此商品已經(jīng)降價(jià),這樣轉(zhuǎn)化率一般會(huì)比較高。

購物車降價(jià)提醒

促銷的功能

購物車另外一個(gè)主要的作用是促銷,促銷分為兩大類:?jiǎn)纹反黉N和范圍促銷。

單品促銷一般都是對(duì)一個(gè)商品進(jìn)行促銷,例如:價(jià)格直降,折扣,贈(zèng)品等,這類促銷用戶比較好理解,在商詳頁上就可以清晰明了看到規(guī)則,并且用戶容易計(jì)算是否滿足此促銷規(guī)則。

范圍促銷比較復(fù)雜些,常用的范圍促銷有:滿減,滿贈(zèng),滿返等,這類促銷可以在商詳上看到規(guī)則,但是在商詳頁用戶基本搞不清楚目前購買的商品是否滿足此促銷,這個(gè)時(shí)候就需要在購物車對(duì)用戶進(jìn)行提醒,主流的購物車基本都有如下功能。

購物車滿減結(jié)構(gòu)

如何實(shí)現(xiàn)?

下面我們來說說購物車上面的這些功能是如何實(shí)現(xiàn)的?

登錄狀態(tài)

設(shè)計(jì)購物車首先考慮的是,需不需要登錄態(tài)?

在生成訂單的時(shí)候,肯定是需要登錄態(tài)的。但是購物車這個(gè)環(huán)節(jié),一定需要?jiǎng)討B(tài)嗎?大多數(shù)的網(wǎng)站是必須要登錄態(tài)的。這樣在購車環(huán)節(jié)就可以知道是哪一個(gè)用戶加入哪一個(gè)商品進(jìn)入的購物車。但是這樣的體驗(yàn)并不是很好。如果不需要登錄態(tài),這時(shí)候會(huì)面臨一個(gè)問題:沒有登錄態(tài)我們就不知道這個(gè)商品是哪個(gè)用戶加入了。這個(gè)時(shí)候我們就需要一個(gè)叫做離線購物車的。他根據(jù)設(shè)備號(hào)來記錄哪個(gè)商品加入到哪個(gè)設(shè)備的購物車,在用戶加入離線物車之后真正去提交訂單的環(huán)節(jié)再提示用戶需要登錄態(tài)。這是一種比較好的體驗(yàn)。支持離線購物車的話,還會(huì)面臨一個(gè)問題是:離線購物車和在線購車如何合并的問題。在用戶登錄后我們會(huì)去判斷用戶這個(gè)設(shè)備下面有沒有離線購車的數(shù)據(jù)。如果有離線購物車的數(shù)據(jù),那么我們認(rèn)為他之前已經(jīng)離線加入購物車,我們會(huì)將離線購物車的數(shù)據(jù)和在線購物者的數(shù)據(jù)進(jìn)行合并。

需要的數(shù)據(jù)

購物車需要落地哪些數(shù)據(jù)?

用戶的購車數(shù)據(jù)一定是會(huì)落到數(shù)據(jù)庫里的。購物車?yán)锩鏁?huì)展示商品信息、促銷信息、庫存信息。這些信息都需要落地在購物車的數(shù)據(jù)庫里面嗎?其實(shí)購物車的數(shù)據(jù)庫只需要落地用戶和商品的關(guān)系就可以了。其他的信息不需要落地到購物車的數(shù)據(jù)庫也不能夠落地到購物車的數(shù)據(jù)庫里。因?yàn)槠渌男畔⒍际菚?huì)隨著時(shí)間的變化而產(chǎn)生變化的。比如說商品的價(jià)格,在用戶加入購物車的時(shí)候價(jià)格可能是十塊錢。但是過了一段時(shí)間可能進(jìn)行了降價(jià),變成了八塊錢。如果把商品的價(jià)格落地到購物車數(shù)據(jù)庫的話,那么用戶再次打開購物車的時(shí)候他是看不到商品的最新的價(jià)格信息。所以類似價(jià)格信息促銷信息庫存信息這些都是需要實(shí)時(shí)調(diào)用相應(yīng)的系統(tǒng)。

需要的交互

需要跟哪些外部系統(tǒng)進(jìn)行交互?

剛剛提到了購物車的數(shù)據(jù)庫里面只落地了用戶和商品的關(guān)系。那么用戶看到的購物車?yán)锲渌臄?shù)據(jù)都是在用戶打開購物車的時(shí)候?qū)崟r(shí)去調(diào)用外部系統(tǒng)獲取的。那么購車需要與哪些外部系統(tǒng)進(jìn)行交互呢?下面列舉幾個(gè)主要的交互系統(tǒng)。

商品:從商品系統(tǒng)主要是獲取商品的一些基本信息。有商品的主題、商品的文描、商品的上下架狀態(tài)、以及商品上的一些特殊屬性的標(biāo)志與標(biāo)記位。有一些體驗(yàn)比較好的電商平臺(tái)會(huì)將購物車中商品已經(jīng)下架的商品置灰掉提示用戶此商品目前不能進(jìn)行購買。

庫存:從庫存系統(tǒng)主要是獲取商品目前庫存數(shù)量情況以及是從哪個(gè)倉庫出貨,后面拆單的時(shí)候會(huì)用到這個(gè)信息。購物車系統(tǒng)會(huì)進(jìn)行判斷目前商品的庫存是否滿足用戶購買的數(shù)量?如果庫存已經(jīng)賣光會(huì)將商品制成灰色提示用戶商品已經(jīng)沒有庫存。

促銷:促銷是購物車中比較重要的部分,也是最復(fù)雜的部分。購物車會(huì)將目前用戶選中的商品列表傳給促銷系統(tǒng)。促銷系統(tǒng)經(jīng)過一系列復(fù)雜的運(yùn)算會(huì)告訴購車目前這些商品命中了哪些促銷?因?yàn)橐粋€(gè)購物車?yán)锩娴纳唐房赡苡胁煌碳业?,這里還要按照商家的緯度再進(jìn)行一輪計(jì)算。算出每個(gè)商家緯度下面有哪些促銷?可以說,這里是整個(gè)購物車中最復(fù)雜的一個(gè)環(huán)節(jié)。各個(gè)平臺(tái)購物車做得好壞的區(qū)別主要就體現(xiàn)在這里。

以上只是介紹了購車的一些主要邏輯。 實(shí)際的購物車要這個(gè)更復(fù)雜一些。

 

本文由 @Nicole 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 有個(gè)問題想咨詢下,購物車如何去判斷庫存是夠足夠,用戶進(jìn)入購物車后去調(diào)取庫存數(shù)據(jù)嗎?如果是這樣的話在庫存數(shù)量較少的情況下,短時(shí)間內(nèi)多個(gè)用戶同時(shí)去打開購物車,會(huì)不會(huì)出現(xiàn)庫存足夠和不足 互相切換的情況

    來自江蘇 回復(fù)
  2. 好文,講解的簡(jiǎn)單明晰;
    購物車落地?cái)?shù)據(jù)不存儲(chǔ)價(jià)格等信息的情況下,怎么做降價(jià)提醒呢?

    來自陜西 回復(fù)
    1. 商品管理記錄了商品價(jià)格變化的情況,只需將當(dāng)前的價(jià)格跟跟添加到購物車時(shí)間的價(jià)格作比較就行了,降價(jià)了就提示,漲價(jià)了啥也不做就行了

      來自湖北 回復(fù)
  3. 【在用戶下次進(jìn)入購物車的時(shí)候只有上次勾選的商品才會(huì)默認(rèn)被勾選】京東的這個(gè)勾選功能,對(duì)我來說不是很好用,因?yàn)楫?dāng)作比較的商品的時(shí)候,很多商品加入進(jìn)來只是為了比較,不是為了購買,因此每次購買的是還要去點(diǎn)掉。

    來自浙江 回復(fù)
  4. 好文 ??

    來自福建 回復(fù)
  5. 讓我對(duì)購物車有了全面的認(rèn)識(shí),非常感謝!

    來自廣東 回復(fù)
  6. 好文 ,電商新人學(xué)習(xí)了

    來自湖北 回復(fù)
  7. :mrgreen:

    來自廣東 回復(fù)
  8. 好文 ??

    來自廣東 回復(fù)
  9. 對(duì)于電商產(chǎn)品,感覺要求用戶登錄雖然有損用戶體驗(yàn),但是卻能更好的支持電商核心交易功能,感覺還是值得的,離線根據(jù)設(shè)備號(hào)合并數(shù)據(jù)聽起來靠譜,但多了這個(gè)步驟后,是不是會(huì)造成一些損耗(感覺設(shè)備號(hào)坑比較多。。)

    來自浙江 回復(fù)
    1. 多了離線購物車勢(shì)必會(huì)增加復(fù)雜度,設(shè)備號(hào)只是識(shí)別一個(gè)設(shè)備的主鍵,實(shí)際上還要加上IP等其他維度算出一個(gè)唯一的識(shí)別碼。

      來自江蘇 回復(fù)
    2. 有點(diǎn)要應(yīng)用hash算法的感覺。:)

      來自重慶 回復(fù)
  10. 京東的離線購物車也是時(shí)常會(huì)出現(xiàn)合并不成功的情況,這種體驗(yàn)反而是一種傷害了,辛苦挑了半天,一登錄就沒有了

    來自廣東 回復(fù)
    1. 是的,要么就別做,要做就做到位,不然還不如不做。

      來自江蘇 回復(fù)
    2. 離線購物車登錄合并有時(shí)候?qū)τ脩魜碚f可能有些突兀和迷惑,在沒登錄的時(shí)候有可能是隨意添加的商品,登錄后直接合并之前在線的購物車數(shù)據(jù),會(huì)不會(huì)導(dǎo)致用戶不知道哪些是要買哪些不想買的了?

      來自廣東 回復(fù)
    3. 厲害

      回復(fù)