#210 개별배송비 계산 코드 추가

This commit is contained in:
chicpro
2013-06-13 10:57:37 +09:00
parent c38c77fc75
commit bb013bbdd8
3 changed files with 25 additions and 30 deletions

View File

@ -1177,7 +1177,7 @@ function get_item_point($it)
} }
// 상품별 배송비 // 상품별 배송비
function get_item_sendcost($it_id, $uq_id) function get_item_sendcost($it_id, $price, $qty)
{ {
global $g4, $default; global $g4, $default;
@ -1193,31 +1193,17 @@ function get_item_sendcost($it_id, $uq_id)
if($it['it_sc_type']) { if($it['it_sc_type']) {
if($it['it_sc_type'] == 1) { // 조건부무료 if($it['it_sc_type'] == 1) { // 조건부무료
$sql = " select SUM( IF(io_type = '1', io_price * ct_qty, (ct_price + io_price) * ct_qty)) as sum_price if($price >= $it['it_sc_minimum'])
from {$g4['shop_cart_table']}
where uq_id = '$uq_id'
and it_id = '$it_id' ";
$ct = sql_fetch($sql);
$item_price = $ct['sum_price'];
if($item_price >= $it['it_sc_minimum'])
$sendcost = 0; $sendcost = 0;
else else
$sendcost = $it['it_sc_amount']; $sendcost = $it['it_sc_amount'];
} else if($it['it_sc_type'] == 2) { // 유료배송 } else if($it['it_sc_type'] == 2) { // 유료배송
$sendcost = $it['it_sc_amount']; $sendcost = $it['it_sc_amount'];
} else { // 수량별 부과 } else { // 수량별 부과
$sql = " select SUM(ct_qty) as item_count
from {$g4['shop_cart_table']}
where uq_id = '$uq_id'
and it_id = '$it_id' ";
$ct = sql_fetch($sql);
$item_count = $ct['item_count'];
if(!$it['it_sc_qty']) if(!$it['it_sc_qty'])
$it['it_sc_qty'] = 1; $it['it_sc_qty'] = 1;
$q = ceil((int)$item_count / (int)$it['it_sc_qty']); $q = ceil((int)$qty / (int)$it['it_sc_qty']);
$sendcost = (int)$it['it_sc_amount'] * $q; $sendcost = (int)$it['it_sc_amount'] * $q;
} }
} else { } else {

View File

@ -46,7 +46,7 @@ include_once(G4_MSHOP_PATH.'/_head.php');
$sql .= " order by a.ct_id "; $sql .= " order by a.ct_id ";
$result = sql_query($sql); $result = sql_query($sql);
$good_info = ''; $it_send_cost = 0;
for ($i=0; $row=mysql_fetch_array($result); $i++) for ($i=0; $row=mysql_fetch_array($result); $i++)
{ {
@ -74,6 +74,11 @@ include_once(G4_MSHOP_PATH.'/_head.php');
$it_name .= '<div class="sod_bsk_itopt">'.$it_options.'</div>'; $it_name .= '<div class="sod_bsk_itopt">'.$it_options.'</div>';
} }
// 개별배송비 계산
if($default['de_send_cost_case'] == '개별') {
$it_send_cost += get_item_sendcost($row['it_id'], $sum['price'], $sum['qty']);
}
$point = $sum['point']; $point = $sum['point'];
$sell_amount = $sum['price']; $sell_amount = $sum['price'];
?> ?>
@ -104,18 +109,20 @@ include_once(G4_MSHOP_PATH.'/_head.php');
// 배송비 계산 // 배송비 계산
if ($default['de_send_cost_case'] == '없음') if ($default['de_send_cost_case'] == '없음')
$send_cost = 0; $send_cost = 0;
else { else if($default['de_send_cost_case'] == '상한') {
// 배송비 상한 : 여러단계의 배송비 적용 가능 // 배송비 상한 : 여러단계의 배송비 적용 가능
$send_cost_limit = explode(";", $default['de_send_cost_limit']); $send_cost_limit = explode(";", $default['de_send_cost_limit']);
$send_cost_list = explode(";", $default['de_send_cost_list']); $send_cost_list = explode(";", $default['de_send_cost_list']);
$send_cost = 0; $send_cost = 0;
for ($k=0; $k<count($send_cost_limit); $k++) { for ($k=0; $k<count($send_cost_limit); $k++) {
// 총판매금액이 배송비 상한가 보다 작다면 // 총판매금액이 배송비 상한가 보다 작다면
if ($tot_sell_amount < $send_cost_limit[$k]) { if ($tot_sell_amount < preg_replace('/[^0-9]/', '', $send_cost_limit[$k])) {
$send_cost = $send_cost_list[$k]; $send_cost = preg_replace('/[^0-9]/', '', $send_cost_list[$k]);
break; break;
} }
} }
} else {
$send_cost = $it_send_cost;
} }
} }
?> ?>

View File

@ -64,9 +64,6 @@ include_once('./_head.php');
$tot_sell_amount = 0; $tot_sell_amount = 0;
$tot_cancel_amount = 0; $tot_cancel_amount = 0;
$goods = $goods_it_id = "";
$goods_count = -1;
// $s_uq_id 로 현재 장바구니 자료 쿼리 // $s_uq_id 로 현재 장바구니 자료 쿼리
$sql = " select a.ct_id, $sql = " select a.ct_id,
a.it_id, a.it_id,
@ -88,7 +85,7 @@ include_once('./_head.php');
$sql .= " order by a.ct_id "; $sql .= " order by a.ct_id ";
$result = sql_query($sql); $result = sql_query($sql);
$good_info = ''; $it_send_cost = 0;
for ($i=0; $row=mysql_fetch_array($result); $i++) for ($i=0; $row=mysql_fetch_array($result); $i++)
{ {
@ -116,6 +113,11 @@ include_once('./_head.php');
$it_name .= '<div class="sod_bsk_itopt">'.$it_options.'</div>'; $it_name .= '<div class="sod_bsk_itopt">'.$it_options.'</div>';
} }
// 개별배송비 계산
if($default['de_send_cost_case'] == '개별') {
$it_send_cost += get_item_sendcost($row['it_id'], $sum['price'], $sum['qty']);
}
$point = $sum['point']; $point = $sum['point'];
$sell_amount = $sum['price']; $sell_amount = $sum['price'];
?> ?>
@ -153,26 +155,26 @@ include_once('./_head.php');
// 배송비 계산 // 배송비 계산
if ($default['de_send_cost_case'] == '없음') if ($default['de_send_cost_case'] == '없음')
$send_cost = 0; $send_cost = 0;
else { else if($default['de_send_cost_case'] == '상한') {
// 배송비 상한 : 여러단계의 배송비 적용 가능 // 배송비 상한 : 여러단계의 배송비 적용 가능
$send_cost_limit = explode(";", $default['de_send_cost_limit']); $send_cost_limit = explode(";", $default['de_send_cost_limit']);
$send_cost_list = explode(";", $default['de_send_cost_list']); $send_cost_list = explode(";", $default['de_send_cost_list']);
$send_cost = 0; $send_cost = 0;
for ($k=0; $k<count($send_cost_limit); $k++) { for ($k=0; $k<count($send_cost_limit); $k++) {
// 총판매금액이 배송비 상한가 보다 작다면 // 총판매금액이 배송비 상한가 보다 작다면
if ($tot_sell_amount < $send_cost_limit[$k]) { if ($tot_sell_amount < preg_replace('/[^0-9]/', '', $send_cost_limit[$k])) {
$send_cost = $send_cost_list[$k]; $send_cost = preg_replace('/[^0-9]/', '', $send_cost_list[$k]);
break; break;
} }
} }
} else { // 개별배송
$send_cost = $it_send_cost;
} }
} }
?> ?>
</tbody> </tbody>
</table> </table>
<?php if ($goods_count) $goods .= ' 외 '.$goods_count.'건'; ?>
<?php <?php
// 배송비가 0 보다 크다면 (있다면) // 배송비가 0 보다 크다면 (있다면)
if ($send_cost > 0) if ($send_cost > 0)