ecshop用户进行一连串的选择,以后产品的价格发生了变化,分支超级多,无法用自带的属性搞定了。
lib_order.php
35
while ($row = $GLOBALS['db']->fetchRow($res))
{
if($row['attr_itype']==3)
{
$attr_price = round(floatval($row['attr_price']), 2);
$attr .= sprintf($fmt, $row['attr_name'], $row['attr_value'], $desc[$i]);
$i++;
}elseif($row['attr_itype']==4){
$attr_price = round($desc[$i]); //$descp[$i] 传过来大树的id,反推价格,目前直接用个费用来表示。输入多少钱,就是多少钱。这么处理似乎仅仅解决了展示问题。实际计算在其他地方
$attr .= sprintf($fmt2, $row['attr_name'], $row['attr_value'],$attr_price);
}
else
{
$attr_price = round(floatval($row['attr_price']), 2);
$attr .= sprintf($fmt2, $row['attr_name'], $row['attr_value'],$attr_price);
}
}
价格在 942 spec_price($spec)
修改为 function spec_price($spec,$desc='') 951
$add_price = intval($desc[1]);//实际运算,改成树的ID,然后去数据库匹配价格。注意价格应该用floatval 函数格式化
970
$price = floatval($GLOBALS['db']->getOne($sql)) + $add_price;
属性计算的价格都全部加上了。
修改 lib_order.php $spec_price = spec_price($spec); $spec_price = spec_price($spec,$desc); 1151
$goods_price = get_final_price($goods_id, $num, true, $spec);
$goods_price = get_final_price($goods_id, $num, true, $spec,$desc);
lib_common.php function get_final_price($goods_id, $goods_num = '1', $is_spec_price = false, $spec = array()) function get_final_price($goods_id, $goods_num = '1', $is_spec_price = false, $spec = array(),$desc = array()) 2342
$spec_price = spec_price($spec);
$spec_price = spec_price($spec,$desc);
lib_order.php 1284
$goods_price = get_final_price($goods_id, $num, true, $spec);
$goods_price = get_final_price($goods_id, $num, true, $spec,$desc);
1302
$goods_price = get_final_price($goods_id, $num, true, $spec);
$goods_price = get_final_price($goods_id, $num, true, $spec,$desc);
结算,不用改,购物车的钱,对了,就都对了。
lib_order.php 此处不用改。留个记录。 购物数量更新会出错,还原了之前的价格,先限制不能修改数量。 (责任编辑:好模板) |


ecshop简洁通用外贸模板
人气:1429
shopex仿好乐买模板
人气:749
火红大气模板之shopex免费
人气:3884
ecshop仿红孩子母婴用品商
人气:1177
绿色asp企业网站源码生成
人气:404
织梦蓝色轴承机械五金模
人气:524