首页 > 网站 > 建站经验 > 正文

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

2024-04-25 20:38:10
字体:
来源:转载
供稿:网友

原理:从ecshop数据库提取各个属性的库存,放到一个函数里,然后用模板调用出来。

需要修改的ecshop文件:

1.主题模板goods.dwt

2.includes下的lib_goods.php

Step 1.

修改goods.dwt

在294行左右, <!-- {foreach from=$spec.values item=value key=key} -->和 <!-- {/foreach} -->之间,增加(库存:{$value.product_number} {$goods.measure_unit})

Step 2.

修改includes下的lib_goods.php

在625行/* 获得商品的规格 */中,修改成如下样子:红色部分是增加的调用

$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"]);

}

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表