商城系统架构设计与实现陈国利

随着互联网技术广泛应用,各行各业都依托线上平台进行商务活动。小到个人带货,大到企业商业活动,都少不了需要少不了在线交易。于是,到处可见商城影响,不管是加盟大的电商平台如淘宝、京东、拼多多,或是企业自建商城平台,目的基本都是扩大生意渠道,卖货增加业绩收入。

下面基于我们公司自建商城平台,来谈谈我们商城架构设计方案。

2.商城整体架构

一般来说,商城系统按单体服务方案去构思的话,按模块划分至少包括:商品、订单、会员、促销、支付、积分、仓储、物流、风控、企业内部erp、财务系统等。

公司原有技术架构是SpringCloud微服务架构,所以商城系统也是在这个体系下,同时根据我们公司实际业务特殊和复杂性,对各个模块进行微服务划分,业务领域分成多个业务中台和数据中台。

设计商城整架构如下:

一个完整商城体系结构是比较复杂的,涉及到很多关联系统和子系统模块。

采用分层设计,从系统分层设计角度考虑,可以划分:前端接入层、应用表示层、中台服务、后端服务层、基础服务层。

3.订单系统

在搭建企业订单系统之前,需要先梳理整体业务系统之间的关系和订单系统上下游关系,只有划分清业务系统边界,才能确定订单系统的职责与功能,进而保证各系统之间高效简洁的工作。

中后台系统,每个C端的业务形态都会有一个对应的系统模块,如负责管理平台交易的订单系统,管理优惠信息的促销系统,管理平台所有产品的产商品系统,以及管理所有对外系统显示内容的内容系统(CMS)等。

基础服务系统,随着企业的发展,信息化建设到达一定程度后,企业需要将通用功能服务化、平台化,以保证应用架构的合理性,提升服务效率。这类系统主要给其他应用系统提供基础服务能力支持。

由此可见,订单系统对上接收用户信息,将用户信息转化为产品订单,同时管理并跟踪订单信息和数据,承载了整个交易线的重要对客环节。

对下则衔接产品系统、促销系统、仓储系统、会员系统、积分系统、支付系统等,对整个电商平台起着承上启下的作用。

订单服务,该模块的主要功能是用户日常使用的服务和页面,主要有订单列表、订单详情、在线下单等,还包括为公共业务模块提供的多维度订单数据服务。

订单逻辑,订单系统的核心,起着至关重要的作用,在订单系统负责管理订单创建、订单支付、订单生产、订单确认、订单完成、取消订单等订单流程。还涉及到复杂的订单状态规则、订单金额计算规则以及增减库存规则等。

底层服务,信息化建设达到一定程度的企业,一般会将公共服务模块化和中台化,比如:产品,会构建对应的产品系统,代码、数据库,接口等相对独立。但是,这也带来了一个问题,比如:订单创建的场景下需要获取的信息分散在各个系统。组装信息的时候会比较麻烦。

功能脑图

为了使订单系统能够对订单进行高效、精准的管理和跟踪,订单会储存关于产品、优惠、用户、支付信息等一系列的订单实时数据,来和下游系统,如:促销、仓储、物流进行交互。

以一个通用B2C商城的订单为例,梳理其包含的信息如下:

这里要注意的是订单类型,随着平台业务的不断发展,品类丰富、交易方式丰富后,需要对订单进行多维度的分类管理,同时订单类型利于订单系统的扩展性。每种订单类型将会对应一套流程及一套状态,便于对订单进行分类管理和复用。

2.4、订单正向流程

用户下单后,系统需要生成订单,此时需要先获取下单中涉及的商品信息,然后获取该商品所涉及到的优惠信息,如果商品不参与优惠信息,则无此环节。

接着获取该账户的会员权益,这里要注意的是:优惠信息与会员权益的区别,比如:商品满减是优惠信息,会员全场9.8折指的是会员权益,一个是针对商品,另一个是针对账户。其次就是优惠活动的叠加规则和优先级规则等。

