ecshop商品自定义销量(虚拟销量)实现方法

ecshop商品自定义销量(虚拟销量)实现方法
1.在sq执行语句

ALTER TABLE `ecs_goods` ADD `sales_volume_base` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0'  
INSERT INTO `ecs_shop_config` (`parent_id`, `code`, `type`, `store_range`, `store_dir`, `value`, `sort_order` ) VALUES ('7','show_goods_sales', 'select', '1,0', '', '1', '1');  
INSERT INTO `ecs_shop_config` (`parent_id`, `code`, `type`, `store_range`, `store_dir`, `value`, `sort_order` ) VALUES ('3', 'show_sales_type', 'select', '1,0', '', '1', '1');

注意:如果你的数据表前缀不是‘ecs_’ 请自行修改

2./administrator/includes/lib_goods.php中

$sql = "SELECT goods_id, goods_name, goods_type, goods_sn, shop_price, is_on_sale, is_best, is_new, is_hot, sort_order, goods_number, integral, " .  
            " (promote_price > 0 AND promote_start_date = '$today') AS is_promote ".  
            " FROM " . $GLOBALS['ecs']->table('goods') . " AS g WHERE is_delete='$is_delete' $where" .  
            " ORDER BY $filter[sort_by] $filter[sort_order] ".  
            " LIMIT " . $filter['start'] . ",$filter[page_size]";
修改为
$sql = " SELECT  goods_id, goods_name, goods_type, goods_sn, shop_price, is_on_sale, is_best, is_new, is_hot, sort_order, goods_number, integral, sales_volume_base,  (promote_price > 0 AND promote_start_date = '$today') AS is_promote  FROM " . $GLOBALS['ecs']->table('goods') . " AS g WHERE is_delete='$is_delete' $where" .  
                    " ORDER BY $filter[sort_by] $filter[sort_order] ".  
                    " LIMIT " . $filter['start'] . ",$filter[page_size]";

在/includes/lib_goods.php末尾添加
/* 商品累计销量带自定义_新增 */  
function get_sales_count($goods_id)  
{  

    /* 查询该商品的自定义销量 */  
    $sales_base = $GLOBALS['db']->getOne('SELECT sales_volume_base FROM '.$GLOBALS['ecs']->table('goods').' WHERE goods_id = '.$goods_id);  
    /* 查询该商品的实际销量 */  
    $sql = 'SELECT IFNULL(SUM(g.goods_number), 0) ' .  
        'FROM ' . $GLOBALS['ecs']->table('order_info') . ' AS o, ' .  
            $GLOBALS['ecs']->table('order_goods') . ' AS g ' .  
        "WHERE o.order_id = g.order_id " .  
        "AND o.order_status " . db_create_in(array(OS_CONFIRMED, OS_SPLITED)) .  
        "AND o.shipping_status " . db_create_in(array(SS_SHIPPED, SS_RECEIVED)) .  
        " AND o.pay_status " . db_create_in(array(PS_PAYED, PS_PAYING)) .  
        " AND g.goods_id = '$goods_id'";  
    $sales_count = $GLOBALS['db']->getOne($sql);  
    /* 商品累计销量默认显示方式 */  
    if ($GLOBALS['_CFG']['show_sales_type'])  
    {  
        $row['sales_volume_total'] =  $sales_count; //实际销量      }  
    else  
    {  
        $row['sales_volume_total'] =  $sales_base + $sales_count; //自定义销量+实际销量      }  
    return ($row['sales_volume_total']);  
}

3./administrator/templates/goods_list.htm

在{if $use_storage}  {$lang.goods_number}{$sort_goods_number}  {/if} 后,添加 {$lang.sales_volume_base}{$sort_sales_volume_base} 在{if $use_storage}  {$goods.goods_number}  {/if} 后,添加 {$goods.sales_volume_base}

4./administrator/goods.php

/** 
 * 列表链接 
 * @param   bool    $is_add         是否添加(插入) 
 * @param   string  $extension_code 虚拟商品扩展代码,实体商品为空 
 * @return  array('href' => $href, 'text' => $text) 
 */  function list_link($is_add = true, $extension_code = '')
前,添加
/*------------------------------------------------------ */  //-- 修改商品虚拟销量 
 elseif ($_REQUEST['act'] == 'edit_sales_volume_base')  
{  
    check_authz_json('goods_manage');  

    $goods_id = intval($_POST['id']);  
    $sales_volume_base = json_str_iconv(trim($_POST['val']));  

    if ($exc->edit("sales_volume_base = '$sales_volume_base', last_update=" .gmtime(), $goods_id))  
    {  
        clear_cache_files();  
        make_json_result(stripslashes($sales_volume_base));  
    }  
}

5.在/languages/zh_cn/admin/shop_config.php,中

下,添加

$_LANG['cfg_name']['show_goods_sales'] = '是否显示商品累计销量';  
$_LANG['cfg_range']['show_goods_sales']['1'] = '显示';  
$_LANG['cfg_range']['show_goods_sales']['0'] = '不显示';  
$_LANG['cfg_name']['show_sales_type'] = '商品累计销量默认显示方式';  
$_LANG['cfg_range']['show_sales_type'][1] = '真实显示';  
$_LANG['cfg_range']['show_sales_type'][0] = '虚拟显示';

6./languages/zh_cn/admin/goods.php

$_LANG['goods_sn_exists'] = '您输入的货号已存在,请换一个';
后,添加
$_LANG['sales_volume_base'] = '虚拟销量';

7.goods.php

将实际销量:$goods['count'] = selled_count($goods['goods_id']);
改为
$goods['count'] =get_sales_count($goods_id);  

8.Search.php

将实际销量:$arr[$row['goods_id']]['count']            = selled_count($row['goods_id']);

改为      $arr[$row['goods_id']]['count']            = get_sales_count($row['goods_id']);

9.Category.php

将实际销量:$arr[$row['goods_id']]['count']            = selled_count($row['goods_id']);
改为  $arr[$row['goods_id']]['count']            = get_sales_count($row['goods_id']);

10.移动端同样修改7、8、9三步中的页面。

你可能感兴趣的:(ecshop商品自定义销量(虚拟销量)实现方法)