瀏覽代碼

Merge remote-tracking branch 'origin/jsshin' into xodud1202

xodud1202 5 年之前
父節點
當前提交
c410dee3df

+ 2 - 1
src/main/java/com/style24/front/biz/service/TsfKakaoService.java

@@ -29,6 +29,7 @@ public class TsfKakaoService {
 	@Autowired
 	private TscCustomerService coreCustomerService;
 
+	public static final String siteNm = "STYLE24";
 
 	/**
 	 * 가입축하 알림톡
@@ -44,7 +45,7 @@ public class TsfKakaoService {
 		dm.setFkkoresendtype("LMS");
 
 		GagaMap replaceInfo = new GagaMap();
-		replaceInfo.setString("siteNm", TscConstants.Style24Infomation.SITE_NAME.value());
+		replaceInfo.setString("siteNm", siteNm);
 		replaceInfo.setString("custNm", customer.getCustNm());
 		kakaoSender.send(SsgKakaoSender.KakaoAnswerSq.JoinCongrat.value(), dm, replaceInfo);
 

+ 19 - 3
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -5,6 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.servlet.ModelAndView;
 
@@ -89,7 +90,7 @@ public class TsfGoodsController extends TsfBaseController {
 		}
 
 		// 상품 상세
-		goods = goodsService.getGoodsDesc(paramsGoods);
+		goods = goodsService.getGoodsDesc(goods);
 		// 핫딜정보
 		Goods socialGoods = goodsService.getSocialGoods(paramsGoods);
 		if (socialGoods != null && !StringUtils.isBlank(socialGoods.getGoodsCd())) {
@@ -141,7 +142,7 @@ public class TsfGoodsController extends TsfBaseController {
 //
 		// 카드 혜택안내
 		CardPromotion cardPromotion = new CardPromotion();
-		cardPromotion.setRegNo(1); // 혜택유형별로 1건씩
+		cardPromotion.setRownum(1); // 혜택유형별로 1건씩
 		mav.addObject("cardInfoList", goodsService.getCardPromotionList(cardPromotion));
 
 		// 쇼핑 혜택
@@ -154,7 +155,7 @@ public class TsfGoodsController extends TsfBaseController {
 		// 룩북
 		Lookbook lookbook = new Lookbook();
 		lookbook.setGoodsCd(paramsGoods.getGoodsCd());
-		mav.addObject("cardInfoList", goodsService.getLookbookList(lookbook));
+		mav.addObject("lookbookList", goodsService.getLookbookList(lookbook));
 		// 오늘본 상품 쿠키 담기
 		// SSL Server
 		boolean isSslServer = Boolean.parseBoolean(hasSsl);
@@ -254,4 +255,19 @@ public class TsfGoodsController extends TsfBaseController {
 		GagaCookieUtil.setCookie(TsfSession.getHttpServletResponse(), TsfConstants.CK_PREFIX + "_today_goodsCd", setCkGoodsCd, 24 * 60 * 60);
 		//		}
 	}
+	
+	/**
+	 * 상품상세 -  카드혜택안내 레이어
+	 * @return
+	 * @author eskim
+	 * @since 2021. 3. 4
+	 */
+	@PostMapping("/card/prmt/layer")
+	public ModelAndView cardPrmtForm() {
+		ModelAndView mav = new ModelAndView();
+		CardPromotion cardPromotion = new CardPromotion();
+		mav.addObject("cardInfoList", goodsService.getCardPromotionList(cardPromotion));
+		mav.setViewName(super.getDeviceViewName("goods/CardPrmtForm"));
+		return mav;
+	}
 }

+ 2 - 0
src/main/java/com/style24/persistence/domain/CardPromotion.java

