首页 > 教程 > Ecshop教程 > 获取Ecshop各个属性的库存的简单方法

获取Ecshop各个属性的库存的简单方法

2017-08-25 13:33:44侠客源码 复制链接

原理:从ecshop数据库提取各个属性的库存,放到一个函数里,然后用模板调用出来。  
需要修改的ecshop文件:  
1.主题模板goods.dwt  
2.includes下的lib_goods.php     
第一步:
修改goods.dwt  在294行左右, 

<!-- {foreach from=$spec.values item=value key=key} -->和    <!-- {/foreach} -->之间,

增加(库存:{$value.product_number} {$goods.measure_unit})     
第二步:
修改includes下的lib_goods.php  在625行

/* 获得商品的规格 */ 函数 get_goods_properties 中,

修改为:


$sql = "SELECT a.attr_id, a.attr_name, a.attr_group, a.is_linked, a.attr_type, ". "g.goods_attr_id, g.attr_value, g.attr_price " . ",p.product_sn,p.product_number " . 'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('products') . ' AS p ON g.goods_attr_id = p.goods_attr ' . "WHERE g.goods_id = '$goods_id' " . 'ORDER BY a.sort_order, g.attr_price,g.goods_attr_id'; 

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

$arr['pro'] = array(); // 属性 

$arr['spe'] = array(); // 规格 

$arr['lnk'] = array(); // 关联的属性  

foreach ($res AS $row) { 

$row['attr_value'] = str_replace("\n", '<br />', $row['attr_value']);  

if ($row['attr_type'] == 0) { 

$group = (isset($groups[$row['attr_group']])) ? $groups[$row['attr_group']] : $GLOBALS['_LANG']['goods_attr'];  

$arr['pro'][$group][$row['attr_id']]['name'] = $row['attr_name']; 

$arr['pro'][$group][$row['attr_id']]['value'] = $row['attr_value']; 

else { 

$arr['spe'][$row['attr_id']]['attr_type'] = $row['attr_type']; 

$arr['spe'][$row['attr_id']]['name'] = $row['attr_name']; 

$arr['spe'][$row['attr_id']]['values'][] = array( 'label' => $row['attr_value'], 'price' => $row['attr_price'], 'format_price' => price_format(abs($row['attr_price']), false), 'id' => $row['goods_attr_id'], 'product_sn' => $row["product_sn"], 'product_number' => $row["product_number"]); 

}


  • 上一篇:ecshop给商品分类增加小图标功能
  • 下一篇:大商创商城手机版增加每日签到送积分