后台搜索扩展分类商品

2016-07-07 15:04 来源:www.chinab4c.com 作者:ecshop专家

EC后台商品根据分类搜索的时候只能搜索到该分类底下的商品,而扩展分类在改分类底下的商品则搜索不到,
请问如何修改才能搜索到扩展分类的商品呢,具体修改什么地方代码,找了半天找不到,希望高手给点提示

回答:
没人回应?

可以结合 get_extension_goods函数来获取扩展分类的商品

有意思
不过楼上的看的不太懂 函数不懂..

前台的可以通过这个实现,后台的做起来就有点麻烦了,好像找到突破口,但是还是没弄出来,继续中……

你通过ID数组。可以做的到的。
所有的扩展.存储在goods_cat表里面

我准备重写后台搜索的扩展分类,先判断所选得得分类,如果这个分类的的所有产品都是通过扩展分类实现,那么执行的sql就是
  1. $sql = "SELECT g.goods_id,gc.cat_id, g.goods_name, g.goods_sn, g.shop_price, g.is_on_sale, g.is_best, g.is_new, g.is_hot, g.sort_order, g.goods_number, g.integral, " .
  2. " (g.promote_price > 0 AND g.promote_start_date <= '$today' AND g.promote_end_date >= '$today') AS is_promote ".
  3. " FROM " . [color=Red]$GLOBALS['ecs']->table('goods_cat') . " AS gc LEFT JOIN ". $GLOBALS['ecs']->table('goods')." AS g ON gc.goods_id=g.goods_id
  4. WHERE gc.cat_id=".$filter['cat_id']." [/color]AND g.is_delete='$is_delete' $where" .
  5. " ORDER BY $filter[sort_by] $filter[sort_order] ".
  6. " LIMIT " . $filter['start'] . ",$filter[page_size]";
复制代码
如果是正常的ID的话就执行原来的sql,这个sql是程序本身的
  1. $sql = "SELECT g.goods_id, g.goods_name, g.goods_sn, g.shop_price, g.is_on_sale, g.is_best, g.is_new, g.is_hot, g.sort_order, g.goods_number, g.integral, " .
  2. " (g.promote_price > 0 AND g.promote_start_date <= '$today' AND g.promote_end_date >= '$today') AS is_promote ".
  3. " FROM " . $GLOBALS['ecs']->table('goods') . " AS g WHERE g.is_delete='$is_delete' $where" .
  4. " ORDER BY $filter[sort_by] $filter[sort_order] ".
  5. " LIMIT " . $filter['start'] . ",$filter[page_size]";
复制代码
还有在 $where = $filter['cat_id'] > 0 ? " AND " . get_children($filter['cat_id']) : '';这个地方是根据分类来提取商品的,当选择的分类的商品时通过扩展分类实现的时候,这个where就不用了,这里我也做了判断,但是


搜索出来的结果是全部商品,也就是说第一个sql语句关联goods_cat表没有起作用。有高手来帮我看看不

结贴,暂时解决