@@ -24,9 +24,11 @@ public class CardPromotion extends TscBaseDomain {
 	private String note;	// 안내
 	private String dispYn;	// 표시여부
 
+	private String prmtGbNm;		//카드혜택유형
 	private Integer cardPrmtCdtSq;	// 카드프로모션행사조건일련번호
 	private int minPayAmt;	// 최소결제금액
 	private String dcWay;	// 할인구분할인방식(공통코드G240, 프로모션구분이 A:할인인 경우)
+	private String dcWayNm; 	// 할인구분방식명 %, 원
 	private int dcVal;	// 할인값(프로모션구분이 A:할인인 경우, 할인방식이 금액이면 할인금액, 율이면 할인율)
 	private int maxDcAmt;	// 최대할인금액(프로모션구분이 A:할인인 경우)
 	private String minNoItrt;	// 최소무이자월수(프로모션구분이 B:무이자 인경우)

+ 1 - 0
src/main/java/com/style24/persistence/domain/Goods.java

@@ -34,6 +34,7 @@ public class Goods extends TscBaseDomain {
 	private int currPrice;		//현재판매가
 	private String priceUpdDt;		//가격변경일시
 	private float dcRate;		//할인율
+	private int pntAmt;				// 적립금
 	private int benefitCurrPrice;		//즉시할인판매가
 	private String goodsStat;		//상품상태(공통코드G008)
 	private String selfMallYn;		//자사몰노출여부

+ 13 - 5
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -100,6 +100,7 @@
 		     , G.GOODS_STAT
 		     , (CASE WHEN #{frontGb} = 'P' THEN G.PNT_PRATE ELSE G.PNT_MRATE END) AS PNT_RATE
 		     , (CASE WHEN #{frontGb} = 'P' THEN G.PRE_PPNT_USABLE_YN ELSE G.PRE_MPNT_USABLE_YN END) AS PRE_PNT_USABLE_YN
+		     , (CASE WHEN #{frontGb} = 'P' THEN (G.PNT_PRATE * BP.CURR_PRICE)/100 ELSE (G.PNT_MRATE * BP.CURR_PRICE) / 100 END) AS PNT_AMT
 		     , G.MIN_ORD_QTY
 		     , G.MAX_ORD_QTY
 		     , G.DAY_MAX_ORD_QTY
@@ -456,17 +457,24 @@
 		           , A.PRMT_NM 
 		           , A.PRMT_GB 
 		           , A.DC_GB 
+		           , (CASE WHEN A.PRMT_GB = 'A' AND A.DC_GB = '1' THEN '즉시할인' 
+		                   WHEN A.PRMT_GB = 'A' AND A.DC_GB = '2' THEN '청구할인'
+		                   WHEN A.PRMT_GB = 'A' AND A.DC_GB = '3' THEN '청구할인'
+		                   ELSE '신용카드 무이자 혜택' END
+		              ) AS PRMT_GB_NM
 		           , A.LINK_URL 
 		           , A.NOTE 
 		           , B.CARD_PRMT_CDT_SQ 
-		           , B.MIN_PAY_AMT 
+		           , (B.MIN_PAY_AMT / 10000) AS MIN_PAY_AMT  -- 만원단위 
+		           , B.MAX_DC_AMT
 		           , B.MAX_NO_ITRT 
 		           , B.MIN_NO_ITRT 
-		           , B.DC_WAY 
+		           , B.DC_WAY
+		           , (CASE WHEN B.DC_WAY = 'G240_11' THEN '%' ELSE '원' END) AS DC_WAY_NM 
 		           , B.DC_VAL 
 		           , C.PRMT_TARGET_CD 
-		           , D.CD_NM 
-		           , RANK() OVER(PARTITION BY A.PRMT_GB, A.DC_GB ORDER BY A.CARD_PRMT_SQ , B.CARD_PRMT_CDT_SQ, C.PRMT_TARGET_CD DESC) RNUM
+		           , D.CD_NM AS PRMT_TARGET_NM
+		           , RANK() OVER(PARTITION BY A.PRMT_GB, A.DC_GB ORDER BY A.CARD_PRMT_SQ , B.CARD_PRMT_CDT_SQ, C.PRMT_TARGET_CD DESC) ROWNUM
 		      FROM TB_CARD_PROMOTION A
 		      INNER JOIN TB_CARD_PROMOTION_CONDITION B ON A.CARD_PRMT_SQ = B.CARD_PRMT_SQ
 		      INNER JOIN TB_CARD_PROMOTION_TARGET C ON B.CARD_PRMT_CDT_SQ = C.CARD_PRMT_CDT_SQ
@@ -490,7 +498,7 @@
 		      </if>
 		) A
 		<if test="rownum != null and rownum > 0 ">
-		WHERE RNUM = 1
+		WHERE ROWNUM = 1
 		</if>
 	</select>
 	

+ 2 - 2
src/main/webapp/WEB-INF/views/web/customer/JoinFormWeb.html

@@ -126,7 +126,7 @@
 					<div class="form_field">
 						<label class="input_label sr-only">휴대폰번호</label>
 						<div class="input_wrap form_full">
-							<input type="text" id="cellPhnno" name="cellPhnno" placeholder="휴대폰번호" class="form_control" minlength="10" maxlength="11" required="required" data-valid-type="numeric" data-valid-name="휴대폰번호" />
+							<input type="text" id="cellPhnno" name="cellPhnno" placeholder="휴대폰 인증 해주세요." class="form_control" minlength="10" maxlength="11" required="required" data-valid-type="numeric" data-valid-name="휴대폰"/>
 							<!-- case (휴대폰번호 형식이 맞지 않을경우,이미 가입되어있는 핸드폰번호일경우) -->
 							<div class="help_block">
 								<!-- 휴대폰번호 형식이 맞지 않을경우 -->
@@ -397,7 +397,7 @@
 		}
 	};
 
-	// 본인증 후 결과
+	// 본인증 후 결과
 	var fnInfoConfirmCallBack = function (result) {
 		// const $cellPhnno = $('#cellPhnno');
 		const $dupPhnno = $('#dupPhnno');

+ 97 - 0
src/main/webapp/WEB-INF/views/web/goods/CardPrmtFormWeb.html

@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CardPrmtFormWeb.html
+ * @desc    : 카드 혜택안내
+ *============================================================================
+ * Wivismall
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.02   eskim        최초 작성
+ *******************************************************************************
+ -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="bnfCardLabel">카드혜택111111</h5>
+		</div>
+		<div class="modal-body" th:if="${cardInfoList != null and !cardInfoList.empty}">
+			<div class="pop_cont">
+				<div class="benefit_blk">
+					<h6>할인혜택</h6>
+					<div class="tbl type1">
+						<table>
+							<colgroup>
+								<col width="140">
+								<col width="290">
+								<col width="*">
+							</colgroup>
+							<tbody>
+								<tr th:each="cardInfo, status : ${cardInfoList}" th:if="${cardInfo.prmtGb == 'A' }">
+									<th th:text="${cardInfo.prmtTargetNm}">KB국민카드</th>
+									<td>
+										<div class="info_card">
+											<th:block th:if="${cardInfo.dcGb == '3'}">
+											<p th:text="${cardInfo.prmtNm}">5% 즉시할인</p>
+											<p th:text="${cardInfo.note}">할인</p>
+											</th:block>
+											<th:block th:unless="${cardInfo.dcGb == '3'}">
+											<p th:text="${#numbers.formatInteger(cardInfo.dcVal, 0,'COMMA')+ cardInfo.dcWayNm + ' ' + cardInfo.prmtGbNm}">5% 즉시할인</p>
+											<p th:text="${cardInfo.minPayAmt + '만원 이상 구매 시 최대 ' + #numbers.formatInteger(cardInfo.maxDcAmt, 0,'COMMA') + '원 할인 '}">7만원 이상 구매 시 최대 5만원 할인</p>
+											</th:block>
+											
+										</div>
+									</td>
+									<td>
+										<th:block th:if="${not #strings.isEmpty(cardInfo.linkUrl)}"><a th:href="${cardInfo.linkUrl}" target="_blank" class="btn_more" >자세히보기</a></th:block>
+									</td>
+								</tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+				<div class="benefit_blk">
+					<h6>무이자 할부</h6>
+					<div class="tbl type1">
+						<table>
+							<colgroup>
+								<col width="140">
+								<col width="*">
+							</colgroup>
+							<tbody>
+								<tr th:each="cardInfo, status : ${cardInfoList}" th:if="${cardInfo.prmtGb == 'B' }">
+									<th th:text="${cardInfo.prmtTargetNm}">KB국민카드</th>
+									<td>
+										<div class="info_card">
+											<p th:text="${cardInfo.minNoItrt + '~' + cardInfo.maxNoItrt + '개월 무이자'}">2~6개월 무이자</p>
+											<p th:text="${cardInfo.minPayAmt + '만원 이상 구매 시'}">5만원 이상 구매 시</p>
+										</div>
+									</td>
+								</tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+				<th:block th:each="cardInfo, status : ${cardInfoList}" >
+				<div class="benefit_blk"  th:if="${cardInfo.prmtGb == 'B' and not #strings.isEmpty(cardInfo.note) and cardInfo.rownum ==  1}">
+					<th:block >
+					<h6>부분 무이자 할부</h6>
+					<th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(cardInfo.note))}"></th:block>
+					<div class="info_txt">
+						<ul>
+							<li>무이자할부는 행사기간 동안 실 결제금액 기준으로 가능</li>
+							<li>법인, 체크, 기프트 카드는 부분 무이자 할부 제외</li>
+						</ul>
+					</div>
+					</th:block>
+				</div>
+				</th:block>
+			</div>
+		</div>
+	</div>
+</div>	
+</html>

+ 239 - 29
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -54,6 +54,19 @@
 							</ul>
 						</div>
 					</div>
+					<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="sizeCd" />
+					<input type="hidden" name="ordQty" />
+					<input type="hidden" name="stock" />
+					<input type="hidden" name="minOrdQty"/>
+					<input type="hidden" name="maxOrdQty"/>
+					<input type="hidden" name="goodsType" th:value="${goodsInfo.goodsType}"/>
+					<input type="hidden" name="selfGoodsYn" th:value="${goodsInfo.selfGoodsYn}"/>
 					<div class="area_desc">
 						<div class="desc_wrap">
 							<div class="timer_box">
@@ -69,34 +82,34 @@
 							</div>
 							<div class="descript_box">
 								<div class="desc_top">
-									<a href="" class="btn_brand">NBA 키즈</a>
+									<a href="javascript:void(0);" class="btn_brand" th:onclick="cfnGoToBrandMain([[${goodsInfo.brandGroupNo}]])" th:text="${goodsInfo.brandGroupNm}">NBA 키즈</a>
 									<button type="button" class="itemShare">상품 공유하기</button>
-									<button type="button" class="itemLike">관심상품 추가</button>
+									<button type="button" class="itemLike" th:classappend="${wishYn == 'Y'}? 'active' : ''">관심상품 추가</button>
 								</div>
 								<div class="desc_info">
 									<div class="title_blk">
-										<span class="codenumber">
+										<span class="codenumber" th:text="${goodsInfo.goodsCd}">
 											N204TJ112P
 										</span>
-										<span class="comment">
+										<span class="comment" th:text="${goodsInfo.goodsTnm}">
 											#가을 느낌 물씬!
 										</span>
-										<span class="name">
+										<span class="name" th:text="${goodsInfo.goodsFullNm}">
 											유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업
 										</span>
 									</div>
 									<div class="price_blk">
-										<span class="sale_percent">
-											30%
+										<span class="sale_percent" th:if="${goodsInfo.dcRate > 0}" th:text="|${goodsInfo.dcRate}%|">
+											5%
 										</span>
-										<span class="sale_price">
+										<span class="sale_price" th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}">
 											<em>134,100</em>원
 										</span>
