1. 程式人生 > >讓ecshop顯示商品銷量或者月銷量

讓ecshop顯示商品銷量或者月銷量

首先,ecshop的資訊顯示模組在../includes/lib_goods.php檔案

在其末尾新增下面這個函式

月銷量:(和總銷量二選一)

function ec_buysum($goods_id)

{

    $LMonth=strtotime("last month"); //前一個月

    $nowTime=time(); //當前時間

    $sql="select sum(goods_number) from " . $GLOBALS['ecs']->table('order_goods') . " AS g ,".$GLOBALS['ecs']->table('order_info') . " AS o WHERE o.order_id=g.order_id and g.goods_id = ".$goods_id." and o.pay_status=2 and o.add_time >= ".$LMonth." and o.add_time <= ".$nowTime." group by g.goods_id";

    if (($GLOBALS['db']->getOne($sql)) == ""){

            return "0";

        }else{

       return $GLOBALS['db']->getOne($sql);

    }

}

總銷量:(和月銷量二選一)

function ec_buysum($goods_id)

{

    $sql = "select sum(goods_number) from " . $GLOBALS['ecs']->table('order_goods') . " AS g ,".$GLOBALS['ecs']->table('order_info') . " AS o WHERE o.order_id=g.order_id and g.goods_id = " . $goods_id . " and o.order_status=5 " ;

    if (($GLOBALS['db']->getOne($sql)) == ""){

        return "0";

    }else{

           return $GLOBALS['db']->getOne($sql);

    }

}

然後,在上面的程式碼位置,大約是317行左右,找到

$goods[$idx]['brand_name'] = isset($goods_data['brand'][$row['goods_id']]) ? $goods_data['brand'][$row['goods_id']] : '';

在它的下面新增

$goods[$idx]['buy_num']= ec_buysum($row['goods_id']);

這樣,你在模版中使用

$goods.buy_num

就可以呼叫銷量資料了。

當然,這裡只是修改了首頁呼叫部分,在內頁,即商品詳情,你仍然只修改這個檔案

在大概594行的空白位置插入

/*顯示商品銷量*/

$row['buy_num']   = ec_buysum($row['goods_id']); 

 如果你想問,在分類頁如何操作呢?

分類頁與這個類似,分類頁檔名為

./category.php

在第508行下面插入

$row['buy_num']   = ec_buysum($row['goods_id']);

就可以了.

在模版中合適的位置使用

$goods.buy_num

來呼叫商品資料

=================================

或者



admin/order.php
發貨的時候 ,統計總的銷量
第900行 




 


/* 方法1 更新商品銷量  根據這個訂單 在原來的基礎增加銷量*/
$sql = 'SELECT goods_id,goods_number FROM '.$GLOBALS['ecs']->table('order_goods').' WHERE order_id ='.$order_id;
$order_res = $GLOBALS['db']->getAll($sql);
foreach($order_res as $idx=>$val)
{
$sql = "update " . $ecs->table('goods') . " set sales_volume=sales_volume + '$val[goods_number]' WHERE goods_id =".$val['goods_id'];
$db->query($sql);
}
/* 方法2 更新商品銷量  統計商品的每次的銷量的記錄 */
$sql = 'SELECT goods_id,goods_number FROM '.$GLOBALS['ecs']->table('order_goods').' WHERE order_id ='.$order_id;
$order_res = $GLOBALS['db']->getAll($sql);
foreach($order_res as $idx=>$val)
{
$sql = 'SELECT SUM(og.goods_number) as goods_number ' .
'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g, ' .
                $GLOBALS['ecs']->table('order_info') . ' AS o, ' .
                $GLOBALS['ecs']->table('order_goods') . ' AS og ' .
"WHERE g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 AND og.order_id = o.order_id AND og.goods_id = g.goods_id " .
"AND (o.order_status = '" . OS_CONFIRMED .  "' OR o.order_status = '" . OS_SPLITED . "') " .
"AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') " .
"AND (o.shipping_status = '" . SS_SHIPPED . "' OR o.shipping_status = '" . SS_RECEIVED . "') AND g.goods_id=".$val['goods_id'];


$sales_volume = $GLOBALS['db']->getOne($sql);
$sql = "update " . $ecs->table('goods') . " set sales_volume=$sales_volume WHERE goods_id =".$val['goods_id'];

$db->query($sql);
}



=============================