主頁 > 軟體設計 > 新零售SaaS架構:商品系統架構設計

新零售SaaS架構:商品系統架構設計

2022-09-05 07:51:44 軟體設計

SaaS產品就像一座冰山,冰山以上的部分是功能、資料(可見部分)、用戶界面,冰山以下是系統架構、完整的資料模型、開放體系、非功能性需求(擴展性、可維護性、性能、安全等),

短期內想要快速上線產品,可能只需關注冰山以上的部分就夠了,但是SaaS公司想要在市場上建立長期的競爭優勢,比拼的一定是冰山以下的部分,并且在這塊的投入絕對遠超冰山以上的部分,

商品系統的定位

商品系統是零售SaaS最基礎、最核心的系統之一,商品系統幾乎需要支撐所有業務系統,例如C端商詳、購物車、訂單、履約、結算、售后、庫存、供應鏈等,都需要依賴商品系統的能力,

為了保障業務的穩定性、可擴展性,必須要重視商品系統建設,否則,后續業務和系統將很快喪失擴展性和靈活性,甚至無法支撐業務發展,必須推倒重來,付出慘痛的代價才能挽回,

商品系統的挑戰

行業需求差異大

不同行業對商品管理的需求差異非常大,想要構建成熟穩定的商品系統,需要對各行業的商品管理需求,進行深度分析,只有這樣,才能抽象出共性的規律和特征,保障業務建模的質量,列舉一些行業差異性需求:

  • 時尚服裝:款式管理,配比、配碼管理,商品季節性管理,

  • 3C數碼:串碼管理,配件管理,售后維修,

  • 美容護膚、醫藥保健:批號管理,生產日期與有效期管理,試用品管理,

  • 生鮮行業:生產日期與有效期管理 ,生鮮加工管理,稱重商品與 PLU 碼,輔助單位管理(管理重量和數量,例如:魚,按照重量核算,以條作為輔助單位),

支撐的業務鏈路廣

商品系統作為最基礎、最核心的系統之一,幾乎所有業務系統,都需要依賴商品系統的能力,

從業務全流程來看,需要支撐采購、配送、銷售、履約、退貨、退倉、核算、結算、資料分析等各個業務環節,

從商品生命周期的管理來看,商品狀態包括建檔、新品、正常、淘汰、清理等,各個狀態之間流轉也例外復雜,

商品關鍵概念

商品基礎

  • 平臺SPU:指的是標準化產品單元,是商品資訊聚合的最小單位,是一組可復用、易檢索的標準化資訊的集合,該集合描述了一個產品的特性,又可稱為平臺商品,

    SPU的概念來源于電商平臺業務,第一個關鍵點在于,SPU模型會提取商品的共性屬性用于資訊檢索,這些屬性通常是能夠快速識別商品,并且是消費者較為關心的屬性;第二個關鍵點在于,SPU的屬性是全平臺標準化的,這樣才能有效保障消費者的檢索體驗與商家利益,例如,消費者搜索256G的iphone12,有填容量的商品能搜出來,沒填容量的商品就搜不出,這顯然不合理,因此平臺需要規范所有商品的關鍵屬性,

  • 商品:特指商家的銷售商品,一個商家可以有很多商品,若N個商家賣同一個商品,如iphone13,該場景下有1個平臺SPU實體,N個商品實體,每個商品可以有多個規格,例如大小、顏色、尺碼等,

  • SKU:SKU(為Stock Keeping Unit),指的是庫存量單位,又稱最小存貨單位,以iphone13為例,關鍵規格有顏色(黑色、紅色、銀色、金色)、容量(128G、256G、512G),可以組合出4x3=12個SKU,

商品型別

  • 實物商品:以有形物體存在,不能通過網路來傳遞,必須依賴傳統的物流運輸系統來傳遞,例如,雞蛋、大米、手機等,

  • 服務商品:能夠實作交易的無形商品,無需物流參與,就能完成交易,例如,話費充值等,

  • 組合商品:一般指人為將幾個單獨售賣的商品組合在一起,進行合并售賣的商品,例如:下午茶套餐、七夕美妝組合等,

  • 多規格商品:代表一組SKU的商品,消費者只能選中其中某一個SKU,例如,以iphone13為例,關鍵規格有顏色(黑色、紅色、銀色、金色)、容量(128G、256G、512G),消費者選中了黑色128G的iphone13進行下單交易,

  • 預售商品:一般來說,預售商品會提前銷售,但實物還未生產,因此,預售商品不會錄入實物庫存,售出也不會扣減實物庫存,預售商品由一組原材料加工而來,加工關系一般稱作配方,因此,當預售商品扣減庫存時,實際會扣減原材料的庫存,

