最近在構思對自家的社區電商平臺進行重構,其中的大頭就是權限系統,原有的權限體系已經不能滿足需求了,所以根據客戶狀況及參考了其他一些大神的方案,對整個社區電商平臺的權限系統進行了設計。
1. 用戶群劃分和業務介紹
用戶劃分
我們是做社區電商的,普通C端用戶就是最終端的消費者。分銷客是由C端用戶「申請」成為,定位是社區或街道的「團長」,當所有用戶(包括平臺用戶與分銷客)通過分銷客的連結完成交易時,分銷客就能獲得對應的提成。
商家是商品的提供商,負責上傳SKU、處理訂單發貨、售後等。我們平臺主要面向社區,上面的商品不完全是實體的商品,也有很多家政、洗車等服務。
代理商是一個特殊的角色,例如大區代理、省份代理、城市代理。他們幫平臺完成很多地區的落地、招商、運營工作,某種程度上他們也是平臺的用戶,不過只能看到其對應有權限的區域的商家商品、訂單信息。
商品客與商家、平臺、代理商的關係
當一個用戶希望成為分銷客時,我們平臺是需要用戶申請的,如果當地有代理商,則申請會流轉給代理商,由代理商根據用戶周邊情況決定。如果當地沒有代理商,則由平臺進行審核。而一個商品是否支持分銷,由商家和平臺/代理商共同決定。分銷的模式為分銷客可以開設自己的店鋪,然後將不同商家的商品添加到自己店鋪中,再分享給他人促成購買。
當然,我們也在嘗試一些全民分銷的活動,尤其是在沒有代理商代理的地區,讓普通用戶都可以嘗試將自己看好的商品分享給其他人,一旦促成購買,也有一定的獎勵金。
2. 客戶端劃分
C端:用戶和分銷商操作,主要載體是微信小程序、公眾號H5、我們的APP,支持註冊登錄下單支付等功能。B端:由商家及其員工操作,一個商家完成註冊後,可以設置多個員工帳號,擁有不同的權限,進行上傳SKU、訂單發貨、售後服務、財務結算、優惠促銷等操作。主要載體和電腦端網頁和手機H5網頁,其中手機H5網頁的功能是簡化後的,有些功能只能在電腦端操作。平臺端:以電腦端網頁為主,並嘗試兼容在手機上查看數據。用戶為平臺運營和代理商們。代理層級我們就設置了兩級,之前其實我們就有一級代理商角色,現在是再增加了一級代理商。可能有的朋友會問,那為什麼不一步到位:洲際、國家、區域、省份、城市、區/縣、鎮/街道這樣分呢。主要原因就是我們體量有限、代理商並不多,過於複雜且靈活的體系,擔心一來會加重研發周期,二來會干擾運營的操作體驗,所以最後就選擇了省-市兩級的代理。
3. 權限劃分
權限劃分是整個權限體系設計的最大困難點,我們把權限分為了3種:
權限類型
(1)功能權限
可以訪問哪些板塊、操作哪些按鈕。
功能權限劃分
(2)數據權限
數據權限繼承
數據權限即該用戶可以訪問哪些數據,例如一個用戶可以訪問商家管理板塊,同時他可以訪問廣東地區商家的數據,那麼綜合在一起,他就能在商家管理板塊看到廣東地區商家的數據了。
重要的數據包括:
商家資料;商家訂單;分銷訂單,比商家訂單多出了分銷者信息;商品信息;用戶資料;分銷者資料,在用戶資料基礎上增加了一些實名信息、業績、餘額等內容;商家員工資料;代理商資料。其他常見的數據,但是我沒有體現在流程圖中的:
商家優惠券;平臺/代理商優惠券;活動及報名信息;廣告信息;用戶行為數據(登錄、駐留時間、訪問頁面等)。我們的代理商、分銷客都可以拉新,所以當遊客通過不同的連結註冊後,我們會給予分銷客一定的獎勵,對於代理商則有一定的手續費返現。分銷客和代理商能查看到其拉新用戶的「資料摘要」,即簡化後的資料信息,我們並不會將一些敏感信息任由他們查看。
查看用戶資料的數據權限
平臺和代理商都可以招收分銷客、商家,分銷客和商家的數據權限秉承三個原則:
誰招收誰有權查看;上級有權查看;下級不自動繼承權限,除非上級下放數據權限。
商家、分銷客的數據權限
(3)角色權限
用戶的權限由其所屬的角色決定,一個用戶可以關聯多個角色。
平臺的代理商及角色關係
如果一共用戶的角色是省級代理商,則可以訪問該代理商及其下屬市集代理商的所有數據。但是市級代理商只能訪問自己的數據,無法訪問到其關聯的省級代理商的數據。代理商如果是平級或不平級、但是無關聯,數據也不互通。
在實際應用中可能會出現以下特殊場景:
原本一個市級代理商,現在要承包整個省的代理,如何處理?
如果這個市級代理是單獨存在的,我們提供了升級功能,這樣他下面就能掛載其他市級代理商了。如果這個市級代理原本屬於某個省級代理,那我們應該先解綁,然後再升級。
如果一個大區被承包了如何處理?
我們現在並沒有這種場景,雖然不排除以後會有。我們現在遇到的場景是我們將不同的片區的代理商,分給不同的運營和商務處理,這樣我們就為他們的帳號綁定了多個角色權限,這樣他們就能查看這個大區所有代理商的數據了。如果以後有華南區、華中區代理商的需求,我們再增加對應層級。
代理商如果自己有更細的層級劃分如何處理?
我們提供接口權限級別的ERP對接業務,代理商可以將自己的ERP與我們系統對接,打通訂單、商品、優惠券、商家及用戶資料等數據,由代理商的ERP系統對下級權限進行細分。
4. 平臺用戶欄位
平臺的用戶欄位
這裡以最複雜的平臺端的用戶來講解一下用戶、功能、數據、角色的關係,關於商家的員工欄位將不再贅述。首先,超級管理員是系統自帶的,不能創建和修改權限,第一批用戶都由超級管理員創建,我們稱為「普通管理員帳號」,生產工作中都是使用此類帳號。
(1)用戶基本資料
登錄的帳號密碼、姓名、身份證號、聯繫方式等信息。
帳號密碼、姓名、手機必填,姓名和手機可以幫助對應帳號自行修改、找回密碼。
(2)功能權限
我們預設了一些功能角色,這樣不需要每創建一個用戶都要勾選一遍功能列表,這是一個很繁瑣的事情,同時我們也提供了功能角色的編輯板塊,讓平臺管理員可以根據實際情況新增一些預設角色。
對於代理商來說,預設的角色若是不滿足他們的需求,可以自定義他們的員工及合伙人可以使用的功能。代理商看到的功能列表裡,只有當前用戶所有的功能,只能從中進行篩選,無法查看、無法勾選其沒有的權限的功能。
(3)數據權限與角色
我們並沒有單獨出一個版塊來設置訂單數據、商品數據之類的訪問權限,而是直接選擇該用戶的角色,是平臺還是某個或某幾個代理商。因為只要限定了可訪問的板塊、用戶所屬角色,例如可以訪問商品管理板塊且你是一個地區代理,則你可以查看本地區所有的訂單數據。
沒有必要做成你可以訪問訂單管理板塊、你需要擁有訂單數據權限、你是地區代理身份,這樣設置三次的方法來確定權限。
數據權限說明
一個用戶若有創建用戶的功能權限,則可以創建角色小於等於自己所屬角色的用戶。例如平臺角色用戶可以創建更多的平臺角色用戶,也可以創建省級、市級代理用戶。一個省級代理可以為自己及其市級代理創建用戶,但是無法為其他省級代理、市級代理、平臺角色創建用戶。
5. 總結
作為一個社區電商平臺,這可能不是最完美的權限系統設計方式,但可能是比較適合我們當前需求的方案。如何設計一套權限系統應該由產品的業務特徵決定,如果一個產品是完全自營的,就不會有代理商的概念;如果是傳統的線下零售轉線上,可能就要預設很多級的角色以滿足原有的組織架構。
另外,一個權限系統也不是越複雜、顆粒度越高越好,有些權限系統將功能權限顆粒度細化到了每個接口,這樣「看似完美」的設計,最大的優勢其實是最容易實現。對於那些需要運營進行權限配置、甚至對外開放的系統而言,在實際操作過程中,由於業務是由接口組合實現的,就有了運營看不懂該怎麼配置,或某幾個業務是共用同一個接口。於是運營進行一些業務操作時沒問題,但是進行另外一些業務操作時報錯。
還有前文提到過的,一開始為何就不設計成多級甚至支持無限級的權限系統呢,畢竟研發也要成本,且用不上的層級可能也會帶來操作者的疑惑、增加學習和操作成本。
只有根據自己產品的使用場景需要、考慮使用者的用戶體驗,才能設計出好的權限系統。
本文由 @iCheer 原創發布於人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基於CC0協議。