ecshop二次开发折扣计算功能
2010-03-01 23:00 来源:www.chinab4c.com 作者:admin
ecshop电子商务系统,不论是哪个版本,为了符合电子商务的发展需要,都存在促销功能里面的优惠活动,以前我们谈论了ecshop优惠活动的设置.今天我们分析ecshop二次开发折扣功能.
ecshop折扣功能的计算,发生在购物车中.flow.php,你点进入购物车的时候,如果购买的商品在折扣或者是优惠的范围之内,我们将通lib_order.php文件中的函数compute_discount()进行折扣计算.通过favourable_activity表,把活动给检索出来.$favourable_list = $GLOBALS['db']->getAll($sql);如果为空,那么将返回false.表示没有折扣活动。 $sql = "SELECT c.goods_id, c.goods_price * c.goods_number AS subtotal, g.cat_id, g.brand_id " ."FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " . $GLOBALS['ecs']->table('goods') . " AS g " . "WHERE c.goods_id = g.goods_id " . "AND c.session_id = '" . SESS_ID . "' " . "AND c.parent_id = 0 " . "AND c.is_gift = 0 " . "AND rec_type = '" . CART_GENERAL_GOODS . "'";,通过该查询,把ecshop购物车中的商品的折扣给计算出来.
在折扣的方式里面,商品优惠方式有全部商品优惠FAR_ALL.某个指定的分类优惠FAR_CATEGORY,指定的某个优惠FAR_BRAND,而折扣的方式有两种.先说第一种优惠,看以下ecshop优惠代码。
$discount += $total_amount * (1 - $favourable['act_type_ext'] / 100);
$favourable_name[] = $favourable['act_name'];
第二种是减现金.
$discount += $favourable['act_type_ext'];
$favourable_name[] = $favourable['act_name'];
而在flow.php里面,通过$smarty->assign('discount', $discount['discount']); $favour_name = empty($discount['name']) ? '' : join(',', $discount['name']);
$smarty->assign('your_discount', sprintf($_LANG['your_discount'], $favour_name, price_format($discount['discount'])));来调用,完成显示。
来源:中国B4C电子商务
最近更新
常用插件
- ecshop通用红包编码
很多时候,为了结合促销,必须扩展一下ecshop的红包功能。ecshop的红包...
- ecshop降价通知登记插件
ecshop降价通知登记插件,主要是为了方便某些客户,对商品价格要求比...
- ecshop购物车功能改进[插件
ecshop购物车功能改进[插件套餐]主要是我们最近开发工作和开发项目中。...
- ecshop分类树中统计商品数
最近忙于开发其他项目,在不少朋友不断要求和催促的情况下,做出了该小...
- ecshop红包修改成满多少减
我们在长期使用ecshop的时候,我们可以发现。ecshop的红包是一个非常强...