技术知识小课堂-购物车促销架构变更与订单入库存扣减分布式事务解决方案解析

后台-系统设置-扩展变量-手机广告位-内容正文顶部

一、购物车促销规则架构思路

  说明:购物车主体架构继续延用购物车架构思路,此文件只是针对购物车促销相关架构做修改

  促销规则构建层移除,由促销脚本代替

时序图变更

类图

  添加促销脚本处理层,在购物车价格计算层调用促销脚本计算价格并渲染促销提示信息

二、订单入库存扣减分布式事务解决方案

订单入库扣减总体流程图

  1.为了提高性能,采用乐观性事务,即默认下单、库存扣减都可以成功

  2.采用补偿性事务解决一致性问题,即当库存扣减失败或成功时都通知订单服务,更改其状态

  3.库存扣减服务内部采用分布式锁保证一致性

  4.顾客发起支付时,调用订单接口获取此订单是否可以被支付,如果不可以(可能出库失败,或确认出库状态)则重试几次,依然未能达到支付状态则返回不能支付给客户,如果达到可支付状态则调起支付

  5.注:绿色为需要对外暴露的接口

库存扣减流程

三、会员中心订单列表架构

相关需求要点:

  一、未付款时,直接走订单取消(不经过售后流程)

  二、已付款,未确认收货时,只能整单取消(走售后流程)

  三、确认收货单个商品才能显示申请售后按钮,但有如下情况时除外:

  1、此单有赠品:只能整单退

  2、有积分商品:此单不能退

  四、有赠品时且已收货时在订单中显示“申请售后”按钮,而不在单个商品上显示

架构设计

  一、es_order.service_status状态值设计为:

  NOT_APPLY:未申请APPLY:申请中PASS:审核通过REFUSE:审核未通过EXPIRED:已超时或不允许申请售后

  二、order_items_json.service_status状态值设计为:

  NOT_APPLY:未申请APPLY:申请中PASS:审核通过REFUSE:审核未通过EXPIRED:已超时或不允许申请售后

  三、状态改变控制:

  1、在下单时,根据情况控制es_order表的service_status值及:order_items_json字段里的Json值(控制其service_status属性):

  有赠品:es_order.order_items_json.service_status为不允许申请售后

  有积分商品:es_order.service_status为不能退

  2、在订单流程环节中控制上述状态:

  付款成功:

  es_order.service_status:NOT_APPLYes_order_item.service_status:EXPIRED

  已收货:

  有赠品:

  es_order.service_status:NOT_APPLYes_order_item.service_status:EXPIRED

  有积分商品:

  es_order.service_status:EXPIREDes_order_item.service_status:EXPIRED

  无赠品无积分商品:

  es_order.service_status:NOT_APPLYes_order_item.service_status:NOT_APPLY

  四、订单列表返回值规范:

  {

  sn:"xxxx",

  operate_allowable:{

  allow_apply_service:false,//是否允许申请售后

  allow_cancel:true//是否允许取消

  },

  sku_list:[

  {

  sku_sn:"xxxx",

  operate_allowable:{

  allow_apply_service:false,//是否允许申请售后

  }

  }

  ]

  根据上述内容可以了解到购物车促销架构变更与订单入库存扣减分布式事务解决方案,还有会员中心订单列表架构的内容,想了解更多详情,可以持续关注易族智汇javashop

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

后台-系统设置-扩展变量-手机广告位-内容正文底部
留言与评论(共有 0 条评论)
   
验证码: