供应商询单 API

在用户下单前,给出更接近真实的国际运费

一张沙发、一盏落地灯、一台跑步机、一个大号宠物笼——它们的国际运费几乎完全取决于实际打包之后的样子:打包重量、包装箱尺寸、拆成几个包裹发。

而这些数据在 1688 和淘宝的商品页上经常缺失或不可靠。于是你的用户面对一个非常现实的问题:

他知道这件商品卖多少钱,却完全不知道运到自己国家要多少钱。

供应商询单 API 补上的就是这一层。在用户下单之前,HIOBuy 的供应商沟通服务会联系真实供应商,确认打包重量、包装尺寸与装箱方式,并把结果以结构化数据返回给你的应用,直接用于运费试算。

为什么商品 API 不够用

商品接口能稳定地给你平台自己掌握的信息:标题、图片、价格、SKU、属性、店铺。但物流数据完全是另一回事:

  • 页面根本没写重量;
  • 写的是商品净重,不是打包后的重量;
  • 有商品尺寸,但没有打包后的尺寸;
  • 重量是卖家手填的,只能当参考;
  • 不同 SKU 打包后的重量并不一样;
  • 大件商品会拆成多个包裹发货;
  • 外箱数量、外箱重量、外箱尺寸页面上根本没有。

商品 API 告诉你平台知道什么;供应商询单帮你拿到只有供应商能确认的东西。

示例:给一张沙发算国际运费

一位美国用户正在你的应用里看一张 1688 沙发,售价 ¥800。商品接口已经返回了商品、价格、图片、SKU 和属性——唯独没有可靠的打包重量和包装尺寸。

于是你的应用回答不了接下来唯一重要的问题:

商品价格   ¥800
国际运费   ???

在大件商品上,这个未知数很可能比商品本身还贵。

应用发起一次询单:

POST /v1/supplier-inquiries
{
  "product_url": "https://detail.1688.com/offer/554456348334.html",
  "questions": [
    { "type": "packed_weight" },
    { "type": "package_dimensions" },
    { "type": "carton_info" }
  ]
}

HIOBuy 把任务交给供应商沟通服务,由中国本地人员联系这个链接背后的真实供应商。供应商回复说这张沙发分两个包裹发:

包裹 1   32 kg   110 × 75 × 55 cm
包裹 2   18 kg    90 × 60 × 40 cm

这些答案以结构化 JSON 回到你的应用,整条链路是这样的:

1688 商品
      ↓  商品 API
价格:¥800
      ↓  缺少可靠的物流数据
供应商询单
      ↓  HIOBuy 联系真实供应商
供应商确认:2 个包裹,32 kg + 18 kg,各自尺寸
      ↓  结构化物流数据
国际运费预估(中国 → 美国)

用户在下单前就看到大致的总成本

这才是整件事的意义:

商品成本
+ 预估国际运费
= 更接近真实的购买成本

它在 HIOBuy 接口体系中的位置

商品 API        「这是什么商品,卖多少钱?」

供应商询单 API   「供应商实际会怎么打包?」

运费试算        「运到国外大概要多少钱?」

供应商询单,就是商品数据与运费报价之间缺失的那一层。

供应商确认的数据仍然是预估值

你拿到的是供应商确认的数据。作为下单前的预估,它远好过没有物流数据、拿商品净重顶替、照着图片猜,或者相信一个本来就不准的平台字段。

供应商确认 ≠ 仓库实测。货物真正到仓之后,打包方式可能变化,仓库可能重新包装,实际重量、尺寸和包裹数量都可能对不上。

这些答案请用于下单前的国际运费预估,不要当作最终计费重量——后者永远以仓库实际打包和测量的结果为准。

不只是物流数据

用于运费预估的包装数据是这个接口最先落地、也最具体的场景,但同一条供应商沟通链路可以问任何只有供应商知道的事:

起订量 · 库存 · 货期 · 中性包装 · 定制 · 装箱信息 · 商品细节,以及通过 other 类型问的任何其他问题。

所以今天它解决的是包装数据 → 运费预估,同一次调用同样可以服务供应商信息 → 采购决策。十种类型及其答案结构见问题类型

工作方式

  1. 应用调用 POST /v1/supplier-inquiries,传入商品链接、可选的 SKU,以及一个或多个结构化问题。
  2. HIOBuy 创建询单并交给供应商沟通服务。
  3. 中国本地人员联系该链接对应的供应商。
  4. 供应商回复。
  5. 回复按每个问题类型的 schema 归一成结构化数据。
  6. 你的回调地址收到 supplier_inquiry.message_answered,或者主动轮询 GET /v1/supplier-inquiries/{id}

一个询单是一段会话,不是一次性请求。创建之后,追加问题都发到同一个会话里,而不是另开一单。

这是人工服务,不是实时接口

真人联系真实供应商,所以响应时间取决于供应商是否在线、回复快慢、问题复杂度,以及是否需要追问。请把它当作小时级的异步任务,偶尔会更久。部分问题合理地会以 unavailablerefused 返回。

