一、购买流程
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。
退款流程已完成