购物车是电商APP的一个关键功能点,一般购物车包含 3~4 个页面,分别是:

1.购物车的商品列表页
2.商品下单页
3.订单付款页面
4.订单付款成功页面

由于现有购物车逻辑相对混乱,这里重新整理一下商品下单页的业务流程设计

1.生成订单

这里在业务层面把订单的生命周期划分为4个阶段,分别是:

  • 订单的初始阶段
  • 订单的完备阶段
  • 订单的支付阶段
  • 订单的服务阶段

1.1 订单的初始阶段

订单的初始阶段是在 购物车商品列表页开始的,订单的初始阶段确定了商品的种类各个商品的初始数量
此时订单金额只包含 货品的总金额。在后续订单的完备阶段,因为有修改货品数量、运费、服务增值、优惠活动等,订单金额和商品数量还会继续变动。
PS. 在这里,商品的种类 包括 商品的类别、具体型号、配置(比如笔记本电脑->型号->配置->颜色)在加入购物车时就已经确定了。

1.2 订单的完备阶段

订单完备阶段是在商品下单页完成的
订单完备阶段是 将一笔订单的 所有交易信息 补充完备,订单的完备信息包括 1.配送信息(配送方式、时间、运费)
2.商品数量 (可在下单时确定)3.发票信息 4.服务增值(退换、保修)。所有交易信息完备后订单金额已确定,进入支付阶段。

1.3 订单的支付阶段

订单的支付阶段是在订单付款页面完成的。

订单的支付阶段,用户在此阶段可以选择支付方式完成付款,也可以取消支付,在订单管理页面继续处理订单。
订单支付完成后进入订单服务阶段。

1.4 订单的服务阶段

订单服务阶段包括 未完成支付订单的后续处理,其操作包括继续支付编辑订单取消订单
对于已完成支付的订单,可能的处理有 确认收货商品交易评价退货退款查看发票等操作,

订单进入服务阶段后,一般意味着订单生命流程的结束,后续只需要对订单数据进行维护管理就可了。

2.下单页 业务流程概要设计

根据之前的分析,下单页对应着订单生命流程中的订单完备阶段,

订单完备阶段概要设计如下:

1.用户在购物车商品列表页选定商品种类和各个商品数量。
2.点击确认购买,将商品种类和商品数量 通过接口提交给后端。
3.后端接到请求后,校验 商品的有效性(库存、是否下架)若无效,返回错误信息,停留在购物车商品列表页。
4.若请求有效,服务端生成临时订单号,将临时订单 的信息(商品信息物流信息发票信息服务增值等)返回给APP端(包括临时订单号)进入下单页。
5.app端展示订单信息后,商品信息、物流信息、发票信息、服务增值等改动通过各自相关接口 更新服务端数据
6.如果此时退出下单页面,临时订单保持 3个小时的时效性。用户再次下单时,后端清除超时的临时订单。
如果用户停留在下单页超时,确认订单时返回错误信息提示用户订单超时已失效,请重新下单。这个操作可以兼容账号多端登录同时下单。
7.用户点击确认订单,将本地临时订单号上传,服务端将临时订单转为正式订单,返回正式订单号,进入订单支付阶段,并将订单状态置为待支付状态,等待支付。同时更新购物车商品列表。
8.用户支付完毕后,维护对应的订单号,订单完成支付阶段进入订单服务阶段。此时订单信息不可人为修改。
9.若用户没有完成支付,返回到其他页面,或直接退出APP,此订单成为待支付订单,在订单服务阶段进行处理。

至此,下单页的业务流程完毕,接下来就是订单维护阶段的工作了,且听下回分解。