-										<del class="org_price">
+										<del class="org_price" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}" th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">
 											149,000원
 										</del>
 										<span class="save_point">
-											스타일포인트 9,999P 적립예정
+											스타일포인트 <th:block th:text="${#numbers.formatInteger(goodsInfo.pntAmt, 0,'COMMA')}"></th:block>P 적립예정
 										</span>
 										<button type="button" id="btn_saleCoupon_pop" class="btn btn_primary btn_sm btn_coupon"><span>쿠폰받기</span></button>
 									</div>
@@ -105,23 +118,27 @@
 									<p>예약판매 상품 -2020.12.30 출고예정</p>
 								</div>
 							</div>
-							<div class="benefit_box">
+							<div class="benefit_box" th:if="${cardInfoList != null and !cardInfoList.empty}" >
 								<dl>
 									<div class="bnf_shopping">
 										<dt>쇼핑혜택</dt>
-										<dd>
-											<span>최대 15% 쿠폰 할인</span> 
-											<span>99개 이상 구매 시 9,999,999원 할인</span>
-											<span>미니언즈 우산 증정</span>
-											<button type="button" id="btn_bnfShopping_pop" class="btn_popup"><span>자세히</span></button>
-										</dd>
+											<!------------ 색상 강조 텍스트 영역 <em class="c_primary"></em> 사용요청 ------------>
+											<dd>
+												<span>최대 <em class="c_primary">15%</em> 쿠폰 할인</span> 
+												<span><em class="c_primary">99개</em> 이상 구매 시 <em class="c_primary">9,999,999원</em> 할인</span>
+												<span>미니언즈 우산 증정</span>
+												<button type="button" id="btn_bnfShopping_pop" class="btn_popup"><span>자세히</span></button>
+											</dd>
 									</div>
