商派OMS学习总结 – 根据TP认证考核关键点总结
二开方法:
Config/config.php
//增加二开目录
define(‘CUSTOM_CORE_DIR’, ROOT_DIR . ‘/’ . ‘custom’);
其他目录类名直接覆盖对应APP文件即可
1/model (通用)
每个APP的model文件夹里,类名以APP名称_mdl_模型路经
获取本APP的model
$model = $this->app->model(‘$model’);
获取其他app的model
$model = app::get(‘b2c’)->model($model);
通用方法 kernel::single();
$model = kernel::single(‘b2c_mdl_$model’);
在model中获取数据库操作对象
$result = $this->db->select($sql); //注意model要继承base_db_model或则dbeav_model
通过kernel::database()直接获取数据库操作对象
$result = kernel::database()->select($sql);
常用方法:
. count 通过过滤器,取得对应表的数据行数
. getList 获取model对应表的单/多行数据, 可根据需要重载
. dump 获取model 对应表单行数据
. insert 插入单行数据, 会根据dbschema的type做转义处理
. save 保存数据,如果数据存在则做更新处理
. update 根据更新数据
. delete 根据条件删除数据
. beginTransaction, commit ,rollBack 事物处理
2/Route (通用)
3/Queue
队列是taskmgr app
找到taskmgr/lib/whitelist.php , 在对应的任务列表里添加相应的代码:
如何添加一个任务到队列,在taskmgr/lib/interface/connecter.php
4/Api
http://oms.l/index.php/api 访问路径
5/发货
发货触发控制器入口文件 app\wms\controller\admin\consign.php
核心函数:index 逐单发货(一单单发货) group_consign 分组发货(根据订单审单分配的所属分组批量发货) batch 批量发货(提交一批运单,后台执行批量校验)
核心逻辑:已校验发货单打包出库,仓储发货单标记为已发货,并且状态回传给OMS
数据更新逻辑:发货成功后,sdb_wms_delivery表字段status变更为3,process_status变更为7
status字段 0 默认 1 取消 2 暂停 3 发货
上面我们主要说的是自有仓储的仓库发货处理流程,针对ONex OMS来说除了自有仓储外,绝大多数都是在使用第三方仓储(新建、取消、发货回传等业务对接)。
OMS在订单审单后,会生成发货通知单,对应sdb_oms_delivery主表及相关扩展表,然后组织接口数据,请求第三方仓储创建发货通知单。
第三方仓储发货回传也会打相应的发货回传接口,以发货单号delivery_bn为映射的唯一单据号。
发货通知单信息推送仓储核心文件app\ome\lib\delivery\notice.php
核心函数:
create 发货通知单创建(审单生成发货通知单时出发)
cancel 发货通知单取消(撤销发货单时候触发)
pause 发货通知单暂停(自有仓储才会使用、订单暂停第三方仓储直接走取消)
renew 发货通知单恢复(自有仓储才会使用)
search 发货通知单查询 (京东仓储才会使用,比较特殊,状态什么需要根据关联单据号被动人工获取) 发货通知单响应处理类app\ome\lib\event\receive\delivery.php
核心函数:
consign 发货回传接收处理(适用于所有仓储类型)
setPrint 打印回传接收处理(仅自有仓储,第三方仅提供取消和发货两种业务)
setCheck 校验回传接收处理(仅自有仓储)
rebackDly 取消回传接收处理(仅自有仓储、科捷)
updateDetail 更新详情(重量、物流信息)回传接收处理(仅自有仓储)
发货回传指的是仓储根据推送给他的发货信息发货后,将发货结果告诉OMS(无论是自有仓储还是第三方仓储)。
核心处理内容:
OMS发货通知单的变更
库存、冻结的变化
订单状态变更
出入库明细生成
销售单生成
短信、订单状态回传前端销售平台等等
6/采购
采购是出入库的一种类型
比较常用的出入库还有调拨、直接出入库,只是生成的业务单据、流程差异,但最终的结果都是生成相应的出入库明细内容、仓库库存发生变化
举例采购入库:
app\console\controller\admin\purchase.php 新建入口控制器文件
app\wms\controller\admin\eo.php 自有仓入库控制器文件
核心函数:
doSave 新建采购入库单函数
save_eo_confirm 采购入库处理函数
核心逻辑:
新建采购入库单审核后,增加在途数量
审核后取消,减少在途数量
采购入库生成出入库明细、仓库可售库存增加、在途数量扣减
数据更新逻辑:
新建采购入库单审核后,sdb_ome_branch_product
arrive_store 增加相应数量
审核后取消或最终取消,arrive_store 减少相应数量
采购最终入库, arrive_store 减少相应数量,实际库存store增加相应数量
8/盘点
wms_ctl_admin_inventory 盘点路径 wms/controller/admin/inventory.php