从淘宝数据结构来看电子商务中商品属性设计
淘寶名詞解釋
產品 和 商品的區別:
淘寶標準化產品,由類目+關鍵屬性唯一確定。如:手機類目,關鍵屬性是品牌和型號,Nokia N95就是一個產品,nokia是品牌,N95是型號。產品除了關鍵屬性還包括一般信息、銷售屬性和非關鍵屬性。參考:如"諾基亞N95"就是一個產品。通過類目的關鍵屬性組合來確定唯一的產品。后臺標準類目葉子節點下,一組共同特征商品的組合(例如:化妝品+雅芳+保濕單品+容量),屬于同一個產品的商品可以認為對消費者的效用及使用感受是沒有差別的。 產品這個概念對淘寶這種C2C,B2C的平臺是需要的,對我們一般的電子商務平臺基本是可以忽略的.
屬性名和屬性值:??
這里非常重要了,淘寶的寶貝搜索頁面,通過各種屬性對商品進行搜索,全靠屬性表了。從數據結構可以看到,屬性名表和屬性值值歸屬于類目,提取了類目子葉節點下面商品的公共基本屬性,在淘寶中,品牌和系列也當成是類目的屬性,可以看看這里來了解淘寶屬性分類,這里看下圖來了解屬性名和屬性值表之間的關系:
?
1.需要注意的是:左邊的表中全部存放屬性名,存在一個父子關系,比如品牌->型號->子型號,右邊的屬性值表只保存屬性的值。
2.左表的屬性名表有個parentVid字段,這邊的屬性名也跟右邊的屬性值相關聯,比如宏基下面有‘宏基電腦的型號’,那么這個‘宏基電腦的型號’屬性名存放于屬性名表,
具體有多少個型號,型號的名稱還是存放于屬性值表
3.如何添加自定義屬性,如何給屬性起別名,可以參考淘寶API的輸入屬性
SKU:
在淘寶中,SKU指銷售屬性的組合,表示一組最小銷售單位。 如顏色:金色;套餐:單電單充,描述手機銷售時實物特征。比如衣服: 顏色:紅色;尺碼:xl;我們可以通過這樣的屬性標示來確定一個商品.注意:比如洗發水,容量:150ML;買的多便宜多:*6;比如相機:顏色:紅色;套餐:A套餐;這種特殊的營銷模式也是一個SKU,我們后面就必須通過這些組合成SKU的屬性來統計銷售,庫存等信息,比如我們才能知道紅色,XL的衣服賣了多少,綠色,L的衣服賣了多少.
注意:我們自己的電子商務中,是否需要這樣的SKU設計,是需要的,不管你是用什么方法實現,但是根據屬性統計銷售等情況是電子商務中都會遇到的需求,但是有沒有必要一定這樣的實現,一件衣服,用戶點擊進來,才能看到SKU呢,沒有必要的,其實做電子商務之后發現,圖片,介紹,是給用戶的第一直接感覺,所以,很多商家會把一個SKU的商品當一個獨立的商品發布,比如衣服,紅色的發布一個,藍色的發布一個,這是完全有必要的,我們可以通過發布的多個SKU的單品,跳轉到統一的頁面讓用戶進行挑選,就比方說,你看了衣服A的黃顏色,衣服A的綠顏色,點擊查看詳情都是到一個頁面,這樣的話,為我們的商品提供更多次的展示,提高了用戶的購買率;
?
品牌和系列:
在淘寶中,如:日化/清潔/護理->日化用品->洗發水->海飛絲->清爽去屑系列,海飛絲以及它的系列都被規制到屬性當中,結構為:品牌:海飛絲;系列:XXXXX,這樣的話,不管你新有什么品牌,你只要屬于我的分類,那你就添加基本屬性就可以了,特殊的屬性是可以手動輸入的。因為商品的屬性是針對每一個分類的子葉節點的,這樣的設計,在我們做電子商務中思考是否適合自己。
抓取屬性
API文檔:http://my.open.taobao.com/apidoc/index.htm#categoryId:3??
API屬性測試工具:http://open.taobao.com/api_tool/props/
SDK下載地址:http://open.taobao.com/bbs/read.php?tid=18008
抓取詳細的代碼不寫了,需要注意的是,由于數據很大,需要多次連接API得到數據,必須做好異常記錄,不然抓一次,發現失敗了很多次,那么必須又開始一次了,我是把失敗的ID保存于數據庫之中
這樣,抓完之后只要先刪除這些抓取失敗的,在來一次,就OK了。
通過屬性來動態構建表單
1. 當用戶選擇完類目之后,我們已經可以通過類目ID得到類目下面所有的屬性名和屬性值,這里我們根據淘寶的添加商品頁面分析淘寶是如何做的:
需要注意的是:淘寶屬性這里的布局全是UL->LI的布局,這樣的結構和CSS配合起來讓JS實現起來是最容易的。
我們看到name=“keySpus”這里放置的關鍵屬性,下面的所有LI中放置的是非關鍵屬性,和用戶自定義屬性。我們通過什么來判斷表單控件是select 還是checkboxlist,屬性是什么類型的屬性,屬性下是否有子屬性(品牌->系列->子系列),以及驗證屬性是否必填必選或者可自定義輸入?請看屬性的數據結構,is_key_prop,is_sale_prop,is_enum_prop,multi,must,child_template這些數據結構能告訴我們答案.
好吧,實現上面相對簡單一點,實現銷售屬性就麻煩了,因為銷售屬性可以組合成多個SKU,怎么來實現呢?
上圖的洗發水的“毫升”和“買的多便宜多”組合成一個SKU,顯示在下面的tr里面,實現這里有一個很取巧的辦法,先把所有能組合好的屬性構造出來,頁面上隱藏N個TR,用戶點擊毫升或者*6 *12這種,我們顯示相應的TR組就好了 :) 其實是個好辦法的,可以省掉考慮很多問題,頁面最多增加10來K,JS性能也能提高不少.
如果你覺得這樣的實現很困難或者很麻煩,推薦你看看nopecomerce開源項目的屬性(它叫變體)實現.如圖:
展示效果:
這樣在多個頁面的輸入,減少了實現的難度,就是在后臺有點麻煩。
好吧,這篇文章在護士MM的生活照中結束吧,歡迎大家討論,以前寫一篇分析淘寶商品設計的文章,不要去看.發現當時考慮問題沒有考慮周全,后面有時間再寫一篇.在前臺實現快速的屬性讀取和頁面展示,后臺進行快速的報表展示,OLAP建模都需要考慮很多問題,也希望有經驗的朋友能討論個自是如何做的.
2011-04-22 追加 ?屬性名表和屬性值表關系圖示
1.通過類目ID得到類目下面的所有屬性值
2.通過類目ID+品牌ID(20000)得到洗發水的所有品牌
3.通過父VID+父PID+類目ID 得到美吾發洗發水品牌下的3個型號
在圖1這里型號可以叫做'美吾發型號' '飄柔型號',屬性名表和屬性表存在相互引用關系,這里我們自己做的話也可以加上第3個表來存儲關系。
轉載于:https://www.cnblogs.com/mmmjiang13/archive/2011/04/21/1983079.html
總結
以上是生活随笔為你收集整理的从淘宝数据结构来看电子商务中商品属性设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女人梦到乌龟进家什么预兆
- 下一篇: 做梦梦到门牙松动了是什么意思