ecshop商品详情页面属性价格显示其对应价格
- 格式:doc
- 大小:35.50 KB
- 文档页数:3
如何在ECSHOP商品详情页显示同类别下的推荐商品问题描述:商品列表页顶部有一个“精品推荐”,但是在商品详情页默认是没有的,我想在商品详情页也显示该商品所属类别下的“精品推荐”,该如何修改呢??修改方法:注:以下修改方法是在ECSHOP 2.7.2 版官方默认模板基础上实施的。
第一步:修改 goods.php 程序文件找到下面这行代码$smarty->assign('goods_rank', get_goods_rank($goods_id )); // 商品的销售排名然后再这行代码下面增加两行$children = get_children($goods['cat_id']);$smarty->assign('best_goods', get_category_recommen d_goods('best', $children));第2步:修改模板文件 /themes/default/goods.dwt找到 <div class="AreaR">在它下面增加一行代码<!-- #BeginLibraryItem "/library/recommend_best.lbi" --><!-- #EndLibraryItem -->这样修改以后(记得到后台清除缓存),就可以在商品页看到“精品推荐”了,但是默认的最多只显示3个,原因是“关于商品详情页的精品推荐数量”在数据表:ecs_template 里没有相应记录,所以就会取默认值 3 ,那么,我们可以通过修改默认值的方法来达到显示5个或者更多个,如果你想显示大于3个,那么继续进行第3步的修改。
第3步:打开 includes/lib_main.php 文件找到下面这行代码$num = isset($static_page_libs[$template][$lib]) ? $static_page_libs[$template][$lib] : 3;修改为 $num = isset($static_page_libs[$template][$lib]) ? $static_page_libs[$template][$lib] : 5;然后,到后台清除缓存,看看是不是显示5个了。
ecshop商品详细页如何添加“售后服务”、“支付方式”等栏目秦皇岛商之翼旗下ECSHOP开发中心()ecshop默认商品详细页只有‘商品描述’和‘商品属性’2个分类,在有些时候为了更清除描述商品和提供给用户更多的商品信息需要添加其它分类。
ecshop默认的分类做好了切换,所以只需要复制以下代码就可以完成分类的添加。
打开goods.dwt页面,找到如下代码红色部分设置分类名称,复制一个<h2>标签就可以添加一个分类名。
如添加一个名称为‘售后服务’,代码如下<h3 style="padding:0 5px;"><div id="com_b" class="history clearfix"><h2>{$lang.goods_brief}</h2><h2 class="h2bg">{$lang.goods_attr}</h2><!-- {if $package_goods_list} --><h2 class="h2bg" style="color:red;">{$lang.remark_package}</h2><!-- {/if} --><h2 class="h2bg">售后服务</h2></div></h3>class="h2bg"设置选中状态样式分类名称添加了,还需要添加内容才能通过切换浏览到‘售后服务’的内容,找到以下代码<blockquote><table width="100%" border="0" cellpadding="3" cellspacing="1"bgcolor="#dddddd"><!-- {foreach from=$properties item=property_group key=key} --><tr><th colspan="2" bgcolor="#FFFFFF">{$key|escape}</th></tr><!-- {foreach from=$property_group item=property} --><tr><td bgcolor="#FFFFFF" align="left"width="30%"class="f1">[{$|escape:html}]</td><td bgcolor="#FFFFFF" align="left" width="70%">{$property.value}</td></tr><!-- {/foreach}--><!-- {/foreach}--></table></blockquote><blockquote>标签包围的就是切换名称对应的内容,顺序和名称的一样至此全部修改完成其实就是在总类增加个菜单,底部是<blockquote> 调用【ECSHOP开发中心】。
ecshop商品详情页添加任意字段的方法一、在数据库添加字段,会手写的就后台添加,不会就进入phpmyadmin默认的就行。
这是通用的写法ALTER TABLE `kbt_goods` ADD `goods_gift` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL AFTER `is_check` ;表名做下修改即可。
二、修改admin/good.php找到/* 处理商品数据 */$shop_price = !empty($_POST['shop_price']) ? $_POST['shop_price'] : 0;后面依葫芦画瓢添加近自己字段。
找到/* 入库 */if ($is_insert){if ($code == '')同样依葫芦画瓢添加近自己字段,找到"goods_gift = '$goods_gift'," .同样依葫芦画瓢添加近自己字段。
三、修改admin/templates/goods_info.htm在合适的地方添加,如果想在编辑商品—其他信息处添加,找到{if $code eq ''}{$b_goods_gift}{/if}添加{$b_goods_sz}四、修改模板在合适的地方添加:如果想在商品重量下添加查找{$goods.goods_weight}在下面添加{$lang.goods_sz}{$goods.goods_sz}自己修改相应字段。
五、基本到位,下面就是修改下语言项,不想修改也可以,将{$lang.goods_sz}、{$b_goods_sz}改成自己需要的个汉字即可。
ecshop商品详细页显示销量和商品评论数量的方法ecshop商品详细页显示销量和商品评论数量的方法第一步:.在ecshop程序goods.php页面最下面加入这两个函数function get_buy_sum($goods_id){$sql = 'SELECT IFNULL(SUM(g.goods_number), 0) ' .'FROM ' . $GLOBALS['ecs']->table('order_info') . ' AS o, ' .$GLOBALS['ecs']->table('order_goods') . ' AS g ' ."WHERE o.order_id = g.order_id " ."AND o.order_status = '" . OS_CONFIRMED . "' " ."AND o.shipping_status " .db_create_in(array(SS_SHIPPED, SS_RECEIVED)) ." AND o.pay_status " .db_create_in(array(PS_PAYED, PS_PAYING)) ." AND g.goods_id = '$goods_id'";return $GLOBALS['db']->getOne($sql);}function get_comment_num($goods_id) {$sql= "select count(*) from".$GLOBALS['ecs']->table('comment')." whereid_value='".$goods_id."' AND status = 1";return $GLOBALS['db']->getOne($sql);} ecshop商品详细页显示销量和商品评论数量的方法第二步:.在ecshop程序goods.php中加入$smarty->assign('buy_num',get_buy_sum($goods_id));$smar ty->assign('comment_num',get_comment_num($goods_id)); 在$smarty->display('goods.dwt', $cache_id);之前哈!ecshop商品详细页显示销量和商品评论数量的方法第三步:.ecshop模板中的goods.dwt文件中加这个,大概在221行<!-- {if $buy_num} 已出售量--><li class="clearfix"><dd><strong>累计售出:</strong>{$buy_num}</dd></li><!--{/if}--><!-- {if $comment_num} 评论数量--><li class="clearfix"><dd><strong>评论数量:</strong><a href="#comment">{$comment_num}</a></dd></li><!--{/if}-->。
Ecshop教程_在首页或列表页显示商品简单描述
熟悉ECSHOP的朋友都知道,在后台商品编辑的地方有一个录入“商品简单描述”的框框,
但是录入的“商品简单描述”没有很好的在前台显示出来,而只是在商品详细页的 description 里,供搜索引擎读取。
有用户问了,我想在其他页面(例如首页或者列表页)把这个“商品简单描述”显示出来,该怎么办呢?
下面说一下修改教程(以 2.7.2版官方默认模板为例):
1、在ECSHOP首页显示商品简单描述:
依次打开/themes/default/library/recommend_hot.lbi ,/themes/default/library/recommend_new.lbi ,/themes/default/library/recommend_best.lbi 文件
对每个文件都执行如下操作:
找到
在它上面增加一行
再打开/themes/default/library/recommend_promotion.lbi 文件
找到
在它上边增加一行
2、在ECSHOP列表页显示商品简单描述:
关于列表页,显示模式为“list” 和“text” 的时候,已经有“商品简单描述” 的显示了。
只是在显示模式为“grid”的时候没有显示罢了,下面给“grid” 模式也增加一下:
打开 /themes/default/library/goods_list.lbi 文件
找到
在它下面增加。
修改ECSHOP的广告链接地址,去掉affiche.php改为直连ECSHOP的广告链接地址形式为“affiche.php?ad_id=1&uri=http%3A%2F%”它中间用affiche.php 做了一个过渡,目的在于统计广告效果等。
有些站长觉得这种链接地址看上去很别扭,而且不利于SEO, 想改成直接的形式,也就是后台设置的是什么链接地址,就直接打开什么链接地址。
可以这样来修改:打开/includes/lib_insert.php 文件找到$ads[] = "<a href='affiche.php?ad_id=$row[ad_id]&uri=" .urlencode($row["ad_link"]). "'修改为$ads[] = "<a href='" .$row["ad_link"]. "'注意:一共有两处都要修改在ECSHOP首页的每个商品下显示商品货号ECSHOP首页有很多种商品,包括今日特价、精品推荐、新品上市、热卖商品、分类商品等,这里只讲解在“精品推荐、新品上市、热卖商品”三个栏目的商品下面显示商品货号的方法。
第一步:修改 includes/lib_goods.php文件找到下面代码第二步:找到$goods[$idx]['brand_name'] = isset($goods_data['brand'][$row['goods_id']]) ?$goods_data['brand'][$row['goods_id']] : '';在它上边增加一行代码$goods[$idx]['goods_sn'] = $row['goods_sn'];第三步:修改模板文件,这里以官方默认模板为例依次打开下面三个文件:/themes/default/library/recommend_best.lbi,/themes/default/library/recommend_new.lbi,/themes/default/library/recommend_hot.lbi在每一个文件的<p><a href="{$goods.url}" title="{$|escape:html}">{$goods.short_style_name}</a></p> 上边增加一行代码:<p>商品货号:{$goods.goods_sn}</p>在ECSHOP销售排行中显示会员价格的方法有的用户可能已经发现了,在ECSHOP的销售排行中,任何情况下只显示了一个“本店售价”。
ECSHOP数据表字段说明s_account_log //用户账目日志表s_ad //广告表(位置,类型,名称,链接,图片,开始,结束,广告主相关信息,点击是否显示)s_ad_position //广告位(名称,宽,高,描述,样式)s_admin_action //管理权限分配(父类ID,权限代码)s_admin_log //管理日志(登陆时间,登陆ID,操作描述,IP)s_admin_message //管理留言(发送id,接收id,发送日期,阅读日期,是否已读,是否删除,标题,内容)s_admin_user //管理员管理(用户名,email,密码,加入时间,最后登陆时间,最后登陆IP,权限等)s_adsense //广告相关统计(来源广告,来源位置,点击)s_affiliate_log // 管理日志(登陆时间,登录管理员ID,操作描述,IP)s_agency //广告相关统计(来源广告,来源位置,点击)s_area_region //配送区域关联(配送区域ID,具体地址ID)s_article //文章(分类ID,标题,内容,作者,作者email,关键字, 类型,是否显示,添加时间,文件地址,打开类型)s_article_cat //文章分类(名称,类型,关键字,描述,排序,是否导航显示)s_attribute //文章(分类ID,标题,内容, 作者, 作者email,关键字,类型,是否显示)s_auction_log //商品拍卖表s_auto_manage //推广链接的记录信息s_bonus_type //红包(名称,金额, 发放起日期,发放结束期,使用起始日期, 使用结束日期, 发放类型, 金额下限,(按订单发放),金额上限)s_booking_goods //缺货登记(登记用户ID,email,电话,商品ID,描述,数量,登记时间,是否已处理,处理管理员,处理时间,处理备注)s_brand //品牌(名称,logo,描述, 链接,排序,是否显示)s_card // 祝福贺卡(名称,图片,费用,免费额度,描述)s_cart//购物车(用户ID,session_id,商品ID,商品编号,商品名称,市场价,购买价,数量,属性,是否真实商品,扩展代码,父类ID, 类型,是否赠品,能否处理)s_category //商品分类(名称,关键字,描述,父类ID,排序,是否有子类,模板文件,数量单位,是否导航显示)s_collect_goods //收藏(用户ID,商品ID,收藏时间)s_comment //评论(类型,类型ID,email,用户名,内容,评星,添加时间,IP,状态, 父类ID)s_cronss_email_lists_email_sendlists_error_logs_favourable_activitys_feedback //用户留言(父类ID,用户ID,用户名,内容,评星,添加时间,IP,状态,父类ID)s_friend_link//友情链接(名称,链接,logo,排序)s_goods //商品(分类ID,名称,点击,品牌ID,供应商名称,库存,重量,市场价,售价,fitting_price(?), 促销开始日期,结束日期, 警告数量,关键字, 简介,描述,缩略图,图, 原图,是否成为赠品,扩展代码,是否上架,是否单独销售,是否关联,配件关联,是否赠品,能否世为赠品,单位,添加时间,排序,是否回收,精品,新品,推荐,热销,红包ID,更新日期,商品类型, 商品备注,首页轮播)s_goods_activitys_goods_article //商品文章关联(gid,aid)s_goods_attr //商品属性(商品ID,图片,描述,缩略图, 原图)s_goods_cats_goods_gallery //商品相册(商品ID,图片,描述,缩略图,原图)s_goods_type //商品类型(名称,状态)s_group_goodss_keywordss_link_goods //商品关联(商品ID,关联ID,单双向)s_mail_templates //邮件样式(代码,是否html,名称, 样式,最后修改日期)s_member_price //会员价(商品ID,会员等级,会员价)s_navs_order_action //订单处理(订单ID,商品ID,商品名称,商品编号,商品数量,市场价,订单价,商品属性,配送数量,是否真实商品,扩展代码,父类ID,是否赠品)s_order_goods //订单一商品(订单ID,商品ID,商品名称,商品编号,商品数量,市场价,订单价,商品属性,配送数量,是否真实商品,扩展代码, 父类ID,是否赠品)s_order_info //订单详细信息s_pack // 包装(名称,图片,费用,免费额,描述)s_pay_log //支付记录s_payment //支付工具(代码,名称,费用,描述,排序, 配置,状态,is_cod(?))s_plugins //插件(代码,版本,库,签名, 安装日期)s_region //地方数据s_searchengines_sessions //保存session的s_sessions_datas_shipping //配送(代码,名称,描述,保价费,状态)s_shipping_area //配送区域(序列配置)s_shop_config //设置(父类ID,代码,类型,范围,文件夹,值)s_snatch_log // 夺宝奇兵出价记录s_stats //访问记录(时间,IP,访问次数,浏览器,系统,语言,地区,来源域名,来源地址,关键字,进入链接)s_tag //用户标签s_template //模板区域(文件名,区域,模板库,排序,id,数量,类型,模板)s_topics_user_account //会员账户(用户ID,管理员,总额,添加时间,支付时间,管理备注,用户备注,处理类型,支付工具,是否支付)s_user_addresss_user_bonuss_user_ranks_userss_virtual_cards_votes_vote_logs_vote_options_wholesale案例网站:/。
Ecshop商品详情页面属性价格显示其对应价格
ECSHOP开发中心()
ecshop默认的商品属性显示的是加多少钱
第一步:在lib_goods.php中找到
function get_goods_properties 方法
将下面的get_goods_properties方法覆盖掉原来的get_goods_properties方法
/**
* 获得商品的属性和规格
*
* @access public
* @param integer $goods_id
* @return array
*/
//yyy修改start
function get_goods_properties($goods_id , $shop_price=0)
//yyy修改end
{
/* 对属性进行重新排序和分组*/
$sql = "SELECT attr_group ".
"FROM " . $GLOBALS['ecs']->table('goods_type') . " AS gt, " .
$GLOBALS['ecs']->table('goods') . " AS g ".
"WHERE g.goods_id='$goods_id' AND gt.cat_id=g.goods_type";
$grp = $GLOBALS['db']->getOne($sql);
if (!empty($grp))
{
$groups = explode("\n", strtr($grp, "\r", ''));
}
/* 获得商品的规格*/
$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 " .
'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' .
"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'];
//yyy修改start
$arr['spe'][$row['attr_id']]['values'][] = array(
'label' => $row['attr_value'],
'price' => $row['attr_price'],
'format_price' => price_format(abs($row['attr_price']) + $shop_price, false),'id' => $row['goods_attr_id']);//yyy修改end
}
if ($row['is_linked'] == 1)
{
/* 如果该属性需要关联,先保存下来*/
$arr['lnk'][$row['attr_id']]['name'] = $row['attr_name'];
$arr['lnk'][$row['attr_id']]['value'] = $row['attr_value'];
}
}
return $arr;
}
第二步:修改goods.php
首先搜索$properties = get_goods_properties($goods_id); // 获得商品的规格和属性
将这句话修改为
$properties = get_goods_properties($goods_id, $goods['shop_price']); // 获得商品的规格和属性
第三步:修改模版文件themes/模版名称/goods.dwt
搜索{$lang.plus} 和{$lang.minus} 将搜索出来的这两个变量全部删掉
(说明:不用改原来的数据。
不过后台添加商品的时候还是要将属性的价钱编辑为加多少钱。
比如原价是160 2磅是300 那么2磅对应的价格设置为140)
【转载请注明:ECSHOP开发中心】。