全部
常见问题
产品动态
精选推荐
功能建议

已处理 待处理 {{opt.name}}
已处理 待处理
分析中 已回复 待规划 {{opt.name}}
分析中 已回复 待规划
京东商品详情接口完全指南:从接入到落地的全链路实战

管理 管理 编辑 删除

在电商数据化运营时代,商品详情接口是连接业务系统与京东商品数据的核心管道。无论是 ERP 同步、价格监控、跨境铺货,还是供应链选品比价,都需要稳定、准确地获取京东商品的完整结构化数据。本文将系统梳理京东商品详情接口的全貌,覆盖官方开放平台和京东联盟两条主线,并附可直接落地的代码示例。


一、京东详情接口的两大体系

京东的商品详情能力分散在两个不同的开放平台中,定位和使用场景截然不同:


维度京东开放平台(JOS)京东联盟开放平台
核心接口jd.item.get / jingdong.item.read.getjd.union.open.goods.query / jd.union.open.goods.promotiongoodsinfo.query
数据侧重商品全量元数据(真实库存、SKU、详情图、售后等)推广信息(佣金比例、优惠券、推广链接)
权限要求企业认证 + 店铺授权(部分接口)京东联盟账号 + 推广位绑定
适用场景ERP 同步、商品中台、竞品监控CPS 推广、导购返利、比价展示
QPS 限制基础 2 QPS,企业服务商可申请 5~50按联盟等级分配
关键认知: 联盟接口虽然也能拿到商品标题、价格、图片等基础信息,但不含真实库存和完整 SKU 规格,且价格字段是推广价而非实时京东价,不能替代官方商品详情接口用于供应链或 ERP 场景


二、官方商品详情接口:jd.item.get

这是京东开放平台(JOS)提供的商家服务商版商品全量详情接口,数据最全、字段最丰富,是企业级应用的首选。

2.1 接口基础信息


项目说明
接口地址https://api.jd.com/routerjson
协议HTTPS
请求方式POST / GET
数据格式JSON(默认)/ XML
接口版本v2.0
权限要求京东开放平台企业认证 + 接口权限申请
基础 QPS 为 2,企业服务商可根据业务规模申请提升至 5~50

2.2 请求参数

公共参数(所有调用必传):


参数名类型必填说明
app_keyString应用唯一标识
methodString固定值:jd.item.get
timestampString北京时间,格式 yyyy-MM-dd HH:mm:ss,用于签名校验防重放
vString接口版本,固定 2.0
formatString返回格式,jsonxml,默认 json
signStringMD5 大写签名
access_tokenString店铺授权场景必填OAuth 店铺授权令牌
业务参数(核心查询参数):





表格

参数名类型必填说明
skuIdLong二选一单品 SKU 编号(精准单规格查询,推荐)
itemIdLong二选一商品主商品 ID(多 SKU 套装商品入口 ID)
fieldsString字段过滤,逗号分隔,不传返回全量字段,可减少返回体积

2.3 签名生成规则

京东开放平台采用 MD5 签名机制,签名规则为:


sign = MD5( app_secret + 所有参数按 key 升序拼接 + app_secret ).upper()

Python 签名示例:
import hashlib

def generate_sign(params, app_secret):
    # 按 key 升序排序,排除 sign 本身
    sorted_params = sorted((k, v) for k, v in params.items() if k != 'sign')
    # 拼接成 key=value 字符串
    param_str = ''.join(f"{k}{v}" for k, v in sorted_params)
    # 首尾拼接 app_secret
    sign_str = f"{app_secret}{param_str}{app_secret}"
    return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
    

2.4 完整调用示例(Python)


import requests
import hashlib
import time
from urllib.parse import quote

APP_KEY = 'your_app_key'
APP_SECRET = 'your_app_secret'
ACCESS_TOKEN = 'your_access_token'  # 店铺授权场景需要

def jd_sign(params):
    sorted_params = sorted((k, v) for k, v in params.items() if k != 'sign')
    param_str = ''.join(f"{k}{v}" for k, v in sorted_params)
    sign_str = f"{APP_SECRET}{param_str}{APP_SECRET}"
    return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()

def get_item_detail(sku_id):
    timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    
    params = {
        'method': 'jd.item.get',
        'app_key': APP_KEY,
        'access_token': ACCESS_TOKEN,
        'timestamp': timestamp,
        'v': '2.0',
        'format': 'json',
        'skuId': sku_id,
        'fields': 'skuId,title,priceInfo,stockInfo,imageInfo,skuList,paramList,shopInfo'
    }
    
    params['sign'] = jd_sign(params)
    
    # 参数需要 URL 编码
    encoded_params = {k: quote(str(v)) for k, v in params.items()}
    
    url = 'https://api.jd.com/routerjson'
    response = requests.post(url, data=encoded_params, timeout=30)
    return response.json()

