给zencart产品增加新字段的方法

2017-02-23 18:04:04 ZenCart
经常遇到一些产品具有很丰富的信息,可zencart后台添加产品的时候,就只有那么几个字段。例如产品model,产品库存等等。
想给某个产品定制一个像magento一样的短描述功能,或者想显示该产品在亚马逊上的链接。
这个方法就派上用场了。
我这里讲的就是如何给产品添加一个product_color字段。
1,先去phpmyadmin,找到你网站的数据库,然后找到products表,给该表添加一个product_color字段,不会用sql语句的可手动添加。

2,编辑文件admin/includes/modules/product/collect_info.php
①在文件最开始有一个$parameters数组参数的地方,将
'products_color' => ''
添加到最后。
②然后紧接着下面有一个$product的数据查询,将
p.products_color
添加到from前面。
③最后再添加字段输入框,大约在450行附近,具体看自己文件的行数
<TR>   
<TD class=main>Color</TD>   
<TD class=main><?php echo zen_draw_separator('pixel_trans.gif', '24', '15') . ' ' . zen_draw_input_field('products_color', $pInfo->products_color, zen_set_field_length(TABLE_PRODUCTS, 'products_color')); ?></TD>   
</TR>  

3,编辑文件admin/includes/modules/product/preview_info.php
在文件的最开始,找到$product的定义,然后在这段语句的form钱面添加查询字段
p.products_color

4,继续编辑文件admin/includes/modules/update_product.php
在文件的最开始,找到$sql_data_array变量的定义,然后在这段语句的结尾添加
'products_color' => zen_db_prepare_input($_POST['products_color']),

5,编辑前台文件includes/modules/pages/product_info/main_template_vars.php
在文件的第41行,找到$sql变量的定义,然后在整段语句的from前面添加查询字段
p.products_color

6,终于到最后一步了,前台调用显示刚添加的字段。
在文件includes/templates/你的模板/templates/tpl_product_info_display.php中你想要显示的位置,添加字段
echo $product_info->fields['products_color'];
大功告成,觉得有趣的可以自己试试,亲测有效哦,并没有盲目的转载。如果测试还有问题的,请查看根目录的logs错误日志进行调试!
--------------------------------------------2014年5月4日更新------------------------------------------
上面只是讲了怎样在产品详细页面显示出该字段,很多对前台界面要求很高的朋友希望在产品列表页面也显示出该字段来,其实只要懂这个原理就会明白这没什么难的,下面写给动手能力差的朋友们:
1,打开文件includes\index_filters\default_filter.php
这个文件中有4处名为$listing_sql的sql查询语句,找到4处,在每一段sql中的from前面加上p.products_color, (注意sql格式,少个逗号,多个逗号都会出现致命错误!)
2,打开列表页面布局文件 includes\modules\product_listing.php
在相应的地方加上  $listing->fields['products_color']  这段代码就会显示出对应的文字来.