# 购物车业务相关
购物车相关网络接口,使用交易网关的接口,其逻辑与App端几乎一致。这些接口的返回值会与微信商城网关的购物车接口有较大差别。
# api域:
const cartServices = kreator.services.cart;
# 基础类型WareParams:
参数名 | 类型 | 描述 | 用途 |
---|---|---|---|
sku | string | 商品sku码 | 必传参数,若不传入sku接口将不会调用,SDK方法主动报错。 |
suitId | string | 套装ID | 可选参数。 加购套装商品时务必传入。 |
count | number | 加购商品数量 | 可选参数,默认为1。加购商品的数量。 |
checked | number | 加购后商品是否勾选 | 可选参数,默认为1。 该参数传0时,商品被加入购物车,但默认不会选中,即该商品不参与结算。 |
storeId | number | 商品所属门店ID | 可选参数。 若不传该参数,默认将使用当前定位门店的门店id。 |
venderId | number | 商品所属商家ID | 可选参数。 若不传该参数,默认将使用当前定位门店的商家ID。 |
showToast | boolean | App端购物车请求是否展示toast | 可选参数。 若不传该参数,App端加购后原生默认弹出Toast。 |
simple:number 确定本次请求为简单请求还是复杂请求。传入0为复杂请求,1为简单请求。
购物车复杂请求,是指本次请求将包含全部购物车逻辑,会返回全部的数据,并且购物车内的商品总数是会经过围栏筛选的;简单请求则只会返回购物车商品总数,并且数字是不经过地址围栏筛选的。
相比复杂请求,简单请求的响应速度比复杂请求要快很多,购物车内的商品数量越多,复杂请求的响应越慢。因此单独的加购场景可以使用简单请求;如果需要获取购物车商品总数,需要获取完整的购物车商品数据,需要获取商品当前的库存量,那么请务必使用复杂请求。
# cartServices.addCart(param, simple)
商品加购方法,返回加购后购物车商品总数。默认simple为0,即为复杂请求。
请注意,addCart接口默认会校验当前登录态。当前未登录调用该方法,会自动重定向到对应客户端的登录页。
# 请求入参
参数 | 类型 | 描述 | 用途 |
---|---|---|---|
param | WareParams[] 或 WareParams | 商品信息 | 必传参数,如果需一次加购多个商品,可以传入WareParams结构的数组。 |
simple | number | 请求类型 | 可选参数。选择本次请求为复杂请求还是简单请求。 |
# 返回值:
HttpResponseOptions 基础请求响应体
cartServices.addCart({
sku: 191294,
count: 2,
storeId: 112,
}).then((res) => {
alert(res);
console.log(res);
}).catch((err) => {
alert(err);
});
# cartServices.updateCart(param, simple)
商品数量更新方法,返回更新后购物车内商品总数。默认simple为0,即为复杂请求。
请注意updateCart方法中count的含义与addCart接口是有所区别的。在addCart接口中,count的定义为“需要加购多少商品”,updateCart的定义为"将购物车内该商品的数量更新为多少"。
举例来说,当前商品在购物车内总数为30,若调用updateCart接口传入count为2,则会将该商品的数量更新为2个。
返回值结构与addCart完全一致。该方法同样会强校验登录态。
# 请求入参
参数 | 类型 | 描述 | 用途 |
---|---|---|---|
param | WareParams[] 或 WareParams | 商品信息 | 必传参数,如果需一次加购多个商品,可以传入WareParams结构的数组。 |
simple | number | 请求类型 | 可选参数。选择本次请求为复杂请求还是简单请求。 |
# 返回值:
HttpResponseOptions 基础请求响应体
cartServices.updateCart({
sku: 191294,
count: 2,
storeId: 112,
}).then((res) => {
alert(res);
console.log(res);
}).catch((err) => {
alert(err);
});
# cartServices.delCart(param, simple)
删除购物车内的指定商品,返回更新后购物车内商品总数。
默认simple为0,即为复杂请求。
# 请求入参
参数 | 类型 | 描述 | 用途 |
---|---|---|---|
param | WareParams[] 或 WareParams | 商品信息 | 必传参数,如果需一次删除多个商品,可以传入WareParams结构的数组。 |
simple | number | 请求类型 | 可选参数。选择本次请求为复杂请求还是简单请求。 |
# 返回值:
number 购物车内商品数
# cartServices.getCartInfo(simple)
获取完整的购物车数据,默认simple为0。
详细数据结构定义请参考xxx 待提供。
# 请求入参
参数 | 类型 | 描述 | 用途 |
---|---|---|---|
simple | number | 请求类型 | 可选参数。选择本次请求为复杂请求还是简单请求。 |
# 返回值:
HttpResponseOptions 基础请求响应体
cartServices.getCartInfo().then((res) => {
console.log(res);
});
# cartServices.getCartNum()
获取购物车内完整的商品总数。该方法强制为复杂请求。
# 返回值:
number 购物车内商品总数
cartServices.getCartNum().then((res) => {
console.log(res);
});
# cartServices.getSingleSkuCount(param: SingleSkuCountRequest): Promise
获取指定商家、门店下某sku在购物车内的商品数量。
# 请求入参
参数 | 类型 | 描述 | 用途 |
---|---|---|---|
param | SingleSkuCountRequest | 查询信息 | 必传参数 |
# SingleSkuCountRequest类型:
参数 | 类型 | 描述 | 用途 |
---|---|---|---|
sku | number | 商品Sku | 必传参数 |
storeId | number | 商品所属门店Id | 必传参数 |
venderId | number | 商品所属商家Id | 必传参数 |
businessType | number | 商品所属业态 | 非必传 |
# 返回值:
SingleSkuCountResponse 调用返回信息
# SingleSkuCountResponse类型:
参数 | 类型 | 描述 | 用途 |
---|---|---|---|
count | number | 商品数量 | |
msg | string | 调用结果 |