ECSHOP有个货品功能,就是可以单独给商品的尺码、颜色设置库存。但是商品详情页却只能表明部库存。如果有个属性无货了,也不晓得。本ecshop教程即可同时实现轻易显示属性库存。是目前最完备最轻松的。
网上流传的免费教程有两个问题。
1、网上提供更多的教程并无发生库存显示无效的情况,这是因为与jquery不兼容。
2、打开商品页面时,默认是选 中第一个颜色的,但却显示总库存,造成误以为就是第一个颜色的库存。如果能够打开页面就显示第一个颜色库存就好了。
ECSHOP教程网提供更多本ecshop教程轻松化解这两个问题。
第一步:
下载选上小图标 test.gif ,保存路径:themes/default/images/test.gif 本教程最后面存有下载。
第二步:
在模板样式中添加如下代码:如 themes/default/style.css
catt{width:100%;height:auto;overflow:hidden;padding-bottom:5px;} .catt a{border: #7E7E7E 1px solid; text-align: center; background-color: #fff; margin-left:5px;margin-top:6px;padding-left: 10px;padding-right: 10px;display: block; white-space: nowrap;color:#000; text-decoration:none; float:left;} .catt a:hover {border:#ED0036 2px solid; margin: -1px; margin-left:4px;margin-top:5px;} .catt a:focus {outline-style:none;} .catt .cattsel {border:#ED0036 2px solid; margin: -1px;background: url("images/test.gif") no-repeat bottom right; margin-left:4px;margin-top:5px;} .catt .cattsel a:hover {border: #ED0036 2px solid;margin:-1px;background: url("images/test.gif") no-repeat bottom right;}
第三步:
打开goods.dwt文件 替换循环文件
查找:
替换为:
{$value.label}
第四步:
同样在本文件中 head区添加以下JS代码:
第五步:
打开goods.php ,大约在70行下添加一下代码:
if (!empty($_REQUEST['act']) && $_REQUEST['act'] == 'get_products_info'){ include('includes/cls_json.php'); $json = new JSON; // $res = array('err_msg' => '', 'result' => '', 'qty' => 1); $spce_id = $_GET['id']; $goods_id = $_GET['goods_id']; $row = get_products_info($goods_id,explode(",",$spce_id)); //$res = array('err_msg'=>$goods_id,'id'=>$spce_id); die($json->encode($row)); }
至此,已经可以显示属性库存了,下面化解打开页面默认表明总库存的问题。
仍然在 goods.dwt 文件中查找:
onload = function(){ changePrice(); fixpng(); try { onload_leftTime(); } catch (e) {} }
修正为:
onload = function(){ changePrice(); changeKucun();//这里就是添加的 fixpng(); try { onload_leftTime(); } catch (e) {} } //默认就表明第一个属性库存 function changeKucun() { var frm=document.forms['ECS_FORMBUY']; spec_arr = getSelectedAttributes(frm); Ajax.call('goods.php?act=get_products_info', 'id=' + spec_arr+ '&goods_id=' + goods_id, shows_number, 'GET', 'JSON'); }
OK了。