还是最近的ecshop二次开发项目,因为涉及到跟财务软件的对接问题,所以要把商品新添加的属性写入到ecs_goods这个表里面,因为新添加的属性也很重要,还要写入到订单表ecs_order_goods中,所以,这次的二次开发很有挑战的,现在说下方法。
1、在数据库ecs_goods新增4个字段,分别为goods_guige,goods_caizhi,goods_biaozhun,goods_changjia。
2、在admin\templates\goods_info.htm 中,添加属性添加及修改代码,为了方便客户填写,我添加到是商品名称的下面,具体添加内容为:
添加后前台效果为:
3、在admin\goods.php里面添加数据库写入代码
搜索 /* 处理商品数据 */ 大约在793行 根据格式复制添加,添加后效果为:
搜索 /* 入库 */ 大约在826行 添加新的数据库字段
在 $sql = “INSERT INTO ” . $ecs->table(‘goods’) . ” ( 后面添加goods_guige,goods_caizhi,goods_biaozhun,goods_changjia,
在”VALUES (‘后面添加 ‘$goods_guige’,’$goods_caizhi’,’$goods_biaozhun’,’$goods_changjia’,
下面还有一处,添加方法跟这边是一样的。填写后的效果为:
蓝色框中为添加的代码:
搜索 $sql = “UPDATE ” . $ecs->table(‘goods’) . ” SET ” . 根据下面的格式填写新的代码,我添加的代码为:
“goods_guige = ‘$goods_guige’, ” .
“goods_caizhi = ‘$goods_caizhi’, ” .
“goods_biaozhun = ‘$goods_biaozhun’, ” .
“goods_changjia = ‘$goods_changjia’, ” .
添加后效果为:
至此,在后台商品编辑出添加的新字段,就可以正常写入数据库了,如果这个字段你想在前台调用的话,直接在模板用$goods.字段名进行调用即可。
以上的方法,网上还是可以找到的,下面把这些字段写入到订单列表里面,网上就绝对没有方法了。
先说一下思路,新添加的商品字段,要想写入到订单数据库,中间必须经过购物车,所以,要现在购物车表ecs_car添加上面的那4个字段,
我添加后的数据表为:
同理,数据要写入订单表,所以也要把4个字段写入到ecs_order_goods里面,为了方便记忆,我写的表的名字都是相同的。
数据库准备好了,下一步开始改代码了。
1、打开includes\lib_order.php
搜索function order_goods($order_id) 大约在467行,在$sql = “SELECT rec_id, goods_id, goods_name,后面添加
goods_guige,goods_caizhi,goods_biaozhun
搜索function cart_goods($type = CART_GENERAL_GOODS),大约在568行,在$sql = “SELECT rec_id, user_id, goods_id, goods_name,后面添加
goods_guige,goods_caizhi,goods_biaozhun
搜索 /* 取得商品信息 */ 在$sql = “SELECT g.goods_name,后面添加
,g.goods_guige,g.goods_caizhi,g.goods_biaozhun
搜索 /* 初始化要插入购物车的基本件数据 */ 大约在1118行,在’goods_name’ => addslashes($goods[‘goods_name’]),下面添加
‘goods_guige’ => addslashes($goods[‘goods_guige’]),
‘goods_caizhi’ => addslashes($goods[‘goods_caizhi’]),
‘goods_biaozhun’ => addslashes($goods[‘goods_biaozhun’]),
‘goods_changjia’ => addslashes($goods[‘goods_changjia’]),
搜索 /* 初始化要插入购物车的基本件数据 */ 在’goods_name’ => addslashes($package[‘package_name’]),后面添加
‘goods_guige’ => ”,
‘goods_caizhi’ => ”,
‘goods_biaozhun’ => ”,
‘goods_changjia’ => ”,
2、打开根目录的flow.php
搜索 /* 插入订单商品 */ 大约在2181行,在2183行”order_id, goods_id, goods_name,后面添加
,goods_guige,goods_caizhi,goods_biaozhun
在” SELECT ‘$new_order_id’, goods_id, goods_name,后面添加
goods_guige,goods_caizhi,goods_biaozhun,goods_changjia
至此,修改完成。测试了一下,商品新添加的字段可以写入到订单表了,感觉太有成就感了。