電商入門(2):購物車功能要點(diǎn)和背后邏輯

QJQ
27 評論 43696 瀏覽 234 收藏 14 分鐘

本文主要分為四個(gè)部分:簡單說一下購物車、購物車與后臺的密切關(guān)系、購物車中商品的分組和排序、關(guān)于購物車你至少應(yīng)該知道些什么。

1.先簡單說一下購物車

對前臺電商產(chǎn)品經(jīng)理來說,設(shè)計(jì)一個(gè)好的購物車,整個(gè)網(wǎng)站的靈魂基本上就有了,“設(shè)計(jì)購物車”可絕對不是說設(shè)計(jì)購物車的外觀表現(xiàn)形式,而是它背后的東西——購物車的邏輯。

前臺購物車主要與后臺商品中心、庫存中心、營銷中心發(fā)生關(guān)系,你品味一下這三個(gè)問題:加車的商品是什么?加車的商品還有么?加車的商品有優(yōu)惠么?

關(guān)于購物車的作用,大家可以類比一下線下商場的購物車,這種類比方法我已經(jīng)在上一篇中提到過了。提一下購物車最直觀的幾個(gè)作用:

存儲用戶精挑細(xì)選的商品、方便多個(gè)商品組合起來做促銷;如果你看得長遠(yuǎn)一點(diǎn)就會發(fā)現(xiàn),購物車甚至能幫助自營平臺節(jié)省物流成本,把同類型商品提前歸集,統(tǒng)一派分到同一倉庫。

思考一個(gè)問題:假設(shè)A書和B書在同一個(gè)倉庫,如果沒有購物車,A書和B書只能分兩次結(jié)算,是不是意味著會生成兩個(gè)訂單?分配到倉庫后,倉庫管理員有這個(gè)能力合單?(當(dāng)然,也不是完全做不到~)

在設(shè)計(jì)前臺購物車的時(shí)候有兩個(gè)重要的關(guān)乎用戶體驗(yàn)的點(diǎn):購物車中商品的分組和排序,即在購物車中,哪些商品需要?dú)w為一類?商品在購物車中怎么排列?

大家需要注意一點(diǎn),購物車中的計(jì)算、商品數(shù)量調(diào)整、促銷活動修改、優(yōu)惠券領(lǐng)取,甚至是商品選中等等操作,都是后臺邏輯,前臺只是獲取服務(wù)器端的數(shù)據(jù)加以展示而已。

2.舉個(gè)例子說明購物車與后臺的密切關(guān)系

舉個(gè)例子:比如商品數(shù)量調(diào)整,需要從服務(wù)器端check該商品是否有對應(yīng)數(shù)量的庫存,對應(yīng)兩種情況:庫存充足和不足。實(shí)時(shí)check商品庫存能緩解‘結(jié)算按鈕’的計(jì)算壓力,同時(shí)能讓用戶購物更流暢。

怎么理解呢?其實(shí)在處理前臺商品數(shù)量增減功能時(shí),如何判斷庫存的問題上,有兩種處理方式:一種是實(shí)時(shí)check商品庫存,一種是非實(shí)時(shí)check商品庫存。

說一下后者,第二種方式是在商品加車的那一瞬間(或者刷新購物車頁面)服務(wù)器端就已經(jīng)告訴前臺某某商品購物車最大可加車數(shù)量是多少了。

再舉個(gè)具體的例子對比2種方式的區(qū)別,希望能幫助大家深入理解:假設(shè)A商品庫存為2,用戶甲將A加入購物車,并在購物車中調(diào)整A的數(shù)量,最多能調(diào)整到2;這時(shí)用戶乙也將A加入購物車,并且結(jié)算了一件A。此時(shí),我們知道現(xiàn)在A的實(shí)際庫存只有1件了。

實(shí)時(shí)check庫存:用戶甲購物車只能將A數(shù)量調(diào)整為1;

非實(shí)時(shí)check庫存:用戶甲購物車仍然能將A的數(shù)量調(diào)整為2,然而只有當(dāng)用戶甲點(diǎn)擊“去結(jié)算按鈕”時(shí),才會再去check一遍庫存,這時(shí)候前臺告訴用戶,A商品已經(jīng)不足了,您需要返回購物車調(diào)整(或者直接在彈層提示上調(diào)整A的數(shù)量)。