-									<div class="bnf_card">
+									<div class="bnf_card" th:if="${cardInfoList != null and !cardInfoList.empty}">
 										<dt>카드혜택</dt>
 										<dd>
-											<span>국민카드 5% 즉시할인</span>
-											<span>신용카드 무이자 혜택</span>
-											<button type="button" id="btn_bnfCard_pop" class="btn_popup"><span>자세히</span></button>
+											<th:block th:each="cardInfo, status : ${cardInfoList}">
+											<span th:if="${cardInfo.prmtGb == 'A' and cardInfo.dcGb != '3'}"><th:block th:text="${cardInfo.prmtTargetNm}"></th:block> <em class="c_primary"><th:block th:text="${#numbers.formatInteger(cardInfo.dcVal, 0,'COMMA')+ cardInfo.dcWayNm}"></th:block></em> <th:block th:text="${cardInfo.prmtGbNm}"></span>
+											<span th:if="${cardInfo.prmtGb == 'A' and cardInfo.dcGb == '3'}" th:text="${cardInfo.prmtNm}">프로모션명</span>
+											<span th:if="${cardInfo.prmtGb == 'B'}">신용카드 무이자 혜택</span>
+											</th:block>
+											<button type="button" id="btn_bnfCard_pop" class="btn_popup" onclick="cfCardInfo();return false;"><span>자세히</span></button>
 										</dd>
 									</div>
 								</dl>
