电商订单系统
订单系统设计
总体设计
1.每次下单时间少于3秒;
2.库存验证不存在多买的情况;
3.订单能够按照不同供应商进程拆分;
4.物流信息能够回传;
订单状态机设计
1.待系统审核;
2.待支付;
3.待发货;
4.待签收;
5.已完成;
6.订单关闭;
订单状态流转如下图示:
1)审核失败;
2)未支付(待支付24小时);
3)支付失败;
4)配送失败以上4种状态为订单关闭原因;
在审核时有以下情况审核失败
1)同一用户在过去一个月有3次退单;
2)用户使用货到货付款拒付;
3)用户配送地址3次以上无法送达,电话无法联系;
4)与配送人员冲突;
5)其他渠道黑名单;
库存设计
1.针对促销商品:
订货系统这里采用的是在付款时锁定库存,在支付成功时候扣减库存,支付失败释放库存。当然没有库存时在商品详情页面不能加入购物车既能确定购买意向,又不影响其他用户,买卖手慢无,技术也好处理功能逻辑
2.针对普通商品:
单占用库存(O)当生成订单时,可用库存数量减少,订单占用库存(Order Occupied Inventory)数量增多,变化的数量即订单中的产品数量,这个很容易理解:订单的生成和库房的发货在时间上是异步的。
这样做的优点在于:
保证已经生成订单管理系统的库存,这部分客户可以顺利收货;而且客户在下订单时,能够保证有产品发货。若不设立订单占用库存,则会产生客户下订单后,库存发现无货可发的尴尬情况。而处理订单时,针对的只是已经被订单所占用的库存,与前台的销售无关,订单出库后,系统中扣减的也只是订单所占用库存。
订单拆分
由于在电商网站中存在多个的供应商,一张订单时能够包括多个供应商,因此需要按照不同的供应商进行拆单,形成子父订单概念。
文章来源:博客园