這就是我之前說的實(shí)時(shí)check商品庫存能緩解“結(jié)算按鈕”的計(jì)算壓力,同時(shí)能讓用戶購物更流暢。所以,對于前臺產(chǎn)品來說,你的購物車基本上沒有多少與你有關(guān)系的東西。

不過,你可以從用戶體驗(yàn)上約定一些規(guī)則,比如check庫存的實(shí)現(xiàn)方式,如果技術(shù)說有難度會造成服務(wù)器壓力,那你該怎么辦呢?只能嘗試說服對方,或者退而求其次在‘結(jié)算按鈕’附近優(yōu)化彈層提示,盡量讓用戶體驗(yàn)更流暢,這就是一個(gè)好的前臺產(chǎn)品了,絕對不是按鈕多大、怎么擺放的問題了。

這么來看,對于一個(gè)前臺產(chǎn)品,購物車的核心就落在了購物車中商品的分組和排序邏輯上。

所以,接下來的重點(diǎn)內(nèi)容就是:

  • ①如何制定相關(guān)規(guī)則,讓購物車中的商品有序,讓用戶體驗(yàn)更好。
  • ②關(guān)于購物車你至少還要知道些什么?

3.購物車中商品的分組和排序

說這個(gè)分組和排序問題之前,如果大家對這個(gè)概念還不太理解,建議先去淘寶或者京東這樣的電商平臺看看它們的購物車,特別是產(chǎn)品新人。

再說一說分組和排序大概是要解決一個(gè)什么問題,可以看一看下圖:

從上圖的結(jié)構(gòu)可以看出來,購物車中的商品是按照活動A和B以及未參加活動三個(gè)組來展示的,由此也可以看出層級關(guān)系為:(店鋪 >>)活動 >> 商品(注:別忘了店鋪是最大一級)。

基本上每個(gè)電商平臺都有店鋪的概念,也就是允許第三方商家來平臺開店,豐富平臺商品類目、sku。在這種情況下,購物車中的商品按照店鋪分組無可厚非了,但是今天為了讓模型更簡單一點(diǎn),假設(shè)平臺只有一個(gè)店鋪(或者是純自營平臺),這是大前提。所以,接下來要說的就只涉及到參與同一個(gè)活動的商品分到一組這種分組的形式(建議再回頭看看上圖)。

然后是關(guān)于排序,我們知道給任何一組數(shù)據(jù)排序都需要給定排序規(guī)則,不然就是隨機(jī)紊亂呈現(xiàn)的。對于購物車中的商品,能作為排序依據(jù)的無疑是它的加車時(shí)間,每個(gè)商品加入購物車都會記錄一個(gè)加車時(shí)間。

接下來需要解決三個(gè)問題:

  • ①還原商品排序和分組的邏輯判斷與過程;
  • ②新加車商品D,該放在哪兒?
  • ③如果修改某個(gè)商品參加的活動,購物車該如何變動?(第三點(diǎn)是最能體現(xiàn)用戶體驗(yàn)的問題。)

假設(shè)有如下表所示5個(gè)商品,該表記錄了它們的商品名、加車時(shí)間以及參加哪個(gè)活動5條記錄。另外,需要補(bǔ)充一句是:一般新加車的商品,排在購物車最上方,不然有可能導(dǎo)致用戶打開購物車看不到自己剛加車的商品。

先解決第一個(gè)問題:還原商品排序和分組的邏輯判斷與過程;

購物車的分組與排序是結(jié)構(gòu)化的,程序員的思路也是結(jié)構(gòu)化的,所以大家在考慮產(chǎn)品邏輯的時(shí)候,也要有結(jié)構(gòu)化的思維(為了和猿友好相處),一個(gè)商品加入購物車首先第一步是判斷(它是哪家店鋪的?),它是哪個(gè)活動底下的?它的加車時(shí)間是什么?(從大到小的邏輯順序)有了這個(gè)過程之后,這個(gè)商品的位置自然也確定了,如下表所示:

你可以看到商品B1加車比商品A2晚,但是卻排在了商品A2之后,這是什么原因呢?