@@ -349,7 +366,7 @@
 													<span class="star">
 														<em class="progbar" style="width:86%;"></em> <!-- 평점 style로 표기 -->
 													</span>
-													<span class="score">4.3점</span>
+													<span class="score"><em>4.3</em>점</span>
 												</div>
 											</a>
 										</div>
@@ -398,6 +415,7 @@
 							</div>
 						</div>
 					</div>
+				</form>	
 				</div>
 			</div>
 		</div>
@@ -990,7 +1008,7 @@
 												<div class="li_item">
 													<ul>
 														<li>
-															<div class="item_prod">
+															<div class="item_prod unable"> <!-- 판매불가 상품에 unable 추가 -->
 																<div class="item_state">
 																	<a href="#none" class="itemLink">
 																		<div class="itemPic">
@@ -1378,6 +1396,172 @@
 			</div>
 		</div>
 		<!-- // STYLE24의 스타일링 추천 -->
+		<!-- 브랜드 추천상품 -->
+			<div class="content wide pd_brand">
+				<div class="cont_head">
+					<h3 class="subH1 t_c mb40"><span>NIKE</span> 추천상품</h3>
+				</div>
+				<div class="cont_body">
+					<!-- CONT-BODY -->
+					<div class="area_slider">
+						<div class="swiper-container">
+							<div class="swiper-wrapper">
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+							</div>
+						</div>
+						<!-- Add Pagination -->
+						<div class="swiper-pagination"></div>
+						<!-- Add Arrows -->
+						<div class="swiper-button-next"></div>
+						<div class="swiper-button-prev"></div>					
+					</div>
+					<!-- // CONT-BODY -->
+				</div>
+			</div>
+			<!-- // 브랜드 추천상품 -->
 		<!-- 이 상품과 비슷한 상품 -->
 		<div class="content wide pd_relate">
 			<div class="cont_head">