电商 APP 下单页(俗称车2) 业务流程概要设计的更多相关文章

  1. 开发者如何快速搭建自己的电商App?

    面向电商购物场景,HMS Core提供了创新的电商解决方案,帮助应用快速获客.提升转化率,实现业务增长.为了帮助开发者了解如何在电商购物类应用中集成HMS Core的各项能力,HMS Core开发了电 ...

  2. Kotlin实战案例:带你实现RecyclerView分页查询功能(仿照主流电商APP,可切换列表和网格效果)

    随着Kotlin的推广,一些国内公司的安卓项目开发,已经从Java完全切成Kotlin了.虽然Kotlin在各类编程语言中的排名比较靠后(据TIOBE发布了 19 年 8 月份的编程语言排行榜,Kot ...

  3. 从电商平台促销活动看电商app开发趋势

    据亿合科技小编了解到:尽管各大电商平台都进入了品质和品牌时代,但对于消费者来说,低价依然是一个有吸引力的因素.尼尔森<网络购物者趋势研究>报告显示,2016年价格敏感型购物者的比例从15% ...

  4. Objective-C 【电商APP应用代码-系统分析-详细注释-代码实现】

    ------------------------------------------- 电商APP应用 ************************************************ ...

  5. 电商app开发新趋势!如何突显竞争力?

    2017年是电商变化最大的一年,同时,也是最多机遇的一年,更是电商最好的时代,如最近所看到的亚马逊的市值已经超过了美国8大零售商的总和,带领美国率先走向了新零售时代;马云也在做改变,试图与线下的大卖场 ...

  6. Android通用框架设计与完整电商APP开发系列文章

    作者|傅猿猿 责编|Javen205 有福利 有福利 有福利 鸣谢 感谢@傅猿猿 邀请写此系列文章 Android通用框架设计与完整电商APP开发 课程介绍 [导学视频] [课程详细介绍] 以下是部分 ...

  7. 调用顺丰API实现电商专递下单和获取面单功能

    参考文章:https://www.cnblogs.com/zhangxiaoyong/p/8317229.html 顺丰需求文档: 链接:https://pan.baidu.com/s/16EEaph ...

  8. EF+MySQL乐观锁控制电商并发下单扣减库存,在高并发下的问题

    下订单减库存的方式 现在,连农村的大姐都会用手机上淘宝购物了,相信电商对大家已经非常熟悉了,如果熟悉电商开发的同学,就知道在买家下单购买商品的时候,是需要扣减库存的,当然有2种扣减库存的方式, 一种是 ...

  9. Android 仿电商app商品详情页按钮浮动效果

    1.效果图如下: 这效果用户体验还是很酷炫,今天我们就来讲解如何实现这个效果. 2.分析 为了方便理解,作图分析 如图所示,整个页面分为四个部分: 1.悬浮内容,floatView 2.顶部内容,he ...

随机推荐

  1. <Android 基础(二十八)> Fragment (1)

    简介 Fragment,碎片,常用的内容,但是一直没有系统的学习下它的使用方法,花几天抽空看看随便记录一下. 生命周期 来自官网的图片一目了然. 自测试结果: 基本使用 1.自定义一个Fragment ...

  2. (项目积累的)SQL数据库点滴

    最近的的系统用的数据库是mssql,软件mssql 2008 r2 1.存储过程:后勤的综合管理系统(后端内网访问)三层架构配套用的是存储过程,里面列表展示的都是用存储过程,如下: 1)数据库脚本 U ...

  3. 五种常用web服务器jvm参数设置

     一.tomcat Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大.有以下几种方法可以选用:第一种方法:在配置文件中设置Windows下,在文件/bi ...

  4. JSON学习笔记-5

    JSON.parse() 1.从服务器接受数据进行解析(一般是字符串) 2.解析前要确保你的数据是标准的 JSON 格式,否则会解析出错.可以使用线工具检测:https://c.runoob.com/ ...

  5. 网络 Internet 的发展

    Internet源于美国军方,那时制定了TCP/IP协议. 互联网的典型应用有:www,FTP,E-mail. WWW:World Wide Web,简称Web,又称全球网.万维网等. 网页,c/s架 ...

  6. PyQt4(使用ui)

    1.使用qt designer设计界面,保存为test1.ui: 2.使用pyuic4 test1.ui -o ui.py生成ui代码. 3.程序载入. import sys import ui fr ...

  7. 从AggregateException看异常类的设计

    异常是程序在有bug时最直观的表现形式,不担心有bug存在,而担心bug埋没在大堆的代码中而发现不了. 这篇随笔简单谈谈从AggregateException类源码(http://www.projky ...

  8. 使用 Jenkins 和 Team Services 将应用部署到 Linux VM

    持续集成 (CI) 和持续部署 (CD) 是一个管道,可以通过它生成.发布和部署代码. Team Services 针对到 Azure 的部署提供了一组完整的功能完备的 CI/CD 自动化工具. Je ...

  9. django中的字段类型

    from http://www.cnblogs.com/lhj588/archive/2012/05/24/2516040.html Django 通过 models 实现数据库的创建.修改.删除等操 ...

  10. Linux 文件特殊权限详解[suid/sgid/t]

    setuid(suid): 针对命令和二进制程序的,当普通用户执行某个(passwd)命令的时候,可以拥有这个命令对应用户的权限, 即让普通用户可以以root用户的角色执行程序或命令. setgid( ...