落到工程上:不要让前台页面同步等待结果;创建询单后立即返回;用 Webhook 接收答案;期间在界面上展示 processingwaiting_supplier 状态。

附件

有些问题配一张图会容易得多:包装参考图、SKU 截图、尺寸图纸、规格书;反过来,供应商也可能回一张实拍包装照、外箱照或一份报价 PDF。

每条消息(你发的和供应商回的)最多可带 5 个附件:

{
  "message": "请问供应商能否用类似这样的包装?",
  "attachments": [
    {
      "type": "image",
      "url": "https://example.com/reference-packaging.jpg",
      "filename": "reference-packaging.jpg",
      "mime_type": "image/jpeg"
    }
  ]
}

typeimage / document / other。URL 必须是 https://,其它协议一律返回 INVALID_ATTACHMENT_URL

HIOBuy 不托管附件文件

附件是引用。你的文件由你自己托管,供应商的文件由询单服务托管;HIOBuy 只保存元数据和 URL,不上传、不下载、不复制、不代理文件本身。没有文件上传接口,也不会有。

因此有一条务必注意:附件 URL 由提供方管理,其中一部分会过期。响应里带 expires_at 时,请把它当作把文件取回自己存储的截止时间;null 表示提供方声明该 URL 不过期。不要假设今天拿到的 URL 下个月还能访问。

供应商的回复同样可能带附件,它们会出现在消息的 attachments 数组里,以及 supplier_inquiry.message_answered Webhook 中,与结构化答案一同送达。你只会看到询单服务标记为「可交付给开发者」的附件——客服工作文件、与供应商的聊天截图等始终留在服务内部,不会进入 API。

开通与权限

供应商询单默认关闭,需商务对接后由 HIOBuy 按应用开通,请联系 HIOBuy 支持申请。

要求
能力位Supplier inquiry,按应用开通
Scopesupplier_inquiry:readsupplier_inquiry:write
鉴权正式 API Key(Authorization: Bearer hio_live_...

未开通或被暂停时,所有接口返回 403 SUPPLIER_INQUIRY_NOT_ENABLED

支持的渠道

渠道识别来源
1688detail.1688.com/offer/{id}.html 及等价链接
taobaoitem.taobao.com / detail.tmall.com 商品链接

其他渠道返回 UNSUPPORTED_MARKETPLACE。商品身份由 channel + source_product_id 确定,不使用原始 URL 字符串,因此同一商品的不同链接形态会归一到同一个商品。

询单状态

状态含义
pending已受理,尚未被服务方接单
processing客服正在处理
waiting_supplier问题已发出,等待供应商回复
answered最新一条消息已有答案,会话仍可继续追问
completed会话已结束
failed消息无法送达或被服务方拒绝
cancelled已取消,不再接受新消息

pendingprocessingwaiting_supplieranswered 视为活跃。同一应用对同一商品同时只允许一个活跃询单,以此保证每个商品只有一条供应商会话。若该商品的上一个询单是 completedfailed,创建请求会重开原会话,而不是新建。

Webhook

在开发者门户注册回调地址并订阅 supplier_inquiry 分类,签名与重试遵循标准 Webhook 规则。

事件触发时机
supplier_inquiry.created询单创建
supplier_inquiry.processing客服已接单
supplier_inquiry.waiting_supplier问题已送达供应商
supplier_inquiry.message_answered答案返回,payload 内含完整 answers 数组与附件 attachments
supplier_inquiry.completed会话结束
supplier_inquiry.failed消息失败

所有 payload 都带 inquiry_idproduct.{channel,source_product_id}

错误码

错误码HTTP含义
SUPPLIER_INQUIRY_NOT_ENABLED403未开通或已暂停
INVALID_PRODUCT_URL400不是绝对 http(s) 链接,或无法提取商品 ID
UNSUPPORTED_MARKETPLACE400非 1688 / 淘宝渠道
INVALID_QUESTION_TYPE400未知的 questions[].type
INVALID_QUESTION_SCHEMA400问题为空、超量或重复
INVALID_ATTACHMENT_URL400附件 URL 缺失、不是绝对地址,或不是 https://
INVALID_ATTACHMENT_TYPE400attachments[].type 不是 image / document / other
TOO_MANY_ATTACHMENTS400单条消息附件超过 5 个
ACTIVE_INQUIRY_EXISTS409已存在活跃询单,请改为追加消息
INQUIRY_NOT_FOUND404询单不存在,或属于其他应用
INQUIRY_NOT_ACTIVE409询单已取消
SUPPLIER_INQUIRY_SERVICE_UNAVAILABLE503询单服务不可用或拒绝任务

SUPPLIER_INQUIRY_SERVICE_UNAVAILABLE 刻意保持笼统:余额、账户状态等服务方内部原因不对外暴露。联系支持时请提供 request_id

接口一览

获取支持

需要集成帮助?请联系开发者支持 support@hiobuy.com · 预计 1–2 个工作日内回复

发送邮件