增减库存规则是指订单中的商品,何时从库存系统中对相应商品库存进行扣除,目前主流有两种方式:

(1)下单减库存——即用户下单成功时减少库存数量

优势:用户体验友好,系统逻辑简洁。

缺点:会导致恶意下单或下单后却不买,使得真正有需求的用户无法购买,影响真实销量。

解决办法:

限购,用各种条件来限制买家的购买件数,比如一个账号、一个ip,只能买一件;

风控,从技术角度进行判断,屏蔽恶意账号,禁止恶意账号购买。

(2)付款减库存——即用户支付完成并反馈给平台后再减少库存数量

优势:减少无效订单带来的资源损耗。

付款前再次校验库存,如确认订单要付款时再验证一次,并友好提示用户库存不足;

增加提示信息:在商品详情页,订单步骤页面提示不及时付款,不能保证有库存等。

综上所述,两种方式各有优缺点,因此,需结合实际场景进行考虑,如:秒杀、抢购、促销活动等,可使用下单减库存的方式。而对于产品库存量大,并发流量没有那么强的产品使用付款减库存的方式(秒杀系统设计是在另外文档中专题描述)。

将两种方式带入到销售场景中,关联商品类型、促销类型、供需关系等,灵活使用,以充分发挥计算机系统的优势。

订单拆分一般分两种:

一种是用户挑选的商品来自于不同渠道(自营与商家,商家与商家);

另一种是在SKU层面上拆分订单:不同仓库,不同运输要求的SKU,包裹重量体积限制等因素需要将订单拆分。

订单拆分也是一个相对独立的模块,可以采用子母单的形式,也可以采用服务单和订单形式,总的来说就是1:N关系。

订单生产,是指产品从企业到用户这一流程的概述。如电商平台中,商家发货过程已有一个标准化的流程,订单内容会发送到仓库,仓库对商品进行打单、拣货、包装、交接快递进行配送(在我们这里一般是由供应商完成)。

收到货后,订单系统需要在快递被签收后提醒用户对商品做评价。这里要注意,确认收到货不代表交易成功,而是售后服务的开始。

2.4、订单逆向流程

上面说到逆向流程是各种修改订单、取消订单、退款、退货等操作,需要梳理清楚这些流程与正向流程的关系,才能理清订单系统完整的订单流程。

用户提交订单后没有进行支付操作,此时用户原则上属于取消订单,因为还未付款,则比较简单,只需要将原本提交订单时扣减的库存补回,促销优惠中使用的优惠券,权益等视平台规则,进行相应补回。

用户支付成功后,客户发出退款的诉求后,需商户进行退款审核,双方达成一致后,系统应以退款单的形式完成退款,关联原订单数据。因商品无变化,所以不许考虑与库存系统的交互,仅需考虑促销系统及支付系统交互即可。

用户支付成功后,客户发出退货的诉求后,需商户进行退款审核,双方达成一致后,需对库存系统进行补回,支付系统、促销系统以退款单形式完成退款。最后,在退款/退货流程中,需结合平台业务场景,考虑优惠分摊的逻辑,在发生退款/退货时,优惠该如何退回的处理规则和流程。

状态机是管理订单状态逻辑的工具。状态机可归纳为3个要素,即现态、动作、次态。

现态:是指当前所处的状态。

动作:动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。

次态:动作满足后要迁往的新状态,“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

状态机的设计需要结合平台实际业务场景,将状态间的切换细化成了执行了某个动作。

以一个B2C商城的订单系统举例,状态分类如下:

订单系统为了高效的对订单进行跟踪和管理,会对订单流程当中的关键节点,抽象出订单状态。而订单状态从不同用户的角度可分为:系统订单状态、商家订单状态、买家订单状态等。

对于订单系统来说,订单状态细分的颗粒度越细、越明确,订单系统管理的精度和可靠性就越高,比如:在待付款和待发货两个状态中,订单系统后台会细分为:订单超时取消、订单支付失败、订单付款完成等。

因此,订单状态模块中,通常会维护状态映射表,以不同的用户角色对系统订单状态进行重新划分,以满足不同用户的需求。