# 调用示例
result = get_item_detail('100012345678')
print(result)

2.5 返回数据结构解析

jd.item.get 返回的 JSON 结构非常完整,核心字段如下 :


{
    "jd_item_get_response": {
        "code": 0,
        "msg": "success",
        "item": {
            "skuId": 100012345678,
            "itemId": 1001234567,
            "title": "华为Mate 60 Pro 12GB+512GB 雅丹黑",
            "shortTitle": "Mate60 Pro 雅丹黑",
            "saleState": 1,
            "brand": {
                "brandId": 1000123,
                "brandName": "华为(HUAWEI)"
            },
            "category": {
                "cid1": 1713,
                "cid1Name": "手机通讯",
                "cid2": 1714,
                "cid2Name": "手机",
                "cid3": 1715,
                "cid3Name": "智能手机"
            },
            "priceInfo": {
                "marketPrice": "6999.00",
                "jdPrice": "6499.00",
                "promotionPrice": "6299.00",
                "memberPrice": "6199.00",
                "promotionList": [...]
            },
            "stockInfo": {
                "totalStockNum": 326,
                "stockState": 33,
                "stockDesc": "现货有货",
                "limitBuyNum": 2
            },
            "imageInfo": {
                "mainImg": "https://...",
                "imageList": ["...", "..."],
                "detailHtml": "<html>商品详情图文富文本...</html>"
            },
            "paramList": [
                {"name": "品牌", "value": "华为"},
                {"name": "运行内存", "value": "12GB"}
            ],
            "skuList": [
                {
                    "subSkuId": 100012345678,
                    "skuTitle": "华为Mate 60 Pro 12GB+512GB 雅丹黑",
                    "propsText": "颜色:雅丹黑;内存:12GB+512GB",
                    "skuPrice": "6299.00",
                    "skuStock": 126
                }
            ],
            "salesInfo": {
                "totalSales": 126800,
                "monthSales": 3620,
                "commentCount": 89600,
                "goodCommentRate": "98.6%"
            },
            "shopInfo": {
                "shopId": 1000888888,
                "shopName": "华为京东自营官方旗舰店",
                "shopType": "self",
                "shopScore": 4.95
            },
            "serviceInfo": {
                "supportJdLogistics": true,
                "sevenDayReturn": true,
                "warrantyYear": "1年全国联保"
            }
        }
        
       
字段路径说明
priceInfo.jdPrice京东价(划线价)
priceInfo.promotionPrice促销价(实际到手价)
stockInfo.stockState库存状态码,33 = 现货有货,34 = 现货无货,40 = 可配送等
stockInfo.totalStockNum总库存数量
skuList多规格 SKU 列表,含每个子 SKU 的价格和库存
imageInfo.detailHtml商品详情页富文本 HTML(含图文详情)
shopInfo.shopTypeself = 自营,pop = 第三方商家


三、批量查询接口:jingdong.item.list.get

当需要同时查询多个商品时,单品接口效率太低。京东提供了批量查询能力 :


项目说明
接口jingdong.item.list.get
单次上限20 个商品 ID
请求参数skuIds = 123,456,789(逗号分隔)
返回结构数组形式返回多个商品详情
适用场景: 购物车同步、批量价格监控、商品中台批量更新。


四、京东联盟详情接口:推广场景专用

如果你的业务是导购、返利、CPS 推广,而非供应链或 ERP,应该使用京东联盟接口。

4.1 核心接口

接口用途
jd.union.open.goods.query关键词/条件搜索商品列表,含推广信息
jd.union.open.goods.promotiongoodsinfo.query根据 SKU ID 批量查询商品推广信息
jd.union.open.goods.bigfield.query查询商品图文详情大字段

4.2 联盟接口 vs 官方接口对比


能力官方 jd.item.get联盟 jd.union.open.goods.query
真实库存✅ 有❌ 无
完整 SKU 规格✅ 有⚠️ 部分
佣金比例❌ 无✅ 有
优惠券信息❌ 无✅ 有
推广链接❌ 无✅ 有
详情图 HTML✅ 有⚠️ 需单独调大字段接口
结论: 供应链、ERP、库存管理必须用官方接口;导购、返利、内容电商用联盟接口。


五、八大业务场景落地指南

基于 jd.item.get 的完整数据能力,以下是八个典型落地场景 :

场景 1:ERP 商品同步

  • 核心字段: skuId, title, priceInfo, stockInfo, skuList, paramList
  • 逻辑: 定时轮询商品列表,对比本地数据库,价格/库存变化时触发更新
  • 频率: 价格监控建议每 5~15 分钟一次,库存监控可更频繁

场景 2:跨境铺货(Ozon / Temu / Shopee)

  • 核心字段: title, imageList, attributeList, skuList, priceInfo, descHtml
  • 注意点:京东图片域名 360buyimg.com 部分平台不允许外链,必须下载转存对象存储属性需要映射到目标平台类目(如京东"运行内存" → Ozon"RAM")详情 HTML 需清洗标签,适配目标平台编辑器

场景 3:竞品监控与价格预警

  • 核心字段: priceInfo.promotionPrice, stockInfo.stockState, salesInfo
  • 逻辑: 采集竞品 SKU,建立价格基线,促销价低于阈值时触发告警

场景 4:供应链选品比价

  • 核心字段: priceInfo, stockInfo, shopInfo, serviceInfo
  • 逻辑: 同一品类下多 SKU 横向对比,筛选"自营 + 高库存 + 低售后率"的优质货源

场景 5:商品中台建设

  • 将京东商品数据标准化为内部商品模型,统一供给前端商城、小程序、B 端分销系统

场景 6:反向海淘代购

  • 海外用户通过你的平台购买京东商品,需实时展示京东商品详情、价格、库存

场景 7:库存联动与自动补货

  • WMS 检测到库存低于安全线时,自动查询京东货源库存,有货则触发采购流程

场景 8:数据大屏与 BI 分析

  • 聚合多 SKU 的销售数据、价格趋势、评论情感分析,支撑运营决策


六、踩坑清单与最佳实践

1. 权限申请是最大门槛

  • 个人开发者无法申请交易类接口,必须企业/个体工商户资质
  • 部分接口需要缴纳保证金(通常 1~3 万元)
  • 申请时业务描述要清晰,说明数据用途和场景

2. 签名失败是最常见的报错

  • 时间戳必须使用北京时间,且与服务器时间误差不能超过 5 分钟
  • 参数拼接时不要包含 sign 字段本身
  • 所有参数值必须做 URL 编码后再发送
  • MD5 结果必须转大写

3. 图片处理

  • 主图和详情图 URL 有时效性,不要长期缓存原始 URL
  • 详情 HTML 中的图片路径可能是相对路径,需要补全域名
  • 跨境场景必须下载图片到自有 CDN,避免外链失效

4. 缓存与限流策略

  • 基础 QPS 只有 2,高频场景必须做本地缓存 + 分布式缓存
  • 价格/库存建议缓存 5~15 分钟,商品基础信息(标题、图片、参数)可缓存 1~24 小时
  • 批量查询优先用 jingdong.item.list.get,减少请求次数

5. 字段过滤减少传输体积

  • 通过 fields 参数只返回需要的字段,可显著降低响应体积和提升接口速度
  • 例如:fields=skuId,title,priceInfo,stockInfo 比全量返回快 30% 以上

6. 异常处理

  • 商品下架或 SKU 变更时,接口可能返回 sku not found 或空数据
  • 必须做好降级策略:接口异常时读取缓存数据,避免前端展示空白


七、总结

京东商品详情接口是电商数据化的基础设施,但选对接口、申请对权限、做好缓存和异常处理,才是稳定落地的关键。


你的场景推荐接口关键注意点
ERP / WMS 同步jd.item.get需要企业资质,申请商品信息权限
批量价格监控jingdong.item.list.get单次 20 个,做好缓存和限流
CPS / 导购 / 返利jd.union.open.goods.query注册京东联盟,绑定推广位
跨境铺货jd.item.get + 图片下载HTML 清洗、属性映射、图片转存
竞品监控jd.item.get定时轮询 + 价格基线 + 告警触发

如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。


{{voteData.voteSum}} 人已参与
支持
反对
请登录后查看

123c001fa85d 最后编辑于2026-08-12 16:48:42

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}} 【已收集】
{{item.floor}}# 沙发 板凳 地板 {{item.floor}}# 【已收集】
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
分享
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
收起 展开更多
查看更多
打赏
已打赏¥{{reward_price}}
13
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

{{ wechatLoginError }}
切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服
CRMEB咨询热线 400-8888-794

扫码领取产品资料

功能清单
思维导图
安装教程
CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服