1、SKU及相關概念定義
在設計商品SKU以前,首先讓咱們熟悉一下SKU和相關的一些概念。
# 什麼是SKU:
SKU=Stock Keeping Unit(庫存量單位)
同一型號的商品,或者說是同一個產品項目(商品條形碼是針對企業的產品
項目來進行定義的),由於產品與產品之間有某些屬性不一樣,用以區別開這些
不一樣商品的屬性即商品變異屬性,又稱做SKU屬性,由於它決定了SKU
的絕對數量。html
# 參考說明前端
百度上有一篇文章也有闡述,能夠作關聯閱讀,我就不重複貼上了。post
百度SKU參考
# 什麼是SKU屬性和選項
好比某件衣服有多種顏色、多種尺碼,這些屬性會直接關聯價格和庫存的,
系統會根據該商品關聯的SKU屬性的某個組合生成SKU。
好比某個款式的襯衫,有XL/L/XXL三種大小,有紅黃藍三種顏色。
對應這裏例子,尺碼和顏色都是是SKU屬性。
對應尺碼的XL/L/XXL等,都是SKU屬性選項。
【注】上述的屬性不必定在任什麼時候候都是SKU屬性,看實際的商品狀況和設置。
好比對於尺碼,某種商品是均碼的。那麼就不須要建立尺碼這個SKU屬性了,
而是設置爲普通屬性,僅做爲顯示用。
# 什麼是商品SKU
商品SKU實際上就是SKU,爲了不誤解和SKU屬性混淆,我用商品SKU來命名,
表示從屬於商品的、實際銷售和存儲的子實體。
一個商品SKU,表示該商品關聯的若干SKU屬性的的屬性值的某個組合所造成的
子實體。
如對應上面的例子,其中的一種組合 XL + 紅色 就會造成一個商品SKU。而後,
咱們能夠在該實體上管理價格、庫存、專門的圖片等信息。
# 什麼是商品變異
英文名:Product Variants
商品變異其實就是商品SKU,只不過在某些技術文章中這樣定義了。即以「變異」
來表達商品SKU的生成。優化
# 屬性集
網站
Attribute Set,用於管理各種擴展屬性的集合,其中SKU屬性也是在管理範疇以內。spa
商品經過關聯屬性集而得到該屬性集設置好的SKU屬性,而後才能夠根據這些SKU屬性設計
生成商品SKU。3d
屬性集也成爲產品類型。orm
常見的屬性集有:服裝、PC、傢俱、圖書等。
# 概念的統一
雖然不一樣的研究人員有不一樣的命名和定義,但爲了在本系列文章中不出現混淆,
我對概念作了如下統必定義:
1)SKU(或稱商品SKU)指的是商品子實體。
2)商品和商品SKU是主次關係,一個商品包含若干個商品SKU子實體,商品SKU從屬於商品。
3)SKU不是編碼,每一個SKU包含一個惟一編碼,即SKU Code,用於管理。
4)商品自己也有一個編碼,即Product Code,但不做爲直接庫存管理使用。
有時爲了方便管理,會經過商品的Product Code做爲前綴生成SKU Code。
2、SKU屬性的管理
常見有幾種狀況:
- 商品獨立管理
即SKU屬性從屬於商品。
優勢:基本上沒有。
缺點:這種比較不靠譜,由於會致使工做量過大。雖然能夠經過「複製」功能來稍稍
簡化,但依然不會很理想。因此基本不會採用。 - 商品獨立關聯
即SKU屬性是公共的,每一個商品根據本身的實際狀況來關聯若干個SKU屬性,
而後選擇若干選項生成商品SKU。
優勢:靈活,設置好了若干SKU屬性和相關選項後,由商品自行選擇相關的組合。
缺點:太靈活了,容易出錯。好比對於顏色這個SKU屬性而言,因爲是公共的,因此
會定義數十個,甚至更多,可是對於ipad而言,其實只須要2個便可。這種
管理方式,沒法從源頭控制商品添加時SKU屬性和選項的範圍。 - 經過屬性集管理
即SKU屬性依附屬性集存在,不存在能夠從屬於多個屬性集的SKU屬性。
優勢:容易進行嚴格的管理,不易出錯。好比一樣是命名爲「顏色」的SKU屬性會存在多個
(屬性ID/編碼不一樣),可是對於ipad的只須要2個選項(黑、白),對於服裝則會不少。
缺點:屬性集管理的工做量會稍大,適合屬性集很少的系統。 - 經過屬性集關聯
即SKU屬性是公共的,經過屬性集關聯。
優勢:這種方式重用性不錯,對於SKU選項較多的,會簡化工做量。
缺點:因爲SKU屬性是公共的,因此會存在上面第2點的缺點。但咱們也能夠經過設置多個
同名、但編碼不一樣的SKU屬性,如多個「顏色」SKU屬性,可是選項不一樣。 - 建立獨立的SKU屬性集
即設計一個獨立的SKU屬性集的實體,關聯或者直接管理SKU屬性。
這種方式也是挺不錯的。由於雖然各類商品類型之間產品特性會有較大的不一樣,可是SKU屬性
卻有可能差別不大。好比對於服裝、ipad都存在經過顏色來區分SKU,可是ipad只須要2種選項
(之後也許微調爲3~4種等),而服裝則不少了。
3、個人選擇
上面介紹了五種形式,我我的傾向第4和第5種,上一篇文章的ER圖也改爲了第4種的形式,比較符合
常見的思路。第5種也是不錯的。能夠在接下來的設計分析一下。
筆者研究過很多電子商務平臺軟件,關於SKU的設計各有不一樣,之因此有這樣的區別,是由於面向不一樣規模的電子商務網站,
存在產品分類複雜度,產品數量級的差別。一種設計方式對於百貨式的網站,如京東、淘寶等,也許比較方便,但也許對於一個
專賣服裝的小型時尚類網站就不夠方便了。
- 咱們先看一下麥包包的
女包:http://item.mbaobao.com/pshow-1209056501.html
手包:http://item.mbaobao.com/pshow-1209050001.html?s=gl_4f_2
可見SKU很簡單,就是顏色,至於尺寸,麥包包並無做爲SKU選項來管理,而是做爲不一樣的產品來處理。
- 再看一下凡客www.vancl.com
SKU相對簡單,主要是顏色和尺碼。可是看多幾個產品會發現,即便是同一個品類下面的顏色和尺碼均會出現不相同的狀況。至於
顏色圖片更是各有不一樣。
- 再看一下京東的SKU:
華碩EeePad:http://www.360buy.com/product/492015.html
蘋果iPad2:http://www.360buy.com/product/386365.html
其中」版本「SKU屬性,兩個產品下面的可選項徹底不一樣。
京東的SKU更爲複雜了,即便是同一個三級品類下面,也有差別。若是預設置好SKU屬性(」版本「)和它的可選項(64G/32G/
16G/32G旗艦版/32G標準版/16G旗艦版/16G標準版)等,那估計會比較多可選項。這種類型,分開多個SKU屬性管理會比較合適。
針對這三種常見的網站,其中麥包包和凡客其實比較相似,只是麥包包作了些簡化,但這兩種能夠概括爲一種設計方式,這樣
SKU屬性的設計,即可以分爲兩類了:
- 經過屬性集關聯SKU屬性
適合品類較少的網站,管理容易些。
如麥包包等專賣箱包或者服飾類的網站。通常就是顏色+尺碼兩種。並且因爲品類不多,爲了方便管理,能夠將SKU屬性歸入到屬性
集中管理,這樣產品關聯了屬性集後,天然就關聯了普通屬性、查詢屬性、SKU屬性和評論屬性了。
對於上圖,若是該網站產品種類不多,好比只賣服裝,那麼能夠作進一步的簡化,即直接將SKU屬性從屬關聯屬性集,去掉
」屬性集關聯SKU「。
基於本設計的管理方式:
按品類建立屬性集,如箱包、鞋子、服裝、文胸等。而後建立多個SKU屬性,即便針對內涵類似的,可是可選項不一樣的也建立
多個,如尺碼,用在箱包和用在服裝上是徹底不一樣的。這些分別建立,並關聯不一樣的屬性集。
產品建立時,關聯一個屬性集,經過屬性集關聯了1~N個SKU屬性,而後選項這些SKU屬性的組合,如2個顏色*3個尺碼,
即6個組合,而後能夠根據須要刪除不支持的組合,這樣最終得出了一個組合列表,點擊」生成SKU「,就根據組合數量建立了產品
SKU,每一個產品SKU對應一個組合,存儲在產品SKU選項值表中。對於某些SKU,能夠設置專門的選項配圖。
- 產品和SKU屬性直接關聯
適合品類不少網站,比較靈活,可是維護起來數據量比較大。
爲了簡化,我增長SKU屬性關聯產品分類(可爲空,表示是全局的),這樣在建立產品時,能夠只列出全局的+本產品分類的
SKU屬性,這樣就不會一會兒列出不少SKU屬性了。
SKU屬性分爲前端名稱和後臺名稱兩個,方便不一樣業務含義的SKU屬性,在前端也可以用同一個名稱顯示,如顏色、容量等。
另外在操做上能夠作些優化,好比用下拉列表顯示可選的SKU屬性時,能夠同時顯示該屬性的屬性描述,供產品維護人員參考。
對於上面兩個圖的數據表設計,筆者就不在細化了,讀者能夠自行根據實際須要進行細化,要注意的是,基於SKU方式來管理產品時,
產品的價格、庫存和圖片等信息必然是放在產品SKU表中處理的,和訂單、購物車等表的關聯,也是經過產品SKU表,而不是產品表。
至於產品表,其實是一個總的業務彙總和外部關聯表,但實際銷售的並非它。
有些網站作的更細些,會就每一個產品SKU生成獨立的URL(僞靜態),這裏見仁見智了,但從SEO方面考慮,每一個產品SKU擁有獨立
的連接對收錄和排名會更有優點些,能夠考慮。