除此以外,随着业务的不断发展,不同的业务类型,所对应的订单状态都会有所区别。所以,订单系统中一般会储存多套状态机,以满足不同的订单类型来使用。

对前商提供API访问接口

/***订单删除执行器**@authorcgli*@date2022/12/3009:30*/@ComponentpublicclassOrderDeleteCmdExe{@ResourceprivateOrderValidatororderValidator;/***删除订单*/@Transactional(rollbackFor=Exception.class)publicvoiddeleteOrder(OrderDeleteCmdcmd){MallOrderEmallOrderE=MallOrderE.queryInstance().getById(cmd.getOrderId());orderValidator.deleteValidate(mallOrderE);MallOrderE.queryInstance().customerDeleteByMainOrderId(mallOrderE.getId());}}

THE END
1.网站设计方案(通用17篇)5、学校安排一名校领导(胡良校长)担任我校网站信息审核员,审核员要经常进行管理,发现不适合发布的信息“取消审核”,并通知网管进行删除。 四、站务管理规定 1、信息教师全面提供学校网站的建设与管理,系统构思、设计网站的架构,配合各部门及时、准确地将学校重大工作(活动)入网,为师生提供校园信息。 https://www.ruiwen.com/shejifangan/7234563.html
2.操作系统课程教学网站的设计与实现本文中所做的主要工作:介绍Win2000 +JSP(J2DK+TOMCAT)系统并且嵌入 JAVABEAN的一般原理;阐述整个操作系统教学网站的概要设计,系统结构及工作原理;分析了系统实现中的特殊性、难点和重点;详细设计实现学院介绍、教学资源、课程表、课堂教学、在线答疑、其他课程、课件下载、留言反馈、站内搜索、公告专栏、友情链接、校园https://blog.csdn.net/m0_51338938/article/details/141760363
3.网站系统总体设计方案建站资讯CSS教程随着互联网的普及和发展,越来越多的企业和个人开始注重网络营销和品牌推广,为了满足用户需求,提高网站性能和用户体验,我们提出了一份网站系统总体设计方案,该方案旨在设计一个功能全面、安全可靠、易于维护和扩展的网站系统,以满足不同用户的需求。 设计目标 https://www.cssjc.com/174276.html
4.基于S3C241OX微处理器和MC39i模块实现无线数据传输系统的设计1 系统硬件平台设计与实现 1.1 终端硬件平台总体介绍 本文的终端平台的无线接入模块采用西门子最新推出的 MC39i模块,并以 32位基于ARM920T的微处理器S3C241OX为核心。按照功能分类,本文所实现的硬件平台主要由微处理器单元、存储器单元、串口通讯单元、USB接口单元、电源单元、GPRS通讯模块单元以及JTAG接口单元组成,硬件https://www.elecfans.com/d/1614288.html
5.基于Springboot的漫画网站平台设计与实现java本文将基于Springboot实现开发一个漫画主题的网站,实现一个比漂亮的动漫连载的网站系统,界面设计优雅大方,比较适合做毕业设计和课程设计使用,需要的可以参考一下+ 目录 一、项目简介 本项目基于Springboot实现开发了一个漫画主题的网站,实现了一个比漂亮的动漫连载的网站系统。前端用户注册登陆后可以在线查看漫画连载信息https://www.jb51.net/article/257657.htm
6.基于Arduino的语音识别与控制系统实现AET摘要: 通过对Arduino开发板的研究,将声控技术引入到智能系统的设计当中,实现了一套基于Arduino的语音控制系统。本文首先确定了各硬件模块的选型,并在拟定了各模块之间的通信接口后对Arduino引脚资源进行整合、分配,搭建了系统的硬件平台。在软件设计部分,编写了监控程序、功能实现程序、中断服务程序,最终实现了对机械手的http://www.chinaaet.com/article/3000015511
7.城市旅游网站的设计与实现论文(精选6篇)一个优秀的网站必定有一个强大的数据库支持,数据库设计是指针对一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效的存储数据,满足各种用户的需要。下面是小编整理的城市旅游网站的设计与实现论文,欢迎参考。 城市旅游网站的设计与实现论文 篇1 https://biyelunwen.yjbys.com/fanwen/lvyouguanli/668985.html
8.基于B/S结构的物流信息管理平台实验系统的设计与实现在高职院校物流信息管理教学中,学生通过学习物流信息管理业务操作技术,是学习企业物流信息业务的前提,使用物流信息管理平台实验系统,是实现物流信息化教学的关键与核心。当前高职院校的物流教学体系中,把物流信息管理平台实验系统主要分成三部分:信息源、信息管理、信息传输。物流信息平台是物流企业通过行业信息的整理与加工,https://cdmd.cnki.com.cn/Article/CDMD-10183-1016091515.htm
9.电商平台java架构设计方案基于javaweb的电商设计与实现运行环境 Java≥8、MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于javaweb+springboot的电商书城平台系统(java+springboot+mysql+spring+jsp) JAVA springboot 电商书城平台系统(已调试) 主要实现了书城网站的浏览、加入购物车操作、https://blog.51cto.com/u_87634/8349794
10.基于Javaweb的新闻发布管理系统网站设计与实现数据库设计毕业本系统的目的是实现新闻发布系统的基本功能。新闻发布系统提供了不同类型新闻(如社会新闻、娱乐新闻和技术前沿新闻等) 满足不同用户需求;系统将用户分为:普通用户,系统管理员和新闻管理员。 普通用户能在本系统中进行新闻浏览,阅读,新闻搜索。每条新闻的标题被做成一个链接,用户点击它们就能跳转页面进行新闻阅读;新闻阅https://www.modb.pro/db/507656
11.基于Web校园网站系统的设计与实现.docx基于Web校园网站系统的设计与实现.docx,基于Web校园网站系统的设计与实现 摘要 由于科技快速发展,国际互联网连接的计算机近千亿台,积累了大量的信息资源,成为了信息时代最大的信息基地。管理模式的落后无法满足当前发展、老旧宣传方式也无法达到相应目的,很难对学校和https://m.book118.com/html/2024/0325/7036164020006056.shtm
12.蔡伟鸿基于EUCON数字版权保护运营平台的研发与应用 2009年网络系统维护项目 社保接口开发及实施 09年医院网络收费系统技术维护 基于网络环境的潮汕方言输入方法设计与实现 玩具产业动漫产品的设计协调和项目集成平台 高维数据聚类研究及在税务管理中的应用 法制专题网站 http://eng.stu.edu.cn/info/1082/1806.htm
13.基于SSM框架的生活论坛系统的设计与实现(附源码论文)随着世界互联网络化的发展与通讯技术水平的提升,它已经成为互联网时代很重要的一个消息沟通平台。本文将在对java技术和系统的需求情况进行深入分析基础上,结合不同研究人员开发技术的具体功能特点,设计了一个可扩展性较强的基于 java 的网上论坛系统。 本系统隶属于web企业信息系统服务的一个重要子系统,用户可以自我https://cloud.tencent.com/developer/article/1974045
14.超全面!交互设计师的工作流程指南优设网工作流程交互设计师的工作,不仅仅是输出设计方案,还需要参与前期的需求讨论、后期开发、测试验收等等产品设计与实现的多个环节。拿到一个新的项目需求后,从设计思考开始,产品前期分析,设计产品,设计评审,用户测试,直至产品上线。我们的工作流程如下:项目展开的过程https://www.uisdc.com/interaction-design-process
15.基于Web的在线考试系统设计与实现表现层是最上层,主要功能是实现系统数据的传入与输出。业务逻辑层的功能是对具体问题进行逻辑判断与执行操作,数据访问层是数据库的主要操控系统,实现数据的增删改查等操作 [18]。具体的系统架构设计如图2。 4.2.2. 业务流程设计 本系统业务流程覆盖组织考试、参与考试、查询成绩、管理资源等多个业务场景。 http://hanspub.org/journal/PaperInformation.aspx?paperID=54380