自动审单插件

自动审单插件

自动审单过程中,OMS会调用系统定义的一系列插件进行处理,判定订单是否可以自动审下去,并给订单打上状态标记。

目录结构说明

路径:

app\omeauto\lib\auto\plugin 审单插件目录

文件:

abstract.php 插件抽象类,定义了一些插件的获取名称、状态码的通用方法

interface.php 插件接口类,定义插件必须定义的方法

abnormal.php 检查订单是否暂停、异常插件

arrived.php 检查运费配送能不能到达插件

branch.php 检查自动确认仓储插件

crm.php 检查淘宝订单是否有优惠赠品插件

flag.php 检查备注和旗标插件

logi.php 检查自动分配的物流公司(物流优选)插件

member.php 检查是否同一个用户有多订单插件

ordermulti.php 检查是否有其他订单可以合并插件

oversold.php 检查订单是否是超卖插件(目前淘宝订单有这个逻辑标识)

pay.php 检查合并订单是否有未支付插件

shopcombine.php 检查是否有疑似合并的订单插件

store.php 检查订单货品仓库库存是否足够插件

tax.php 检查是否开发票插件

tbgift.php 检查淘宝订单是否有优惠赠品插件

product.php 检查订单明细中货号信息是否完整存在插件

二次开发扩展

Step 1

优先在路径app\omeauto\lib\auto\plugin下面定义新的插件处理文件

一般需要定义以下方法及参数:

protected $__STATE_CODE = omeauto_auto_const::__STORE_CODE; 定义是否要打标,打的状态码

//检查处理方法
public function process(& $group, &$confirmRoles) {
}

//插件标题定义方法
public function getTitle() {
}

//获取提示信息方法
public function getAlertMsg(& $order) {
}

状态码定义文件app\omeauto\lib\const.php 16进制

<?php

class omeauto_auto_const {

    //有未付订单
    const __PAY_CODE        = 0x00000001;
    //备注和留言
    const __FLAG_CODE       = 0x00000002;
    //物流公司标记
    const __LOGI_CODE       = 0x00000004;
    //产品不匹配
    const __PRODUCT_CODE    = 0x00000008;
    //用户多订单
    const __MEMBER_CODE     = 0x00000010;
    //乡村物流标记
    const __LOGI_LITE_CODE  = 0x00000020;
    //单订单
    const __SINGLE_CODE     = 0x00000040;
    //多订单
    const __MUTI_CODE       = 0x00000080;
    //仓库
    const __BRANCH_CODE     = 0x00000100;
    //库存
    const __STORE_CODE      = 0x00000200;
    //异常
    const __ABNORMAL_CODE   = 0x00000400;
    //单订单且有备注
    const __EXAMINE_CODE    = 0x00000800;
    //超卖订单
    const __OVERSOLD_CODE   = 0x00001000;
    //淘宝订单优惠中有赠品信息
    const __PMTGIFT_CODE    = 0x00002000;
    const __COMBINE_CODE    = 0x00004000;
    //CRM赠品信息
    const __CRMGIFT_CODE    = 0x00008000;
    //检测订单是否开发票
    const __TAX_CODE        = 0x00010000;
    //检查物流到不到
    const _LOGIST_ARRIVED = 0x00040000;
}

Step 2

找到自动审单插件调用的程序代码app\omeauto\lib\auto\group.php

方法 getPluginNames 定义审单调用的插件

private function getPluginNames($cfg) {
    $combine_select = app::get('ome')->getConf('ome.combine.select');
    if ($combine_select=='1') {
             $plugins = array(
            'branch', //先选择仓库
            'store', //在判断库存
            'flag', //备注和留言
            'pay', //有未付订单
            'logi', //判定物流
            'abnormal', //数据字段异常订单
            'oversold',//超卖订单
            'tbgift',//淘宝订单有赠品
             'crm',//crm赠品
             'tax',//开发票
             'arrived',//物流到不到
        );
    } else{
        $plugins = array(
            'branch', //先选择仓库
            'store', //在判断库存
            'flag', //备注和留言
            'pay', //有未付订单
            'logi', //判定物流
            'member', //用户多地址
            'ordermulti', // 是否多单合
            'abnormal', //数据字段异常订单
            'oversold',//超卖订单
            'tbgift',//淘宝订单有赠品
            'shopcombine',
             'crm',//crm赠品
             'tax',//开发票
             'arrived',//物流到不到
        );
    }

    return $plugins;
}

找到自动审单插件调用的程序代码app\omeauto\lib\auto\combine.php

构造 __construct 定义获取提示信息的插件清单

public function __construct() {
    $combine_select = app::get('ome')->getConf('ome.combine.select');
    if ($combine_select == '1') {
        $this->_plugins = array('pay', 'flag', 'logi',  'branch', 'store', 'abnormal','oversold','tbgift','crm','tax','arrived');
    }else{
        $this->_plugins = array('pay', 'flag', 'logi', 'member', 'ordermulti', 'ordersingle', 'branch', 'store', 'abnormal','oversold','tbgift','shopcombine','crm','tax','arrived');
    }

    if (self::getCnf('chkProduct') == 'Y') {
        $this->_plugins[] = 'product';
    }
}

沪ICP备05002918号

© 2003-2017 ShopEx,Inc.All rights reserved.