tt.computePromotion
提供开发者查询平台和商家营销信息以及算价的能力
使用限制
语法
tt.computePromotion(options)
参数说明
options
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
goodsMarketingInfo | GoodsMarketingInfo[] GoodsMarketingInfo 说明见下文 | | 是 | 商品维度使用的营销 + 商品信息 | 行业 SDK |
orderMarketingInfo | OrderMarketingInfo | | 否 | 订单维度使用的营销 | 行业 SDK |
needDefaultMarketing | boolean | | 否 | 是否需要返回默认选中营销 | 行业 SDK |
callbackData | string | | 否 | 开发者透传字段 | 行业 SDK |
success | Function | | 否 | 接口调用成功的回调函数 | 行业 SDK |
fail | Function | | 否 | 接口调用失败的回调函数 | 行业 SDK |
complete | Function | | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 行业 SDK |
GoodsMarketingInfo
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
goodsId | string | | 是 | 商品 id | 行业 SDK |
skuId | string | | 否 | sku 商品id | 行业 SDK |
quantity | number | | 是 | 购买数量 | 行业 SDK |
totalAmount | number | | 是 | 商品总价,单位【分】 | 行业 SDK |
selectedMarketing | MarketingBundle MarketingBundle 说明见下文 | | 否 | 商品维度选中的营销 | 行业 SDK |
OrderMarketingInfo
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
totalAmount | number | | 是 | 订单总金额,单位【分】 | 行业 SDK |
selectedMarketing | MarketingBundle MarketingBundle 说明见下文 | | 否 | 订单维度选中的营销 | 行业 SDK |
MarketingBundle
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
couponInfo | CouponInfo[] CouponInfo 说明见下文 | | 否 | 优惠券信息 | 行业 SDK |
scoreInfo | ScoreInfo[] ScoreInfo 说明见下文 | | 否 | 积分信息 | 行业 SDK |
activityInfo | ActivityInfo[] ActivityInfo 说明见下文 | | 否 | 活动信息 | 行业 SDK |
CouponInfo
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
id | string | | 是 | 优惠券 id | 行业 SDK |
code | string | | 是 | 优惠券编码 | 行业 SDK |
type | number | | 是 | 优惠券类型
| 行业 SDK |
name | string | | 是 | 优惠券名称 | 行业 SDK |
rule | string | | 否 | 使用规则描述 | 行业 SDK |
startTime | number | | 否 | 有效起始时间戳 | 行业 SDK |
endTime | number | | 否 | 有效结束时间戳 | 行业 SDK |
receiveTime | number | | 否 | 领取时间戳 | 行业 SDK |
discountAmount | number | | 否 | 优惠金额,单位 分 | 行业 SDK |
deductPercentage | number | | 否 | 折扣百分比, 0~100 | 行业 SDK |
denyReasons | string[] | | 否 | 优惠券不可用原因 | 行业 SDK |
detailUrl | string | | 否 | 优惠券详情跳转链接 | 行业 SDK |
kind | number | | 是 | 营销类别
| 行业 SDK |
creatorType | number | | 是 | 创建人类型
| 行业 SDK |
marketingExtend | object | | 否 | 透传字段 | 行业 SDK |
ScoreInfo
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
id | string | | 是 | 积分 id | 行业 SDK |
value | number | | 是 | 积分值 | 行业 SDK |
name | string | | 是 | 积分名称 | 行业 SDK |
kind | number | | 是 | 营销类别
| 行业 SDK |
creatorType | number | | 是 | 创建人类型
| 行业 SDK |
marketingExtend | object | | 否 | 透传字段 | 行业 SDK |
ActivityInfo
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
id | string | | 是 | 活动 id | 行业 SDK |
name | string | | 是 | 活动名称 | 行业 SDK |
type | number | | 否 | 1:秒杀 2:运费立减 3:立减 4:会员专享价 5:渠道专享价 | 行业 SDK |
rule | string | | 是 | 活动规则 | 行业 SDK |
startTime | number | | 否 | 活动开始时间戳 | 行业 SDK |
endTime | number | | 否 | 活动结束时间戳 | 行业 SDK |
kind | number | | 是 | 营销类别
| 行业 SDK |
creatorType | number | | 是 | 创建人类型
| 行业 SDK |
marketingExtend | object | | 否 | 透传字段 | 行业 SDK |
回调成功
object类型
属性名 | 类型 | 说明 |
goodsMarketingList | GoodsMarketing[] GoodsMarketing 说明见下文 | 商品维度营销信息 |
orderMarketing | OrderMarketing OrderMarketing 说明见下文 | 订单维度营销信息 |
calculationResult | CalculationResultInfo CalculationResultInfo 说明见下文 | 算价结果 |
GoodsMarketing
属性名 | 类型 | 默认值 | 必填 | 说明 |
goodsId | string | | 是 | 商品id |
skuId | string | | 否 | sku_id |
quantity | number | | 是 | 商品数量 |
totalAmount | number | | 是 | 商品总价,单位[分] |
availableMarketing | MarketingBundle MarketingBundle 说明见上文 | | 否 | 商品维度可用营销策略 |
unavailableMarketing | MarketingBundle MarketingBundle 说明见上文 | | 否 | 商品维度不可用营销策略 |
OrderMarketing
属性名 | 类型 | 默认值 | 必填 | 说明 |
totalAmount | number | | 是 | 订单总金额,单位[分] |
availableMarketing | MarketingBundle MarketingBundle 说明见上文 | | 否 | 订单维度可用营销策略 |
unavailableMarketing | MarketingBundle MarketingBundle 说明见上文 | | 否 | 订单维度不可用营销策略 |
CalculationResultInfo
属性名 | 类型 | 默认值 | 必填 | 说明 |
calculationType | number | | 是 | 算价维度类型 1 - 订单维度 2 - 单商品维度 |
totalAmount | number | | 是 | 订单总价格,单位: 分 |
totalDiscountAmount | number | | 是 | 订单总优惠价格,单位:分 订单最终价格 = totalAmount - totalDiscountAmount |
goodsCalculationResultInfo | GoodsCalculationResInfo[] GoodsCalculationResInfo 说明见下文 | | 否 | 当前订单的商品维度算价结果信息 |
orderCalculationResultInfo | OrderCalculationResInfo OrderCalculationResInfo说明见下文 | | 否 | 当前订单的全部算价结果信息 |
itemCalculationResultInfo | ItemCalculationResInfo[] ItemCalculationResInfo说明见下文 | | 否 | 当前订单的item单维度算价结果信息 |
GoodsCalculationResInfo
属性名 | 类型 | 默认值 | 必填 | 说明 |
goodsId | string | | 是 | 商品id |
skuId | string | | 否 | skuId |
quantity | number | | 是 | 购买数量 |
totalAmount | number | | 是 | 商品总价,单位[分] |
totalDiscountAmount | number | | 是 | 该商品总优惠金额 该商品的实付金额=total_amount-discount_amount |
marketingDetailInfo | MarketingDetail[] | | 否 | 营销明细 |
OrderCalculationResInfo
属性名 | 类型 | 默认值 | 必填 | 说明 |
goodsTotalDiscountAmount | number | | 是 | 商品维度总优惠金额,单位: 分 整个订单的优惠金额 = order_total_discount_amount + goods_total_discount_amount |
orderTotalDiscountAmount | number | | 是 | 订单维度总优惠金额,单位: 分 |
marketingDetailInfo | MarketingDetail[] | | 否 | 营销明细 |
ItemCalculationResInfo
属性名 | 类型 | 默认值 | 必填 | 说明 |
goodsId | string | | 是 | 商品id |
skuId | string | | 否 | sku_id |
totalAmount | number | | 是 | 商品总价,单位:分 |
totalDiscountAmount | number | | 是 | 该商品总优惠金额,该商品的实付金额=total_amount-discount_amount |
marketingDetailInfo | MarketingDetail[] | | 否 | 营销明细 |
MarketingDetail
属性名 | 类型 | 默认值 | 必填 | 说明 |
id | string | | 是 | 营销id(用户身份id,优惠券id,积分id或者活动id) |
type | number | | 是 | 营销类型,1: 用户身份2: 优惠券3: 积分4: 活动5: 卡(暂不支持) |
discountAmount | number | | 是 | 该营销策略优惠金额,单位: 分 |
title | string | | 是 | 营销名称 |
note | string | | 是 | 营销备注 |
subtype | string | | 否 | 子营销类型 |
value | number | | 否 | 营销分值,某些类型的营销会有,积分和discount_amount有一定的关系 |
discountRange | number | | 是 | 营销适用维度:1 - 订单维度2 - 商品维度 |
code | string | | 否 | 优惠券编码 |
kind | number | | 是 | 营销类别
|
creatorType | number | | 是 | 创建人类型
|
marketingExtend | object | | 否 | 透传字段 |
回调失败
object类型,属性如下:
属性名 | 类型 | 说明 |
errNo | string | 错误码 |
errMsg | string | 错误信息提示 |
errLogId | string | 当请求失败时会提供该数据,可供服务端排查问题 |
代码示例
初次请求
tt.computePromotion({ goodsMarketingInfo: [{ goodsId: "7186645863265994756", quantity: 3, totalAmount: 600 }], needDefaultMarketing: true, // 需要返回默认优惠 });
切换选中营销后的请求
tt.computePromotion({ goodsMarketingInfo: [{ goodsId: "7186645863265994756", quantity: 3, totalAmount: 600, selectedMarketing: { // 选中的营销 activityInfo: [{ creatorType: 3, endTime: 4071052800000, id: "activity_id_5_fen_MOCK_", kind: 1, marketingExtend: {}, name: "满 0.10 减 0.05 元的满减活动", rule: "满 0.10 减 0.05 元的满减活动", startTime: 4070793600000 }], scoreInfo: [], couponInfo: [{ code: "7254455688511064122", creatorType: 1, detailUrl: "优惠券详情跳转链接", discountAmount: 1, endTime: 4071052800000, id: "7254452546054390528", kind: 2, marketingExtend: {}, name: "立减 0.01 元的平台优惠券", receiveTime: 4070793601000, rule: "立减 0.01 元的平台优惠券", startTime: 4070793600000, type: 2 }, { code: "7254457650912675899", creatorType: 2, detailUrl: "优惠券详情跳转链接", discountAmount: 40, endTime: 4071052800000, id: "7254456545570768911", kind: 1, marketingExtend: {}, name: "商家满减券", receiveTime: 4070793601000, rule: "商家满减券", startTime: 4070793600000, type: 2 }], } }], orderMarketingInfo: { totalAmount: 600, selectedMarketing: { activityInfo: [], scoreInfo: [], couponInfo: [] } }, needDefaultMarketing: false, // 不需要返回默认优惠 });
Bug & Tip
- •Tip:可以使用 tt.canIUse('computePromotion.object.industrySDK') 判断该 API 在当前版本是否可用;
- •Tip:使用 JS-API 前需要在代码中配置行业 SDK 的权限:配置行业 SDK 的权限,行业 SDK 的权限配置在基础库 2.74.0.0 抖音版本 23.0 以上支持;
- •Tip:IDE 目前由于登录态原因可能不支持调试,调试 JSAPI 请以预览扫码的小程序调试结果为准;
- •Tip:使用此 API,开发者可以选择两种方式接入营销信息,第一种是接入营销算价二合一拓展点,营销信息由开发者维护,第二种是在抖音来客为商品配置营销信息(仅融合商品支持),二者可以同时存在。