POST create 提交批量订单
地址:/api/order-batch/create · 说明:一次性提交多笔订单,返回批次 ID 与校验统计。
异步处理:提交后立即返回批次 ID,订单将异步处理,
请用
detail 查询处理进度与结果(建议轮询至批次状态为「处理完成」)。
单条订单失败不影响同批次其它订单。
发货地址(二选一):整批发货地址有两种传法,任选其一:
① 传
② 直接传
两者都不传将返回参数错误。
① 传
vendor_address_id(已保存地址,与本系统「上传 Excel 打单」一致);
② 直接传
shipper_* 发件人字段(见下方「发件人字段」表),其中 shipper_name / shipper_street1 / shipper_country / shipper_state / shipper_city 必填。
两者都不传将返回参数错误。
注意:通过上传 Excel 打单创建批次时,只支持
vendor_address_id,不接受 shipper_* 字段;shipper_* 仅适用于本接口(API 数组提交)。
参数说明
| 参数 | 必填 | 类型 | 说明 |
|---|---|---|---|
vendor_address_id |
二选一 | int | 发货地址 ID(整批统一使用该发货地址);与下方 shipper_* 二选一(未传时须传 shipper_* 字段) |
orders |
是 | array | 订单数组(支持 JSON 数组请求体,或表单字段中的 JSON 字符串),元素字段见下表 |
shipping_code |
是 | string | 批次渠道编码(必填);与 shipping_service 须同时填写;整批统一,对批次内全部订单生效 |
shipping_service |
是 | string | 批次服务编码(必填);与 shipping_code 成对填写;整批统一,对批次内全部订单生效 |
remark |
选填 | string | 批次备注 |
发件人字段 shipper_*(与 vendor_address_id 二选一)
整批发件人信息。若未传 vendor_address_id,则须直接传以下字段;其中 shipper_name / shipper_street1 / shipper_country 必填(其余选填),等价于使用一份「临时」发件地址,仅作用于本批次。
| 参数 | 必填 | 类型 | 说明 |
|---|---|---|---|
shipper_name |
二选一时必填 | string | 发件人姓名(未传 vendor_address_id 时必填) |
shipper_company |
选填 | string | 发件公司 |
shipper_telphone |
选填 | string | 联系电话 |
shipper_email |
选填 | string | 邮箱 |
shipper_country |
二选一时必填 | string | 国家(如 US;未传 vendor_address_id 时必填) |
shipper_state |
二选一时必填 | string | 州 / 省(未传 vendor_address_id 时必填) |
shipper_city |
二选一时必填 | string | 城市(未传 vendor_address_id 时必填) |
shipper_street1 |
二选一时必填 | string | 街道地址第一行(未传 vendor_address_id 时必填) |
shipper_street2 |
选填 | string | 街道地址第二行 |
shipper_zipcode |
选填 | string | 邮编 |
orders[] 元素字段
| 参数 | 必填 | 类型 | 说明 |
|---|---|---|---|
recipient_name |
是 | string | 收件人姓名 |
recipient_street1 |
是 | string | 收件地址第一行 |
recipient_city |
是 | string | 收件城市 |
recipient_state |
是 | string | 收件州 / 省 |
recipient_country |
是 | string | 收件国家(二字码,如 US) |
weight / length / width / height |
是 | number | 重量与长宽高,均须大于 0 |
reference |
选填 | string | 订单参考号 |
recipient_company |
选填 | string | 收件公司 |
recipient_street2 |
选填 | string | 收件地址第二行 |
recipient_telphone |
选填 | string | 收件人电话 |
recipient_zipcode |
选填 | string | 收件邮编 |
package_name |
选填 | string | 包裹品名 |
weight_unit |
选填 | string | 重量单位:kg / g / lb / oz,默认 lb |
length_unit |
选填 | string | 尺寸单位:cm / m / in,默认 in |
ship_date |
选填 | string | 发货日期 |
is_signature |
选填 | int | 是否需要签名;1/yes 视为是,其余为否 |
is_insurances |
选填 | int | 是否需要保险;1/yes 视为是,其余为否 |
remark |
选填 | string | 订单备注 |
注意:
shipping_code 与 shipping_service 必须成对出现——
渠道在批次级统一设置,对批次内全部订单生效;两者须同时填写,只填其一将返回参数错误。
请求示例
POST /api/order-batch/create
Header: vendor-token: xxxxx
Content-Type: application/json
{
"vendor_address_id": 12,
"shipping_code": "iusps",
"shipping_service": "zdgj",
"remark": "batch 20260921",
"orders": [
{
"reference": "ORDER-20260921-001",
"recipient_name": "Jane",
"recipient_street1": "456 Oak Ave",
"recipient_city": "New York",
"recipient_state": "NY",
"recipient_country": "US",
"recipient_zipcode": "10001",
"weight": 3.3,
"length": 12,
"width": 10,
"height": 5,
"weight_unit": "lb",
"length_unit": "in"
}
]
}
请求示例 ②(直接传 shipper_*,不传 vendor_address_id)
POST /api/order-batch/create
Header: vendor-token: xxxxx
Content-Type: application/json
{
"shipping_code": "iusps",
"shipping_service": "zdgj",
"remark": "batch 20260921-shipper",
"shipper_name": "John Doe",
"shipper_company": "ACME Co.",
"shipper_telphone": "+1 213 555 0100",
"shipper_country": "US",
"shipper_state": "CA",
"shipper_city": "Los Angeles",
"shipper_street1": "123 Main St",
"shipper_street2": "Suite 200",
"shipper_zipcode": "90001",
"orders": [
{
"reference": "ORDER-20260921-001",
"recipient_name": "Jane",
"recipient_street1": "456 Oak Ave",
"recipient_city": "New York",
"recipient_state": "NY",
"recipient_country": "US",
"recipient_zipcode": "10001",
"weight": 3.3,
"length": 12,
"width": 10,
"height": 5,
"weight_unit": "lb",
"length_unit": "in"
}
]
}
返回示例
{
"success": true,
"message": "Batch submitted, processing asynchronously. Poll detail by batch_id.",
"code": 200,
"data": {
"batch_id": 88,
"batch_no": "B20260921153000ab12",
"total_count": 2,
"success_count": 1,
"fail_count": 1
}
}
| data 字段 | 类型 | 说明 |
|---|---|---|
batch_id |
int | 批次 ID,用于 detail 查询处理结果 |
batch_no |
string | 批次编号 |
total_count |
int | 提交总条数 |
success_count |
int | 校验通过、进入处理的条数 |
fail_count |
int | 校验未通过的条数(原因见 detail 明细) |