電商系統中的商品模型的分析與設計—續

飄揚的紅領巾發表於2015-06-09

前言

    在《電商系統中的商品模型的分析與設計》中,對電商系統商品模型有一個粗淺的描述,後來有博友對貨品和商品的區別以及屬性有一些疑問。我也對此做一些研究,再次簡單的對商品模型做一個介紹。

從SPU、SKU開始

    首先我們需要澄清上篇中的這兩個概念,在上篇文章中“貨品”是指一種概念物品,這種物品並不是一個具體的實物,當它具備具體的屬性、價格時,才是一種實物,也就是商品。“商品”就是庫存中一個具體的實物。例如:iphone6,就是一種貨品,但使用者購買的並不是貨品而是商品,也就是使用者最終購買的可能是:金色-16G-移動版 iphone6。換句話來說,貨品是一種產品的稱謂(如iphone6),商品是使用者購買的具體實物,具備特定的屬性(如:金色-16G-移動版)。如果覺得這樣理解還是比較混,那麼忘記這兩個概念,下面講標準化的名稱。

    我們剛才說的iphone6,書面稱謂叫“SPU” Standard Product Unit (標準化產品單元),它是最接近使用者認知的產品單元,比如使用者說,我想買個iphone4、iphone6、小米4,這些都是SPU,也就是使用者普遍認知範圍內的一種產品。然而在電商系統中只有SPU並沒有什麼卵用,使用者購買時肯定要確定,需要什麼顏色、多少G的,支援什麼網路。所以,例如金色-16G-移動版 iphone6,就需要一個名稱去規範它,這個名稱叫“SKU” Stock Keeping Unit(庫存單元),換句話理解就是庫存裡面存的東西,庫存裡存在東西肯定是具體的某種規格的iphone6。基於這個理解,我們先畫下圖:

image

    SPU,SKU兩個表,有各自的編碼,這方便庫存統計以及後臺系統的管理,另外價格欄位是在SKU中,這應該好理解,不同規格的iphone6肯定價格不一樣,另外SPU與分類和品牌關聯,如iphone6屬於“手機”分類,“蘋果”品牌。當然一個SPU也可能屬於多個分類,可以做成多對多的關係。有了這個基礎,我們再來看電商商品詳情頁是怎麼設計的:

image

    我們看到這個頁面其實是一個SKU的詳情頁,因為它指定了價格、顏色、版本、容量等資訊,不同的顏色、版本、容量其實是不同的價格,不同的SKU。我們如果要實現這個設計,我們需要加兩個概念,就是“屬性”和“屬性選項”。“屬性”正如這裡的顏色、版本、容量。而“屬性選項”則是金色、銀色、移動4G版、16gb、64gb等。可以看出“屬性”和“屬性選項”是一對多的關係,而“屬性選項”和SKU則是多對多關係,一個金色-16G-移動版 iphone6,具備“金色”、“16G”,“移動版”多個選項,而一個“金色”選項除了對應iphone6還可以對於iphone4。我們繼續畫圖:

image

    需要注意的是,屬性是對於一個分類的,這樣設計的目的主要是為了屬效能歸類管理,也方便在新增產品時,通過分類對屬性進行篩選。例如,“手機”分類有顏色、版本、容量等屬性,而“襯衫”分類有“顏色”、“尺寸”。這裡有博友可能有疑問,如果屬性和分類是一對多的關係,那麼屬性表將會出現一些冗餘,比如“手機”、“襯衫”都有顏色屬性,但是在屬性表中就會兩條顏色的記錄甚至更多。這裡其實可以設計為多對多的關係。一對多的關係,可以在商品規模小、資料量不太大的電商上適應,這樣的好處是,可以讓產品釋出者更好的管理屬性選項和釋出產品,因為即便是兩個顏色的屬性,但他們的屬性選項確可以不同,對於“手機”來說,可能只有黑、白、金、銀等顏色,但對於“襯衫”分類來說選項就可以有“紅橙黃綠青藍紫”甚至有“花格”。所以可以考慮犧牲冗餘來提高商家釋出者的體驗。接下來我們來看另外一個特性——“規格”:

image

“規格”代表這一個SKU具體的各項引數,是一個詳細的產品規格說明,使用者可以通過這些引數與其他同類手機做對比。這些引數中,部分引數將參與列表頁的篩選條件中

image

    我們可以注意到兩幅圖,有些規格並不能對應上。這是因為我們在規格表中可以設定哪些規格顯示在詳細頁中,哪些規格顯示在列表篩選條件中。最終的商品模型就是這樣:

image

    好了,這個電商商品模型的雛形就有了,但一個成熟的大型電商系統模型要比這個複雜的多,光是一個價格都會有一個單獨的模組進行管理,比如市場價、進貨價、成本價等,要進行成本核算,要與營銷活動結合,雙11折扣,或者與其他商品打包購買價格更便宜等。總之,需要根據業務的需要進行一步一步的擴充套件和設計。以後有機會介紹下電商中訂單模型。

相關文章