@@ -1730,7 +1914,7 @@
 	<!-- //쇼핑혜택 팝업 -->
 
 	<!-- 카드혜택 팝업 -->
-	<div class="modal fade pd_pop bnf_card_pop" id="bnfCardPop" tabindex="-1" role="dialog" aria-labelledby="bnfCardLabel" aria-hidden="true">
+<!-- 	<div class="modal fade pd_pop bnf_card_pop" id="bnfCardPop" tabindex="-1" role="dialog" aria-labelledby="bnfCardLabel" aria-hidden="true">
 		<div class="modal-dialog" role="document">
 			<div class="modal-content">
 				<div class="modal-header">
@@ -1840,7 +2024,7 @@
 				</div>
 			</div>
 		</div>
-	</div>	
+	</div>	 -->
 	<!-- //카드혜택 팝업 -->
 
 	<!-- 사이즈정보 팝업 -->
@@ -2875,6 +3059,10 @@
 						<div class="select_blk">
 							<h6>옵션 선택</h6>
 							<div class="opt_select">
+								<div class="opt_header">
+											<span class="title">옵션</span>
+											<button type="button" id="btn_infoSize_pop" class="btn_popup"><span>사이즈정보</span></button>
+										</div>
 								<form class="form_wrap">
 									<div class="form_field">
 										<div class="select_custom item_opt3">
@@ -3234,7 +3422,7 @@
 		//상품 대표설명 > 우측 상품정보 
 		/* 1차 옵션선택 후 2차 옵션 활성화 */
 		var opt_selecter01 = new sCombo('.opt_select .select_custom.item_opt1');
-		var opt_selecter01 = new sCombo('.opt_select .select_custom.item_opt2');
+		var opt_selecter02 = new sCombo('.opt_select .select_custom.item_opt2');
 		$('.opt_select .select_custom .combo .list > li').click(function(e) {
 			$(this).parents('.form_field').next('.form_field').find('.select_custom').attr('disabled', false);
 			return false;
@@ -3319,6 +3507,21 @@
 			},
 		});  
 
+		//슬라이드 - 브랜드 추천상품
+		var relateItemSwiper = new Swiper('.pd .pd_brand .area_slider .swiper-container', {
+			slidesPerView: 5,
+			spaceBetween: 20,
+			navigation: {
+				nextEl: '.pd_brand .swiper-button-next',
+				prevEl: '.pd_brand .swiper-button-prev',
+			},
+			pagination: {
+				el: '.pd_brand .swiper-pagination',
+				clickable: true,
+			},
+		});  
+
+		
 		//슬라이드 - 이 상품과 함께 본 상품 
 		var otherItemSwiper = new Swiper('.pd .pd_clickother .area_slider .swiper-container', {
 			slidesPerView: 5,
@@ -3386,6 +3589,12 @@
 			});
 		};
 
+		//팝업 - 공통 닫기 sample
+		$(document).on('click','.modal a.close-modal',function(e){
+			$(".modal").modal("hide");
+			return false;
+		});
+		
 		//팝업 - 쿠폰받기
 		$(document).on('click','#btn_saleCoupon_pop',function(e){
 			$("#saleCouponPop").modal("show"); //할인쿠폰받기
@@ -3400,10 +3609,11 @@
 		});
 
 		//팝업 - 카드혜택 > 자세히보기
