ecshop购物车如何显示商品规格和实现商品配件功能

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

我们先来看看ecshop购物车如何显示商品规格:
我们先来打开flow.php,在ecshop购物车商品显示的地方添加下面这段程序,
本文转自(http://www.ecshopmoban.cn)
if ($cart_goods['goods_list']){
foreach ($cart_goods['goods_list'] as $k => $v){
$properties = get_goods_properties($v['goods_id']);
if($m = $properties['pro']['商品規格']){

$cart_goods['goods_list'][$k]['attribute'][] = $m;
}
}
}

接着我们再打开flow.dwt模板,将显示商品属性里面的程序修改为下面这段代码,

<!-- {if $show_goods_attribute eq 1} 顯示商品屬性 -->
<td bgcolor="#ffffff">{foreach from = $goods.attribute item = item}{foreach from=$item item=i}{$i.name}:{$i.value}<br>{/foreach}{/foreach}</td>
<!-- {/if} -->
最后再更新缓存,你就可以发现ecshop购物车中有商品属性显示出来了.

我们已经解决了前一个ecshop购物车如何显示商品规格的问题,你是不是更有信心来解决ecshop购物车如何显示商品规格和实现商品配件功能的下一个问题。解决ecshop商品配件功能实现问题,我们先要了解ecshop配件这个概念,在增加录入该商品B的时候,你可以录入a,b,c作为B商品的配件。一下说明是增加ecshop商品配件的方法:

第一步:后台->商品管理->增加新商品->配件.这里你可以选择某个类别下面的商品作为配件,还可以指定该配件的价格。

第二步:配件,所以在购买B商品的时候,在购物车的下面,会出现该商品A下的配件。而ecshop中商品B的所有配件就存储在表group_goods中。里面存储了B的id,也存储了配件a,b,c的id用来匹配。

第三步:ecshop相关函数在购买B的时候计算出配件的价格。但它不是配件产品本身的价格,所以可以利用配件,进行套餐的匹配。

第四步:分析计算配件的价格函数
function get_goods_fittings($goods_list = array())
{
$temp_index = 0;
$arr= array();

$sql = 'SELECT gg.parent_id, ggg.goods_name AS parent_name, gg.goods_id, gg.goods_price, g.goods_name, g.goods_thumb, g.goods_img, g.shop_price AS org_price, ' .
"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price ".
'FROM ' . $GLOBALS['ecs']->table('group_goods') . ' AS gg ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('goods') . 'AS g ON g.goods_id = gg.goods_id ' .
"LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".
"ON mp.goods_id = gg.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ".
"LEFT JOIN " . $GLOBALS['ecs']->table('goods') . " AS ggg ON ggg.goods_id = gg.parent_id ".
"WHERE gg.parent_id " . db_create_in($goods_list) . " AND g.is_delete = 0 AND g.is_on_sale = 1 ".
"ORDER BY gg.parent_id, gg.goods_id";

$res = $GLOBALS['db']->query($sql);

while ($row = $GLOBALS['db']->fetchRow($res))
{
$arr[$temp_index]['parent_id']= $row['parent_id'];//配件的基本件ID
$arr[$temp_index]['parent_name'] = $row['parent_name'];//配件的基本件的名称
$arr[$temp_index]['parent_short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
sub_str($row['parent_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['parent_name'];//配件的基本件显示的名称
$arr[$temp_index]['goods_id'] = $row['goods_id'];//配件的商品ID
$arr[$temp_index]['goods_name']= $row['goods_name'];//配件的名称
$arr[$temp_index]['short_name']= $GLOBALS['_CFG']['goods_name_length'] > 0 ?
sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];//配件显示的名称
$arr[$temp_index]['fittings_price'] = price_format($row['goods_price']);//配件价格
$arr[$temp_index]['shop_price']= price_format($row['shop_price']);//配件原价格
$arr[$temp_index]['goods_thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true);
$arr[$temp_index]['goods_img']= get_image_path($row['goods_id'], $row['goods_img']);
$arr[$temp_index]['url']= build_uri('goods', array('gid'=>$row['goods_id']), $row['goods_name']);
$temp_index ++;
}

return $arr;
}

从以上函数我们可以知道ecshop 配件的价格是读了group_goods表中的goods_price字段的值,在放入购物车中时,通过该字段计算。这样配件的价格就能一直体现出基件和配件的关系。
这样我们就把解决ecshop购物车如何显示商品规格和实现商品配件功能的所有问题了,如果还想了解更多ecshop信息你可以登陆http://www.ecshop.cn

回答:
自己顶一个