销售管理 API
1. 接口概述
销售管理 API 提供了销售单信息的查询功能。通过这些接口,您可以获取系统中的销售单列表、销售金额统计、发货单列表以及销售单更新列表信息。
2. 接口列表
| 接口名 | 方法 | 功能描述 |
|---|---|---|
sales.getList | POST | 批量获取指定条件下的销售单列表 |
sales.getSalesAmount | POST | 按条件汇总销售金额 |
sales.getDeliveryList | POST | 获取销售单发货列表 |
3. 系统级参数
系统级参数是调用所有接口都必须提供的参数:
| 参数名 | 类型 | 必填 | 名称 | 描述 |
|---|---|---|---|---|
flag | string | 是 | 应用标识 | 用于标识调用方身份 |
method | string | 是 | 接口方法名 | 例如:sales.getList |
ver | number | 是 | 版本号 | 固定为1 |
charset | string | 是 | 字符集 | 固定为utf-8 |
type | string | 是 | 返回格式 | 固定为json |
timestamp | string | 是 | 时间戳 | 格式:yyyyMMddHHmmss |
sign | string | 是 | 签名 | 用于验证请求的合法性 |
4. 接口详细说明
4.1 批量获取指定条件下的销售单列表
请求参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
start_time | string | 否 | 创建时间开始(格式:yyyy-MM-dd HH:mm:ss) |
end_time | string | 否 | 创建时间结束(格式:yyyy-MM-dd HH:mm:ss) |
page_no | int | 是 | 页码,默认 1 |
page_size | int | 是 | 每页条数,默认 50,最大 1000 |
shop_bn | string | 否 | 店铺编号 |
bn | string | 否 | 销售单号 |
status | string | 否 | 状态:succ-成功, failure-失败, pending-待处理 |
响应参数
| 参数名 | 类型 | 描述 |
|---|---|---|
count | int | 总记录数 |
lists | array | 销售单列表 |
lists 数组中的每个对象包含以下字段:
| 参数名 | 类型 | 描述 |
|---|---|---|
shop_code | string | 店铺编码 |
shop_name | string | 店铺名称 |
order_no | string | 订单编号 |
order_type | string | 订单类型 |
member_name | string | 会员名称 |
sale_no | string | 销售单号 |
pay_method | string | 支付方式 |
sale_time | string | 销售时间(格式:yyyy-MM-dd HH:mm:ss) |
order_create_time | string | 订单创建时间(格式:yyyy-MM-dd HH:mm:ss) |
pay_time | string | 支付时间(格式:yyyy-MM-dd HH:mm:ss) |
ship_time | string | 发货时间(格式:yyyy-MM-dd HH:mm:ss) |
order_check_op | string | 订单审核操作员 |
order_check_time | string | 订单审核时间(格式:yyyy-MM-dd HH:mm:ss) |
goods_amount | decimal | 商品金额 |
freight_amount | decimal | 运费金额 |
additional_amount | decimal | 附加费用 |
has_tax | string | 是否含税(是/否) |
pmt_amount | decimal | 优惠金额 |
sale_amount | decimal | 销售金额 |
logi_name | string | 物流公司名称 |
logi_code | string | 物流公司编码 |
logi_no | string | 物流单号 |
branch_name | string | 仓库名称 |
branch_bn | string | 仓库编码 |
delivery_no | string | 发货单号 |
consignee | string | 收货人 |
consignee_area | string | 收货地区 |
consignee_addr | string | 收货地址 |
consignee_zip | string | 邮政编码 |
consignee_tel | string | 收货电话 |
consignee_mobile | string | 收货手机 |
consignee_email | string | 收货邮箱 |
weight | decimal | 重量 |
delivery_cost_actual | decimal | 实际运费 |
order_memo | string | 订单备注 |
tax_title | string | 发票抬头 |
relate_order_bn | string | 关联订单号 |
settlement_amount | decimal | 结算金额 |
platform_amount | decimal | 平台承担金额 |
order_source | string | 订单来源 |
agent_info | string | 代销信息 |
sale_items | array | 销售商品明细 |
sale_items 数组中的每个对象包含以下字段:
| 参数名 | 类型 | 描述 |
|---|---|---|
item_id | int | 商品ID |
bn | string | 商品编码 |
name | string | 商品名称 |
spec_name | string | 规格名称 |
barcode | string | 条码 |
price | decimal | 价格 |
nums | int | 数量 |
pmt_price | decimal | 优惠价格 |
sale_price | decimal | 销售价格 |
apportion_pmt | decimal | 分摊优惠 |
sales_amount | decimal | 销售金额 |
cost | decimal | 成本 |
cost_amount | decimal | 成本金额 |
order_item_id | int | 订单明细ID |
item_type | string | 商品类型 |
type_name | string | 类型名称 |
sales_material_bn | string | 销售物料编码 |
sales_material_name | string | 销售物料名称 |
retail_price | decimal | 基础物料价格 |
brand_code | string | 物料品牌 |
cat_name | string | 物料分类 |
goods_type | string | 物料属性 |
shop_goods_id | string | 平台商品ID |
shop_product_id | string | 平台SkuID |
settlement_amount | decimal | 结算金额 |
platform_amount | decimal | 平台承担金额 |
请求示例
请参考openapi.md文档中【6. 接口调用示例】。
响应示例
json
{
"count": 100,
"lists": [
{
"shop_code": "SHOP001",
"shop_name": "测试店铺",
"order_no": "ORDER20240101001",
"order_type": "normal",
"member_name": "张三",
"sale_no": "SALES202401010001",
"pay_method": "alipay",
"sale_time": "2024-01-01 10:00:00",
"order_create_time": "2024-01-01 09:00:00",
"pay_time": "2024-01-01 09:30:00",
"ship_time": "2024-01-01 10:30:00",
"order_check_op": "admin",
"order_check_time": "2024-01-01 09:15:00",
"goods_amount": 1000.00,
"freight_amount": 10.00,
"additional_amount": 0.00,
"has_tax": "否",
"pmt_amount": 50.00,
"sale_amount": 960.00,
"logi_name": "顺丰速运",
"logi_code": "SF",
"logi_no": "SF1234567890",
"branch_name": "测试仓库",
"branch_bn": "WH001",
"delivery_no": "DEL20240101001",
"consignee": "李四",
"consignee_area": "北京市/北京市/朝阳区",
"consignee_addr": "测试路1号",
"consignee_zip": "100000",
"consignee_tel": "010-12345678",
"consignee_mobile": "13800138000",
"consignee_email": "test@example.com",
"weight": 1.5,
"delivery_cost_actual": 10.00,
"order_memo": "测试订单",
"tax_title": "",
"relate_order_bn": "",
"settlement_amount": 960.00,
"platform_amount": 0.00,
"order_source": "pc",
"agent_info": "",
"sale_items": [
{
"item_id": 1,
"bn": "PROD001",
"name": "测试商品",
"spec_name": "标准规格",
"barcode": "1234567890123",
"price": 100.00,
"nums": 10,
"pmt_price": 95.00,
"sale_price": 95.00,
"apportion_pmt": 5.00,
"sales_amount": 950.00,
"cost": 80.00,
"cost_amount": 800.00,
"order_item_id": 1,
"item_type": "normal",
"type_name": "普通商品",
"sales_material_bn": "SMAT001",
"sales_material_name": "测试销售物料",
"retail_price": 100.00,
"brand_code": "BRAND001",
"cat_name": "分类1",
"goods_type": "成品",
"shop_goods_id": "SHOP_GOODS_001",
"shop_product_id": "SHOP_PRODUCT_001",
"settlement_amount": 950.00,
"platform_amount": 0.00
}
]
}
]
}4.2 按条件汇总销售金额
请求参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
start_time | string | 否 | 创建时间开始(格式:yyyy-MM-dd HH:mm:ss) |
end_time | string | 否 | 创建时间结束(格式:yyyy-MM-dd HH:mm:ss) |
shop_bn | string | 否 | 店铺编号,多个用逗号分隔 |
status | string | 否 | 状态:succ-成功, failure-失败, pending-待处理 |
响应参数
| 参数名 | 类型 | 描述 |
|---|---|---|
total_amount | decimal | 销售总金额 |
请求示例
请参考openapi.md文档中【6. 接口调用示例】。
响应示例
json
{
"total_amount": 10000.00
}4.3 获取销售单发货列表
请求参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
start_time | string | 否 | 创建时间开始(格式:yyyy-MM-dd HH:mm:ss) |
end_time | string | 否 | 创建时间结束(格式:yyyy-MM-dd HH:mm:ss) |
page_no | int | 是 | 页码,默认 1 |
page_size | int | 是 | 每页条数,默认 50,最大 1000 |
shop_bn | string | 否 | 店铺编号 |
bn | string | 否 | 销售单号 |
响应参数
| 参数名 | 类型 | 描述 |
|---|---|---|
count | int | 总记录数 |
lists | array | 发货列表 |
lists 数组中的每个对象包含以下字段:
| 参数名 | 类型 | 描述 |
|---|---|---|
shop_code | string | 店铺编码 |
shop_name | string | 店铺名称 |
order_no | string | 订单编号 |
member_name | string | 会员名称 |
delivery_bn | string | 发货单号 |
create_time | string | 创建时间(格式:yyyy-MM-dd HH:mm:ss) |
ship_time | string | 发货时间(格式:yyyy-MM-dd HH:mm:ss) |
freight_amount | decimal | 运费金额 |
logi_name | string | 物流公司名称 |
logi_no | string | 物流单号 |
branch_name | string | 仓库名称 |
branch_bn | string | 仓库编码 |
delivery_no | string | 发货单号 |
consignee | string | 收货人 |
consignee_area | string | 收货地区 |
consignee_addr | string | 收货地址 |
consignee_zip | string | 邮政编码 |
consignee_tel | string | 收货电话 |
consignee_mobile | string | 收货手机 |
consignee_email | string | 收货邮箱 |
mark_memo | string | 标记备注 |
custom_memo | string | 自定义备注 |
packages | array | 京东包裹列表(云交易订单号) |
logi_status | string | 物流状态 |
sign_status | string | 签收状态 |
sign_time | string | 签收时间 |
items | object | 发货商品明细(以item_id为键) |
items 对象中的每个子对象包含以下字段:
| 参数名 | 类型 | 描述 |
|---|---|---|
item_id | int | 商品ID |
bn | string | 商品编码 |
product_name | string | 商品名称 |
price | decimal | 价格 |
nums | int | 数量 |
purchase_price | decimal | WMS仓储采购价格 |
请求示例
请参考openapi.md文档中【6. 接口调用示例】。
响应示例
json
{
"count": 50,
"lists": [
{
"shop_code": "SHOP001",
"shop_name": "测试店铺",
"order_no": "ORDER20240101001",
"member_name": "张三",
"delivery_bn": "DEL20240101001",
"create_time": "2024-01-01 10:00:00",
"ship_time": "2024-01-01 10:30:00",
"freight_amount": 10.00,
"logi_name": "顺丰速运",
"logi_no": "SF1234567890",
"branch_name": "测试仓库",
"branch_bn": "WH001",
"delivery_no": "DEL20240101001",
"consignee": "李四",
"consignee_area": "北京市/北京市/朝阳区",
"consignee_addr": "测试路1号",
"consignee_zip": "100000",
"consignee_tel": "010-12345678",
"consignee_mobile": "13800138000",
"consignee_email": "test@example.com",
"mark_memo": "",
"custom_memo": "请小心轻放",
"packages": [],
"logi_status": "已发货",
"sign_status": "0",
"sign_time": "",
"items": {
"1": {
"item_id": 1,
"bn": "PROD001",
"product_name": "测试商品",
"price": 100.00,
"nums": 10,
"purchase_price": 80.00
}
}
}
]
}5. 错误码说明
| 错误码 | 错误信息 | 解决方案 |
|---|---|---|
| 0 | 成功 | - |
| 1 | 参数错误 | 检查参数格式是否正确,所有必填参数是否都已提供 |
| 400 | 参数错误 | 检查参数格式是否正确,所有必填参数是否都已提供 |
| 401 | 未授权访问 | 检查flag和sign是否正确 |
| 403 | 禁止访问 | 联系管理员获取权限 |
| 500 | 服务器内部错误 | 检查请求参数或联系技术支持 |
| 1001 | 非法的flag | 请检查flag是否正确 |
| 1002 | 请求已过期 | 请检查timestamp是否正确,请求有效期为5分钟 |
| 1003 | 签名错误 | 请检查签名算法和参数是否正确 |
| 1004 | 不支持的type格式 | 请使用json格式 |
| 2001 | 缺少必要的参数 | 请检查请求参数是否完整 |
| 2002 | 非法的请求参数 | 请检查参数格式和范围是否正确 |
| 2003 | 接口不存在 | 请检查接口方法名是否正确 |
6. 注意事项
- 时间格式必须为
yyyy-MM-dd HH:mm:ss,否则可能导致查询失败。 page_size参数最大支持 1000,默认50,超过100将被限制为 100。- 对于大数据量的查询,建议使用时间范围进行筛选,以提高查询效率。
- 时间戳必须与服务器时间保持同步,误差不超过3600秒。
- 每个请求必须生成唯一的签名,避免重复提交。
- 请妥善保管接口密钥,避免泄露。
- 所有请求参数中的特殊字符必须进行 URL 编码,特别是在使用 GET 方法时。
- 请确保在请求头中设置正确的 Content-Type,对于 POST 请求建议使用 application/json。
- 为了系统性能和稳定性,请避免短时间内发送大量请求,建议控制调用频率。
- 敏感数据(如签名、密钥等)请勿在日志中记录,确保数据安全。
