Closed qubitsky closed 4 years ago
接口响应券数据
"voucher": { "id": 15575387, "strategyKind": 1, "amount": 30000, "discount": 75, "voucherType": 1 }
amount 单位为分,表示在售卖价基础上的优惠 discount 值为 0 ~ 100,除折扣券外,其他券值为null
amount
discount
null
券类型如下
strategyKind = 1 固定减多少金额,例如 amount: 500 表示总销售价基础上减5元
amount: 500
strategyKind = 1 有门槛,需总销售价达到一定金额,才能使用,比如满300减100,需总销售价达到300才能使用
strategyKind = 2 使用后,以固定金额支付,但是设有优惠上限,比如特价99元保养券,抵扣上限800,如果总销售价在100~899以内,都是以99元支付,超过899,则是以 支付金额 = 总销售价 - 800 去支付
支付金额 = 总销售价 - 800
strategyKind = 3 是在市场价的基础上(不是销售价),计算折扣,得到最终价格。也设有优惠上限。
注意: 假设用items 表示购物车内项目, sale表示销售价, market表示市场价,voucher值为null表示没有券
items
sale
market
voucher
没有券、固减券、满减券、特价券、折扣券,最终价格(payAmount)可统一按如下方式计算
// 1. 计算所有项目销售价总和 payAmount = items.reduce((sum, item) => { return sum + item.sale }, 0) // 2. 减去券优惠金额 if (voucher) { payAmount -= voucher.amount }
假设用 item 表示某一项,sale 表示销售价,market 表示市场价,注意: 价格单位为分
item
则该项界面展示售价(item.price)
// 用Math.round四舍五入,价格单位为分,discount值为0~100 item.price = voucher.strategyKind === 3 ? Math.round(item.market * voucher.discount / 10000) * 100 : item.sale
// 示例 { "act_code": "adaptive=", //活动唯一识别码 "token": "sa9u8ashjn2q309ajs", "strategy":[10001,10002] }
优惠券
接口响应券数据
amount
单位为分,表示在售卖价基础上的优惠discount
值为 0 ~ 100,除折扣券外,其他券值为null
券类型如下
固减券
strategyKind = 1 固定减多少金额,例如
amount: 500
表示总销售价基础上减5元满减券
strategyKind = 1 有门槛,需总销售价达到一定金额,才能使用,比如满300减100,需总销售价达到300才能使用
特价券
strategyKind = 2 使用后,以固定金额支付,但是设有优惠上限,比如特价99元保养券,抵扣上限800,如果总销售价在100~899以内,都是以99元支付,超过899,则是以
支付金额 = 总销售价 - 800
去支付折扣券
strategyKind = 3 是在市场价的基础上(不是销售价),计算折扣,得到最终价格。也设有优惠上限。
如何计算最终价
注意: 假设用
items
表示购物车内项目,sale
表示销售价,market
表示市场价,voucher
值为null
表示没有券没有券、固减券、满减券、特价券、折扣券,最终价格(payAmount)可统一按如下方式计算
如何计算界面上展示的某一项售价
假设用
item
表示某一项,sale
表示销售价,market
表示市场价,注意: 价格单位为分则该项界面展示售价(item.price)