一、引言
在电商运营与开发的广阔领域中,优惠券作为极具影响力的营销利器,对于提升用户购物意愿、促进商品销售发挥着关键作用。淘宝平台以其海量的商品资源和庞大的用户群体,构建了一套丰富且复杂的优惠券体系。而淘宝商品详情优惠券 API 接口的开放,犹如为开发者和商家打开了一扇通往精准营销与高效用户服务的大门。借助这一接口,能够精准获取与商品详情紧密关联的优惠券信息,满足电商数据整合、个性化营销活动策划、用户精细化运营等多方面的迫切需求,为打造更具竞争力的电商应用与服务奠定坚实基础。供稿者:Taobaoapi2014
二、接口概述
(一)功能介绍
- 优惠券精准检索:该接口允许开发者依据商品 ID,精准筛选出与特定商品相关的优惠券。无论是商品专属优惠券,还是店铺通用但适用于该商品的优惠券,都能一网打尽。例如,输入一款热门手机的商品 ID,接口可返回该手机在促销活动中的满减优惠券、赠品优惠券等,帮助用户在购买商品时享受更多优惠。
- 优惠券详情深度获取:对于检索到的优惠券,通过接口能获取其详细信息。包括优惠券面额,如满 300 元减 50 元中的 50 元;使用门槛,即满减条件中的消费金额限制;领取条件,如是否为新用户专享、特定会员等级可领等;有效期,明确优惠券的可使用时间段;适用范围,确定是仅适用于指定商品,还是整个店铺的部分或全部商品;以及最重要的优惠券领取链接,方便用户直接领取使用。
- 优惠券动态状态监测:接口还具备监测优惠券实时状态的功能。可实时查询某张优惠券是否已被用户领取,以及剩余可领取数量。这对于电商平台及时调整优惠券展示策略,避免向用户展示已领完的优惠券,提升用户体验至关重要。
(二)数据输入
- 商品 ID:这是调用该接口的核心参数。商品 ID 是淘宝平台赋予每个商品的唯一标识,如同商品的 “身份证”。在淘宝商品链接中,通常清晰显示商品 ID。
- 可选筛选参数:部分接口支持一些可选筛选参数,用于进一步细化优惠券检索结果。例如,可设置优惠券面额范围,筛选出特定价格区间内的优惠券,如只获取面额在 20 元至 100 元之间的优惠券;还可指定优惠券类型,如普通满减券、折扣券、赠品券等;或者按照有效期进行筛选,获取在未来一周内即将生效或即将过期的优惠券,以满足不同业务场景下的个性化需求。
(三)数据输出
- 优惠券列表:当输入商品 ID 及相关筛选参数后,接口返回的是一个 JSON 格式的优惠券列表。列表中的每个元素都是一个包含详细优惠券信息的 JSON 对象,大致结构如下:
[ { "coupon_id": "123456789", "coupon_amount": 50, "min_order_amount": 300, "领取条件": "新用户专享", "start_time": "2024 - 10 - 01 00:00:00", "end_time": "2024 - 10 - 15 23:59:59", "适用范围": "指定商品:手机(商品ID:654321)", "领取链接": "https://xxx.taobao.com/coupon领取" }, { "coupon_id": "987654321", "coupon_amount": 100, "min_order_amount": 500, "领取条件": "店铺V3会员及以上", "start_time": "2024 - 10 - 05 00:00:00", "end_time": "2024 - 10 - 20 23:59:59", "适用范围": "店铺内全品类商品", "领取链接": "https://yyy.taobao.com/coupon领取" }]
- 优惠券状态信息:在查询优惠券实时状态时,接口返回一个简洁的 JSON 对象,明确显示优惠券的领取状态。例如:{"coupon_id": "123456789", "is_claimed": true, "remaining_count": 100},表示该优惠券已被领取,且剩余可领取数量为 100 张;若is_claimed为false,则表明优惠券尚未被领取。
三、Python 请求示例
import requests
import hashlib
import time
import json
# # 封装好的第三方数据商平台接口,复制链接获取测试。
demo url=http://c0b.cc/R4rbK2 wechat id:Taobaoapi2014
app_key = "your_app_key"
app_secret = "your_app_secret"
# 接口地址
url = "https://eco.taobao.com/router/rest"
# 商品ID
product_id = "654321"
# 生成签名
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
params = {
"app_key": app_key,
"method": "taobao.tbk.item.coupon.get",
"timestamp": timestamp,
"format": "json",
"v": "2.0",
"num_iid": product_id,
"coupon_start_fee": 20, # 筛选最小面额20元的优惠券
"coupon_end_fee": 100 # 筛选最大面额100元的优惠券
}
param_str = ""
for key in sorted(params.keys()):
param_str += key + str(params[key])
sign_str = app_secret + param_str + app_secret
sign = hashlib.md5(sign_str.encode('utf - 8')).hexdigest().upper()
params["sign"] = sign
# 发送请求
response = requests.get(url, params = params)
# 解析响应数据
if response.status_code == 200:
data = json.loads(response.text)
if "results" in data and "tbk_coupon" in data["results"]:
coupons = data["results"]["tbk_coupon"]
for coupon in coupons:
print("优惠券ID:", coupon["coupon_id"])
print("优惠券面额:", coupon["coupon_amount"])
print("使用门槛:", coupon["min_order_amount"])
print("-------------------")
else:
print("未获取到优惠券信息,错误信息:", data["error_response"]["msg"])
else:
print("请求失败,状态码:", response.status_code)