電商後台設計:屬性管理
編輯導語:電商平台上出售着各種各樣的商品,買家通過讀取這些商品的屬性介紹才能瞭解它的信息,確定自己需不需要、適不適合。電商平台中商品數量龐大,各商品的屬性又千差萬別,所以設計一套可複用的屬性管理功能就很重要。本文作者以此為出發點,為我們詳細的概述了電商後台設計的屬性管理。
上篇文章我們介紹了商品品類功能,在介紹後端品類管理的時候,遺留了一個屬性設置功能,本篇我們來梳理一下這個功能。
在介紹具體功前我們先來理解一下什麼是屬性,什麼是屬性值?
屬性是對事物特性的一種描述,屬性值則是具體的描述詞。
比如:我們寫簡歷時,都要填寫以下幾項內容:姓名張三、性別男、年齡20歲、身高170cm等;再比如售貨員為顧客推薦衣服時會介紹:這件衣服是羊絨材質、售價2000元等等。
這裏面的性別、年齡、身高、材質、售價就是屬性,而男、20歲、170cm、羊絨、2000元則是對應的屬性值。
通過這些屬性和屬性值的描述我們就能瞭解到這個人和這件衣服的具體信息,當描述的屬性和屬性值越多時,這個事物展現在我們大腦中的形象就越清晰。
同理,電商平台上出售的是各種各樣的商品,通過讀取商品的屬性介紹才能瞭解它的信息。電商平台中商品數量龐大,各商品的屬性又千差萬別,所以就需要設計一套可複用的屬性管理功能就很重要。
首先,我們先找幾款商品,看看它們的屬性之間都有什麼特點和關聯。
下面是幾款不同類型商品的對比:
通過對上述三款產品的屬性對比,我們可以得到幾個結果:
- 不同的商品有部分相同屬性,如標題、品牌、品類
- 不同的商品它們各自獨有的屬性,如手機有內存、鞋子有尺碼、手錶有機芯
- 不同商品的相同屬性,其中的屬性值可能相同,如在顏色屬性中手機和手錶都有黑色
- 有部分屬性參與了商品的銷售價格,如手機的內存,不同大小的內存價格是不一樣的。
- 對於屬性值,部分沒有規律,可以隨意填寫,如標題、產品簡介;部分是規律的,它們的值通常是有限的,我們可以一一整理出來,如使用人羣(女士、男士、全部)、內存大小(8G、16G、32G、64G、128G、256G)
- 有些商品的屬性可以很多,有些則很少。如電子產品、汽車等,它們的參數通常都有幾十項,而文具用品它們就很少。
通過上面的數據分析,我們可以看到不同商品的屬性差異化還是很大,系統設計時為了方便管理,根據用途我們將它們分成四類:
- 基礎屬性:所有的商品都有的通用屬性,如標題、品牌、品類等
- 銷售屬性:影響商品銷售價格的屬性,不同類型的的商品銷售各不相同,如手機的顏色、內存等
- 搜索屬性:參與到商品搜索中的屬性,如標題、品牌、品類等
- 特有屬性:不同商品各自所獨有的屬性,如鞋子的使用人羣、鞋面材質,手錶的機芯等
在上面的分類中,可以發現有些屬性用途並非單一的,如品牌、品類除了基礎信息的展示外,還可以參與搜索。
在功能設計時,基礎屬性、銷售屬性都有明確的、可列舉出來屬性,所以各自有對應的功能對數據進行單獨的維護。
而搜索屬性屬於對數據的應用,所以它的部分功能寫在代碼邏輯裏,另一部分則在特有屬性中設置。
對於特有屬性,它的屬性主要和商品相關,所以我們需要根據不同的商品單獨設計,下面我們就特有屬性做功能分析。
三、功能分析1. 屬性關聯品類特有屬性雖然和商品有關,但是有一個共同特性,相同品類的商品它們所有擁有的特殊屬性基本相同,針對於這個特性,我們通常將產品的特殊屬性和品類綁定在一起。
當商品在基礎屬性中設置對應的品類後,就可以關聯獲得已綁定的所有特殊屬性配置。
2. 屬性繼承在上一篇文章品類管理中,我們知道了品類通常是以樹形結構來維護的,上面我們又分析了屬性和品類是綁定在一起的,為了避免重複添加屬性,就會設計一個繼承功能,子集品類屬性會默認繼承所有父級品類已綁定的屬性。
在這裏説了題外話,就是這個繼承功能本身是好的,但是由於內部的邏輯比較複雜(涉及到了數據遞歸、去重等),開發成本和後期的維護成本都比較大。
所以我通常採用一種折中的方案,當添加子集品類時,將父級品類已綁定的屬性給子集品類複製一份,這樣子集品類也能單獨維護自己的屬性,之後只需要做較少的調整就能達到和繼承同樣的效果,而開發和維護比繼承方式簡單很多。
3. 屬性組由於部分商品的屬性繁多,如電子產品、汽車等,為了方便用户瀏覽對比數據,通常會對屬性進行分組管理。
為了能更精準的搜索到用户的商品,除了基礎屬性(如標題、品牌、品類)參與搜索外,部分特有屬性也會參與到搜索中,如手機的分辨率、攝像頭數量、服裝的材質、圖案等。
對於不同的屬性,所對應的屬性值添加方式各不一樣,為了能夠儘可能的保持數據的規整,會根據使用場景採用不同的維護方式,常見的維護方式如下:
- 文本框:維護文字性的描述,並且沒有明顯規律的內容,如:使用場景、工藝描述等
- 單選框:維護屬性值可以被窮舉的屬性,如性別:男、女;季節:春、夏、秋、冬等
- 複選框:維護屬性值可以同時被多選的屬性,如愛好、標籤等
- 下拉框:維護需要單選或多選但是屬性值又比較多的屬性,如顏色、材質等
- 時間日期: 維護需要精確時間的屬性,如上市日期等
- 自定義組件:除了上述常見的表單組件,還可以自行根據需要開發相應的組件
對於平台性質的電商系統,由於參與的商户較多,不同商户為了凸顯各自的產品特性,通常會加入自家定義的屬性,所以在設計功能時需要為個性化設置留有擴展。
7. 功能排序不同的商品對於屬性展示的側重點有所不同,需要通過排序功能對屬性組和屬性做位置調整。
四、設計方案根據上面整理的功能要點,我們知道了屬性功能需要處理哪些問題,接下來我們看看幾種功能設計方案:
1. 鍵值對鍵值對是最簡的維護方式,它的屬性維護功能直接和商品綁定在一起,需要維護屬性信息,直接通過添加或刪除操作就行了。
這種開發方式一般適用於商品數量比較少,對屬性搜索要求不是很高的系統。
為了能夠保持數據規整並最大限度的重複利用數據,後台系統會將所有商品涉及到的屬性集中在一起,形成一個屬性池,然後統一進行管理。
具體操作如下:
- 先維護好所有商品所涉及的屬性以及對應的屬性值
- 在品類管理中綁定當前品類所擁有的屬性以及屬性值,並設置好表單維護方式、是否搜索、是否為必填項等
- 添加商品時,先為商品選定品類,再根據品類調出已設置好的屬性,並根據設置項目展示出維護方式
- 維護人員選擇或填寫屬性值內容
通過這種方式構建的屬性功能,商品擁有哪些屬性只需要在開始創建品類時配置一次,後期的維護人員只需要專心維護產品屬性值,維護成本將會降低很多。
這種方式也有很大的弊端:當平台上的商品品類過多時,屬性池中的屬性和屬性值將會非常多,在給品類綁定屬性時就很難查找;再一個對於平台的個性化展示並不友好,同一款商品信息,不同商户想體現的重點不同,那麼屬性的展示順序就不一樣;還有如手機的顏色,同一款紅色,可能有的叫玫瑰紅、有的叫炫彩紅等等。
屬性池這種設計方案一般用在品類比較集中的自營電商中,如服飾商城、傢俱商城等等。
3. 屬性模板對於大平台來説,商品信息既要按照平台要求來維護,同時也需要為個性化設置留有操作空間,通常採用構建模板的方式來完成。
具體操作如下:
- 平台會在後端品類上先創建一套基礎屬性模板,模板中規定了當前品類的所有的屬性,同時設置好的各種操作功能,如屬性組、屬性名、是否必填、是否參與搜索、維護方式、可選屬性值等
- 當商户在維護商品時,根據需要先對基礎品類模板做出部分調整,如對屬性組和屬性進行位置調整、刪除部分非必填的屬性、添加個性化屬性等,之後保存成個性化模板
- 商户維護商品時,先設置商品對應品類,通過品類ID獲取新模板的屬性配置,之後再進行數據維護。
通過屬性模板的調整可以讓商户有更簡潔的操作,以及最大限度發揮個性空間。
但也是有缺點的,在後端維護品類屬性時,不同的品類中經常會出現相同的屬性,如手機和電腦兩個品類,都會有電池信息(充電器、無線充電、電池是否可拆裝),那麼就需要在每個品類下都要手動添加電池信息,雖然名稱相同但是它們之間沒有任何關聯,假如在前端搜索’無線充電’,有可能不能準確匹配其中部分商品。
解決這個問題需要其它功能的幫助,具體方法我在之後的搜索篇中講解。
上面講了三種設計方案,各有優缺點,大家根據自己的使用場景合理的進行選擇,最後給出屬性模板的關鍵原型設計。
5. 設計原型品類屬性設置:
屬性表單原型:
以上就是屬性管理的所有內容,希望對你有所幫助,歡迎下方留言交流!
作者:JackLiu;個人微信公眾號: 揚帆去遠航(ID:Jackai_liu)
本文由 @Jack 原創發佈於人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基於CC0協議。