Browse Source

모바일 딜 상품 상세

eskim 5 years ago
parent
commit
870320c809

+ 18 - 0
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -1200,6 +1200,24 @@ public class TsfGoodsController extends TsfBaseController {
 		return result;
 	}
 
+	/**
+	 * 상품 옵션1 목록
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @since 2021. 3. 24
+	 */
+	@PostMapping("/detail/compsGoods/list")
+	@ResponseBody
+	public GagaMap getDealCompsGoodsList(@RequestBody Goods goods) {
+
+		GagaMap result = new GagaMap();
+		goods.setSiteCd(TscConstants.Site.STYLE24.value());
+		result.set("dataList", goodsService.getGoodsDealComposeList(goods));
+
+		return result;
+	}
+
 	/**
 	 * 상품 옵션1 목록
 	 * @param goods

+ 14 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -484,7 +484,7 @@
 		     , G.SELF_GOODS_YN
 		     , DATE_FORMAT(G.SELL_STDT ,'%Y%m%d%H%i%S') AS SELL_STDT
 		     , DATE_FORMAT(G.SELL_EDDT ,'%Y%m%d%H%i%S') AS SELL_EDDT
-		     , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD, G.CURR_PRICE,#{custGb}) AS CURR_PRICE
+		     , FN_GET_APPLY_CPN1_PRICE(G.GOODS_CD, #{frontGb})  AS CURR_PRICE
 		     , (CASE WHEN D.DISP_NM_LANG = 'EN' THEN D.BRAND_GROUP_ENM ELSE D.BRAND_GROUP_KNM END) AS BRAND_GROUP_NM
 		     , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
 		     , (SELECT IFNULL(MAX(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
@@ -511,6 +511,11 @@
 		AND C.USE_YN = 'Y'
 		ORDER BY C.DISP_ORD
 		) Z
+		WHERE 1 = 1
+		<if test='optionSoldoutSkip != null and optionSoldoutSkip == "Y" '>
+		AND STOCK_QTY > 0
+		AND GOODS_STAT = 'G008_90'
+		</if>
 		LIMIT 200
 	</select>
 	
@@ -1004,7 +1009,14 @@
 		     , A.COMPS_CURR_PRICE
 		     , FN_GET_CODE_NM('G073',G.GOODS_GB) AS GOODS_GB_NM
 		     , FN_GET_CODE_NM('G076',G.ORIGIN_CD) AS ORIGIN_NM
-		      , (CASE WHEN D.DISP_NM_LANG = 'EN' THEN D.BRAND_GROUP_ENM ELSE D.BRAND_GROUP_KNM END) AS BRAND_GROUP_NM
+		     , (CASE WHEN D.DISP_NM_LANG = 'EN' THEN D.BRAND_GROUP_ENM ELSE D.BRAND_GROUP_KNM END) AS BRAND_GROUP_NM
+		     , (SELECT IFNULL(MAX(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
+		                          ELSE CURR_STOCK_QTY
+		                          END) ,0)
+		        FROM  VW_STOCK
+		        WHERE GOODS_CD = G.GOODS_CD
+		        GROUP BY GOODS_CD 
+		        ) AS STOCK_QTY 
 		FROM TB_GOODS_COMPOSE A
 		INNER JOIN TB_GOODS G ON A.COMPS_GOODS_CD = G.GOODS_CD
 		                      AND G.SELF_MALL_YN = 'Y' -- 자사몰 노출

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/common/fragments/GnbSubGoodsMob.html

@@ -29,7 +29,7 @@
 						<img src="/images/mo/ico_btn_search.png" alt="검색">
 					</button>
 					<button class="store" onclick="cfnGoToPage(_PAGE_CART);">
-						<img src="/images/mo/ico_btn_store_w.png" alt="쇼핑백">
+						<img src="/images/mo/ico_btn_store.png" alt="쇼핑백">
 						<span id="spanGnbCartCnt" style="display: none;"></span>
 					</button>
 				</div>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/common/fragments/GnbSubPlanningMob.html

@@ -27,7 +27,7 @@
 					<img src="/images/mo/ico_btn_search.png" alt="검색">
 				</button>
 				<button class="store" onclick="cfnGoToPage(_PAGE_CART);">
-					<img src="/images/mo/ico_btn_store_w.png" alt="쇼핑백">
+					<img src="/images/mo/ico_btn_store.png" alt="쇼핑백">
 					<span id="spanGnbCartCnt" style="display: none;"></span>
 				</button>
 			</div>

+ 324 - 172
src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html

@@ -18,6 +18,24 @@
  -->
 <body>
 <th:block layout:fragment="content">
+<form name="cartForm" id="cartForm" method="post">
+		<input type="hidden" name="mode">
+		<input type="hidden" name="goodsCd" th:value="${params.goodsCd}" />
+		<input type="hidden" name="contentsLoc" th:value="${params.contentsLoc}" />
+		<input type="hidden" name="ithrCd"  th:value="${params.ithrCd}" />
+		<input type="hidden" name="planDtlSq" th:value="${params.planDtlSq}" />
+		<input type="hidden" name="adminYn" th:value="${params.adminYn}" />
+		<input type="hidden" name="optCd" />
+		<input type="hidden" name="optCd1" />
+		<input type="hidden" name="optCd2" />
+		<input type="hidden" name="addPrice" />
+		<input type="hidden" name="ordQty" />
+		<input type="hidden" name="stock" />
+		<input type="hidden" name="minOrdQty"/>
+		<input type="hidden" name="maxOrdQty"/>
+		<input type="hidden" name="currPrice" th:value="${goodsInfo.currPrice}"/>
+		<input type="hidden" name="goodsType" th:value="${goodsInfo.goodsType}"/>
+		<input type="hidden" name="selfGoodsYn" th:value="${goodsInfo.selfGoodsYn}"/>
 <main role="" id="" class="container pd deal" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
 
 	<!-- ★ 컨텐츠 시작 -->
@@ -173,15 +191,15 @@
 										<span class="title">옵션선택</span>
 										<div class="check_excluding form_field">
 											<div>
-												<input id="excluding" type="checkbox" onclick='getGuidance(event)'><label for="excluding"> <span>품절제외</span> </label>
+												<input id="soldoutSkipYn" name="soldoutSkipYn" type="checkbox" value="Y" th:onclick="fnDealCompsGoods('Up',[[${goodsInfo.goodsCd}]]);"><label for="soldoutSkipYn"><span>품절제외</span> </label>
 											</div>
 											<div class="guidance" >
 												<!--210409_ 추가 : .guidance에 .ontoast 추가 시, toast 팝업 작동 -->
-												<p><span>99</span>개 품절 옵션이 제외되었습니다</p>
+												<p>품절 옵션이 제외되었습니다</p>
 											</div>
 											<script>
-												function getGuidance(event)  {
-													if(event.target.checked){
+												function getGuidance()  {
+													if($('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked")){
 														$(".guidance").addClass("ontoast");
 														setTimeout(function(){$(".guidance").removeClass("ontoast");}, 5000);
 													}
@@ -189,11 +207,11 @@
 											</script>
 										</div>
 									</div>
-									<form class="form_wrap">
-										<div class="form_field mb20">
+									<div class="form_wrap">
+										<div class="form_field mb20" id="form_field_item_Up">
 											<div class="select_custom deal_opt_item"> <!-- active -->
 												<div class="combo">
-													<div class="select">상품</div>
+													<div class="select">상품선택</div>
 													<ul class="list">
 														<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" / 품절표기 data-soldout="true" 추가  -->
 														<li th:each="goodsInfo, status : ${goodsDealComposeList}" 
@@ -214,7 +232,7 @@
 																			<span class="itemPercent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">10%</span>
 																		</p>
 																	</a>
-																	<input type="hidden" name="selectGoods" th:value="${goodsInfo.compsGoodsCd}" />
+																	<input type="hidden" name="selectGoods" th:attr="goodsNm=${'[상품'+status.count+']' +goodsInfo.goodsFullNm}, currPrice=${goodsInfo.currPrice}, goodsCd=${goodsInfo.compsGoodsCd}" />
 																</div>
 															</div>
 														</li>
@@ -242,7 +260,7 @@
 												</div>
 											</div>
 										</div>
-									</form>
+									</div>
 								</div>
 							</div>
 						</div>
@@ -252,36 +270,29 @@
 				<div class="body btPop_foot btPopAuto_foot">
 					<!-- 총 결재금액, 하단버튼 -->
 					<div class="pay_box">
-						<div class="price_box">
+						<div class="price_box"  style="display:none;">
 							<p class="number">
-								총&nbsp;<span>99</span>개
+								총&nbsp;<span id="goodsTotalQty">0</span>개
 							</p>
 							<p class="price">
 								<span>
-									99,999,999<em>원</em>
+									<b id="goodsTotalPrice">0</b><em>원</em>
 								</span>
 							</p>
 						</div>
 						<div class="btn_box">
-							<button class="gift" id="btn_gift">
+							<button type="button" class="gift" id="btn_gift" onclick="fnAddCart('G','Up');" th:if="${goodsInfo.giftPackYn == 'Y'}">
 								<span><span>선물해보세요!</span></span>
 							</button>
-							<button class="cart" id="btn_shoppingBag_pop">쇼핑백</button>
-							<button class="buyNow" id="btn_now_purchase">바로구매</button>
+							<th:block  th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
+							<button type="button" class="cart" id="btnGoodsWish" onclick="fnAddCart('C','Up');" >쇼핑백</button>
+							<button type="button" class="buyNow" id="btnGoodsCart" onclick="fnAddCart('O','Up');">바로구매</button>
+							</th:block>
 						</div>
 					</div>
 				</div>
 			</div>
 			<!-- 구매하기팝업 -->
-
-			<!-- 쇼핑백팝업 -->
-			<div id="shoppingBagModal">
-				<div class="shoppingBag_box">
-					<p>쇼핑백에 상품을 담았습니다.</p> 
-					<a href="#none" class="link_shoppingBag">쇼핑백 바로가기</a>
-				</div>
-			</div>
-			<!-- //쇼핑백팝업 -->
 		</div>
 		<!-- 팝업영역 -->
 
@@ -291,17 +302,23 @@
 	<!-- 바닥메뉴 -->	
 	<div class="product_floormenu"><!--  ☞☞ 제품이 품절되면 soldout클래스 추가 -->
 		<div class="share_like">
-			<button class="share">공유하기</button>
-			<button class="like">위시리스트</button>
+			<button type="button" class="share">공유하기</button>
+			<button type="button" class="like" th:classappend="${goodsInfo.wishYn == 'Y'}? 'active' : ''"  
+					onclick="cfnPutWishList(this);" 
+					th:attr="goodsCd=${params.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=${params.planDtlSq}">위시리스트</button>
 		</div>
 		<div class="prd_buy">
-			<button class="buying btPop_auto" id="btn_purchase">구매하기</button>
-			<button class="cantbuying">SOLD OUT</button>
+			<th:block  th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
+			<button type="button" class="buying btPop_auto" id="btn_purchase">구매하기</button>
+			</th:block>
+			<th:block  th:unless="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
+			<button type="button" class="cantbuying" style="display:block;">SOLD OUT</button>
+			</th:block>
 		</div>
 	</div>
 	<!-- //바닥메뉴 -->
 </main>
-
+</form>
 <!-- 바로구매 및 선물하기 장바구니 등록 정보 저장을 위한 form -->
 <form id="directOrderForm" method="POST" action="/order/noMember"></form>
 
@@ -315,10 +332,90 @@
 		gagajf.ajaxSubmit("/goods/detail/together/frame", "html", "goodsTogetherbArea", params);
 	}
 	
+	//구성상품 조회
+	var fnDealCompsGoods = function(flag, goodsCd){
+		// 품절제외 여부
+		let optionSoldoutSkip = $('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked") ? 'Y' : 'N';
+		let data = {goodsCd : goodsCd
+					,optionSoldoutSkip : optionSoldoutSkip 
+					};
+		let jsonData = JSON.stringify(data);
+		
+		$('.form_field .select_custom.item_opt1').attr('disabled', true);
+		$('.form_field .select_custom.item_opt1').find('.combo .select').html('옵션1선택');
+		$('.form_field .select_custom.item_opt2').attr('disabled', true);
+		$('.form_field .select_custom.item_opt2').find('.combo .select').html('옵션2선택');
+		
+		gagajf.ajaxJsonSubmit('/goods/detail/compsGoods/list', jsonData, function(result) {
+			if (result.dataList != null && result.dataList.length > 0) {
+				let tagUpS = "";
+				$.each(result.dataList, function(idx, item) {
+					let tagUp = "";
+					let tag1 = "";
+					if (idx == 0){
+							$objUp = $('.pd_detail .opt_select .select_custom.deal_opt_item');
+							$objUp.remove();
+						//------
+						tag1 += '<div class="select_custom deal_opt_item">\n';	
+						tag1 += '<div class="combo">\n';
+						tag1 += '<div class="select">상품선택</div>\n';
+						tag1 += '<ul class="list">\n';
+						//------
+					}
+					let soldoutYn = ""; 
+					let disabledYn = ""; 
+					if (item.stockQty <= 0) soldoutYn = "true";
+					if (soldoutYn == "true" || item.goodsStat != 'G008_90') disabledYn = "true";
+					tagUp += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption1(\'Up\', \''+ item.compsGoodsCd+'\', '+ item.currPrice+ ', \''+ item.selfGoodsYn+'\')">\n';
+					tagUp += '	<div class="item_prod" goodsCd='+item.compsGoodsCd+'">\n';
+					tagUp += '		<div class="item_state">\n';
+					tagUp += '			<a href="javascript:void(0);" class="itemLink">\n';
+					tagUp += '				<div class="itemPic">\n';
+					tagUp += '					<img alt="" class="vLHTC pd_img" src="'+_uploadGoodsUrl+'/'+item.sysImgNm+'?RS=44" onerror="' + _uximgUrl + '/images/pc/thumb/bg_item_none.png" >\n';
+					tagUp += '				</div>\n';
+					tagUp += '				<p class="itemBrand">'+item.brandGroupNm+'</p>\n';
+					tagUp += '				<div class="itemName" ><span class="tit_option">[상품'+(idx+1)+']</span> '+ item.goodsFullNm +'</div>\n';
+					tagUp += '				<p class="itemPrice">\n';
+					if (Number(item.listPrice) > Number(item.currPrice)){
+					tagUp += '					<span class="itemPrice_original">'+item.listPrice.addComma()+'</span>\n';	
+					}
+					tagUp += '					 '+item.currPrice.addComma()+'\n';
+					if (Number(item.dcRate) > 0){
+					tagUp += '					<span class="itemPercent">'+item.dcRate+'%</span>\n';	
+					}
+					tagUp += '				</p>\n';
+					tagUp += '			</a>\n';
+					tagUp += '			<input type="hidden" name="selectGoods" goodsNm="[상품'+(idx+1)+']'+item.goodsFullNm +'" currPrice="'+ item.currPrice +'" goodsCd="'+ item.compsGoodsCd +'" />\n';
+					tagUp += '		</div>\n';
+					tagUp += '	</div>\n';
+					tagUp += '</li>\n';
+					
+					tagUpS += tag1+tagUp
+					
+				});
+				
+				if (!gagajf.isNull(tagUpS)){
+					//------
+					tagUpS += '</ul>\n';
+					tagUpS += '</div>\n';
+					tagUpS += '</div>\n';
+					//------	
+				}
+				
+				$('#form_field_item_'+flag).append(tagUpS);
+				var detail_deal_option = new sCombo('.pd_detail .opt_select .select_custom.deal_opt_item');
+			}	
+		});
+	}
+	
 	// 옵션1 조회
 	var fnOption1 = function(flag, goodsCd, currPrice, selfGoodsYn){
 		
+		// 품절제외 여부
+		let optionSoldoutSkip = $('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked") ? 'Y' : 'N';
+		
 		let data = {goodsCd : goodsCd
+					,optionSoldoutSkip : optionSoldoutSkip 
 					};
 		let jsonData = JSON.stringify(data);
 		
@@ -331,17 +428,14 @@
 			if (result.dataList != null && result.dataList.length > 0) {
 				
 				let tagUpS = "";
-				let tagDownS = "";
 				let tagUp = "";
-				let tagDown = "";
 				let $objUp = null;
-				let $objDown = null;
 				let qty = 1;
 				$.each(result.dataList, function(idx, item) {
 					let tag1 = "";
 					let tag2 = "";
 					if (idx == 0){
-							$objUp = $('.pd_detail .pop_option_select .select_custom.item_opt1');
+							$objUp = $('.pd_detail .opt_select .select_custom.item_opt1');
 							$objUp.remove();
 						//------
 						tag1 += '<div class="select_custom item_opt1">\n';	
@@ -351,9 +445,12 @@
 						//------
 						//tag1 += '<li class="selected" id="goodsOpt1">옵션1선택</li>\n';	
 					}
+					
 					let soldoutYn = ""; 
+					let disabledYn = ""; 
 					if (item.stockQty <= 0) soldoutYn = "true";
-						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Up\')">\n';
+					if (soldoutYn == "true" || item.goodsStat != 'G008_90') disabledYn = "true";
+					tagUp = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Up\')">\n';
 					tag2 += '<div class="opt_name">'+ item.optCd1Nm+'</div>\n';
 					if (item.addPrice > 0){
 						tag2 += '<div class="opt_price">+'+ item.addPrice.addComma() +'원</div>\n';	
@@ -362,7 +459,6 @@
 					tag2 += '</li>\n';
 					
 					tagUpS += tag1+tagUp+tag2;
-					tagDownS += tag1+tagDown+tag2;
 					
 				});
 				
@@ -375,8 +471,7 @@
 				}
 				
 				$('#form_field1_'+flag).append(tagUpS);
-				var detail_deal_option02 = new sCombo('.pd_detail .pop_option_select .select_custom.item_opt1');
-				//$('.pd_detail .opt_select .select_custom.deal_opt1').find('.combo .select').trigger('click');
+				var detail_deal_option02 = new sCombo('.pd_detail .opt_select .select_custom.item_opt1');
 				
 			}
 			
@@ -396,8 +491,13 @@
 		let maxOrdQty = $target.attr("maxOrdQty");
 		let selfGoodsYn = $target.attr("selfGoodsYn");
 		
+		// 품절제외 여부
+		let optionSoldoutSkip = $('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked") ? 'Y' : 'N';
+		
 		let data = {goodsCd : goodsCd
 					,optCd1 : optCd1
+					,optionSoldoutSkip : optionSoldoutSkip
+					,mastrGoodsCd : $('#cartFprm input[name=goodsCd]').val()
 					};
 		let jsonData = JSON.stringify(data);
 		
@@ -405,17 +505,14 @@
 			
 			if (result.dataList != null && result.dataList.length > 0) {
 				let tagUpS = "";
-				let tagDownS = "";
 				let tagUp = "";
-				let tagDown = "";
 				let $objUp = null;
-				let $objDown = null;
 				$.each(result.dataList, function(idx, item) {
 					let tag1 = "";
 					let tag2 = "";
 					if (idx == 0){
 						
-							$objUp = $('.pd_detail .pop_option_select .select_custom.item_opt2');
+							$objUp = $('.pd_detail .opt_select .select_custom.item_opt2');
 					//		$objUp.html('');
 							$objUp.remove();
 						
@@ -428,15 +525,12 @@
 						//------
 						//tag1 += '<li class="selected" id="goodsOpt2">옵션2</li>\n';	
 					}
+
 					let soldoutYn = ""; 
-					if ("Y" == item.soldoutYn || item.stockQty <= 0)soldoutYn = "true";
-					if (flag == "layer"){
-						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'layer\' )">\n';
-					}else if (flag == "Up"){
-						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Up\' )">\n';
-					}else{
-						tagDown = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Down\' )">\n';	
-					}
+					let disabledYn = "";
+					if ("Y" == item.soldoutYn || item.stockQty <= 0) soldoutYn = "true";
+					if (soldoutYn == "true")  disabledYn = "true";
+					tagUp = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Up\' )">\n';
 					tag2 += '<div class="opt_name">'+ item.optCd2+'</div>\n';
 					if (item.addPrice > 0){
 						tag2 += '<div class="opt_price">+'+ item.addPrice.addComma() +'원</div>\n';	
@@ -445,8 +539,6 @@
 					tag2 += '</li>\n';
 					
 					tagUpS += tag1+tagUp+tag2;
-					tagDownS += tag1+tagDown+tag2;
-					
 				});
 				
 				if (!gagajf.isNull(tagUpS)){
@@ -459,13 +551,121 @@
 				}
 				
 				$('#form_field2_'+flag).append(tagUpS);
-				var detail_deal_option03 = new sCombo('.pd_detail .pop_option_select .select_custom.item_opt2');
+				var detail_deal_option03 = new sCombo('.pd_detail .opt_select .select_custom.item_opt2');
 				
 			}
 			
 		});	
 	}
 	
+	//사이즈 클릭시 - 단품
+	var fnViewStock = function(obj, flag ) {
+		
+		let $obj = $(obj);
+		let $target = $obj.find('input[name="opt2"]');
+		let goodsCd = $target.val();
+		let currPrice = $target.attr("currPrice");
+		let optCd = $target.attr("optCd");
+		let optCd1 = $target.attr("optCd1");
+		let optCd1Nm = $target.attr("optCd1Nm");
+		let optCd2 = $target.attr("optCd2");
+		let minOrdQty = $target.attr("minOrdQty");
+		let maxOrdQty = $target.attr("maxOrdQty");
+		let addPrice  = $target.attr("addPrice");
+		let selfGoodsYn  = $target.attr("selfGoodsYn");
+		let optQty = minOrdQty;
+		let maxCnt = maxOrdQty;
+		
+		let params = new Object();
+		params.goodsCd = goodsCd;
+		params.optCd = optCd;
+		params.optCd1 = optCd1;
+		params.optCd2 = optCd2;
+		params.selfGoodsYn = selfGoodsYn;
+		
+		// 중복선택 확인  opt_result
+		var overlap = 0;
+		$('.pd_detail .opt_result .number_count').each(function() {
+			if ($('input[name="coption"]', this).val() == optCd) {
+				++overlap;
+			}
+		});
+		if (overlap > 0) {
+			mcxDialog.alert("이미 선택하신 옵션입니다.");
+			return false;
+		}
+		
+		$.get("/goods/detail/ajaxGoodsStockQty", $.param(params), function(result) {
+			let itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
+			
+			if (maxCnt > itemCnt) {
+				maxCnt = itemCnt;
+			}
+
+			if (minOrdQty > itemCnt) {
+				//alert("무슨작업을 해야할가요?");
+				return false;		 //무슨작업을 해야하나?
+			}
+			
+			//상품정보
+			let $selObj = null;
+			$selObj = $('.pd_detail .opt_select .select_custom.deal_opt_item');
+			let $goodsObj =$selObj.find('.combo .select').find('input[name=selectGoods]');
+			let goodsNm =  $goodsObj.attr('goodsnm');
+			let goodsCd =  $goodsObj.attr('goodscd');
+			let price = parseInt(currPrice)+ parseInt(addPrice);
+			
+			let tag = "";
+			tag += '<div class="result_item result_'+optCd+'">\n';
+			tag += '	<div class="opt_header">\n';
+			tag += '		<span class="item_name">'+goodsNm+'</span>\n';
+			tag += '		<span class="item_option">'+optCd1Nm+'/'+optCd2+'</span>\n';
+			tag += '	</div>\n';
+			tag += '	<div class="number_count">\n';
+			tag += '		<span class="minus min_val" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">감소</em></span>\n';
+			tag += '		<input type="text" name="cea" optCd="'+optCd+'" maxlength="3" style="ime-mode:disabled" value="' +optQty+'" readonly>\n';
+			tag += '		<input type="hidden" name="coption" value="'+optCd+'"  goodsCd="'+goodsCd+'"  price="'+currPrice+'"  addPrice="'+addPrice+'">\n';
+			tag += '		<span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">추가</em></span>\n';
+			tag += '	</div>\n';
+			tag += '	<div class="item_price">\n';
+			tag += '		<p><em id="goodsPrice">'+price.addComma() +'</em>원</p>\n';
+			tag += '	</div>\n';
+			tag += '	<button type="button" class="btn_delete_item" onclick="fnSelectGoodsDel(\''+optCd+'\')"><span>삭제</span></button>\n';
+			tag += '</div>\n';
+			
+			
+			let $objUp = null;
+			$objUp = $('.pd_detail .opt_result'); 
+			$objUp.prepend(tag);
+			
+			$('.price_box').show();
+			fnSetTotalPrice();	
+			
+			var dTag = '';
+			dTag += '';
+			dTag += '<div class="item_prod">\n';
+			dTag += '<div class="item_state">\n';
+			dTag += '	<a href="javascript:void(0);" class="itemLink">\n';
+			dTag += '		<div class="itemPic">\n';
+			dTag +='			<img class="vLHTC pd_img" src="'+_uploadGoodsUrl +'/'+[[${goodsInfo.sysImgNm}]]+'?RS=285" alt="" onerror="' + _uximgUrl + '/images/pc/thumb/bg_item_none.png"  />\n';
+			dTag += '		</div>\n';
+			dTag += '		<div class="itemName">상품선택</div>\n';
+			dTag += '	</a>\n';
+			dTag += '</div>\n';
+			dTag += '</div>\n';
+			
+			//$('.pd_detail .opt_select .select_custom.deal_opt_item').find('.combo .select').html(dTag);
+			//var opt_selecter_item = new sCombo('.opt_select .select_custom.deal_opt_item');
+			$('.form_field .select_custom.item_opt1').attr('disabled', true);
+			$('.form_field .select_custom.item_opt1').find('.combo .select').html('옵션1선택');
+			$('.form_field .select_custom.item_opt2').attr('disabled', true);
+			$('.form_field .select_custom.item_opt2').find('.combo .select').html('옵션2선택');
+			
+			$('.pop_option_select').css("display", "none");
+			
+		}, "text");
+	}
+	
 	// 수량 변경 클릭
 	var fnAdjustOrderEa = function(obj) {
 
@@ -572,31 +772,17 @@
 	
 	//합계 계산
 	var fnSetTotalPrice = function() {
+		
+		$('.price_box').show();
 		//let f = document.cartForm;
 
 		let totalEa = 0;
 		let totalPrice = 0;
 		
-		$('input[name="cea"]').each(function() {
+		$('input[name="cea"]', document.cartForm).each(function() {
 			let ea = parseInt($(this).val());
-			let addPrice = 0;
-			
-			if("G056_N" == $("#cartForm  input[name=goodsType]").val() && "Y" == $("#cartForm  input[name=selfGoodsYn]").val()){
-				let target=$('.opt_size').find('input[name=opt]');
-				target.each(function() {
-					if ($(this).is(":checked")){
-						addPrice += Number($(this).attr('addPrice'));	
-					}
-				});	
-			}else{
-			
-				let target=$('.select_custom.item_opt2');
-				target.each(function() {
-					if (typeof ($(this).find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('input[name=opt2]').val())){
-						addPrice += Number($(this).find('input[name=opt2]').attr('addPrice'));	
-					}
-				});	
-			}
+			let target=$('.select_custom.item_opt2');
+			let addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
 			let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
 
 			totalEa += ea;
@@ -605,8 +791,12 @@
 			}
 		});
 
-		$('#goodsTotalQty').html(totalEa.addComma());
-		$('#goodsTotalPrice').html(totalPrice.addComma());
+		$('.price_box .number  span').html(totalEa.addComma());
+		$('.price_box .price > span').html(totalPrice.addComma());
+		
+		if ($('input[name="cea"]', document.cartForm).length <= 0 ) {
+			$('.price_box').hide();
+		}
 		
 	}
 	
@@ -617,110 +807,43 @@
 	}
 	
 	//장바구니담기
-	var fnAddCart = function(btnType){
+	var fnAddCart = function(btnType, flag){
+		let compsList = [];
 		
-		let params = [];
-		let goodsType = $("#cartForm  input[name=goodsType]").val();
-		let selfGoodsYn = $("#cartForm  input[name=selfGoodsYn]").val();
-
-		if (goodsType == 'G056_N' && selfGoodsYn == 'Y' ){
-			if (gagajf.isNull($("#cartForm  input[name=optCd2]").val())) {
-				mcxDialog.alert("사이즈를 선택해 주세요.");
-				return;
-			}
+		let $target = $('#cartForm input[name=cea]');
+		let targetSize = $target.length;	//선택성품 갯수
 		
-			let compsList = [];
-			let obj = new Object();
-			obj.goodsCd = $("#cartForm  input[name=goodsCd]").val();
-			obj.optCd = $("#cartForm  input[name=optCd]").val();
-			obj.goodsQty = $("#cartForm  input[name=ordQty]").val();
-			obj.goodsType = $("#cartForm  input[name=goodsType]").val();
+		$target.each(function() {
+			
+			let ea = parseInt($(this).val());
+			let goodsCd = $(this).parent().find('input[name="coption"]').attr('goodscd');
+			let optCd = $(this).parent().find('input[name="coption"]').val();
+			//let addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
+			//let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
+			
+			var obj = new Object();
 			obj.cartGb = btnType;
+			obj.goodsType = $("#cartForm  input[name=goodsType]").val();
+			obj.goodsCd = goodsCd;
+			obj.optCd = optCd;
+			obj.goodsQty = ea;
+			obj.dealGoodsCd = $("#cartForm  input[name=goodsCd]").val();
 			obj.afLinkCd =$("#cartForm  input[name=afLinkCd]").val();
 			obj.ithrCd =$("#cartForm  input[name=ithrCd]").val();
 			obj.contentsLoc =$("#cartForm  input[name=contentsLoc]").val();
 			obj.planDtlSq = $("#cartForm  input[name=planDtlSq]").val();
 			compsList.push(obj);
 			
-			// 장바구니담기
-			cfnAddCart(compsList);
-			
-		}else { 
-			
-			let cartGoodsList = [];
-			
-			let target = $('#cartForm input[name=cea]');
-			
-			if (goodsType == 'G056_N'){
-				let compsList = [];
-				target.each(function() {
-
-					let ea = parseInt($(this).val());
-					let goodsCd = $(this).parent().find('input[name="coption"]').attr('goodscd');
-					let optCd = $(this).parent().find('input[name="coption"]').val();
-					//let addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
-					//let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
-					
-					var obj = new Object();
-					obj.cartGb = btnType;
-					obj.goodsType = $("#cartForm  input[name=goodsType]").val();
-					obj.goodsCd = goodsCd
-					obj.optCd = optCd;
-					obj.goodsQty = ea;
-					obj.afLinkCd =$("#cartForm  input[name=afLinkCd]").val();
-					obj.ithrCd =$("#cartForm  input[name=ithrCd]").val();
-					obj.contentsLoc =$("#cartForm  input[name=contentsLoc]").val();
-					obj.planDtlSq = $("#cartForm  input[name=planDtlSq]").val();
-					compsList.push(obj);
-					
-				});
-				
-				
-				// 장바구니담기
-				cfnAddCart(compsList);
-
-			}else{ // 세트
-				
-				target.each(function() {
-					let compsList = [];
-					let goodsList = {
-						cartCompsList : new Array()
-					}
-					
-					let ea = parseInt($(this).val());
-					
-					let targetItem = $(this).parent().parent().find('.bundle'); // 구성상품
-					targetItem.each(function() {
-						var obj = new Object();
-						obj.cartGb = btnType;
-						obj.goodsType = $("#cartForm  input[name=goodsType]").val();
-						obj.goodsCd = $("#cartForm  input[name=goodsCd]").val();
-						
-						obj.itemCd = $(this).find('input[name=selOption]').attr('goodsCd');
-						obj.optCd = $(this).find('input[name=selOption]').attr('optCd');
-						
-						obj.goodsQty = ea;
-						obj.afLinkCd =$("#cartForm  input[name=afLinkCd]").val();
-						obj.ithrCd =$("#cartForm  input[name=ithrCd]").val();
-						obj.contentsLoc =$("#cartForm  input[name=contentsLoc]").val();
-						obj.planDtlSq = $("#cartForm  input[name=planDtlSq]").val();
-						compsList.push(obj);
-					});
-					
-					goodsList.cartCompsList = compsList;
-					cartGoodsList.push(goodsList);
-
-				});
-				
-				// 장바구니담기
-				cfnAddCart(cartGoodsList);
-				
-			}
-		}
+		});
+		
+		// 장바구니담기
+		cfnAddCart(compsList);
+		
 	}
-
 	
 	 $(document).ready( function() {
+		 
+		 $('.timer_box').css('display', 'none');
 		
 		 var params = new Object();
 		params.goodsCd = [[${params.goodsCd}]];
@@ -732,13 +855,42 @@
 		params.supplyCompCd = [[${params.supplyCompCd}]];
 		params.brandGroupNm = [[${goodsInfo.brandGroupNm}]];
 
-		// selecter
-		$(function(){
-			var opt_selecter_item = new sCombo('.pop_option_select .select_custom.deal_opt_item');
-			//var item_opt01 = new sCombo('.pd .pop_option_select .item_opt1');
-			//var item_opt02 = new sCombo('.pd .pop_option_select .item_opt2');
-			var opt_select = new sCombo('.pd .op1 .opt_select .select_custom');
-		});
+		if (!gagajf.isNull([[${goodsInfo.socialSq}]])){
+			$('.timer_box').css('display', 'block');
+			/* 행사 남은시간 */
+			function promotionTimer() {
+				var endTime = new Date([[${goodsInfo.socialEddt}]]); // 남은시간 지정	30 March 2021 9:56:00 GMT+0900	
+					endTime = (Date.parse(endTime) / 1000);
+	
+					var now = new Date();
+					now = (Date.parse(now) / 1000);
+	
+					var timeLeft = endTime - now;
+	
+					var days = Math.floor(timeLeft / 86400); 
+					var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
+					var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
+					var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
+	
+					if (hours < '10') { hours = '0' + hours; }
+					if (minutes < '10') { minutes = '0' + minutes; }
+					if (seconds < '10') { seconds = '0' + seconds; }
+	
+					if (Number(days) > 0 ){
+						hours = Number(hours) + (Number(days) * 24);
+					}
+					$('#d-hours').html(hours);
+					$('#d-minutes').html(minutes);
+					$('#d-seconds').html(seconds);		
+			}
+			setInterval(function() { promotionTimer(); }, 1000);
+		}
+		
+		var opt_selecter_item = new sCombo('.opt_select .select_custom.deal_opt_item');
+		//var item_opt01 = new sCombo('.pd .pop_option_select .item_opt1');
+		//var item_opt02 = new sCombo('.pd .pop_option_select .item_opt2');
+		var opt_select = new sCombo('.pd .op1 .opt_select .select_custom');
+	
 
 		//옵션변경 셀렉트
 		var opt_selecter01 = new sCombo('.pd .pop_option_select .item_opt1');

