开放平台接口目录
术语表
order 订单
abnormal 异常
refund 退货
customer 商户
recive_time 收货时间
category1 一级分类
category2 二级分类
pinlei 品类
spu 基本规格商品
sku 销售规格商品
std_unit 基本单位
sale_unit 销售单位
sale_ratio 销售系数
salemenu 报价单
route 路线
delivery 配送
driver 司机
car_model 车型
carrier 承运商
strike 冲账
cash 现金
charge 余额
数据结构
order
{
'order_id'
"freight": 2000, # 运费,单位分
"status": 10, # 业务状态 1: '等待出库', 5: '正在分拣', 10: '正在配送', 15: '已签收'
"pay_status": 1, # 支付状态 1: '未支付', 5: '部分支付', 10: '已支付'
"real_price": 728.00, # 真实价格(根据真实重量算出的真实价格),单位分
"sort_id": 2, # 分拣序号
"total_pay": 2728.00, # 应付金额(加上运费的),单位分
"date_time": "2017-06-21T17:29:38.913", # 下单时间
"remark": null, # 备注
"customer": {
'customer_id'
"customer_name": "盐田区沙头角中学沙县小吃" # 商户信息
"customer_address": "沙头角东和路55号", # 收货地址
"receiver_phone": "18033432789", # 收货人手机号
"receive_begin_time": "2017-06-22 06:00", # 收货开始时间
"receive_end_time": "2017-06-22 12:00", # 收货结束时间
"receiver_name": "邓华君" # 收货人姓名
},
"details": [
{
"category_title_2": "叶菜类", # 二级分类名
"std_unit_name": "斤", # 基本单位
"sale_unit_name": "斤", # 销售单位
"real_item_price": 728.00, # 真实总价,单位分
"real_quantity": 1, # 称重后数量
"category_title_1": "蔬菜", # 一级分类名
"spu_remark": "", # 备注
"accept_quantity": 1, # 收货数量
"supplier_name": "小农女", # 供应商名称
"quantity": 1, # 下单数量
"purchase_quantity": 1, # 采购数量
"sale_price": "7.28", # 销售单价,单位元
"name": "白菜苔|斤", # 商品名
"sale_ratio": 1, # 销售规格
"spu_id": "C00865", # spuid,商品id
"id": "D805677", # sku ID,修改订单时候的参数,规格id
"is_weight": true, #是否需要称重
"has_weight": true, #是否已经称重
"salemenu_name":"哈", # 采购单名称
pinlei
}
],
"abnomal": [
{
"final_amount": 9,
"detail_id": "D4077286",
"text": "",
"id": 3,
"type_id": 1,
"money_delta": 0,
"type_text": "未按用户时间到达"
}
],
"refund": [
{
"id": 1,
"station_store_id": "T11790",
"out_sku_id": "D4077335",
"real_amount": 0,
"out_order_id": "PL2609557",
"request_amount": 2,
"detail_id": "D4077335",
"state": 1,
"type_id": 1,
"text": "",
"type_text": "未按用户时间到达"
}
]
}
spu
{
"desc": "ggggg", # 备注
"name": "小白菜", # 名称
"p_type": 0, # 1:通用 2:私有
"std_unit_name": "斤", # 基本单位
"id": "C841153",
"category_id_1": "A101", # 一级分类id
"category_id_2": "B101", # 二级分类id
"pinlei_id": "P18242", # 品类id
"detail_images": [ # 商品详情图片
"htps://img.guanmai.cn/product_pic/abcdefg.png"
],
"image": "https://img.guanmai.cn/product_pic/abcdefg.gif", # 商品图片
'create_time'
}
sku
{
'id'
'sale_unit_name'
'name'
'ratio'
'spu_id'
'std_unit_name'
'sale_price'
'std_sale_price'
'salemenu_id'
'salemenu_name'
'state' 是否上架
'category1_id'
'category2_id'
'pinlei'
'is_price_timing'
'image'
'desc'
'create_time'
}
salemenu
{
id
name
desc
is_active
time_config_id
time_config_name
receive_time list ["06:30", "06:40", "06:50", "07:00",…] # 下单时选择的receive_time_end 应大于receive_time_start
}
customer
{
customer_id: "178199"
area_detail: "广东省深圳市罗湖区东门街道凉果街凉果街5号大院"
area_l1: "龙岗区"
area_l1_code: "440300"
area_l1_id: "30500000000"
area_l2: "双龙"
area_l2_code: "440300"
area_l2_id: "30500500000"
city: "深圳市"
cname: ""
create_employee_id: 2011
create_employee_name: "喵喵总仓"
district_code: "440300"
effective_date: "2019-03-12"
map_address: "广东省深圳市罗湖区东门街道凉果街凉果街5号大院"
payment_name: "22"
payment_telephone: "22"
receiveperson: "222"
receivephone: "22"
resname: "喵喵商户22"
salemenus: [{
freight_id: "Y000001"
id: 355029
msg: ""
salemenu_id: "S8443"
salemenu_name: "蔬菜报价单"
service_station_id: "T12469"
service_station_name: "喵喵分仓二"
station_id: "T12469"
}]
sales_employee_id: 2011
sales_employee_name: "喵喵总仓"
username: "mmsh22"
charge 余额
}
订单(含售后)
新建订单
接口: /api/order/create
Method: POST
请求:
sid M str 客户id
time_config_id O str 时间配置id (默认取商品中的) # 不需要
receive_begin_time O datetime 收货起始时间,形如:2019-01-01 00:00:00 # 预售必选
receive_end_time O datetime 收货截止时间,形如:2019-01-01 00:00:00
remark O str 订单备注
products M list 商品详情,字段如下
sku_id M str 商品id
amount M float 商品数量
unit_price M int 基础单位价格,单位分
spu_remark O str 商品备注
is_price_timing O bool 商品价格是否时价
响应:
{
"code": 0,
"data": {
"order_id": "PL000001"
},
"msg": "ok"
}
删除订单
接口: /api/order/delete
Method: POST
请求:
order_id M str 订单号
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
修改订单(备注/状态)
接口: /api/order/update
Method: POST
请求:
order_id M str 订单号
receive_begin_time O datetime 收货起始时间,形如:2019-01-01 00:00:00
receive_end_time O datetime 收货截止时间,形如:2019-01-01 00:00:00
status O 订单状态,1:等待分拣 5:分拣中 10:配送中 15: 已签售
remark O str 订单备注
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
查询订单详情(含支付等财务信息)
接口: /api/order/get
Method: GET
请求:
order_id M str 订单号
响应:
{
"code": 0,
"data": {
"freight": 2000, # 运费,单位分
"status": 10, # 业务状态 1: '等待出库', 5: '正在分拣', 10: '正在配送', 15: '已签收'
"pay_status": 1, # 支付状态 1: '未支付', 5: '部分支付', 10: '已支付'
"real_price": 728.00, # 真实价格(根据真实重量算出的真实价格),单位分
"sort_id": 2, # 分拣序号
"total_pay": 2728.00, # 应付金额(加上运费的),单位分
"date_time": "2017-06-21T17:29:38.913", # 下单时间
"remark": null, # 备注
"customer": {
"resname": "盐田区沙头角中学沙县小吃" # 商户信息
"address": "沙头角东和路55号", # 收货地址
"receiver_phone": "18033432789", # 收货人手机号
"receive_begin_time": "2017-06-22 06:00", # 收货开始时间
"receive_end_time": "2017-06-22 12:00", # 收货结束时间
"receiver_name": "邓华君" # 收货人姓名
},
"details": [
{
"category_title_2": "叶菜类", # 二级分类名
"std_unit_name": "斤", # 基本单位
"sale_unit_name": "斤", # 销售单位
"real_item_price": 728.00, # 真实总价,单位分
"real_quantity": 1, # 称重后数量
"category_title_1": "蔬菜", # 一级分类名
"spu_remark": "", # 备注
"accept_quantity": 1, # 收货数量
"supplier_name": "小农女", # 供应商名称
"quantity": 1, # 下单数量
"purchase_quantity": 1, # 采购数量
"sale_price": "7.28", # 销售单价,单位元
"name": "白菜苔|斤", # 商品名
"sale_ratio": 1, # 销售规格
"spu_id": "C00865", # spuid,商品id
"id": "D805677", # sku ID,修改订单时候的参数,规格id
"is_weight": true, #是否需要称重
"has_weight": true, #是否已经称重
"salemenu_name":"哈", # 采购单名称
}
],
"abnomal": [
{
"final_amount": 9,
"detail_id": "D4077286",
"text": "",
"id": 3,
"type_id": 1,
"money_delta": 0,
"type_text": "未按用户时间到达"
}
],
"refund": [
{
"id": 1,
"station_store_id": "T11790",
"out_sku_id": "D4077335",
"real_amount": 0,
"out_order_id": "PL2609557",
"request_amount": 2,
"detail_id": "D4077335",
"state": 1,
"type_id": 1,
"text": "",
"type_text": "未按用户时间到达"
}
]
},
"msg": "ok"
}
查询订单列表
接口: /api/order/list
Method: GET
请求:
query_type M int 搜索类型,1: 按照下单时间搜索 2: 按照收货日期搜索
start_date M str 开始日期,格式要求:年-月-日 例如:2017-06-01
end_date M str 截止日期,格式要求:年-月-日 例如:2017-06-01
status O int 订单状态
pay_status O int 支付状态 1: 未支付, 5: 部分支付, 10: 已支付
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"code": 0,
"data": [{
"freight": 2000, # 运费,单位分
"status": 10, # 业务状态 1: '等待出库', 5: '正在分拣', 10: '正在配送', 15: '已签收'
"pay_status": 1, # 支付状态 1: '未支付', 5: '部分支付', 10: '已支付'
"real_price": 728.00, # 真实价格(根据真实重量算出的真实价格),单位分
"sort_id": 2, # 分拣序号
"total_pay": 2728.00, # 应付金额(加上运费的),单位分
"abnormal_money" 异常金额
"refund_money" 退货金额
"date_time": "2017-06-21T17:29:38.913", # 下单时间
"remark": null, # 备注
"customer": {
"resname": "盐田区沙头角中学沙县小吃" # 商户信息
"address": "沙头角东和路55号", # 收货地址
"receiver_phone": "18033432789", # 收货人手机号
"receive_begin_time": "2017-06-22 06:00", # 收货开始时间
"receive_end_time": "2017-06-22 12:00", # 收货结束时间
"receiver_name": "邓华君" # 收货人姓名
}
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
订单添加商品
接口: /api/order/sku/create
Method: POST
请求:
order_id M str 订单号
products M list 商品详情,字段如下
sku_id M str 商品id
amount M int 商品数量
price M int 商品单价,单位分
remark O str 商品备注
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
订单删除商品
接口: /api/order/sku/delete
Method: POST
请求:
order_id M str 订单号
sku_ids M list 商品id
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
订单修改商品
接口: /api/order/sku/update
Method: POST
请求:
order_id M str 订单号
products M list 商品详情,字段如下
sku_id M str 商品id
amount O int 商品数量
price O int 商品单价,单位分
remark O str 商品备注
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
新建异常
接口: /api/order/abnormal/create
Method: POST
请求:
order_id M str 订单号
abnormal M list 异常列表 # station_store_id 默认用stationid
sku_id M str 商品id
exception_reason M int 异常原因编号
final_amount M float 记账数
money_delta M int 金额变动,单位分
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
新建退货
接口: /api/order/refund/create
Method: POST
请求:
order_id M str 订单号
refund M list 退货列表
sku_id M str 商品id
exception_reason M int 异常原因编号
request_amount M float 退货数
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
修改异常
接口: /api/order/after_sales/update
Method: POST
请求:
order_id M str 订单号
abnormal M list 异常列表 # station_store_id 默认用stationid
id M int 异常id
sku_id M str 商品id
exception_reason M int 异常原因编号
final_amount M float 记账数
money_delta M int 金额变动,单位分
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
修改退货
接口: /api/order/after_sales/update
Method: POST
请求:
order_id M str 订单号
refund M list 退货列表
id M int 退货id
sku_id M str 商品id
exception_reason M int 异常原因编号
request_amount M float 退货数
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
取消异常
接口: /api/order/after_sales/delete
Method: POST
请求:
order_id M str 订单号
abnormal M list 异常列表
id M int 异常id
sku_id M str 商品id
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
取消退货
接口: /api/order/after_sales/delete
Method: POST
请求:
order_id M str 订单号
refund M list 退货列表
id M int 退货id
sku_id M str 商品id
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
获取异常原因
接口: /api/order/after_sales/exception_reason/list
Method: GET
请求:
响应:
{
"code": 0,
"data": {
1: "未按用户时间到达",
5: "漏单"
},
"msg": "ok"
}
商品库/sku
查询一级分类列表
接口: /api/product/category1/list
Method: GET
请求:
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"msg": "ok",
"code": 0,
"data": [{
"id": "A3772", # 一级分类id
"name": "蔬菜", # 名称
}, {
"id": "A3773",
"name": "蛋类",
}, {
"id": "A3774",
"name": "鱼类",
}],
"pagenation": {
'page'
'more'
}
}
查询二级分类列表
接口: /api/product/category2/list
Method: GET
请求:
category1_id O str 一级分类标签
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"msg": "ok",
"code": 0,
"data": [{
"category1_id": "A3772", # 一级分类id
"id": "B18242", # 二级分类
"name": "叶菜"
}, {
"category1_id": "A3773",
"id": "B18243",
"name": "家禽",
}],
"pagenation": {
'page'
'more'
}
}
查询品类列表
接口: /api/product/pinlei/list
Method: GET
请求:
category1_id O str 一级分类标签
category2_id O str 二级分类标签 category2_id/category1_id 选传其一
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"msg": "ok",
"code": 0,
"data": [{
"category1_id": "A3772", # 一级分类id
"category2_id": "B18242", # 二级分类
"id": "P18242",
"name": "叶菜"
}, {
"category1_id": "A3773",
"category2_id": "B18242",
"id": "P18243",
"name": "家禽",
}],
"pagenation": {
'page'
'more'
}
}
新建spu
接口: /api/product/spu/create
Method: POST
请求:
name M spu名字
desc O 描述
std_unit_name M 基本单位
pinlei_id M 品类id
dispatch_method 分拣方式默认2统配
image,detail_images 传url
# p_type 默认1 本站,
响应:
{
"code": 0,
"data": {'spu_id': 'C0001'},
"msg": "ok"
}
查询spu列表
接口: /api/product/spu/list
Method: GET
请求:
category1_id O str 一级分类标签
category2_id O str 二级分类标签 category2_id/category1_id 选传其一
pinlei_id O str 品类id category2_id/category1_id/pinlei_id 选传其一
spu_id
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"msg": "ok",
"code": 0,
"data": [{
"desc": "ggggg", # 备注
"name": "小白菜", # 名称
"p_type": 0, # 1:通用 2:私有
"std_unit_name": "斤", # 基本单位
"id": "C841153",
"category1_id": "A101", # 一级分类id
"category1_id": "B101", # 二级分类id
"pinlei_id": "P18242", # 品类id
"detail_images": [ # 商品详情图片
"https://img.guanmai.cn/product_pic/abcdefg.png"
],
"image": "https://img.guanmai.cn/product_pic/abcdefg.gif", # 商品图片
}],
"pagenation": {
'page'
'more'
}
}
查询spu详情
接口: /api/product/spu/get
Method: GET
请求:
spu_id M str 商品id
响应:
{
"msg": "ok",
"code": 0,
"data": {
"desc": "ggggg", # 备注
"name": "小白菜", # 名称
"p_type": 0, # 1:通用 2:私有
"std_unit_name": "斤", # 基本单位
"id": "C841153",
"category_id_1": "A101", # 一级分类id
"category_id_2": "B101", # 二级分类id
"pinlei_id": "P18242", # 品类id
"detail_images": [ # 商品详情图片
"htps://img.guanmai.cn/product_pic/abcdefg.png"
],
"image": "https://img.guanmai.cn/product_pic/abcdefg.gif", # 商品图片
}
}
修改spu
接口: /api/product/spu/update
Method: POST
请求:
spu_id M spu_id
name M spu名字
desc O 描述
std_unit_name O 基本单位
pinlei_id O 品类id (Q:是否必要)
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
删除spu
接口: /api/product/spu/delete
Method: POST
请求:
spu_id M spu_id
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
拉取基本单位列表
接口: /api/std_unit_name/list
Method: GET
请求:
响应:
{
"code": 0,
"data": {
1: "斤",
2: "瓶"
},
"msg": "ok"
}
# [{name: "斤", id: "斤"}, {name: "瓶", id: "瓶"}] 现系统中前端维护这样一个列表
新建sku(暂不开放)
接口: /api/product/sku/create
Method: POST
请求:
spu_id M str spu_id
sku_name M str 商品名
salemenu_id M str 报价单id
std_price M int 基本单位价格,单位分
sale_price M int 销售单位价格,单位分
sale_num_least M float 最小下单数
sale_ratio M float 销售规格
sale_unit_name M str 销售单位
std_unit_name M str 基本单位
desc O str 商品描述
is_weigh M int 是否记重
state M int 是否上架
# supplier_id purchase_spec_id (Q: 必选,怎么给默认值)
响应:
{
"code": 0,
"data": {
sku_id
},
"msg": "ok"
}
修改sku
接口: /api/product/sku/update
Method: POST
请求:
sku_id M str sku_id
sku_name M str 商品名
std_price M int 基本单位价格,单位分
sale_price M int 销售单位价格,单位分
sale_num_least M float 最小下单数
sale_ratio M float 销售规格
sale_unit_name M str 销售单位
std_unit_name M str 基本单位
desc O str 商品描述
is_weigh M int 是否记重
state M int 是否上架
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
查询sku列表(多种纬度,报价单/spu)
接口: /api/product/sku/list
Method: GET
请求:
search_text O str 搜索信息 sku名字匹配
spu_id O str spuid
salemenu_id O str 销售单id
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
# 可加
category1_id category2_id pinlei
响应:
{
"code": 0,
"data": [{
'id'
'sale_unit_name'
'name'
'ratio'
'std_unit_name'
'sale_price'
'std_sale_price'
'salemenu_id'
'salemenu_name'
'state' 是否上架
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
查询sku详情
接口: /api/product/sku/get
Method: GET
请求:
sku_id M str 商品id
响应:
{
"code": 0,
"data": {
'id'
'sale_unit_name'
'name'
'ratio'
'std_unit_name'
'sale_price'
'std_sale_price'
'salemenu_id'
'salemenu_name'
'state' 是否上架
'category1_id'
'category2_id'
'pinlei'
'is_price_timing'
'img_url'
'desc'
'create_time'
'modify_time'
},
"msg": "ok"
}
删除sku
接口: /api/product/sku/delete
Method: POST
请求:
sku_id M str 商品id
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
报价单
查询报价单列表(含运营时间信息)
接口: /api/product/salemenu/list 按商户
Method: GET
请求:
customer_id O str 商户id
is_active O bool 是否激活
# time_config_id 不传,淡化服务时间概念,type 默认4自售单
响应:
{
"code": 0,
"data": [{
id
name
desc
is_active
time_config_id
time_config_name
receive_time list ["06:30", "06:40", "06:50", "07:00",…] # 下单时选择的receive_time_end 应大于receive_time_start
}],
"msg": "ok"
}
配送
查询配送任务(按路线/按司机)
接口: /api/delivery/task/list
Method: GET
请求:
driver_id O int 司机id
carrier_id O int 承运商id
route_id O int 路线id
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"code": 0,
"data": [{
'id'
'sort_id'
'customer_id'
'customer_name'
'customer_id'
'receive_address'
'area'
'receive_begin_time'
'receive_end_time'
'total_price'
'order_pay_method'
'status'
'driver_id'
'driver_status'
'driver_name'
'carrier_id'
'route_id'
'route_name'
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
分配司机
接口: /api/delivery/driver/assign
Method: POST
请求:
order_ids M list 订单id列表
driver_id M int 司机id
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
取消分配司机
接口: /api/delivery/driver/cancel
Method: POST
请求:
order_ids M list 订单id列表
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
新建司机
接口: /api/delivery/driver/create
Method: POST
请求:
name M str 名字
phone M str 电话
carrier_id M int 承运商id
car_model_id M int 车型id
plate_number M str 车牌号
# share 默认0 不共享
响应:
{
"code": 0,
"data": {'driver_id': 1},
"msg": "ok"
}
修改司机
接口: /api/delivery/driver/update
Method: POST
请求:
driver_id M int 司机id
name M str 名字
phone M str 电话
carrier_id M int 承运商id
car_model_id M int 车型id
plate_number M str 车牌号
state M int 司机状态 停用
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
查询司机列表
接口: /api/delivery/driver/list
Method: GET
请求:
search_text O str 司机名搜索
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"code": 0,
"data": [{
driver_id
driver_name
phone
car_model_id
car_model_name
max_load
plate_number
carrier_id
carrier_name
deliveryd # 是否有配送任务
login # 是否在线
state
station_id
station_name
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
查询车型列表
接口: /api/delivery/car_model/list
Method: GET
请求:
search_text O str 车型名搜索
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"code": 0,
"data": [{
car_model_id
car_model_name
max_load 满载数
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
查询承运商列表
接口: /api/delivery/carrier/list
Method: GET
请求:
search_text O str 承运商名搜索
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"code": 0,
"data": [{
carrier_id
carrier_name
driver_count 司机数量
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
新建路线
接口: /api/delivery/route/create
Method: POST
请求:
route_name M str 路线名称
customer_ids M list 商户列表
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
修改路线
接口: /api/delivery/route/update
Method: POST
请求:
route_id M int 路线id
customer_ids O list 商户列表
route_name O str 路线名称
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
删除路线
接口: /api/delivery/route/delete
Method: POST
请求:
route_id M int 路线id
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
查询路线列表
接口: /api/delivery/route/list
Method: GET
请求:
search_text O str 搜索信息 route_name匹配
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"code": 0,
"data": [{
route_id
route_name
create_user
create_time
customer_count
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
查询路线详情
接口: /api/delivery/route/get
Method: GET
请求:
route_id M int 路线id
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"code": 0,
"data": [{
customer_id
customer_name
route_id
route_name
area
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
商户
新建商户(同步生成一对一的kid)
接口: /api/customer/create
Method: POST
请求:
username M str 账号
password M str 密码
payer_name M str 结款人姓名
payer_telephone M int 结款人电话
restaurant_name M str 店铺名
receiver_name M str 守护人名
receiver_telephone M int 收货电话
district_code M int 市级地理标签编号
area_level1 M int 一级地理标签编号
area_level2 M int 二级地理标签编号
restaurant_address M str 店铺地址
salemenu_ids M list 报价单列表
开户经理/销售经理 O
# settle_way 默认1先货后款;pay_method 默认1日结;whitelist 默认0关闭;check_out 审核状态 默认0 未审核;freezeState 默认0 未冻结
(Q:开户经理/销售经理是否需要)
响应:
{
"code": 0,
"data": {
customer_id
},
"msg": "ok"
}
修改商户
接口: /api/customer/upadte (Q:开放哪些改动字段)
Method: POST
请求:
customer_id M str 商户id
username O str 账号
password O str 密码
payer_name O str 结款人姓名
payer_telephone O int 结款人电话
restaurant_name O str 店铺名
receiver_name O str 守护人名
receiver_telephone O int 收货电话
district_code O int 市级地理标签编号
area_level1 O int 一级地理标签编号
area_level2 O int 二级地理标签编号
restaurant_address O str 店铺地址
salemenu_ids O list 报价单列表
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
查询商户列表
接口: /api/customer/list
Method: GET
请求:
search_text O str 搜索信息 商户名匹配
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"code": 0,
"data": [{
KID: "K191078"
SID: "S178188"
addr_detail: "深圳市龙华新区大浪21号"
area_l1: "龙华新区"
area_l2: "大浪"
balance: "0"
check_out: 0
city: "深圳市"
cname: ""
create_employee_name: "喵喵总仓"
create_employee_phone: "--"
create_time: "2019-02-23"
finance_status: 0
keycustomer: 0
name: "21"
pay_method: "日结"
resname: "喵喵商户21"
sales_employee_name: "喵喵总仓"
sales_employee_phone: "--"
service_station: ["喵喵分仓二", "喵喵"]
settle_way: "先货后款"
telephone: "21"
user_id: 191078
username: "mmsh21"
whitelist: 0
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
拉取三级地理标签
接口: /api/area/list
Method: GET
请求:
customer_id M str 商户id # sid
响应:
{
"code"
"data": [{
'name': 北京
'code': 110000
'area': [{
'name': 昌平区
'code': 150100000000
'street': [{
'name': 百善
'code': 150100100000
}]
}]
}],
"msg": "ok"
}
财务
冲账
接口: /api/finance/strike
Method: POST
请求:
customer_id M str 商户id # kid (Q: kid与sid合起来对外只暴露一个?)
arrival_time M datetime 到账时间
deal_code M str 凭证号
arrival_id M str 到账账号 # wechat/cash
arrival_method M str 到账渠道
arrival_money M int 到账金额 单位分
remark M str 备注
响应:
{
"code"
"data": null,
"msg": "ok"
}
退款(差额/整单)
接口: /api/finance/order/refund
Method: POST
请求:
order_id M str 订单号
type M int 退款类型 1, 差额退款, 2, 整单退款
响应:
{
"code": 0,
"data": null,
"msg": "ok"
}
查询冲账流水
接口: /api/finance/strike_flow/list
Method: GET
请求:
start_time O str 开始时间
end_time O str 截止时间
customer_id O str 商户id # kid (Q: kid与sid合起来对外只暴露一个?)
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
响应:
{
"data": [{
"district_code": "440300", # 地区编码
"update_people": "tianshisan", # 更新操作人
"deal_code": "453245632623", # 到账凭证号(到账流水)
"strike_people": "tianshisan", # 财务冲账操作人
"telephone": null, # 电话
"balance": "0.00", # 余额
"arrival_money": "68.02", # 到账金额
"arrival_time": "2018-12-05", # 到账时间
"kid": "103923", # 用户ID
"id": 1, # 到账凭证ID
"extra": null, # 备注
"order_flows": [ # Array 订单冲账流水
{
"modify_time": "2018-12-05T18:33:34", # 修改时间
"deal_code": "453245632623", # 到账凭证号
"operator_id": 2206, # 操作人id
"id": "CZ747221", # 流水id
"create_time": "2018-12-05T18:33:34", # 创建时间
"amount": "68.02", # 冲账金额
"customer": { # 账户信息
"uid": "103923", # 账户ID
"receiver_phone": "1351351351",
"address_id": "97258", # 店铺ID
"address": "sjsjisjoijgoidg", # 店铺地址
"resname": "minbg" # 店铺名
},
"operator": "tianshisan", # 操作人
"order_id": "PL3749180", # 订单号
"strike_id": 1, # 到账凭证ID
"status": 2 # 交易状态,未支付,已支付
}
],
"strike_time": "2018-12-05T18:33:34", # 冲账时间
"arrival_method": "微信对私", # 到账方式
"strike_money": "68.02", # 冲账金额
"update_time": "2018-12-05 18:33:34", # 更新时间
"arrival_id": "wechat" # 到账账号
}],
"pagenation": {
'page'
'more'
}
"msg": "ok",
"code": 0
}
查询余额流水
接口: /api/finance/cash_flow/list
Method: GET
请求:
page O str 分页page_obj,不传默认从头开始
offset O int 分页offset,默认0
limit O int 分页limit,默认20,最大100
# change_type 默认'cash'
响应:
{
"code": 0,
"data": [{
balance: 5847110
change: -2300
change_type: 1
extra: "SZBXJZHXF20190307034006"
id: 69612
order_id: []
time: "2019-03-07 12:02:07"
}],
"pagenation": {
'page'
'more'
}
"msg": "ok"
}
消息
消息体结构
{
"version": "1.0", # 版本号
"appid": "", # 账号appid
"ts": 1588888888, # 消息发送时间戳
"sign": "", # 签名,开发者可以校验消息真伪
"type": "sku_updated", # 消息类型
# 以下为各消息类型自定义字段
"sku_id": "D00001",
"stocks": 100,
}
不同订阅的 type 与 自定义字段 不同
订单变为分拣中
type: order_sorting
自定义字段: {
order_ids list[str, ]
}
订单配送中
type: order_delivering
自定义字段: {
order_ids list[str, ]
}
一级分类新增
type: category1_create
自定义字段: {
category1_id 一级分类id
}
二级分类新增
type: category2_create
自定义字段: {
category2_id 二级分类id
}
品类新增
type: pinlei_create
自定义字段: {
pinlei_id 品类id
}
spu新增
type: spu_create
自定义字段: {
spu_id spuid
}
商品新增
type: sku_create
自定义字段: {
sku_id 商品id
}
一级分类修改
type: category1_updated
自定义字段: {
category1_id 一级分类id
}
二级分类修改
type: category2_updated
自定义字段: {
category2_id 二级分类id
}
品类修改
type: pinlei_updated
自定义字段: {
pinlei_id 品类id
}
spu修改
type: spu_updated
自定义字段: {
spu_id spuid
}
商品修改
type: sku_updated
自定义字段: {
sku_id 商品id
}
商户新增
type: customer_create
自定义字段: {
customer_id 商户id
}
商户修改
type: customer_update
自定义字段: {
customer_id 商户id
}
商户删除
type: customer_delete
自定义字段: {
customer_id 商户id
}
入库单新建
type: in_stock_sheet_create
自定义字段: {
sheet_id 单据id
}
入库单修改
type: in_stock_sheet_update
自定义字段: {
sheet_id 单据id
}
入库单删除
type: in_stock_sheet_delete
自定义字段: {
sheet_id 单据id
}
入库单入库
type: in_stock_sheet_submit
自定义字段: {
sheet_id 单据id
}
入库单审核不通过
type: in_stock_sheet_reject
自定义字段: {
sheet_id 单据id
}
出库单新建
type: out_stock_sheet_create
自定义字段: {
sheet_id 单据id
}
出库单修改
type: out_stock_sheet_update
自定义字段: {
sheet_id 单据id
}
出库单删除
type: out_stock_sheet_delete
自定义字段: {
sheet_id 单据id
}
出库单出库
type: out_stock_sheet_submit
自定义字段: {
sheet_id 单据id
}
进销存盘点
type: stock_edit
自定义字段: {
spu_id spu_id
stock 盘点后库存
}