当前位置:首页 > CMS教程 > ecshop > 列表

ecshop商品详情页面显示关联属性库存

发布:smiling 来源: PHP粉丝网  添加日期:2014-11-19 09:20:21 浏览: 评论:0 

使用ecshop模板搭建网站的时候,绝大多数网站都是需要使用商品属性这个功能的,比如服装商城,肯定需要使用到颜色、尺寸等属性,而ecshop商品详情页面默认展示的库存是商品的总库存,那我们想让这个库存显示为当前选中的属性的库存,并且当选择其他属性时,库存变为对应属性的库存,仿淘宝,这个怎么来实现呢?按照下面修改对应的文件,就可以轻松实现这个效果.

goods.dwt页面修改:

  1. <!-- {foreach from=$spec.values item=value key=key} --> 
  2.  
  3. <a {if $key eq 0}class="cattsel"{/if} onclick="changeAtt(this,{$value.id},{$goods.goods_id})" href="javascript:;" name="{$value.id}" title="[{if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if} {$value.format_price|abs}]">{$value.label}<input style="display:none" id="spec_value_{$value.id}" type="radio" name="spec_{$spec_key}" value="{$value.id}" {if $key eq 0}checked{/if} /></a> 
  4.  
  5. <!-- {/foreach} --> 

在显示详细信息合适的地方加:

<font style=" color:#CCCCCC;">(库存:<font id="shows_number">{$goods.goods_number} {$goods.measure_unit}</font>)</font>

在goods.dwt加js代码:

  1. function changeAtt(t,a,goods_id) { 
  2. t.lastChild.checked='checked'
  3. for (var i = 0; i<t.parentNode.childNodes.length;i++) { 
  4. if (t.parentNode.childNodes[i].className == 'cattsel') { 
  5. t.parentNode.childNodes[i].className = ''
  6.  
  7. t.className = "cattsel"
  8. var formBuy = document.forms['ECS_FORMBUY']; 
  9. spec_arr = getSelectedAttributes(formBuy); 
  10. Ajax.call('goods.php?act=get_products_info''id=' + spec_arr+ '&goods_id=' + goods_id, shows_number, 'GET''JSON'); 
  11. changePrice(); 
  12. function shows_number(result) 
  13. if(result.product_number !=undefined) 
  14. $('shows_number').innerHTML = result.product_number+'件'
  15. else 
  16. $('shows_number').innerHTML = '未设置' 

打开goods.php添加70行左右吧

  1. if (!emptyempty($_REQUEST['act']) && $_REQUEST['act'] == 'get_products_info'
  2. include('includes/cls_json.php'); 
  3.  
  4. $json = new JSON; 
  5. // $res = array('err_msg' => '', 'result' => '', 'qty' => 1); 
  6. //开源软件:phpfensi.com 
  7. $spce_id = $_GET['id']; 
  8. $goods_id = $_GET['goods_id']; 
  9. $row = get_products_info($goods_id,explode(",",$spce_id)); 
  10. //$res = array('err_msg'=>$goods_id,'id'=>$spce_id); 
  11. die($json->encode($row)); 
  12.  
  13. }

Tags: ecshop商品详情页 ecshop库存属性

分享到: