商城购买流程及退款流程总结
一、购买流程
1、加入购物车
传3个参数:商品id,加入购物车数量,商品参与活动类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/** * @param {Object} para : id商品id num加入购物车数量 type商品参与活动 */ addToCart: function (para) { app.postAjax( '/order/myCart/add' , { data: { goodsId: para.id, count: para.num, type: para.type }, success: function (res) { if (para.success) { para.success(res); } if (res.statusCode == 100) { mui.toast( "加入购物车成功" ); } else { app.toast(res.msg); } }, error: function () { if (para.error) { para.error(); } } }, '' ); }, |
1.1 购物车中修改商品数量
传递参数:id 商品id count 修改后商品数量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
app.postAjax( '/order/myCart/edit' , { data: { id: id, count: count }, success: function (res) { if (res.statusCode == 100) { if (res.url) { var data = JSON.parse(res.url); vm.renderData(data); } } else { app.toast(res.msg); } } }); |
1.2 删除购物车中某个商品
传递参数:id 商品id
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
app.postAjax( '/order/myCart/delete' , { data: { id: id }, success: function (res) { if (res.statusCode == 100) { if (res.url) { var data = JSON.parse(res.url); vm.renderData(data); } } else { app.toast(res.msg); } } }, '' ); |
1.3 购物车中 选中/取消选中
传递参数:ids 选中商品id的json字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
app.postAjax( '/order/myCart/select' , { data: { ids: JSON.stringify(arr) }, success: function (res) { if (res.statusCode == 100) { console.log(res.url); if (res.url) { var data = JSON.parse(res.url); vm.renderData(data); } } else { app.toast(res.msg); } } }, '' ); |
2、立即购买
跳转至结算页面,并将立即购买的商品数量,商品id,参与活动传递至跳转页面;
3、结算
3.1 请求用户的收货地址
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
app.postAjax( '/operation/address/getList' , { data: {}, success: function (res) { if (res.statusCode == 100) { if (res.data.length > 0) { vm.address = res.data[0]; vm.getExpressList(); } else { app.confirm({ msg: '您还没有收货地址,立即去添加?' , title: '提示' , ok: function () { $.openWindow({ url: '/templates/user/new_address.html' , id: 'newAddress' }); }, cancel: function () { vm.currentPage.close(); } }); } } else { app.toast(res.msg); } } }, '' ); |
如果返回数据为空数组,跳转页面至添加收货地址,用户添加完成之后,返回至结算页面,并携带添加的地址数据,根据地址id请求后台设置的快递信息;
如果返回数据不为空,使用第一个数据(因为默认地址永远在第一个,如果没有默认,还是取第一个数据),根据地址id请求后台设置的快递信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
app.postAjax( '/order/myCart/getExpressList' , { data: {}, success: function (res) { if (res.statusCode == 100) { vm.expressList = res.data; if (vm.expressList.length > 0) { vm.$set(vm.expressList[0], 'selected' , true ); vm.express = vm.expressList[0]; } vm.getListByOrder(); } else { app.toast(res.msg); } } }, '' ); |
如果返回的数据为空数组,则快递id为空,请求结算数据;
如果返回的数据不为空,则快递id为第一条数据,根据快递id请求结算数据;
请求结算数据:传递参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
app.postAjax( '/order/myCart/getListByOrder' , { data: { id: vm.goods.id, count: vm.goods.count, couponId: vm.couponId, type: vm.goods.type, userCoupon: true , expressId: vm.express.id, activityId: vm.goods.activityId, addressId: vm.address.id }, success: function (res) { if (res.statusCode == 100) { document.getElementById( 'realPayMoney' ).innerText = '¥' + res.data.realPayMoney; vm.info = res.data; if (res.data.groupList) vm.groupList = res.data.groupList; if (res.data.couponList) vm.couponList = res.data.couponList; } else { app.toast(res.msg); } } }, '' ); |
4、提交订单
请求成功,生成订单,跳转至支付页面,并携带参数:orderNum(订单编号)orderId(订单id)money(支付金额);
5、支付功能
请求支付类型
如果是平台支付,需要输入支付密码;
如果是第三方支付,如支付宝、微信,需要调用相应支付接口。
支付成功,商品购买已完成。
6、订单
订单管理一般分为四个状态:待付款、待发货、待收货、待评价。
6.1 待付款状态,用户可以支付/取消订单
支付同5;
取消订单:
6.2 待发货状态,用户只有一个操作,提醒卖家发货;
6.3 待收货状态,用户可以确认收货/查看物流;
确认收货:
查看物流:
6.4 待评价状态,用户可以申请退款/立即评价。
根据返回数据判断,如果isCanRefund==true,用户可以申请退款;如果isCanComment==true,用户可以评价订单。
为了更好的操作体验,申请退款以商品为单位,每次只操作一个商品。
申请退款:
立即评价:
二、退款流程
一般分为四个状态:待审核,已审核,退货中,已完成。
1、待审核:用户发起退款申请,等待后台审核;
2、已审核: 后台审核通过,用户根据退货地址,退回商品,并填写退货物流信息。
3、退货中:用户已将商品寄回,卖家尚未收到商品;
4、已完成:卖家收到商品,用户需要确认收到退款。
确认收到退款请求参数:id 退款订单id。
退款流程已完成