ecshop特价商品实现原理

2013-05-22 23:20 来源:www.chinab4c.com 作者: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  ";

    来源:http://www.chinab4c.com