【浅谈电商】简易订单模块(二)

简介: 近期接到开发任务,需要以图书为中心开发一套书籍在线商城系统,由于之前没有做过相关的系统,借此机会梳理总结一下各个模块相关技术。简易实现,项目开发中,有更好的想法请指教。

前言

近期接到开发任务,需要以图书为中心开发一套书籍在线商城系统,由于之前没有做过相关的系统,借此机会梳理总结一下各个模块相关技术。

简易实现,项目开发中,有更好的想法请指教。

订单模块

订单是核心模块之一,相较于前置的购物车模块相对简单。此模块的主要职能是创建正确的订单,包括商品正确性、库存正确性。

商品正确性

商品正确性分为价格正确性商品有效性

为了保证数据的正确性,用户在结算页面展示的价格,在提交订单时,后端是需要再次计算的,这样就引申出些问题:

  • 假设用户提交订单的瞬间,用户修改了某商品的数量(通过其他客户端)。
  • 假设用户提交订单的瞬间,系统修改了某商品的价格。
  • 假设用户提交订单的瞬间,系统下架了某商品。

以上情况出现时,最终结算时,支付的金额与指点展示的不一致,甚至无法结算(商品全部下架)的情况,针对以上情况做了以下操作:

  1. 在用户确认提交订单时,前端把之前计算的价格传给后端,与下单逻辑计算出的价格进行比较,俗称比价环节。如果两次计算价格不一致,说明商品、购物车有变动,需要用户再次确认,以防止商品变动用户不知道的情况。
  2. 为了防止用户的多次提交,这里使用令牌的方式,每次提交订单时,需要调用获取令牌的接口,后端在处理下单逻辑前需要验证令牌的有效性,这样防止用户多次提交。

ps:这里考虑了某些极端情况。

邮费相关

订单的提交逻辑一般流程为:

  1. 购物车(用户勾选需要结算的商品)
  2. 订单确认页(罗列出购买商品,初步计算价格,选择地址后计算运费信息)
  3. 订单提交页(在所有的费用计算完毕后,提价触发订单创建功能)
  4. 订单创建

邮费是由后端进行计算的,也需要展示给用户,订单确认页是给客户选择地址计算运费并展示功能。

库存正确性

在校验商品时,同步查询库存信息,并对购物车购买的数量进行校验,是否满足此用户的购买,并进行锁库存

锁库存顾名思义:库存表锁定商品的一部分库存。

库存表设计时,描述库存使用两个字段,分别为:库存数、锁定库存。

锁定库存 = 已售 + 已下单数量

库存数 = 锁定库存 + 未售数量

这样做的好处在于,当修改库存时,刚好有人在购买商品扣减库存,若使用单个字段来描述会出现以下情况:

A修改库存流程:①查询库存数 -> ②设置新值 -> ③使用乐观锁的方式更新。

B购买商品流程:①查询库存数 -> ②验证库存数量是否足够 -> ③使用乐观锁的方式更新。

其中,B②先运行,A②再运行,会导致③步同时执行,总会有一步失败,不管哪一方失败,总会带来用户体验或者其他问题。

并发问题

当然这里也存在并发问题,当同一个用户在移动端和PC端同时发起支付,这样会导致创建的单据出现问题,影响系统的正确性,这里也需要添加分布式事务锁,当拿到锁之后才可以继续后续的操作。

目录
相关文章
|
3月前
|
API 开发者
淘宝官方商品、交易、订单、物流、插旗接口接入说明
这些接口涉及淘宝店铺订单管理的关键方面,包括订单列表、订单详情及订单物流信息的获取。订单列表接口(如`taobao.trades.sold.get`和`taobao.topats.trades.sold.get`)帮助商家快速了解订单概览,进行基本管理和统计。订单详情接口(如`taobao.trade.fullinfo.get`和`taobao.topats.trades.fullinfo.get`)提供单个订单的全面信息,便于发货准备和服务支持。订单物流接口则允许跟踪订单的物流状态,确保配送顺畅。使用这些接口需遵循淘宝开放平台的规定,并关注API调用限制与更新。
|
4月前
|
JSON 数据挖掘 API
天猫店铺商品数据接口集成指南与实战技巧
**天猫商品API概览** - **接口**: Tmall.item_search_shop, 获取店铺商品详情。 - **功能**: 开发者可获取商品标题、价格、销量等。 - **流程**: 注册天猫开放平台账户→获App Key/Secret→获取Access Token→构建URL调用API→解析JSON响应。 - **参数**: 包含店铺ID、页码、数量等。 - **返回**: JSON格式的商品列表。 - **应用**: 商品管理、电商应用开发、数据分析。此API助力商家高效管理、提升用户体验。
|
6月前
|
API 开发者
淘宝店铺订单接口丨淘宝店铺订单交易接口技术文档
淘宝店铺订单接口丨淘宝店铺订单交易接口技术文档
|
6月前
|
搜索推荐 API
如何搭建私域获取淘宝店铺卖家订单信息trade.fullinfo.get
私域流量主要由已经对企业或品牌感兴趣并进行关注的用户组成,这些用户对企业具有一定的忠诚度和粘性
|
6月前
|
消息中间件 供应链 NoSQL
电商订单待支付(思路分析)
电商订单待支付(思路分析)
|
6月前
|
JSON API 数据格式
淘宝商品详情数据接口用于ERP选品
淘宝商品详情数据接口用于ERP选品
|
6月前
|
存储 监控 测试技术
为多渠道销售集成商品API接口
为多渠道销售集成商品API接口是一个涉及技术整合和数据管理的过程。以下是一些关键步骤,可以帮助您实现这个目标:
|
6月前
|
存储 搜索推荐 数据挖掘
淘宝订单API接口在电商行业中的应用与实现
随着电商行业的快速发展,订单处理成为电商运营的核心环节。淘宝作为中国最大的电商平台之一,其订单API接口在电商行业中的应用越来越广泛。本文将详细介绍淘宝订单API接口在电商行业中的应用,并深入剖析相关的技术细节,同时阐述如何实现实时数据获取。
|
XML JSON 缓存
Java实现订单ID获取淘宝买到的订单物流数据接口方法
Java实现订单ID获取淘宝买到的订单物流数据接口方法
|
XML JSON 缓存
不甘心当小卖家的电商,都用了这个接口!
我们做电商,如果你甘心只做一个小卖家,零零散散的收订单。那么,这篇文章你可以掠过。但是,如果你还对电商保有热情,投入激情,相信电商事业会有爆发。请认真看完。