ecshop特价商品实现原理
ecshop特价商品实现原理,这个功能是ecshop中十分重要的功能,实现这个特价功能,其实是很简单的,ECSHOP开发中心总结的方法是:首先我们看到在ecshop的后台,商品管理里面,我们在编辑ecshop商品信息的时候,可以设置比ecshop商品价格更加实惠的价格,那就是ecshop特价,还可以设置特价的开始和结束时间,这样就让我们很方便的控制ecshop促销时间段.
首先我们看ecshop的特价商品的数据检索条件.
g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 ' ." AND g.is_promote = 1 AND promote_start_date <= '$time' AND promote_end_date >= '$time'
这表明必须在促销时间段内,而且必须是设置了特价,而且在线销售的产品,然后通过时间段的区域判断,来决定ecshop该商品是否处于特价范围内.
- if ($row['promote_price'] > 0)
- {
- $promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']);
- $goods[$idx]['promote_price'] = $promote_price > 0 ? price_format($promote_price) : '';
- }
- else
- {
- $goods[$idx]['promote_price'] = '';
- }
但是有一点,ecshop促销目前的调用,是调用的全站的产品,这个在资源消耗和性能上是存在问题的,特别在分类调用特价的时候,那么可能就是取得对应分类下面的特价产品,这个时候就必须要求我们按照分类规则,调用本分类下面特价商品,我们可以对程序进行以下修改.
- $children = get_children($cats);
- $where = '';
- if($cats) {
- $where.=" and ".$children;
- }
取得ecshop分类所属id,进行操作,然后修改ecshop数据库的sql语句,达到完成检索的目的 " AND g.is_promote = 1 AND promote_start_date <= '$time' AND promote_end_date >= '$time' $where ";