-		$(document).on('click','#btn_bnfCard_pop',function(e){
-			$("#bnfCardPop").modal("show");
+		/* $(document).on('click','#btn_bnfCard_pop',function(e){
+			//$("#bnfCardPop").modal("show");
+			cfCardInfo();
 			return false;
-		});
+		}); */
 
 		//팝업 - 사이즈정보
 		$(document).on('click','#btn_infoSize_pop',function(e){

+ 68 - 5
src/main/webapp/ux/style24_link.js

@@ -22,11 +22,11 @@ const _PAGE_CUSTOMER_DORMANT = _frontUrl + "/customer/dormant/certify/form";
 const _PAGE_GOODS_DETAIL = _frontUrl + "/goods/detail/form?goodsCd=";		// 상품 상세
 //const _PAGE_GOODS_DETAIL = _frontUrl + "/goods/detail/coupon/layer?goodsCd=";		// 쿠폰레이어
 const _PAGE_SHOPPING_BENEFIT = _frontUrl + "/goods/shopping/benefit/layer";		// 쇼핑혜택레이어
-const _PAGE_CARD_PROMOTION = _frontUrl + "/goods/card/promotion/layer";		// 카드혜택레이어
-const _PAGE_GOODS_SIZEINFO = _frontUrl + "/goods/sizeInfo/layer?goodsCd=";		// 사이즈정보레이어
-const _PAGE_GOODS_COUNSEL = _frontUrl + "/goods/counsel/layer?goodsCd=";		// 상품문의레이어
-const _PAGE_GOODS_DELIVERY = _frontUrl + "/goods/delivery/layer?goodsCd=";		// 배송/교환/반품 레이어
-const _PAGE_GOODS_REVIEW = _frontUrl + "/goods/review/layer?goodsCd=";		// 상품평 레이어
+const _PAGE_CARD_PRMT_LAYER = _frontUrl + "/goods/card/prmt/layer";		// 카드혜택레이어
+const _PAGE_GOODS_SIZEINFO_LAYER = _frontUrl + "/goods/sizeInfo/layer?goodsCd=";		// 사이즈정보레이어
+const _PAGE_GOODS_COUNSEL_LAYER = _frontUrl + "/goods/counsel/layer?goodsCd=";		// 상품문의레이어
+const _PAGE_GOODS_DELIVERY_LAYER = _frontUrl + "/goods/delivery/layer?goodsCd=";		// 배송/교환/반품 레이어
+const _PAGE_GOODS_REVIEW_LAYER = _frontUrl + "/goods/review/layer?goodsCd=";		// 상품평 레이어
 
 //== 장바구니 ==/
 
@@ -300,3 +300,66 @@ var cfnGoToGoodsDetail = function (goodsCd, ithrCd, contentsLoc, planDtlSq) {
 	if (typeof (planDtlSq) != 'undefined') params += "&planDtlSq=" + planDtlSq;
 	cfnGoToPage(_PAGE_GOODS_DETAIL + params);
 }
+
+
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 공통 레이어 띄우기
+ * <pre>
+ *     cfOpenLayer(_PAGE_CARD_LAYER, 'layer_card_benefit');
+ * </pre>
+ * @param  : page - page. 필수
+ * @param  : tgt - 레이어가 표시될 위치(예, div 태크의 ID). 필수
+ * @param  : oParam - Parameter Object. 옵션
+ * @param  : callbackFnc - 콜백함수. 옵션
+ */
+function cfOpenLayer(page, tgt, oParam, callbackFnc) {
+    if (!oParam) oParam = new Object();
+
+    $.post(page
+        , oParam
+        , function (result) {
+            $('#' + tgt).html(result);
+            $('#' + tgt).modal("show");
+            //$('#' + tgt).show();
+            layerPop_resize(tgt);
+            if (callbackFnc && $.isFunction(callbackFnc))
+                callbackFnc();
+        }
+        , "html");
+    return false;
+}
+
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 공통 레이어 위치 조정
+ * <pre>
+ *     layerPop_resize('layer_card_benefit');
+ * </pre>
+ * @param  : tgt - 레이어가 표시될 위치(예, div 태크의 ID). 필수
+ */
+function layerPop_resize(tgt) {
+    var thisH = $("#" + tgt).find(".modal").outerHeight();
+    var thisT = ($(window).height() / 2) - (thisH / 2);
+    $("#" + tgt).find(".modal").css('top', thisT + 'px');
+}
+
+/**
+* @type   : function
+* @access : public
+* @desc   : 카드혜택보기
+* <pre>
+*		cfCardInfo();
+* </pre>
+*/
+function cfCardInfo() {
+	var str = '<div class="modal fade pd_pop bnf_card_pop" id="layer_card_benefit" tabindex="-1" role="dialog" aria-labelledby="bnfCardLabel" aria-hidden="true"></div>';
+
+	if ($('#layer_card_benefit').length == 0) {
+		$('body').append(str);
+	}
+
+	cfOpenLayer(_PAGE_CARD_PRMT_LAYER, 'layer_card_benefit');
+}