ecshop商品页商品属性分类选择的制作教程

这两天用ecshop制作一个商城站时想把里面的商品属性值做成很多大商城常见的可选择分类那种,搜了不少没有提供这方面教程的,找到的也不能使用。有的都是作为插件卖的,竟然没人分享出来,自己研究了下搞定了,决定在A5免费分享给每位遇到同样问题的朋友,希望能帮助到你。

修改步骤:

1、将下面这个图片上传到 themes/您当前模板/images文件夹里面,这里我命名为test.gif。如果你自己改为其他文件名,那么在下面的修改中就要保持一致。

2、找到 themes/您当前模板/goods.dwt文件,做如下修改:

找到下面这段代码:

<!-- {* 开始循环所有可选属性 *} -->
      <!-- {foreach from=$specification item=spec key=spec_key} -->
      <li class="padd loop">
      <strong>{$spec.name}:</strong><br />
        <!-- {* 判断属性是复选还是单选 *} -->
                    <!-- {if $spec.attr_type eq 1} -->
                      <!-- {if $cfg.goodsattr_style eq 1} -->
                        <!-- {foreach from=$spec.values item=value key=key} -->
                        <label for="spec_value_{$value.id}">
                        <input type="radio" name="spec_{$spec_key}" value="{$value.id}" id="spec_value_{$value.id}" {if $key eq 0}checked{/if} onclick="changePrice()" />
                        {$value.label} [{if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if} {$value.format_price|abs}] </label><br />
                        <!-- {/foreach} -->
                        <input type="hidden" name="spec_list" value="{$key}" />
                        <!-- {else} -->
                        <select name="spec_{$spec_key}" onchange="changePrice()">
                          <!-- {foreach from=$spec.values item=value key=key} -->
                          <option label="{$value.label}" value="{$value.id}">{$value.label} {if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if}{if $value.price neq 0}{$value.format_price}{/if}</option>
                          <!-- {/foreach} -->
                        </select>
                        <input type="hidden" name="spec_list" value="{$key}" />
                      <!-- {/if} -->
                    <!-- {else} -->
                      <!-- {foreach from=$spec.values item=value key=key} -->
                      <label for="spec_value_{$value.id}">
                      <input type="checkbox" name="spec_{$spec_key}" value="{$value.id}" id="spec_value_{$value.id}" onclick="changePrice()" />
                      {$value.label} [{if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if} {$value.format_price|abs}] </label><br />
                      <!-- {/foreach} -->
                      <input type="hidden" name="spec_list" value="{$key}" />
                    <!-- {/if} -->
      </li>
      <!-- {/foreach} -->
      <!-- {* 结束循环可选属性 *} -->

将上面这段代码替换为以下代码 :

