变更商品订阅
6.5 变更商品订阅
请求方式:
POST请求地址:
/goods/subscriptions
批量订阅:
{
"action": "subscribe",
"productRefs": [1001]
}批量取消:
{
"action": "unsubscribe",
"productRefs": [
1001,
1002
]
}清空全部订阅:
{
"action": "clearAll"
}subscribe 和 unsubscribe 一次最多提交 100 个 productRef。clearAll 不能同时提交 productRefs,它会删除当前账户的全部商品订阅。平台会逐个商品检查权限并返回哪些成功、哪些失败;clearAll 会返回实际删除了多少个订阅。
请求字段:
字段 | JSON 类型 | 必填 | 含义 |
|---|---|---|---|
| string | 是 |
|
| integer[] | 订阅或取消时是 | 要处理的商品编号数组,最多 100 个; |
返回字段:
字段 | JSON 类型 | 必填 | 含义 |
|---|---|---|---|
| integer | 是 | 固定为 |
| string | 是 | 本次请求的处理说明 |
| object | 是 | 本次处理结果 |
| integer | 是 | 处理成功的商品数量 |
| integer | 是 | 处理失败的商品数量 |
| object[] | 是 | 每个商品的处理结果; |
| integer | 是 | 商品编号 |
| boolean | 是 |
|
| string 或 null | 否 | 失败原因码;成功时为 |
| string 或 null | 否 | 失败原因说明;成功时为 |
| string | 是 | 本次请求编号,排查问题时提供给平台 |
返回示例(对应上面的订阅商品 1001 请求):
{
"code": 0,
"message": "success",
"data": {
"acceptedCount": 1,
"rejectedCount": 0,
"items": [
{
"productRef": 1001,
"accepted": true,
"code": null,
"message": null
}
]
},
"requestId": "req_01K0EXAMPLE"
}订阅和推送规则:
单个商品处理失败时,
data.items[].code只会返回INVALID_ARGUMENT(商品编号无效或重复)或SUBSCRIPTION_NOT_ALLOWED(当前账户不能订阅该商品);同一批次中的其他合法商品仍会继续处理。Webhook 默认启用,不设置事件开关。账户已经保存有效的默认回调地址时,订阅成功后会推送一次商品当前完整数据;没有回调地址时只保存订阅。
后续只在商品价格、库存、是否可售、规格列表或下单模板版本变化时推送。
未订阅或已经主动取消订阅的商品不会推送。
每个订阅有效 90 天。再次执行
subscribe,或者成功创建该商品订单,都会从当天起重新计算 90 天;成功订单会在没有订阅时自动创建订阅。查询目录、查询详情、查询下单模板、商品自身变化和 Webhook 投递成功都不会续期。到期后该商品立即表现为
unsubscribed并停止生成新的product.changed;平台不会物理删除过期记录。第三方可以根据
subscriptionExpiresAt在到期前再次执行subscribe。自动到期不会额外发送 Webhook。一条
product.changed按既定三次尝试仍未收到 HTTP 200 +OK时,平台会取消该商品订阅;之后需要重新执行subscribe或成功创建该商品的新订单才能恢复。订单、卡密和售后 Webhook 投递失败不会取消商品订阅。商户停止供应或商品永久下架时,会最后推送一次
availability: unavailable。同一商品短时间内连续变化时,平台可以合并成一次完整商品数据。商品推送不保证到达顺序;需要确认当前价格、库存或状态时,重新查询商品列表或详情。