# 购物车业务相关

购物车相关网络接口,使用交易网关的接口,其逻辑与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 调用结果