고도몰 시즌4 상세페이지 옵션별 가격이 다른 경우 선택한 옵션의 가격으로 변경되도록 하려면

Posted by mmonpie
2015. 1. 9. 04:05 쇼핑몰
독립형만 가능.

1. /shop/data/skin/스킨이름/outline/_header.htm 수정
euc-kr을 utf-8로 변경
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="{_meta_title}" />
<meta name="keywords" content="{_meta_keywords}" />
<title>{_meta_title}</title>

2. /shop/goods/ajax_chOption.php 파일 생성
<?
include "../_header.php";

$key = iconv("utf-8","euc-kr",$_POST['key']);
$key_arr = explode("|",$key);
$key_code1 = get_js_compatible_key($key_arr[0]);
$key_code2 = get_js_compatible_key($key_arr[1]);
if($key_code2){
	$key_code = $key_code1."|".$key_code2;
}else{
	$key_code = $key_code1;
}

echo "[{'code' : '$key_code','key' : '$key'}]";
?>


3. /shop/data/skin/스킨이름/goods/goods_view.htm 수정

130 라인 근처

수정 전

function chkOption(obj)
{
	if (!selectDisabled(obj)) return false;
}

수정 후
function chkOption(obj)
{
	if (!selectDisabled(obj)) return false;	

	var opt = document.getElementsByName('opt[]');
	var opt1 = opt[0].value;
	var opt2 = '';
	if (typeof(opt[1])!="undefined") opt2 = "|" + opt[1].value;
	var key = opt1 + opt2;
	if (opt[0].selectedIndex == 0) key = fkey;
	key = key.replace('"','"');

	jQuery.post('./ajax_chOption.php', {key:key}, function(result){
		var data = eval('(' + result + ')');

		key = data[0].code;

		if (typeof(price[key])!="undefined"){
			
			var price_key = price[key];
			var consumer_key = consumer[key];
			var dc_rate = Math.round(((consumer_key-price_key)/consumer_key)*100);

			document.getElementById('dc_rate').innerHTML = comma(dc_rate);
			document.getElementById('price').innerHTML = comma(price[key]);
			document.getElementById('reserve').innerHTML = comma(reserve[key]);
			if(document.getElementById('consumer'))
			  document.getElementById('consumer').innerHTML = comma(consumer[key]);
			if(document.getElementById('obj_realprice'))
			  document.getElementById('obj_realprice').innerHTML = comma(realprice[key]) +'원 (-'+comma(memberdc[key])+'원)';
			if(document.getElementById('obj_coupon'))
			  document.getElementById('obj_coupon').innerHTML = comma( couponprice[key]) +'원 (-'+comma(coupon[key])+'원)';
			if(document.getElementById('obj_coupon_emoney'))
			  document.getElementById('obj_coupon_emoney').innerHTML = comma(cemoney[key]);
		}
	});
}


dc_rate 은 할인율을 표시하기 위해서 추가한 내용인데 이를 사용하려면

414라인 근처

수정 전

	<tr>
		<th>판매가격 :</th>
		<td>
		<b><span id=price>{=number_format(price)}</span>원</b>
		</td>
	</tr>

수정 후
	<tr>
		<th>판매가격 :</th>
		<td>
		<b><span id=price>{=number_format(price)}</span>원</b> ( <span id="dc_rate" style="color:#e0258a; font-weight:bold;">{=round(((consumer-price)/consumer)*100)}</span>% 할인)
		</td>
	</tr>