摘要
在做竞品监控、比价系统、跨境选品项目时,很多开发同学使用taobao.item_get淘宝商品详情 API,发现接口直接返回的售价并非最终券后价。因为券后价是商品基础价 + 店铺优惠 + 平台券 + 单品券叠加计算后的结果,接口不会直接给出最终券后价。本文拆解taobao.item_get相关优惠字段,梳理优惠叠加规则,给出完整计算方案、字段说明、JSON 样例与开发踩坑经验。
一、问题背景
直接调用淘宝商品详情接口taobao.item_get,一般能获取:
商品原价(市场价)
售卖标价(sku 一口价)
单品促销价(限时折扣、满减)
痛点:接口不会直接返回 “券后价” 优惠券分为平台券、店铺券、单品券,不同券叠加规则不一样,需要我们拿到优惠数据后,在服务端按淘宝官方优惠优先级自行计算最终券后价。
很多新手踩坑:直接拿 promotion_price 当成券后价,导致价格数据不准,比价系统、价格监控出现数据偏差。
二、taobao.item_get 优惠相关核心字段
2.1 接口基础信息
接口方法:taobao.item.get(前往Taobaoapi2014体验)
请求方式:GET(生产推荐)
2.2 核心请求参数
返回格式:JSON
num_iid:淘宝商品ID,唯一数据源主键
fields:按需指定返回字段(标题、价格、SKU、图片、详情、属性、销量,优惠券)
从商品详情返回 JSON 中,重点读取下面几类数据:
sku.price:SKU 基础售价
item.promotion:单品促销(限时打折、秒杀价,优先级高于标价)
item.coupon_list:可用优惠券列表,包含券面额、使用门槛、券类型(平台券 / 店铺券 / 单品券)
item.full_reduction:店铺满减活动(满 N 减 M)
注意:优惠券有适用范围限制,部分券仅限指定 SKU、指定类目,需要过滤掉当前 SKU 不可用的券。
三、淘宝优惠叠加优先级(核心规则)
淘宝优惠计算顺序由高到低:
单品级优惠(限时折扣、单品直降、秒杀)→ 先算出单品促销价
店铺级优惠(店铺满减、店铺券)→ 在单品促销价基础上抵扣
平台级优惠(平台购物券、跨店满减)→ 最后叠加抵扣
规则要点:
同类型优惠券大多不可叠加,只能选面额最优一张;
跨店满减、店铺满减属于满额减免,需要判断商品分摊金额;
券有门槛:满 XX 元才能使用,低于门槛不能参与抵扣;
券存在有效期,过期优惠券直接过滤,不参与计算;
部分商品限购、活动互斥:部分单品活动和某些券互斥,需要做互斥判断。
简单一句话:先算单品促销价,再叠加店铺优惠,最后叠加平台优惠;同类优惠券择优取最大优惠,不能多张同类型券一起抵扣。
四、券后价计算伪代码示例
# 1. 获取SKU基础价格
base_price = sku["price"]
# 2. 应用单品促销,得到促销后价格
if item["promotion"] and item["promotion"]["valid"]:
current_price = item["promotion"]["promotion_price"]else:
current_price = base_price
# 3. 筛选可用优惠券(过滤过期、不满足门槛、互斥券)
available_coupons = filter_coupon(item["coupon_list"], current_price)
# 同类券只保留优惠力度最大的一张
best_coupon = get_max_discount_coupon(available_coupons)
# 4. 店铺满减计算
shop_full_reduction = calc_full_reduction(current_price, item["full_reduction"])
current_price = current_price - shop_full_reduction
# 5. 优惠券抵扣
if best_coupon and current_price >= best_coupon["threshold"]:
current_price = current_price - best_coupon["discount"]
# 最低保护:券后价不能低于平台最低限价
final_coupon_price = max(current_price, item["min_price_limit"])
五、简化 JSON 返回样例(taobao.item_get 节选)
{
"item": {
"num_iid": "723456123456",
"title": "商品测试标题",
"sku": [
{
"sku_id": "123456789012",
"price": "199.00"
}
],
"promotion": {
"promotion_price": "179.00",
"valid": true
},
"coupon_list": [
{
"coupon_type": "shop_coupon",
"discount": 20,
"threshold": 150,
"valid_start": "2026-10-01",
"valid_end": "2026-10-31"
},
{
"coupon_type": "platform_coupon",
"discount": 10,
"threshold": 100,
"valid_start": "2026-10-01",
"valid_end": "2026-10-31"
}
],
"full_reduction": {
"full": 200,
"reduce": 10
}}}
六、开发落地踩坑实录
SKU 维度价格差异:不同 SKU 价格不一样,优惠有的只针对部分 SKU,不能拿商品主价格统一计算券后价,必须按 SKU 粒度计算。
跨店满减分摊:多商品一起下单的跨店满减,单商品要按金额比例分摊减免金额;如果是单品单独购买,则直接使用单品金额判断。
活动互斥坑:部分商品参加秒杀活动时,无法叠加店铺券,代码里要增加互斥标识判断。
缓存策略:商品优惠、券会随时变更,不能永久缓存价格,建议设置短 TTL 缓存,定时轮询刷新。
最低售价保护:计算后券后价不能小于平台最低限价,避免算出负数或者低于底价的异常价格。
七、适用业务场景
竞品价格监控系统:实时追踪竞品券后售价变动
跨境选品平台:抓取国内商品真实到手价做利润测算
电商比价工具:展示商品真实券后到手价
代购集运系统:商品报价自动核算
八、总结
taobao.item_get不会直接返回券后价,券后价是多类优惠叠加计算的结果。开发核心思路:按淘宝优惠优先级,先单品促销,再店铺满减 / 店铺券,最后平台优惠;同类型优惠券择优选择最大优惠,同时做好门槛、有效期、活动互斥校验,最终得到准确券后价。