**shop商品支付后销售计数的功能与大家分享**
注明:以下修改说明为用库存改的销售计数,现在已经修改成可以累计销售和销售金额。用户名 密码 都是111 可以用111的点卡购买测试。http://doubiao.com/shop/shoujishuma/12102419866.html 库存的修改还在继续。需要保留库存的请等待最新的修改说明。
---------------------------------------------------------------------------------------------------- 点卡直接购买和账号划账核心处理文件 e\class\q_functions.php 找到以下一段 ---------------------------------------------------------------------------------------------------- //增加订单 这一节里的后面
......
if($sql) { $ddid=$empire->lastid(); $set=esetcookie("paymoneyddid",$ddid,0); SetBuycar(""); //自己修改的销售计数开始 if($payr[payurl]) { printerror($mess,$location,1); }else{
$jinjiaddon=$empire->fetch1("select ddid,ddno,buycar from {$dbtbpre}enewsshopdd where ddid='$ddid'"); if($jinjiaddon){ $buycar=$jinjiaddon[buycar]; } $record="!"; $field="|"; $r=explode($record,$buycar); $j=0; for($i=0;$i<count($r)-1;$i++) { $j++; $pr=explode($field,$r[$i]); $productid=$pr[1]; $fr=explode(",",$pr[1]); //ID $classid=(int)$fr[0]; $id=(int)$fr[1]; //数量 $num=(int)$pr[2]; if(empty($num)) { $num=1; } //写入商品销售计数 $empire->query("update {$dbtbpre}ecms_shop set pmaxnum=pmaxnum+$num where id='$id' and classid='$classid'"); }
printerror($mess,$location,1); } //自己修改的结束 } else { printerror("DbError","history.go(-1)",1); } }
//返回购物车数据
......
--------------------------------------------------------------------------------------- 网银支付核心处理文件 e\payapi\payfun.php 找到以下一段 --------------------------------------------------------------------------------------- //商城支付 function PayApiShopPay($ddid,$money,$paybz,$orderid,$userid,$username,$ecms_paytype){ global $empire,$dbtbpre; //验证是否重复提交 $orderid=RepPostVar($orderid); $num=$empire->gettotal("select count(*) as total from {$dbtbpre}enewspayrecord where orderid='$orderid' limit 1"); if($num) { printerror('您已成功购买此订单','../../ShopSys/buycar',1,0,1); } $ddr=PayApiShopDdMoney($ddid); if($money==$ddr['tmoney']) { $sql=$empire->query("update {$dbtbpre}enewsshopdd set haveprice=1 where ddid='$ddid'"); $posttime=date("Y-m-d H:i:s"); $payip=egetip(); $userid=(int)$ddr[userid]; $username=$ddr[username]?$ddr[username]:$ddr[truename]; $username=RepPostStr($username); $paybz=str_replace('[!--ddno--]',$ddr[ddno],$paybz); $empire->query("insert into {$dbtbpre}enewspayrecord
(id,userid,username,orderid,money,posttime,paybz,type,payip) values
(NULL,'$userid','$username','$orderid','$money','$posttime','$paybz','$ecms_paytype','$payip');");
//自己加的销售计数 $jinjiaddon=$empire->fetch1("select ddid,ddno,buycar from {$dbtbpre}enewsshopdd where ddid='$ddid'"); if($jinjiaddon){ $buycar=$jinjiaddon[buycar]; } $record="!"; $field="|"; $r=explode($record,$buycar); $j=0; for($i=0;$i<count($r)-1;$i++) { $j++; $pr=explode($field,$r[$i]); $productid=$pr[1]; $fr=explode(",",$pr[1]); //ID $classid=(int)$fr[0]; $id=(int)$fr[1]; //数量 $num=(int)$pr[2]; if(empty($num)) { $num=1; } //写入商品销售计数 $empire->query("update {$dbtbpre}ecms_shop set pmaxnum=pmaxnum+$num where id='$id' and classid='$classid'"); } //自己加的结束
} printerror('您已成功购买此订单','../../ShopSys/buycar',1,0,1); }
--------------------------------------------------------------------------------------------- 显示销售计数文件 e\public\ViewClick 在//digg数 这一节后增加 ---------------------------------------------------------------------------------------------
//digg数 elseif($down==5) { $r=$empire->fetch1("select diggtop from {$dbtbpre}ecms_".$cr['tbname']." where id='$id' limit 1"); $shownum=$r['diggtop']; }
//pmaxnum 增加的销售数 elseif($down==7) { $r=$empire->fetch1("select pmaxnum from {$dbtbpre}ecms_".$cr['tbname']." where id='$id' limit 1"); $shownum=$r['pmaxnum']; }
--------------------------------------------------------------------------------- 在内容模板中增加 调用销售计数代码 如下: <script src=[!--news.url--]e/public/ViewClick?classid=[!--classid--]&id=[!--id--]&down=7></script>
特别说明:
$down==7而不是接着=6,是因为上次发贴做了一个与顶相反的踩,那个踩是$down==6。 增加与顶相反的踩
考虑到“库存”没有实际意义,我直接把库存字段拿来做的销售计数,以显示商品人气,当然你也可以自己新增加一个字段。然后替换上面我增加的部分的pmaxnum。
库存也可以实现与销售计数相反的功能,把+$num改成 -$num就可以了,但要注意要新添一个判断,库存是0就提示出错,库存不足购买时也应该提示出错,中止把商品添加到购物车。
如果需要保有留库存实时功能,我可以在抽时间慢慢点改。帝国程序,真的是没话说,好修改。(WC最不喜欢别人改他的程序了,估计这时气得冒烟了)
中间走了点弯路,前三天的弯路走得一点意义也没有,今天一个多小时就做好了。不过前三天的路也让我对帝国的程序有了更深的了解。
有不明白的地方可以 QQ: 224123 2562256
演示: http://doubiao.com/shop/shoujishuma/12102419866.html 用0.1元钱在线网银支付可以测试一下。点数测试请用用户111 密码 111
|
[该贴被修改 7 次,最后修改时间 2009-02-11 23:42:33 ]
荆楚天下 http://www.cnchu.net
|