View ImageUploadView
方法 POST
权限 无
请求
image_file M files 图片
响应
code M int 0为成功,其它为失败
msg M string 错误提示信息
data M list 成功的返回数据
{
'image_url' M string 图片url
'img_path_id' M string 文件名
}
逻辑
上传图片到cos
创建销售单 /station/salemenu/create/
View SalemenuDetailView
方法 GET
权限 get_salemenu
请求
salemenu_type O int 销售单类型
station_id(session) M 站点ID
id(url) M string 销售单ID
响应
模版(station/salemenu_create.html)
render
{
'form' M 对象
'salemenu_type' 销售单类型
'time_config_id' 时间配置ID
'target' 逻辑上返回了这个group下的总站、阿米巴、总仓的ID和名字
'has_supplier_name' M list [4, 5]
(Seller = 4 # 自营销售单,总仓的售卖销售单
ProxySeller = 5 # 加盟商售卖的销售单,要总部代卖)
}
逻辑
返回销售单详情
方法 POST
权限 edit_salemenu
请求
json O string 这个参数是GET参数,值可能是“0”或“1”用做判断是否返回json
id O string 销售单ID,但对于供应商销售单而言,需要用供应商的station_id
salemenu_type M int 销售单类型
is_active O string 销售单是否激活,值可能是“on”或“off”
station_id(session) M 站点ID
响应
成功时
根据salemenu_type跳转到其他接口
或者返回json
code M int 0为成功,其它为失败
msg M string 错误提示信息
data M list 成功的返回数据
{
'name' M string 销售单名
'station_id' M string 站点ID
'salemenu_id' M string 销售单ID
}
错误时
返回模版(station/salemenu_create.html)
render
{
'form' M 对象 空
'has_supplier_name' M list [4, 5]
(Seller = 4 # 自营销售单,总仓的售卖销售单
ProxySeller = 5 # 加盟商售卖的销售单,要总部代卖)
}
或 json
code M int 1
msg M string 错误提示信息
data M list 空
逻辑
新建销售单,如果传入了id且is_active不为“on”时,把对应销售单内的商品全部下架
如果json是“0“就根据salemenu_type跳转
1供应商销售单 -> /station/supplier
2内部扭转单 -> /station/salemenu/innerflow
4自营销售单 -> /station/salemenu/selfsell
5加盟商售卖的销售单 -> /station/salemenu/proxysell
6供应商销售单 -> /station/supplier/spuprivate
搜索自营销售单 /station/salemenu/selfsell/
View SalemenuIndexView
方法 GET
权限 get_salemenu, get_sjgz
请求
time_config_id O string 服务时间配置ID
q_station_id O string 查询站点ID
q_active O string 是否激活 “0”或“1“
json O int 是否返回json 0或1
station[salemenu](session) M 站点下的销售单
响应
json
code M int 0为成功,其它为失败
msg M string 错误提示信息
data M list 成功的返回数据
{
'name' M string 销售单名
'station_id' M string 站点ID
'salemenu_id' M string 销售单ID
}
模版(station/salemenu.html)
render
{
'salemenus' M list 销售单
'is_spu_private' M bool 是否是私有SPU 当前站点是老SAAS且当前接口是/station/salemenu/proxysell/为真
'salemenu_type' M int 销售单类型 和当前接口有关
'service_time' M list 当前站点的时间配置,第一个项为全部,如果传入有time_config_id,time_config_id对应的时间配置为第一个
'active_choice' M list 激活选项列表,第一个项为全部,如果传入有q_active,q_active对应的项为第一个
'station_name' O list 当前站点是总站返回,站点名列表,第一个项为全部,如果传入有q_station_id,q_station_id对应的项为第一个
'is_center' O bool True 当前站点是总站返回
}
逻辑
当前站点为总站时拉取所有站点所有销售单,但此时前端不能传json为1,否则只过滤对应接口的销售单类型和是否激活,过滤时间配置ID和站点ID只在返回是模版时有效,所以我猜这个接口在总站时是返回模版的
这个接口和下面四个接口用的同一个view,区别在于不同的view_type对应不同的销售单类型过滤
搜索加盟商售卖的销售单 /station/salemenu/proxysell/
同 /station/salemenu/selfsell/
搜索内部扭转单 /station/salemenu/innerflow/
同 /station/salemenu/selfsell/
搜索所有销售单 /station/salemenu/center/
同 /station/salemenu/selfsell/
搜索所有销售单 /station/salemenu/
同 /station/salemenu/center/
销售单详情 /station/salemenu/(?P{?\w+}?)/
同 /station/salemenu/create/
销售单内的sku /station/salemenu/(?P{?\w+}?)/skus/
View SalemenuSkusView
方法 GET
权限 get_sku
请求
id(url) M string 销售单ID
station(session) O string 站点
响应
模版(station/salemenu_skus.html,老saas用station/salemenu_skus_old.html)
render
{
'edit_station_id' M list 销售单所在站点ID
'create_type' M string 'sale' 不知道有什么用
'edit_salemenu_id' M string 销售单ID
}
逻辑
没有什么特别的逻辑
采购销售单详情/station/supplier/(?P{?\w+}?)/
同 /station/salemenu/create/
拉分类列表 /station/skucategories
View CategoryWithSkusInfoView
方法 GET
权限 无
请求
station_id O string 站点ID
salemenu_id O string 销售单ID
upid O string 上级分类ID
addition O string 是否拉取sku默认配置,不传或传“sku_default_conf”
响应
code M int 0为成功,其它为失败
msg M string 错误提示信息
data M list 成功的返回数据
[{
'id' M string 分类ID
'create_time' M datetime 创建时间
'title' M string 分类名
'upstream_id' M string 上级ID
'status' M int 状态
'group_id' M int groupid
'origin_id' M string 切商品库前的ID
'level' M int 分类级别
'split_flag' O int 服务能力
}
最后会有一个{'old_saas' M int 是否是老SAAS}]
逻辑
判断是否是老SAAS,根据addition判断是否拉取默认服务能力,
然后拉取分类,组成列表,并在列表的最后填是否老SAAS的项
拉分类下的spu和sku /station/skus/category/(?P{?\w+}?)
View CategorySkusQueryView
方法 GET
权限 无
请求
station_id O string 站点ID
salemenu_id O string 销售单ID
off_shelf O string 是否查看下架商品false或true
addition O string 是否拉取sku默认配置,不传或传“sku_default_conf”
响应
code M int 0为成功,其它为失败
msg M string 错误提示信息
data M list 成功的返回数据
[{
"id" M string spuid
"create_time" M datetime 创建时间
"origin_id" M string 切商品库前的ID
"p_type" M int 是否私有(0:通用;1:私有)
"modify_time" M datetime 编辑时间
"image" M string 图片
"img_url" M string 图片URL
"pinlei_id" M string 品类ID
"status" M int 状态
"group_id" M int groupid
"name" M string spu名字
"desc" M string 描述
'split_flag' O int 服务能力
"category_title_2" M string 二级分类名
"category_id_2" M string 二级分类ID
"category_title_1" M string 一级分类名
"category_id_1" M string 一级分类ID
"std_unit_name" M string 标准单位名
"dispatch_method" M int 分拣方式(1:bagua;2:union)
"sku_infos": [ M list
{
"id" M string SKUID
"stocks_is_valid" M int 是否设置库存
"salemenu_id" M string 销售单ID
"status" M int 状态
"category_id_1" M string 一级分类ID
"desc" M string 描述
"create_time" M datetime 创建时间
"stocks" M int 库存
"sync_state" O int 若该服务站的sku才会有该字段。该字段表示sku的是否需要同步自营站点的sku。
"pinlei_id" M string 品类ID
"sale_unit_name" M string 销售单位名
"station_id" M string 站点ID
"state" M int 是否上架
"outer_id" M string 自定义ID
"attrition_rate" M int 损耗率
"modify_time" M datetime 编辑时间
"s_type" M int 商品类型(0. 单一商品,即只改变价格,售卖方式, 1. 组合商品,即有多个上游商品)
"name" M string 商品名字
"imgs" M list 图片
"category_id_2" M string 二级分类ID
"version" M int 版本号
"sale_price" M float 售卖单位
"is_weigh" M int 是否称重
"split_flag" M int 服务标识
"sale_num_least" M float 最小售卖数
}
]
}]
逻辑
判断是否有查看spu的权限,没有就查私有spu,拼分类字段,奇怪的地方是如果拉了sku默认配置,sku_infos就为空
搜索SKU /station/skus
View SkusQueryView
方法 GET
权限 无
请求
station_id O string 站点ID
salemenu_id O string 销售单ID
search_text O string 搜索内容
active O string “1”或“0“是否只查上架商品
offset O int 分页偏移
limit O int 分页每页限制
fetch_category O string “1”或“0“是否需要拉分类信息
响应
code M int 0为成功,其它为失败
msg M string 错误提示信息
data M list 成功的返回数据
[{
"id" M string SKUID
"spu_id" M string SPUID
"category_id_1" M string 一级分类ID
"category_id_2" M string 二级分类ID
"name" M string 商品名字
"desc" M string 描述
"sale_unit_name" M string 销售单位名
"unit_name" M string 标准单位名
"unit_price" M float 标准单价
"sale_ratio" M float 售卖比例
"sale_price" M float 售卖单价
"state" M int 是否上架
"up_sku_id" M string 采购来源SKU
"is_weigh" M int 是否称重
"sale_num_least" M float 最小售卖数
"split_flag" M int 服务标识
"img_url" M string 图片URL
"outer_id" M string 自定义ID
"category_title_2" O string 二级分类名
"category_title_1" O string 一级分类名
"sku_cost" M float 成本
}]
逻辑
根据输入参数搜索SKU,如果没有传入station_id,查当前站点
简版sku搜索接口 /station/skus/simple_sku_search
View SimpleSkuSearchView
方法 GET
权限 无
请求
q M string 搜索内容
cols O string 搜索哪些列,默认为“_id,name”
offset O int 分页偏移
limit O int 分页每页限制
响应
code M int 0为成功,其它为失败
msg M string 错误提示信息
data M list 成功的返回数据
"list" [{
"salemenu_id" M string 销售单ID
"salemenu_name" M string 销售单名字
。。。
其他的SKU字段是否返回由前端传的参数决定,我就不写了
}]
"pagination": {
"count"
"offset"
"limit"
}
或
[{
"salemenu_id" M string 销售单ID
"salemenu_name" M string 销售单名字
。。。
其他的SKU字段是否返回由前端传的参数决定,我就不写了
}]
逻辑
如果搜索内容为空,不搜索,只搜索上架商品,搜索内容支持ID精确和名字模糊,一定会查询salemenu_id字段
如果offset字段前端传了None,那么返回格式为第二种
搜索商户可见的SKU /station/skus/addr
View SkuQueryByAddrView
方法 GET
权限 无
请求
fetch_category O string 是否拉分类“0”或“1”
active O string 是否只拉上架的“0”或“1”
time_config_id O string 时间配置ID
address_id M string 商户ID
offset O int 分页偏移
limit O int 分页每页限制
响应
code M int 0为成功,其它为失败
msg M string 错误提示信息
data M list 成功的返回数据
[{
"id" M string SKUID
"sync_origin_id" M string 真实交易ID
"spu_id" M string SPUID
"category_id_1" M string 一级分类ID
"category_id_2" M string 二级分类ID
"category_title_1" O string 一级分类名
"category_title_2" O string 二级分类名
"station_id" M string 站点ID
"salemenu_id" M string 销售单ID
"supplier_name" M string 供应商名
"name" M string 商品名字
"desc" M string 描述
"sale_unit_name" M string 销售单位名
"std_unit_name" M string 标准单位名
"unit_price" M float 标准单价
"sale_ratio" M float 售卖比例
"sale_price" M float 售卖单价
"state" M int 是否上架
"is_weigh" M int 是否称重
"sale_num_least" M float 最小售卖数
"outer_id" M string 自定义ID
"is_price_timing" M bool 是否实价
}]
逻辑
根据商户ID搜索可见销售单,根据搜索内容搜索商品