+ 10 - 6
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html

@@ -981,7 +981,7 @@
 														<th:block th:each="goodsOption, optionStatus : ${goodsCompose.goodsOption1List}" >
 														<!-- <li class="selected" th:id="|selfGoodsOpt1${goodsCompose.compsGoodsCd}|" th:if=${optionStatus.first}>선택</li> --> 
 														<li th:onclick="fnOption2([[${status.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])"
-															th:attr="aria-disabled=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}, data-soldout=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}"
+															th:attr="aria-disabled=${(goodsCompose.goodsStat != 'G008_90' or goodsCompose.stockQty <= 0)? 'true':''}, data-soldout=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}"
 															><th:block th:text="${goodsOption.optCd1Nm}"></th:block>
 															<input type="hidden" name="opt" th:value="${goodsOption.goodsCd}" th:attr="optCd1=${goodsOption.optCd1},optCd1Nm=${goodsOption.optCd1Nm},optCd2=${goodsOption.optCd2},optCd=${goodsOption.optCd}"/>
 														</li>
@@ -1458,8 +1458,10 @@
 						selfGoodsYn = item.selfGoodsYn;
 					}
 					let soldoutYn = ""; 
-					if ("G008_90" != item.goodsStat || item.stockQty <= 0 || item.goodsStat != 'G008_90') soldoutYn = "true";
-					tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2('+ ridx+', \''+ item.goodsCd+'\' , \''+ item.optCd1+'\', \''+ item.minOrdQty+'\', \''+ item.maxOrdQty+'\' )">\n';	
+					let disabledYn = ""; 
+					if (item.stockQty <= 0) soldoutYn = "true";
+					if (soldoutYn == "true" || item.goodsStat != 'G008_90') disabledYn = "true";
+					tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2('+ ridx+', \''+ item.goodsCd+'\' , \''+ item.optCd1+'\', \''+ item.minOrdQty+'\', \''+ item.maxOrdQty+'\' )">\n';	
 					tag += '<div>' +item.optCd1 +'</div>';
 					tag += '<input type="hidden" name="opt" value="'+ item.goodsCd+'" optCd1="'+ item.optCd1 +'" qty="'+ item.qty +'" />\n';
 					tag += '</li>\n';
@@ -1590,12 +1592,14 @@
 						//tag += '<li class="selected" id="goodsOpt2'+item.goodsCd+'">선택</li>\n';	
 					}
 					let soldoutYn = ""; 
+					let disabledYn = "";
 					let saleQty = (Number(qty) * Number(minOrdQty));
-					if ("Y" == item.soldoutYn || Number(item.stockQty) <= Number(saleQty))soldoutYn = "true";
+					if ("Y" == item.soldoutYn || Number(item.stockQty) <= Number(saleQty)) soldoutYn = "true";
+					if (soldoutYn == "true" || item.goodsStat !=  'G008_90') disabledYn= "true";
 					if (selfGoodsYn == "Y"){
-						tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSet(this, \''+ item.goodsCd+'\' , \''+ item.optCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';	
+						tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSet(this, \''+ item.goodsCd+'\' , \''+ item.optCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';	
 					}else{
-						tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSelfNo(this)">\n';
+						tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSelfNo(this)">\n';
 					}
 					tag += item.optCd2;
 					if (item.addPrice > 0){

+ 12 - 8
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html

@@ -174,7 +174,7 @@
 													</div>
 												</div>
 												<ul class="list" th:if="${goodsDealComposeList  != null and !goodsDealComposeList.empty}">
-													<th:block th:each="goodsInfo, status : ${goodsDealComposeList}" th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}">
+													<th:block th:each="goodsInfo, status : ${goodsDealComposeList}" >
 													<li th:onclick="fnOption1('Up', [[${goodsInfo.compsGoodsCd}]], [[${goodsInfo.currPrice}]] , [[${goodsInfo.selfGoodsYn}]]);"
 															th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}">
 														<div class="item_prod">
@@ -346,13 +346,15 @@
 						//tag1 += '<li class="selected" id="goodsOpt1">옵션1선택</li>\n';	
 					}
 					let soldoutYn = ""; 
+					let disabledYn = ""; 
 					if (item.stockQty <= 0) soldoutYn = "true";
+					if (soldoutYn == "true" || item.goodsStat != 'G008_90') disabledYn = "true";
 					if (flag == "layer"){
-						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'layer\')">\n';
+						tagUp = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'layer\')">\n';
 					}else if (flag == "Up"){
-						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Up\')">\n';
+						tagUp = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Up\')">\n';
 					}else{ 
-						tagDown = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Down\')">\n';	
+						tagDown = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Down\')">\n';	
 					}
 					tag2 += '<div class="opt_name">'+ item.optCd1Nm+'</div>\n';
 					if (item.addPrice > 0){
@@ -470,13 +472,15 @@
 						//tag1 += '<li class="selected" id="goodsOpt2">옵션2</li>\n';	
 					}
 					let soldoutYn = ""; 
-					if ("Y" == item.soldoutYn || item.stockQty <= 0)soldoutYn = "true";
+					let disabledYn = "";
+					if ("Y" == item.soldoutYn || item.stockQty <= 0) soldoutYn = "true";
+					if (soldoutYn == "true")  disabledYn = "true";
 					if (flag == "layer"){
-						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'layer\' )">\n';
+						tagUp = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'layer\' )">\n';
 					}else if (flag == "Up"){
-						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Up\' )">\n';
+						tagUp = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Up\' )">\n';
 					}else{
-						tagDown = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Down\' )">\n';	
+						tagDown = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Down\' )">\n';	
 					}
 					tag2 += '<div class="opt_name">'+ item.optCd2+'</div>\n';
 					if (item.addPrice > 0){

+ 6 - 4
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -265,7 +265,7 @@
 												<ul class="list">
 													<th:block th:each="goodsOption, optionStatus : ${goodsCompose.goodsOption1List}" >
 													<li th:onclick="fnOption2([[${status.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],[[${goodsCompose.qty}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])"
-														th:attr="aria-disabled=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}, data-soldout=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}"
+														th:attr="aria-disabled=${(goodsCompose.goodsStat != 'G008_90' or goodsCompose.stockQty <= 0)? 'true':''}, data-soldout=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}"
 														>
 														<div th:text="${goodsOption.optCd1Nm}">상품옵션</div>
 														<div th:if="${goodsOption.addPrice > 0}" th:text="|+${#numbers.formatInteger(goodsOption.addPrice, 0,'COMMA')}원|">0원</div>
@@ -1645,12 +1645,14 @@
 						//tag += '<li class="selected" id="goodsOpt2'+item.goodsCd+'">선택</li>\n';	
 					}
 					let soldoutYn = ""; 
+					let disabledYn = "";
 					let saleQty = (Number(qty) * Number(minOrdQty));
-					if ("Y" == item.soldoutYn || Number(item.stockQty) <= Number(saleQty))soldoutYn = "true";
+					if ("Y" == item.soldoutYn || Number(item.stockQty) <= Number(saleQty)) soldoutYn = "true";
+					if (soldoutYn == "true" || item.goodsStat !=  'G008_90') disabledYn= "true";
 					if (selfGoodsYn == "Y"){
-						tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSet(this, \''+ item.goodsCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';	
+						tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSet(this, \''+ item.goodsCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';	
 					}else{
-						tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \''+ item.goodsCd+'\' , \''+ item.optCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';
+						tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \''+ item.goodsCd+'\' , \''+ item.optCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';
 					}
 					tag += '<div class="opt_name">'+ item.optCd2+'</div>\n';
 					if (item.addPrice > 0){