写点什么

京东店铺所有商品商品详情对接秘籍:全店商品 API 接入实战避坑指

作者:代码忍者
  • 2025-03-07
    江西
  • 本文字数:1857 字

    阅读完需:约 6 分钟

做电商系统开发或数据分析,最头疼的就是实时获取京东店铺商品数据。去年帮客户对接京东联盟 API 踩了无数坑,今天把全流程避坑指南和最新接口玩法整理出来,看完能少走 80%的弯路。


一、京东商品接口两大阵营

API接口测试


  1. 京东联盟 API(CPS 模式)


适合:导购平台/比价网站


能拿数据:✅ 全店商品基础信息(含佣金率)✅ 促销活动倒计时✅ 30 天销量预估❌ 拿不到真实库存


  1. API(企业级对接)


适合:自营商家/供应链系统


核心权限:✅ 实时库存监控(精确到区域仓)✅ SKU 维度价格(会员价/PLUS 价)✅ 商品上下架状态变更✅ 带参数订单追踪(防渠道串货)


二、真实案例:某母婴电商的骚操作


用 API 实现了:


自动同步 50 家代发店铺商品


库存≤10 时触发预警补货


抓取竞品晚 8 点限时价做动态调价上线 3 个月减少人工维护成本 70%


三、手把手接入教学(2024 实测版)


Step1 资质准备


企业营业执照(个体工商户不行)


签约类目保证金(3C 类 5 万起)


开通京东云账号(不是京东商家后台!)


Step2 接口选择


复制

全店商品抓取用这两个: 1. jd.union.open.goods.query(联盟商品池) 2. jingdong.ware.read.findWareById(宙斯商品详情)

Step3 签名生成大坑联盟 API 用 MD5 签名,宙斯必须用 JSDK 签名!正确姿势:


python


复制

宙斯接口签名示例 params = { "method": "jingdong.ware.read.findWareById", "wareId": "1000001", "access_token": "你的令牌", "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "app_key": "你的 appkey", "v": "2.0" } # 关键点:按参数名升序排列 + 拼接 app_secret sign_str = app_secret + ''.join([k + params[k] for k in sorted(params)]) sign = hashlib.md5(sign_str.encode()).hexdigest().upper()

Step4 数据解析技巧重点关注返回值:


图片地址在 imageList 字段(需替换 http 为 https)


真实库存看 stockDesc 字段


隐藏优惠券在 couponList 里

封装好的京东店铺所有商品数据接口,复制链接获取测试。

demo url=o0b.cn/imike wechat id:you847337137


def generate_sign(params, app_secret):"""生成签名的函数:param params: 参数字典:param app_secret: 应用的密钥:return: 生成的签名"""sorted_params = sorted(params.items(), key=lambda x: x[0])sign_str = app_secretfor key, value in sorted_params:sign_str += f"{key}{value}"sign_str += app_secretsign = hashlib.md5(sign_str.encode()).hexdigest()return sign


def get_jd_shop_products(app_key, app_secret, shop_id):"""获取京东店铺商品的函数:param app_key: 应用的 key:param app_secret: 应用的密钥:param shop_id: 店铺的 id:return: 请求结果"""url = "https://api.jd.com/routerjson"method = "jingdong.shop.product.list.get"timestamp = int(time.time() * 1000)v = "2.0"page = 1page_size = 10params = {"app_key": app_key,"method": method,"timestamp": timestamp,"v": v,"360buy_param_json": json.dumps({"shopId": shop_id,"page": page,"pageSize": page_size})}params["sign"] = generate_sign(params, app_secret)headers = {"Content-Type": "application/x-www-form-urlencoded"}try:response = requests.post(url, data=params, headers=headers)if response.status_code == 200:return response.json()else:print(f"请求失败,状态码: {response.status_code}")return Noneexcept Exception as e:print(f"请求过程中出现错误: {e}")return None

示例使用,将以下信息替换为实际的 app_key, app_secret 和 shop_id

app_key = "your_app_key"app_secret = "your_app_secret"shop_id = "your_shop_id"result = get_jd_shop_products(app_key, app_secret, shop_id)if result:print(result)



四、血泪教训总结
Q1:为什么返回“无效方法名”?A:检查方法名大小写!京东严格区分驼峰命名,比如jingdong.ware.read和jingdong.Ware.Read是两个接口
Q2:抓取速度慢怎么办?A:开多线程控制在QPS≤50(超过直接封IP)
Q3:企业资质审核被拒?A:经营范围必须包含“电子商务”,注册资金建议≥100万
特别预警:
商品类目变更不会实时通知(建议每天全量校验)
主图视频需调用额外接口(jd.union.open.goods.video.query)
凌晨3点批量更新成功率最高
现在京东云新用户送1万次免费调用,建议先用测试环境练手(测试地址和正式环境不同)。需要《京东API字段对照表》和《签名生成工具》的,评论区留言"京东神器"私发给你。遇到具体报错代码可直接贴出来,有空都会回!
复制代码


用户头像

代码忍者

关注

还未添加个人签名 2024-07-23 加入

还未添加个人简介

评论

发布
暂无评论
京东店铺所有商品商品详情对接秘籍:全店商品API接入实战避坑指_京东API接口_代码忍者_InfoQ写作社区