這里需要將排序問題分為三類:組與組之間排序、組內(nèi)排序、組與非組(單個(gè)商品)之間排序。

  • 先說第一類,有一個(gè)規(guī)則是組內(nèi)最晚加車的商品為該組的加車時(shí)間,以組的加車時(shí)間為依據(jù)進(jìn)行組與組之間排序。
  • 再說第二類,按照組內(nèi)后加車商品在上規(guī)則排序。
  • 最后說第三類,組的加車時(shí)間與單個(gè)商品加車時(shí)間,后加車者在上規(guī)則排序,類似于第二類情況。

下面再解決第二個(gè)問題:新加車商品D(12:00加車),該放在哪兒?

如果D沒有參加任何活動,很明顯按照第三類規(guī)則,需要將D置于購物車第一位,這里不用表來展示了;但是如果D參加了活動B,那么當(dāng)用戶進(jìn)入購物車頁,他將看到什么呢?如下圖所示。

注意,由于商品D參加了活動B,導(dǎo)致商品B1和B2都跟著往上移動了。

最后再來說最重要的一個(gè)問題:如果修改某個(gè)商品參加的活動,購物車該如何變動?

說這點(diǎn)之前,先說為什么它很重要,第2個(gè)有關(guān)排序的問題發(fā)生場景其實(shí)不在購物車頁,而是用戶在進(jìn)入購物車場景前,就已經(jīng)發(fā)生了,用戶進(jìn)入購物車看到的是一個(gè)靜態(tài)的頁面;但是第三個(gè)問題,發(fā)生場景就在購物車中,正所謂是牽一發(fā)而動全身,試想一下,用戶只是調(diào)整了一下購物車中商品所參加的活動,購物車排序大動,導(dǎo)致用戶找不到剛調(diào)整過的商品,這種體驗(yàn)可想而知。

還需要說到另外一點(diǎn)是,這也是前文制定這樣一個(gè)排序和分組規(guī)則的原因,當(dāng)然也是為了解決問題3,提升用戶體驗(yàn)。

假設(shè)商品C參加了活動A或B(一開始只是用戶故意選擇不參加任何活動),那么當(dāng)用戶將商品C修改為參加活動A或B后,它的位置將如何變動?這里我就不再提供表格,大家去思考一下,實(shí)在不明白可以在文后提問我。

補(bǔ)充說明一點(diǎn),為什么會有不參加活動的選項(xiàng)?

大家思考一下這個(gè)問題:假設(shè)平臺滿30包郵,不滿則出6元郵費(fèi),現(xiàn)在商品E(單價(jià)=30元)參加了滿30減5的活動,用戶購買一件E,問,該用戶應(yīng)該參加活動么?為什么? (這個(gè)問題有一個(gè)前提是,平臺計(jì)算是否滿包郵的條件是以優(yōu)惠后應(yīng)付金額為準(zhǔn))

本文最重要的一部分算是講完了,之后該講一點(diǎn)其他細(xì)枝末節(jié)的東西了,關(guān)于購物車你還應(yīng)該知道些什么?

4.關(guān)于購物車你至少應(yīng)該知道些什么?

我覺得關(guān)于購物車你還應(yīng)該知道的應(yīng)該在下面這張腦圖里了,第一是購物車中的商品從哪兒來到哪兒去,第二是購物車至少需要具備那幾個(gè)功能點(diǎn)(我這里說的是骨架),至于其他錦上添花的功能,讀者可以留言分享給大家。

另外在設(shè)計(jì)購物車的時(shí)候,還有一個(gè)影響體驗(yàn)的細(xì)節(jié)——購物車合并問題,當(dāng)一個(gè)用戶在未登錄狀態(tài)加車,在他下次登陸賬戶時(shí),應(yīng)該將未登錄狀態(tài)已加車商品并入已登錄賬戶購物車中。這里也有一個(gè)前提是:默認(rèn)未登錄狀態(tài)也可以加購物車。

本篇到這里算是結(jié)束了,很多東西感覺沒有說透,可能需要讀者自己去深入研究,如果有什么心得體會,也歡迎大家一起交流。

相關(guān)閱讀

電商入門(1):先從線下到線上說起

電商入門 (3):電商CMS,一勞永逸的建站方案

 

作者:QJQ,微信公眾號:倔牛的人生

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

