接口名: /order/submit
Method: POST
请求:
orders M list 下单信息
[{
salemenu_ids M list 销售单ID列表
sku_ids M list 商品ID列表
station_id M string 站点ID
spu_remark M dict 商品备注
{
spu_id: 备注信息
}
}]
响应:
code M int 返回码
msg M str 错误提示信息
data M dict 订单信息
[{
code M int 下单结果
msg M string 提示信息
extender M dict 信息
{
_id M string 订单ID
order_id M string 订单ID
total_pay M int 下单金额
customer M dict
{
receive_begin_time M string 收货开始时间
receive_end_time M string 收货结束时间
}
}
}]
逻辑:
1. 检测商户状态(是否冻结、欠款)
2. 检测收货时间设置
3. 检查下单时间(当前是否在下单周期内)
4. 生成收货时间
5. 处理spu备注
6. 检查sku是否存在、上架状态、当前客户能否下单、库存
7. 验证服务时间 商品是否处理同一服务时间的销售单、是否在下单时间内
9. 扣减库存
10. 调用下单/更新接口
11. 成功,发送消息通知;失败,恢复库存
order
/order/create 创建订单
接口名: /order/create
Method: POST
请求:
customer M dict 商户信息
{
user_id M string 用户ID
address_id M string 店铺ID
address M string 店铺地址
receiver_name M string 收货人
receiver_phone M string 收货电话
resname M string 店铺名
area_id M int 店铺区域
district_code M string 城市码
pay_method M int 支付方式
settle_way M int 结算方式
}
station_id M string 站点ID
receive_begin_time M string 收货开始时间
receive_end_time M string 收货结束时间
skus M list 下单商品信息
[{
id M string 商品ID
amount M float 商品数量
price O float 商品价格
name M string 商品名
version M int sku版本号
sale_unit_name M string 单位名称
sale_price M int 销售价格
is_weight M int 是否称重
salemenu_id M string 销售单ID
is_price_timing M int 是否时价商品
attrition_rate M float 损耗率
sale_ratio M float 规格
spu_id M string spu id
std_unit_name M string 标准单位
std_sale_price M float 标准单位价格
spu_remark M string 商品备注
}]
price_rule M dict 锁价信息
{
sku_id M string 商品ID
{
rule_type M int 规则类型
rule_id M string 规则ID
yx_price M int 规则价格
}
}
freight M dict 运费规则
time_config_id M str 服务时间ID
remark M string 订单备注
响应:
code M int 返回码
msg M str 错误提示信息
data M dict 订单信息
{
order_id M string 订单ID
}
逻辑:
1. 生成商品详情(根据锁价规则、是否传入单价计算商品价格)
2. 计算订单价格
3. 生成运费
4. 保存订单
5. 发送异步消息(更新LK单,同步出库单)
/order/update 更新订单详情
接口名: /order/update
Method: POST
请求:
order_id M string 站点ID
receive_begin_time O int 收货开始时间
receive_end_time O int 收货结束时间
price_rule M list 锁价信息
freight M dict 运费规则
is_delta M bool 是否增量修改(默认为False)
skus M list 下单商品信息
[{
id M string 商品ID
amount M float 商品数量
price O float 商品价格
name M string 商品名
version M int sku版本号
sale_unit_name M string 单位名称
sale_price M int 销售价格
is_weight M int 是否称重
salemenu_id M string 销售单ID
is_price_timing M int 是否时价商品
attrition_rate M float 损耗率
material M list spu相关信息
[{
sale_ratio M float 规格
spu_id M string spu id
std_unit_name M string 标准单位
std_sale_price M float 标准单位价格
}]
}]
响应:
code M int 返回码
msg M str 错误提示信息
data M dict 返回数据
逻辑:
1. 获取订单数据
2. 区分新增商品、更新商品
3. 新增商品生成商品详情,更新商品修改商品数量、计算商品价格
4. 计算订单总价
5. 生成运费
6. 保存订单
7. 发送异步消息(更新LK单,同步出库单)
/order/delete 删除订单详情
接口名: /order/delete
Method: POST
请求:
id M string 订单ID
响应:
code M int 返回码
msg M str 错误提示信息
data M dict 返回数据
逻辑:
1. 获取订单数据
2. 更新订单状态为已删除
3. 发送异步消息(更新LK单,同步出库单)
/order/supply/update 更新上游供应订单
接口名: /order/supply/update
Method: POST
请求:
order_id M string 站点ID
customer M dict 商户信息
{
user_id M string 用户ID
address_id M string 店铺ID
address M string 店铺地址
receiver_name M string 收货人
receiver_phone M string 收货电话
resname M string 店铺名
area_id M int 店铺区域
district_code M string 城市码
pay_method M int 支付方式
}
station_id M string 站点ID
receive_begin_time M string 收货开始时间
receive_end_time M string 收货结束时间
cart M list 购物车商品信息
[{
sku_id M string 商品ID
amount M float 商品数量
origin_sku_id M string 原商品ID
origin_amount M float 原商品数量
}]
skus M list 商品信息
[{
id M string 商品ID
name M string 商品名
version M int sku版本号
sale_unit_name M string 单位名称
sale_price M int 销售价格
is_weight M int 是否称重
salemenu_id M string 销售单ID
is_price_timing M int 是否时价商品
attrition_rate M float 损耗率
split_flag M int 分切标识
sale_ratio M float 规格
spu_id M string spu id
std_unit_name M string 标准单位
std_sale_price M float 标准单位价格
}]
price_rule M dict 锁价信息
time_config_id M str 服务时间配置ID
service_time_type M int 服务时间类型
aggregate_type M int 订单聚合类型
service_begin_time M string 站点开始服务时间
service_end_time M string 站点结束服务时间
响应:
code M int 返回码
msg M str 错误提示信息
data M dict 返回数据
逻辑:
1. 判断订单是否存在上游,存在上游则合并商品到上游订单中
2. 不存在上游,则判断聚合类型是否合单,不合单则新建订单
3. 查询是否存在是否存在相同站点、聚合类型、时间配置在同一时间周期下的订单
4. 存在上游订单则更新订单,不存在则新建订单
station
/station/order/supply/dispatch 订单上游分配
接口名: /order/supply/dispatch
Method: POST
请求:
order_id M string 订单ID
cart M list 原订单商品和数量
[{
sku_id M string 订单ID
amount M float 商品数量
}]
响应:
code M int 返回码
msg M str 错误提示信息
data M dict 返回数据
逻辑:
1. 获取订单详情
2. 获取商品详情
3. 根据商品站点、聚合类型进行商品分组
4. 根据站点信息生成customer参数
5. 生成收货时间,预售根据用户的收货时间设置,非预售设置为第二天站点收货时间
6. 计算站点的下单周期或者收货周期(合单用), 预售计算客户收货时间所在的收货周期,非预售计算时间配置的下单周期
7. 调用更新上游供应商订单接口