Java生鲜电商平台-订单架构实战安全
生鲜电商中订单中心是一个电商后台系统的枢纽,在这订单这一环节上须要读取多个模块的数据和信息进行加工处理,并流向下一环节;所以订单模块对一电商系统来讲,重要性不言而喻。架构
同时,订单是一个公司生存甚至盈利的核心,而电商系统中的订单系统则是支撑订单处理的载体,所以订单系统的设计则十分重要。设计
1、订单架构3d
要了解订单系统,首先咱们要从订单系统的信息架构上去认识订单系统,从而对订单系统创建总体认知;orm
2、订单状态io
定义:为适应组织分工的需求和提高效率,系统将整个交易业务流程拆分红若干个可控的环节。form
1. 订单正向状态模板
待付款:用户提交订单后,还没有付款,等待用户支付,因为待付款订单会锁定库存,因此会设置超时自动取消功能。电商
待发货:用户付款以后等待商家发货。class
待收货:商家以发货,等待用户收货。
已完成:用户确认收货后,订单交易完成。
已取消:付款以前取消订单。超时未付款或用户取消订单都会产生这种订单状态。
售后中:用户在付款后发货前申请退款,或商家发货后用户申请退,换货。
2. 订单售后状态
待审核:用户提交退换货申请后,等待审核的状态,在用户已付款待发货的状态下,订单还没有推送至仓库或在仓库拦截发货成功,系统可直接审核经过。当审核不经过时,回转至正常流程中。
待退货入库:退货申请审核经过以后,等待用户退货入库。
待退款:退货入库成功后,等待退款给用户。
待换货入库:换货申请审核经过,等待用户换货入库。
换货出库中: 换货入库以后,生成换货出库单,订单出库。
售后成功:当退货,退款成功以后,流转至售后成功状态,退货,退款的售后成功在主流程下属于交易关闭。
3. 订单下单流程图
1.在订单过程当中进行安全校验,主要是为了检测用户是否在黑名单上,用户购买行为是否正常等,当检测到不正常时终止下单;
2.从商品中心获取商品信息(SKU,规格,价格等)
3.从营销中心获取商品,订单促销信息(优惠券,促销活动),判断是否知足优惠条件,计算出优惠金额。
4.在会员中心获取会员权益,例如平台抵扣积分,优惠券折扣条件等。
5.在调度中心检验销售层库存,按照调度规则锁定区域库存。
6.根据拆单规则(商家,仓库,订单类型等)将订单拆分红若干个子订单,根据运费模板计算运费,根据商品金额,运费,优惠金额计算应付金额(实付款)。
3、优惠分摊
定义:是指在实际销售中将订单的优惠去分摊到每一件SKU中去结算。
订单实付金额=商品金额(SKU金额总计)+运费-总优惠金额
总优惠金额=促销活动优惠金额+优惠券优惠金额+虚拟币抵扣金额
按照商品比例分摊。
案例:
订单中有甲乙两店的商品A、B、C、D、E 包邮。商品A,D参加跨店满200减40的活动(活动1),商品B,C参加满100减10的活动(活动2)另外用户还使用了100元现金券。
订单优惠金额=40+10+100=150元.
依据优惠分摊原则:则各项的优惠金额为:
4、订单拆分
定义:为了方便订单的发货与结算,系统依据必定的规则(物流、仓库等因素)将用户订单拆分红若干个发货单。
不一样店铺:在电商平台类架构下,因为商品归属权不一样,涉及财务结算和物流发货的问题,须要根据店铺归属问题对订单进行拆单。例如淘宝,天猫的商品在下单时会将订单根据不一样店铺进行拆分红若干个子订单。
不一样仓库:若同一订单分散在不一样仓库,则应按照仓库归属进行拆分订单。当一件商品在多个仓库有货时,应根据物流的区域的时效选择仓库进行拆单。
不一样品类:因为商品的属性不一样同样会产生拆单需求,例如易碎品须要特殊包装,超大物品(钢琴,座椅)须要单独包装。有些商品不能放在一块儿,一样须要拆单。
物流因素:不一样物流公司对单个包裹的重量或体积都有特殊要求,须要根据SKU的毛重和体积来计算包裹的总重量和体积,超出物流公司限制的也须要拆单。
商品价值:根据商品价值须要拆单的主要涉及海淘和跨境的商品;国家对每笔跨境订单有单次限额,对年度跨境商品订单总金额也有限制,当单次购买金额超过限制金额时,也须要对订单进行拆单。