Skip to content

开放平台接口目录

术语表

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     盘点后库存
}