商品類別

  • 前臺類目:前臺類目是面向消費場景和用戶視角的分類,根據運營需求,靈活多變,主要用于用戶快速篩選,

  • 后臺類目:后臺類目是前臺類目搭建的基礎,后臺類目主要面向商家運營,相對穩定,不會經常變更,

  • 品牌:品牌是比較特殊的商品屬性,需要單獨進行管理,品牌是人們對一個企業及其產品、售后服務、文化價值的一種評價和認知,是一種信任,

商品屬性

商品屬性,又稱為產品屬性、商品引數,是產品本身固有的特征,不同行業的商品,差異性非常大,有很多行業差異化屬性,根據使用目的、用途不同,商品演化出各式各樣的屬性,有的用于展示,有的用于分析,有的用于經營管控,

下面根據商品屬性不同的分類法,逐一展開描述:

  • 描述屬性:商品貨號、商品名稱、商品??描述、規格、型號、產地、等級、生產廠商、商品圖片等,

  • 統計屬性:品牌、分類、系列、款式、適用人群、適用年齡等,

  • 考核屬性:一般用于組織業績考核,品牌、分類、系列等,

  • 物流屬性:長、寬、高、凈重、毛重、重量單位等,

  • 管控屬性:是否季節商品、是否保險、是否支持配送、是否支持打折、是否保質期管控、是否串碼管理等,

  • 銷售渠道屬性:不同的銷售渠道會有一些特殊的屬性,例如,美團、餓了么的最小購買數量、平臺分類等,

  • 銷售屬性:也稱為規格屬性,該屬性是組成SKU的特殊屬性,直接影響到買家的購買和商家的庫存管理,例如衣服的顏色、尺寸,

商品價格

  • 指導價:廠商給出的一個出售的參考價格,

  • 銷售價:商家根據自己情況提高或降低指導價得到的最終銷售價格,

  • 渠道價格:在分渠道售賣的時候,商品的基礎銷售價格,

  • 時間價格:不同的時間,可以有不同的價格,

  • 成本價:一般特指商品的單個成本,成本價會到sku維度,

組織層級商品

  • 商品庫:零售企業操作和管理商品的總集,

  • 管理層級商品:管理層級需要操作和管理的商品的集合,管理層級有多種形態,例如區域、部門、分公司、子公司等,

  • 店鋪商品:即門店、商城等店鋪單元的商品集合,

  • 渠道商品:發布到某個銷售渠道的商品集合,例如微信商城、美團外賣、餓了么外賣等渠道,

商品狀態

  • 商品的生命周期狀態:建檔、新品、正常、預淘汰、淘汰、清理、待歸檔等,

  • 商品的經營狀態:商品在各個業務階段,可以有不同的狀態,來控制業務的經營,例如,商品銷售狀態上架、下架,

概念模型設計

商品應用架構設計

  • 展現層:直接與用戶互動的層級,負責向用戶顯示資訊,或解釋用戶命令,

  • 應用層:應用層的服務對應一個具有業務價值的場景用例,主要負責對核心服務進行組合和編排,負責處理場景用例內的執行順序以及結果的組裝,通過API網關向展現層提供服務,

  • 服務層:系統的核心層,負責表達業務概念、業務狀態以及業務規則,包含了該領域(問題域)復雜的業務知識抽象和規則定義,該層難點在于領域物件分析上,例如物體,值物件,聚合(聚合根),領域服務,領域事件,倉儲,工廠等方面的分析,成熟的領域邏輯不會有太大變化,所以服務層的業務邏輯通常是共性的、穩定的,

  • 主資料平臺:主資料是跨部門、業務系統,能夠反映核心業務物體狀態的核心基礎資訊, 對于商品系統而言,商家資訊、組織機構、員工權限、商品資料模型是該系統依賴的主資料,

    在業務早期,主資料平臺是非必須的,上層系統模塊直接從DB中讀取資料并應用即可,但隨著系統逐步復雜后,多個團隊對資料的改動會互相影響,不利于系統擴展,可用性也大大降低,因此,需要拆分出多個主資料服務,將核心資料的訪問收攏在一起,

小結

本文從商品系統的定位、挑戰、概念模型、應用架構等方面,闡述了商品系統架構設計經驗與方法,希望對讀者有所幫助,在SaaS模式下,商品技術架構也存在大量挑戰,例如可用性問題、資料一致性、大流量訪問、分店商品大批量處理、商品資料模型治理等,會在后續的文章中一一介紹,

本文來自博客園,作者:湯師爺說,轉載請注明原文鏈接:https://www.cnblogs.com/tangshiye/p/16655617.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/503613.html

標籤:架構設計

上一篇:網頁偽靜態、視圖層、模板層、form表單如何攜帶資料檔案

下一篇:.Net下的簡易Http請求呼叫(Post與Get)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more