題圖來自pixabay,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 時(shí)時(shí)查詢怎么查?查詢周期多久?是一某一個(gè)商品時(shí)時(shí)查詢?還是勾選的商品都時(shí)時(shí)查詢?這種邏輯是不是有問題?

    回復(fù)
    1. 實(shí)時(shí)查詢應(yīng)該會有一個(gè)規(guī)則的吧,我覺得這個(gè)問題需要產(chǎn)品和技術(shù)一起去評估,需要考慮實(shí)際情況

      來自浙江 回復(fù)
  2. 你好,請問,關(guān)于check商品庫存處理方式這一段,“說一下后者”后面的文字應(yīng)該解釋的是實(shí)時(shí)check商品庫存吧?
    順便請教一下,如果是實(shí)時(shí)check,用戶A將商品C加入購物車之后又去找其它商品了,這時(shí)用戶B過來結(jié)算了一件商品C,當(dāng)用戶A再進(jìn)入購物車的時(shí)候,商品C的數(shù)量如何處理呢?是后臺自動刷新數(shù)量并顯示當(dāng)前數(shù)量嗎?是否需要給出提醒呢?
    抱歉,產(chǎn)品小白

    來自廣東 回復(fù)
    1. 加入購物車后就要占庫存總量的緩存

      來自重慶 回復(fù)
    2. 后面的文字解釋的是 非 實(shí)時(shí)check商品庫存,仔細(xì)讀,我開始也以為作者寫錯(cuò)了

      來自浙江 回復(fù)
  3. 有沒有發(fā)現(xiàn)購物的時(shí)候,增加商品數(shù)量沒有提示只是1變成了2,2變3如是這樣,但是減少商品的時(shí)候就要二次確認(rèn),是否減少商品數(shù)量

    來自內(nèi)蒙古 回復(fù)
  4. 總結(jié)得很棒,受益匪淺

    來自浙江 回復(fù)
  5. 京東貌似是在提交訂單時(shí)提示用戶庫存不足,而且提示用戶是否移除,用戶移除后訂單繼續(xù)提交,用戶被打斷一次,但是整體流程還是相對順暢的;我覺得在提交訂單時(shí)再次校驗(yàn)庫存比在結(jié)算時(shí)校驗(yàn)對訂單提交成功率來說更好一點(diǎn),畢竟越早打斷用戶越容易終止。

    來自浙江 回復(fù)
    1. 你的意思越早打斷那不就是在提交訂單的時(shí)候嗎?和前面成功率高的結(jié)論相反了

      回復(fù)
  6. 商品C修改為參加活動A或B后,它的位置將如何變動?

    來自北京 回復(fù)
    1. 一年過去了啊,我想了一下,以加入購物車的時(shí)間為準(zhǔn),不管在購物車中怎么修改,不記錄修改時(shí)間。

      來自浙江 回復(fù)
  7. 為什么購物車加減要實(shí)時(shí)?意義在哪?求教

    來自浙江 回復(fù)
    1. 文章里其實(shí)提到了,你可以再返回去看看京東和淘寶對比的例子:操作流程上不連貫(或者說是,非一氣呵成的生成購物清單)

      來自北京 回復(fù)
    2. 可是如果用戶A加車50件,遲遲不下單,會影響到實(shí)際庫存,B用戶就沒有辦法購買了。我的做法還是認(rèn)為等用戶A下單成功了再減少庫存為好。

      來自浙江 回復(fù)
    3. 這也是我疑惑的點(diǎn),希望求大神解答

      來自浙江 回復(fù)
    4. 我之前 的疑問消失了,作者的意思如下,你可以再看一遍他的原文哦
      舉例子說明吧
      A產(chǎn)品有100個(gè)庫存
      我把1個(gè)加入購物車,我朋友把2個(gè)加入他自己的購物車,實(shí)際庫存是不變的,還是100個(gè),顯示給他人的庫存還是有100個(gè)
      當(dāng)你提交訂單之后,庫存才會變成99個(gè)。
      然后我朋友的購物車?yán)锟吹綆齑娴臄?shù)量會變成99個(gè),而不是之前的100個(gè)。

      來自浙江 回復(fù)
  8. 當(dāng)一個(gè)用戶在未登錄狀態(tài)加車,在他下次登陸賬戶時(shí),應(yīng)該將未登錄狀態(tài)已加車商品并入已登錄賬戶購物車中。這里也有一個(gè)前提是:默認(rèn)未登錄狀態(tài)也可以加購物車。
    這個(gè)未登錄狀態(tài)下加車,是不是說:比如一個(gè)用戶A未登錄,她選了一些商品加車了,之后另外一個(gè)用戶來用這個(gè)手機(jī)登錄了賬戶B,那么A加車的商品就加到了賬戶B下了。是這樣嗎?
    如果是這樣的話,未登錄狀態(tài)加車的商品綁定的是PC或APP嗎?
    我個(gè)人覺得,這個(gè)未登錄狀態(tài)加車的功能應(yīng)該僅限于手機(jī)端吧?

    來自上海 回復(fù)
    1. 沒有局限于哪個(gè)端,至于實(shí)現(xiàn)方式我只能提供一個(gè)參考:pc端一般存在瀏覽器緩存,平臺每次會去檢查瀏覽器緩存是否有加車記錄,手機(jī)端一般是存在本地專屬文件夾里,檢查原理和pc端一致。

      來自北京 回復(fù)
    2. 感覺有風(fēng)險(xiǎn)

      來自上海 回復(fù)
    3. 這是普遍的實(shí)現(xiàn)方式,至于風(fēng)險(xiǎn),就算被人知道未登陸前添加的購物車商品又有什么關(guān)系呢?

      來自北京 回復(fù)
    4. 我看了下淘寶和京東在這個(gè)細(xì)節(jié)上的做法:淘寶是加車前需要登錄才能加車;京東是像你說的一樣,用戶登錄后自動把登錄前加車的商品加到購物車
      兩種方式我覺得各有利弊,但是我個(gè)人還是比較傾向淘寶的做法
      所謂的風(fēng)險(xiǎn)就是你說的“被人知道未登陸前添加的購物車商品又有什么關(guān)系呢” 這個(gè)關(guān)系我覺得還是有的 比如我加了一些個(gè)人隱私的東西 然后被其他人掃描登錄了 就會看到我加車的商品

      來自上海 回復(fù)
    5. 這里是有很多機(jī)制可以防范你說的問題的,更多的你需要考慮的是為什么淘寶和京東的模式不一樣?(你可以從淘寶小店和京東自營的區(qū)別去考慮)

      來自北京 回復(fù)
    6. 你的意思是因?yàn)閿?shù)據(jù)的原因嗎?
      淘寶要求加車前登錄是因?yàn)榭梢越o入駐在淘寶平臺上的店鋪一定的用戶數(shù)據(jù);京東自營是因?yàn)楸旧砭褪瞧脚_,進(jìn)入平臺就開始產(chǎn)生數(shù)據(jù),是這個(gè)原因嗎?
      另外 你說的那些防范機(jī)制方便告知一下嗎?謝謝~

      來自上海 回復(fù)
    7. 有個(gè)問題,未登錄加車也需要扣減庫存嗎,我覺得不需要吧,跟登錄加車應(yīng)該是2個(gè)邏輯

      來自浙江 回復(fù)
  9. 我認(rèn)為活動和優(yōu)惠券兩個(gè)信息可以合并為一個(gè)信息欄,系統(tǒng)自動計(jì)算出最優(yōu)解(即最優(yōu)惠)展示出來。

    回復(fù)
    1. 這顯然對用戶是很友好的,但是背后涉及到的后臺邏輯,可沒那么簡單哈~你可以想這樣一個(gè)問題看看能不能輕松解決【你的問題比我這個(gè)問題難度高幾何倍數(shù)】:假設(shè)A商品參加了甲乙丙三個(gè)活動,當(dāng)用戶加車A時(shí),你如何制定一個(gè)規(guī)則,自動給用戶選擇參加(甲乙丙)中的某個(gè)活動?另外想兩個(gè)問題:用戶領(lǐng)了優(yōu)惠券,就一定要花出去么?對平臺來說用戶使用了優(yōu)惠券是利好么?【所以建議設(shè)計(jì)成手動使用優(yōu)惠券】

      來自北京 回復(fù)
    2. 嗯嗯,仔細(xì)思考確實(shí)存在問題,手動會更好一些。
      1.自動使用優(yōu)惠券客戶甚至沒有感覺到平臺購物的優(yōu)越性
      2.手動使用優(yōu)惠券利用了價(jià)格歧視原理,能區(qū)分出對價(jià)格敏感的客戶,可以進(jìn)行精準(zhǔn)運(yùn)營。

      回復(fù)