<!-- {* 开始循环所有可选属性 *} -->
      <li style="border:1px solid #FBD2D2; float:left; width:315px; margin-left:5px; background:#FCF0F0; padding:10px;">
      <!-- {foreach from=$specification item=spec key=spec_key} -->
      {$spec.name}:
     <div class="catt">
        <!-- {* 判断属性是复选还是单选 *} -->
        <!-- {if $spec.attr_type eq 1} -->
        <!-- {if $cfg.goodsattr_style eq 1} -->
        <!-- {foreach from=$spec.values item=value key=key} -->
        <a {if $key eq 0}class="cattsel"{/if} onclick="changeAtt(this)" href="javascript:;" name="{$value.id}" title="{$value.label}">{$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>
        <!-- {/foreach} -->
        <input type="hidden" name="spec_list" value="{$key}" />
        <!-- {else} -->
        <select name="spec_{$spec_key}">
        <!-- {foreach from=$spec.values item=value key=key} -->
        <option label="{$value.label}" value="{$value.id}">{$value.label} {if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if}{if $value.price neq 0}{$value.format_price}{/if}</option>
        <!-- {/foreach} -->
        </select>
        <input type="hidden" name="spec_list" value="{$key}" />
        <!-- {/if} -->
        <!-- {else} -->
        <!-- {foreach from=$spec.values item=value key=key} -->
        <label for="spec_value_{$value.id}">
        <input type="checkbox" name="spec_{$spec_key}" value="{$value.id}" id="spec_value_{$value.id}" onclick="changePrice()" />
        {$value.label} [{if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if} {$value.format_price|abs}] </label>
        <br />
        <!-- {/foreach} -->
        <input type="hidden" name="spec_list" value="{$key}" />
        <!-- {/if} -->
  </div>
      <!-- {/foreach} -->
      </li>
     <!-- {* 结束循环可选属性 *} -->

再找到下面这段代码:

/**
 * 接收返回的信息
 */
function changePriceResponse(res)
{
  if (res.err_msg.length > 0)
  {
    alert(res.err_msg);
  }
  else
  {
    document.forms['ECS_FORMBUY'].elements['number'].value = res.qty;

if (document.getElementById('ECS_GOODS_AMOUNT'))
      document.getElementById('ECS_GOODS_AMOUNT').innerHTML = res.result;
  }
}

在上面这段代码下增加以下代码:

/**
 * 颜色选择器
 */
function changeAtt(t) {
t.lastChild.checked='checked';
for (var i = 0; i<t.parentNode.childNodes.length;i++) {
        if (t.parentNode.childNodes[i].className == 'cattsel') {
            t.parentNode.childNodes[i].className = '';
        }
    }
t.className = "cattsel";
changePrice();
}

3、打开themes/您当前模板/style.css,将下面的代码增加到最后(如果您的模板调用的css文件不是style.css,那么将下面的代码加到您调用的那个css文件里面去):

/*--------------颜色选择器CSS添加-------------*/
#goodsInfo .catt {width:100%;height:auto;overflow:hidden;padding-bottom:5px;}
#goodsInfo .catt a {border: #c8c9cd 1px solid;text-align: center;background-color: #fff;margin-right:5px;margin-top:6px;padding-left: 10px;padding-right: 10px;display: block;white-space: nowrap;color: #666;text-decoration: none;float:left;}
#goodsInfo .catt a:hover {border:#ff6701 2px solid;margin: -1px;margin-right:4px;margin-top:5px;}
#goodsInfo .catt a:focus {outline-style:none;}
#goodsInfo .catt .cattsel {border:#ff6701 2px solid;margin: -1px;background: url(images/test.gif) no-repeat bottom right;margin-right:4px;margin-top:5px;}
#goodsInfo .catt .cattsel a:hover {border: #ff6701 2px solid;margin:-1px;background: url(images/test.gif) no-repeat bottom right;}
/**/

  好了,更新完毕!然后再说说属性的添加方法:

  1、在后台商品管理下的商品类型里面,先添加您的一个商品类型,比如包包,然后给这个类型添加可能出现的所有属性,比如,颜色和尺寸(需要客户购买时候选择的属性,添加的时候要选择单选属性,然后值选择从列表里面选择),然后把所以可能用到的颜色和尺寸添加到列表里面。

  2、添加或者编辑商品,在商品属性一栏里面选择包包这个类型,然后在根据这个商品的属性,点击颜色和尺寸前面的加号,该商品有几个属性,就新建几个,然后在下拉框里面选择这个商品拥有的属性即可。

  说明:因为每个模板的布局和样式不一样,安装好后,如果样式和您的不是很协调,请自行根据您的模板更改样式。本文由郑州网络公司http://www.xw0371.com旭网科技首发于A5站长网,转载请保留此链接

时间: 2024-08-29 10:43:49

ecshop商品页商品属性分类选择的制作教程的相关文章

ecshop 获取所在商品的顶级分类ID及NAME两种方法

方法一,直接使用php 打开需要获取商品顶级分类的php文件  代码如下 复制代码 $cat_arr = get_parent_cats($goods['cat_id']); foreach ($cat_arr AS $val) {    $goods['topcat_id']=$val['cat_id'];    $goods['topcat_name']=$val['cat_name']; } 方法二,修改成模板标签形式 打开 goods.php 文件, 找到  代码如下 复制代码 $sma

ECSHOP商品页加入购物车弹出层仿淘宝效果

在ECSHOP商品详情页点"加入购物车",直接在当前页弹出一个漂亮的小窗口, 效果如下图: 此方法超级简单,不需要修改php程序,也不需要在ECSHOP模板页预设隐藏层,主要是修改 JS 文件 1.首先将下面四个图片下载到你网站的 /data/images/ 下面 div_bg.gif div_close.gif div_gwc.gif div_hs.gif 2.以下修改以官方默认模板为例,打开 ECSHOP模板文件 /themes/default/goods.dwt 将  代码如下

B2C网站商品页设计理论:相关商品推荐设计

文章描述:B2C网站商品详情页如何设计相关商品推荐? 为什么要做相关商品推荐? 商品详情是可能挖出金子的岛屿,我们都知道. 于是我们使了各种招式,终于让用户来到了商品详情页.我们悄悄念起魔鬼的咒语,恨不得用户马上去点全页最醒目的那个"加入购物车"或"立刻购买".可是,绝大部分B2C商详页的UV转化率不超过5%(何况是PV!),绝大部分用户最终是不会购买这个商品的,有可能他是被大胸的模特图骗进来的,有可能价格不合适,有可能商品细节不喜欢,有可能大多数的好评里有一个让他

大量商品修改商品关键属性

[http://www.aliyun.com/zixun/aggregation/32866.html">亿邦动力网讯]6月23日消息,据亿邦动力网了解,淘宝网近日公布,针对商品的部分关键属性开始进行限制. 淘宝网表示,近期出现的大量商品通过修改商品关键属性的方式获取不良利益的行为,影响了网站的正常秩序,也严重影响了消费者的购物体验.为了保证网站的交易秩序,淘宝网将限制商品的部分关键属性. 据悉,淘宝网将限制商品类型,二手和全新两种商品类型不能进行互转.商家在发布一个商品时商品类型选择&q

Amazon.com的推荐:从商品到商品的协同过滤

原文发表在:Greg Linden, Brent Smith, Jeremy York, "Amazon.com Recommendations: Item-to-Item Collaborative Filtering," IEEE Internet Computing, vol. 7, no. 1, pp. 76-80, Jan./Feb. 2003, doi:10.1109/MIC.2003.1167344 以下全文翻译的PDF点此下载. Amazon.com 的推荐从商品到商品

IOS之UI--小实例项目--添加商品和商品名(使用xib文件终结版) + xib相关知识点总结

添加商品和商品名小项目(使用xib文件终结版) 小贴士:博文末尾有项目源码在百度云备份的下载链接. xib相关知识点总结 01-基本使用 一开始使用xib的时候,如果要使用自定义view的代码,就需要将xib的class设置为那个view的类型,然后我觉得就可以直接使用了,其实不是这样的,还需要代码加载nib文件,并且最后返回数组对象才能使用哦. 关于XIb就看截图ppt 外加截图代码 可以用在自定义控件上 加载xib文件的过程 xib文件 -编译xib成功-> nib文件 加载nib文件的第一

《中国人工智能学会通讯》——11.65 双重代价敏感的属性分类模型

11.65 双重代价敏感的属性分类模型 现有属性学习方法中,所有的目标类通常共享一组公共属性,即这些公共属性构成目标对象的表达特征空间.特别是当对象来自很多目标类时,这种表达方式有利于实现不同类之间的知识共享.然而,利用共享属性表示方法会导致类别不平衡问题.即对于某个特定属性,并非所有的目标类在该属性上都有响应,因此相应属性分类任务很可能面临严重的类别不平衡问题.例如,在 Animals WithAttributes 数据集上进行"Blue"属性分类时,负例样本有 23 353 个,而

html原生dom如何同时根据Id和NAME两个属性进行选择?

问题描述 html原生dom如何同时根据Id和NAME两个属性进行选择? html原生dom如何同时根据Id和NAME两个属性进行选择? 比如我有这么几个input <input id="a" name="h"> <input id="a" name ="j"> <input id="b" name="h" > 我想用原生dom获取第一个input (

php 多属性 分类搜索怎么实现

问题描述 php 多属性 分类搜索怎么实现 类似中关村这种分类搜索. 求大神给指点思路. 解决方案 应该有一张CPU的表,还有一张存放各种分类的表,还有一张 CPU表和各种分类表的映射表,多条件混合查询的时候 查映射表为主表 left join CPU表