1688 / 京东 / 淘宝 item_get 返回字段逐个拆:三个平台的真实报文差在哪

admin14小时前反向海淘独立站系统5
跨平台做数据的人,八成的调试时间花在同一件事上:这个字段到底叫什么、是什么意思、单位是啥。这篇不讲架构,只把三个平台 item_get 的请求参数和返回报文摊开逐个字段过一遍,附一份可直接用的字段映射表。

一、请求侧:一个网关跑三个平台

三个平台的调用形式完全统一,差异只在路径里的平台名:

https://api-gw.onebound.cn/{平台名}/{接口名}/

平台名取 1688 / jd / taobao,接口名就是 item_get。公共参数三平台一致:

参数必填说明取值
key是应用 key控制台分配
secret是应用密钥控制台分配
api_name否接口名,部分调用方式需显式指定item_get
cache否是否走缓存yes(默认)/ no
result_type否返回格式json / xml / serialize
lang否文案语言cn / en

业务参数只有一个:num_iid(商品 ID)。所以最小的调用就是:

curl "https://api-gw.onebound.cn/1688/item_get/?key=你的key&secret=你的secret&num_iid=623415409661&cache=yes&result_type=json&lang=cn"

返回的外层结构三平台也是同一套,先认这几个字段再谈业务字段:

{ "item" : { "...商品字段..." } , "error" : "" , "error_code" : "0000" , "reason" : "" , "execution_time" : 0.318 , "request_id" : "b2f1c9d8..." }

判成败只看 error_code:0000 是成功,2000 是搜索类接口的"无结果",4000 / 4001 / 4002 / 4017 是请求侧问题。这里有个和花费直接相关的细节值得记住:0000 和 2000 都计费,那四个 4 开头的错误码不计费。所以拿 2000 去轮询搜索等于持续花钱买空结果,而参数写错反倒不花钱——调试阶段真正该防的是前者。

二、1688:item 里最需要看清的字段

1688 的 item 返回字段多且杂,做成本核算和铺货真正高频用到的就这些:

字段含义实测注意点
num_iid报价 ID唯一,建议加平台前缀后再当主键
title标题常带供应商自造的促销前缀
price价格区间字符串,如 "3.20-5.80",不是数字
orginal_price原价官方字段名就是拼错的,别"顺手改对"
min_num起订量一件代发场景必须看,2 件起订的款不能按 1 件卖
quantity库存单位随类目变,可能是件/打/箱
sold_quantity成交量选品排序的主要依据
seller_nick / company_name店铺同一供应商可能有多个店铺
pic_url / item_imgs主图/图集图集是数组,铺货时按需截取
skus.sku[]规格数组真正的价格与库存都在这里

skus 要单独讲,因为它是唯一能拿到规格级价格的地方:

"skus" : { "sku" : [ { "sku_id" : "4902881234567" , "properties" : "1627207:28320;20509:28314" , "properties_name" : "颜色:黑色;尺码:L" , "quantity" : 812 , "price" : "3.20" , "orginal_price" : "4.50" } ] }

properties 是平台的属性 ID 组合,properties_name 才是人看的文案。做规格库存判断必须用 sku[].quantity,不能用外层的 quantity——外层那个是全部规格的合计,拿它算可售量会把某个已断货的规格也放出去卖。

上面这些字段名和那个拼错的 orginal_price,我都核过好几遍。最快的核对方式不是翻文档,是在调试工具里打一份真实响应回来逐行对照,入口在 开放平台控制台,需要的自取。

三、京东:字段名相似,能力边界差很多

京东的 item_get 返回结构跟 1688 高度相似(price、title、pic_url、skus 都在),但有两个实操层面的差别。

一是 ID 前缀问题。 京东同一款商品在不同入口下可能返回纯数字 skuId,也可能带 J_ 前缀。落库前统一清洗,否则同一个款会存成两条记录。

二是不少字段要走别的接口。 京东 item_get 后台统计只有 78%,item_get_pro 也是 78%,item_history_price 75%——这条链路稳定性明显低于 1688。但它的 item_get_desc 有 98%,所以描述类字段从详情描述接口取,别指望主接口:

def jd_desc(num_iid, key, secret):     r = call("jd", "item_get_desc", num_iid=num_iid, key=key, secret=secret)     return r["item"]["description"] if r.get("error_code") == "0000" else None

再补一条:京东的销量字段缺失很常见。想拿"卖得怎么样"这个信号,实际可用的替代是 item_review(评价接口,99%),用评价数近似。至于 item_search——后台统计只有 28%,别把主链路押在京东搜索上,它只适合做人工触发的补采。

四、淘宝:字段最全,但 item_get 的成功率是硬伤

淘宝返回的字段是三家里最完整的,问题出在成功率:item_get 和 item_get_pro 都只有 40%——每 5 次调用只有 2 次能拿到 item,另外 3 次落空。

对比之下淘宝其他接口反而很稳:item_link100%、item_search_shop_pro96%、item_password95%、item_search_img92%、item_search85%。

这个分布直接决定了策略:别用 item_get 硬扛,改成"列表接口铺量 + 详情接口补点"。

def tb_items(shop_id, page, key, secret):     """用店铺商品接口取列表,96% 成功率,一次拿到一批商品的字段"""     return call("taobao", "item_search_shop_pro",                 seller_id_or_nick=shop_id, page=page,                 key=key, secret=secret) def tb_detail(num_iid, key, secret, retry=2):     """详情接口只对重点商品调用,拿不到就明示为空,不硬等"""     for i in range(retry):         r = call("taobao", "item_get", num_iid=num_iid, key=key, secret=secret)         if r.get("error_code") == "0000" and r.get("item"):             return r["item"]     return None      # 40% 的接口,拿不到是常态,别让它阻塞任务

五、字段映射表:让三个报文落进同一张表

差异认清了,落地就简单。写成声明式映射,新增平台只加一段配置:

FIELD_MAP = {     "1688": {"id": "num_iid", "price": "price", "origin": "orginal_price",              "min_num": "min_num", "stock": "quantity", "sold": "sold_quantity",              "seller": "seller_nick", "pic": "pic_url"},     "jd":   {"id": "num_iid", "price": "price", "origin": "orginal_price",              "min_num": "min_num", "stock": "quantity", "sold": "sold_quantity",              "seller": "shop_name",  "pic": "pic_url"},     "taobao": {"id": "num_iid", "price": "price", "origin": "orginal_price",                "min_num": "min_num", "stock": "quantity", "sold": "sold_quantity",                "seller": "nick",     "pic": "pic_url"}, } def parse_price(raw):     """'3.20-5.80' / '3.50' / '面议' 都要接得住"""     if raw is None:         return None, None     nums = re.findall(r"\d+(?:\.\d+)?", str(raw))     if not nums:         return None, None            # 面议不能当 0,否则定价直接崩     vals = [Decimal(n) for n in nums]     return min(vals), max(vals)      # 一价时 min == max

parse_price 那两行是我改得最多的地方:早期版本直接 float(item["price"]),碰上区间价抛异常、碰上"面议"返回 0,定价模块跟着一起错。归一化函数的原则是"不确定就给 None,不要给默认值",让空值在后续校验里暴露出来,比默默按 0 元算安全得多。

六、收尾

字段这东西,看文档不如看报文。另外一个建议:把原始 item JSON 整段存进 raw_json 列——归一化一定会漏字段,能回捞历史报文比重新调接口便宜得多,毕竟成功和"无结果"都是要计费的。


相关文章

还在用Excel做代购?这套系统让5人小团队干出50人的业绩

还在用Excel做代购?这套系统让5人小团队干出50人的业绩

 编辑一、开篇:无数代购被困的“人肉内卷”困境做反向海淘代购的人,大多都熬过一模一样的疲惫日常。白天紧盯微信、Facebook消息,随时回复海外客户的咨询,解答商品规格、物流时效、运费价格等...

代购集运独立站系统讲解:业务本质 = 代购下单 + 国内合箱集运 + 国际派送

一、前言:反向海淘赛道的核心载体 —— 代购集运独立站随着国货服饰、美妆、零食、数码配件、日用小商品在全球华人圈层持续走红,大量海外留学生、华侨、外籍消费者不再满足于零散找人代购、私下发货的低效模式。...

海外华人网购痛点攻克:独立站跨境包裹合并转运系统实践分享

海外华人网购痛点攻克:独立站跨境包裹合并转运系统实践分享

 编辑随着反向海淘行业持续升温,海外华人、留学生、驻外工作人群已成为国内国货消费的核心主力群体。从中式零食、调味食材、国风文创,到适配国内标准的小家电、家居用品,海量高性价比国货通过反向海淘...

反向海淘站点商品信息自动同步搭建方案

反向海淘站点商品信息自动同步搭建方案

 编辑一、背景与行业痛点随着国货出海、海外华人代购、跨境反向海淘模式持续普及,依托国内淘宝优质货源搭建海外独立站、跨境代购小程序,成为中小跨境创业者与技术团队的主流选择。但在实际落地过程中,...

反向海淘独立站系统的功能模块拆分讲解

一、前言反向海淘(国货出海代购)独立站和普通外贸独立站、国内电商系统最大的区别:货源不在自己仓库,而在淘宝/1688等国内平台;履约不是直发,而是代采+集运+国际物流;用户是海外华人/境外消费者,需要...

跨境代购站淘宝货源一键整合运营方案

一、前言多数跨境代购站点在初期搭建完成后,都会陷入一个共性困境:能上架商品,但做不好运营;有流量进店,但留不住用户、控不住成本。很多团队仅完成了基础的商品上架展示,却忽略了货源管控、库存风险、定价利润...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。