Explorar el Código

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.front.git into develop

gagamel hace 5 años
padre
commit
e27d9ccc6b

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java

@@ -212,5 +212,15 @@ public interface TsfGoodsDao {
 	 * @since 2021. 03. 08
 	 */
 	Delivery getGoodsDeliveryInfo(String goodsCd);
+	
+	/**
+	 * 상품 다다익선 목록
+	 *
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @date 2021. 3. 8
+	 */
+	Collection<Goods> getTmtbGoodsList(Goods goods);
 
 }

+ 10 - 0
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -420,5 +420,15 @@ public class TsfGoodsService {
 		return goodsDao.getGoodsDeliveryInfo(goodsCd);
 	}
 	
+	/**
+	 * 상품 다다익선 목록
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @date 2021. 3. 8
+	 */
+	public Collection<Goods> getTmtbGoodsList(Goods goods) {
+		return goodsDao.getTmtbGoodsList(goods);
+	}
 	
 }

+ 10 - 4
src/main/java/com/style24/front/biz/thirdparty/Yes24Login.java

@@ -1,5 +1,6 @@
 package com.style24.front.biz.thirdparty;
 
+import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.util.GagaFileUtil;
 import com.style24.front.support.security.session.TsfSession;
 import lombok.extern.slf4j.Slf4j;
@@ -35,16 +36,21 @@ public class Yes24Login {
 	 * @since 2021. 03. 03
 	 */
 	public String getAuthorizeUrl(String state) {
-		String authorizeUrl = "https://www.yes24.com/Templates/FTLogin.aspx";
-		String authorizeUrl2 = "https://www.yes24.com/Templates/FTLoginPartner.aspx";
-		String callBackUrl = "/signin/snsLoginCallback?snsType=YS";
+		String authorizeUrl = "https://www.yes24.com/Templates/FTLoginPartner.aspx";
+		String callBackUrl = "/signin/yes24LoginCallback";
 		StringBuilder apiUrlBuilder = new StringBuilder();
 		String redirectUri = GagaFileUtil.getConcatenationPath(PROTOCOL + TsfSession.getHttpServletRequest().getServerName(), callBackUrl);
-		apiUrlBuilder.append(authorizeUrl2)
+		apiUrlBuilder.append(authorizeUrl)
 				.append("?PID=101582")
 				.append("&ReturnURL=")
 				.append(redirectUri);
 		log.info("apiUrlBuilder ===> {}", apiUrlBuilder.toString());
 		return apiUrlBuilder.toString();
 	}
+
+	public GagaMap getAccessInfo(String ci) {
+		GagaMap result = new GagaMap();
+
+		return result;
+	}
 }

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

@@ -412,4 +412,92 @@ public class TsfGoodsController extends TsfBaseController {
 		mav.setViewName(super.getDeviceViewName("goods/GoodsDeliveryForm"));
 		return mav;
 	}
+	
+	/**
+	 * 상품상세 - 다다익선 상품
+	 * 
+	 * @return
+	 * @author eskim
+	 * @since 2021. 3. 8
+	 */
+	@PostMapping("/detail/tmtb/frame")
+	public ModelAndView goodsTmtbForm(Goods goods) {  
+
+		ModelAndView mav = new ModelAndView();
+		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
+		setGoods(goods);
+		goods.setMaxRownum(20);
+		mav.addObject("goodsList", goodsService.getTmtbGoodsList(goods));
+		//log.info("goodsTmtbForm = goods{}", goods);
+		mav.addObject("params", goods);
+
+		mav.setViewName(super.getDeviceViewName("goods/GoodsOtherForm"));
+		return mav;
+	}
+	
+	/**
+	 * 상품상세 - 함께본 상품
+	 * 
+	 * @return
+	 * @author eskim
+	 * @since 2021. 3. 8
+	 */
+	@PostMapping("/detail/together/frame")
+	public ModelAndView goodsTogetherForm(Goods goods) {  
+
+		ModelAndView mav = new ModelAndView();
+		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
+		setGoods(goods);
+		goods.setMaxRownum(15);
+		mav.addObject("goodsList", goodsService.getTmtbGoodsList(goods));
+		//log.info("goodsTogetherForm = goods{}", goods);
+		mav.addObject("params", goods);
+
+		mav.setViewName(super.getDeviceViewName("goods/GoodsOtherForm"));
+		return mav;
+	}
+	
+	/**
+	 * 상품상세 - 추천 상품
+	 * 
+	 * @return
+	 * @author eskim
+	 * @since 2021. 3. 8
+	 */
+	@PostMapping("/detail/recommend/frame")
+	public ModelAndView goodsRecommendForm(Goods goods) {  
+
+		ModelAndView mav = new ModelAndView();
+		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
+		setGoods(goods);
+		goods.setMaxRownum(15);
+		mav.addObject("goodsList", goodsService.getTmtbGoodsList(goods));
+		//log.info("goodsRecommendForm = goods{}", goods);
+		mav.addObject("params", goods);
+
+		mav.setViewName(super.getDeviceViewName("goods/GoodsOtherForm"));
+		return mav;
+	}
+	
+	/**
+	 * 상품상세 - 비슷한 상품
+	 * 
+	 * @return
+	 * @author eskim
+	 * @since 2021. 3. 8
+	 */
+	@PostMapping("/detail/like/frame")
+	public ModelAndView goodsLikeForm(Goods goods) {  
+
+		ModelAndView mav = new ModelAndView();
+		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
+		setGoods(goods);
+		goods.setMaxRownum(15);
+		mav.addObject("goodsList", goodsService.getTmtbGoodsList(goods));
+		//log.info("goodsLikeForm = goods{}", goods);
+		mav.addObject("params", goods);
+
+		mav.setViewName(super.getDeviceViewName("goods/GoodsOtherForm"));
+		return mav;
+	}
 }

+ 45 - 2
src/main/java/com/style24/front/biz/web/TsfIndexController.java

@@ -130,7 +130,6 @@ public class TsfIndexController extends TsfBaseController {
 	 * 로그인 페이지
 	 * @param error - 로그인 오류 정보
 	 * @param session - HttpSession
-	 * @param snsType - SNS유형(NV:네이버, KK:카카오, FB:페이스북)
 	 * @return
 	 * @author gagamel
 	 * @throws IOException
@@ -296,10 +295,12 @@ public class TsfIndexController extends TsfBaseController {
 		if (isSnsLoing) {
 			CustSnsInfo custSnsInfo = objectMapper.convertValue(userInfo, CustSnsInfo.class);
 			log.info("custSnsInfo ==> {}", custSnsInfo.toString());
-			//상태 체크
+
+			//SNS 로그인 처리
 			resultMap = customerService.customerSnsProcessing(custSnsInfo);
 			resultMap.setString("snsId", custSnsInfo.getSnsId());
 			resultMap.setString("snsType", custSnsInfo.getSnsType());
+
 			String custStat = resultMap.getString("custStat");
 
 			// 신규가입 이면 바로 로그인 처리
@@ -325,4 +326,46 @@ public class TsfIndexController extends TsfBaseController {
 		return mav;
 	}
 
+
+	@RequestMapping("/signin/yes24LoginCallback")
+	public ModelAndView yes24LoginCallback(@RequestParam("ipin")String ipin, HttpSession session, HttpServletRequest request) {
+		ModelAndView mav = new ModelAndView();
+		boolean isSnsLoing = false;
+		GagaMap userInfo = new GagaMap();
+
+		if (StringUtils.isNotBlank(ipin)) {
+			log.info(ipin);
+		}
+
+
+		GagaMap resultMap = new GagaMap();
+
+		// SNS 로그인 성공시 정보 세션 저장
+		if (isSnsLoing) {
+			CustSnsInfo custSnsInfo = objectMapper.convertValue(userInfo, CustSnsInfo.class);
+			log.info("custSnsInfo ==> {}", custSnsInfo.toString());
+
+			//SNS 로그인 처리
+			resultMap = customerService.customerSnsProcessing(custSnsInfo);
+			resultMap.setString("snsId", custSnsInfo.getSnsId());
+			resultMap.setString("snsType", custSnsInfo.getSnsType());
+
+			String custStat = resultMap.getString("custStat");
+
+			// 신규가입 이면 바로 로그인 처리
+			if ("NEW_CUST".equals(custStat)) {
+				customerService.getLogin(Integer.parseInt(resultMap.getString("custNo")), request);
+			}
+
+			// 가입 폼으로 이동
+			if ("EMPTY_PHONE_CUST".equals(custStat)) {
+				session.setAttribute("custSnsInfo", custSnsInfo);
+			}
+		}
+		mav.addObject("resultMap", resultMap);
+		mav.setViewName(super.getDeviceViewName("SnsCallBackForm"));
+
+		return  mav;
+	}
+
 }

+ 7 - 6
src/main/java/com/style24/front/support/security/handler/TsfLoginSuccessHandler.java

@@ -39,12 +39,13 @@ public class TsfLoginSuccessHandler implements AuthenticationSuccessHandler {
 
 	// 로그인 후 메인으로 이동할 페이지 목록
 	private final String[] pagesToMain = new String[] {
-		"/customer/join/form",				// 회원가입
-		"/customer/sns/join/form",			// SNS 회원가입
-		"/customer/id/find/form",			// 아이디찾기
-		"/customer/pwd/find/form",			// 비밀번호찾기
-		"/customer/join/complete/form",		// 회원가입완료
-		"/customer/join/type/form"			// 회원가입유형
+		"/customer/join/form",						// 회원가입
+		"/customer/sns/join/form",					// SNS 회원가입
+		"/customer/id/find/form",					// 아이디찾기
+		"/customer/pwd/find/form",					// 비밀번호찾기
+		"/customer/join/complete/form",				// 회원가입완료
+		"/customer/join/type/form",					// 회원가입유형
+		"/customer/dormant/certify/complete/form"	// 휴면해제
 	};
 
 	@Autowired

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

@@ -24,5 +24,7 @@ public class Delivery extends TscBaseDomain {
 	private String rtnLocDtlAddr;	// 반품처상세주소
 	private String rtnLocTelno;		// 반품처전화번호
 	private String note;			// 배송안내정보
+	private String shipCompCd;			// 배송안내정보
+	private String shipCompNm;			// 배송안내정보
 
 }

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

@@ -125,6 +125,7 @@ public class Goods extends TscBaseDomain {
 
 	private String mobileYn;
 	private String delvResDt;		// 예약판매 출고예정일
+	private int maxRownum;			// 조회건수
 
 	//상품상세 구분(10:상품타이틀,20:상품타이틀내용,30:상품특징,40:상위컨텐츠,50:하위컨텐츠,60:상위컨텐츠-모바일,70:하위컨텐츠-모바일,80:상품상세(as-is,입점))
 	private String goodsTitle; 			// 10:상품타이틀
@@ -133,5 +134,7 @@ public class Goods extends TscBaseDomain {
 	private String goodsTopDesc;		// 40:상위컨텐츠, 60:상위컨텐츠-모바일
 	private String goodsDownDesc;		// 50:하위컨텐츠, 70:하위컨텐츠-모바일
 	private String goodsDesc;			// 80:상품상세(as-is,입점)
+	
+	private String goodsOtherGb;		// tmtb:다다익선상품, together:함께본상품  recommmend:추천상품  like: 비슷한상품
 
 }

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfCounsel.xml

@@ -355,7 +355,7 @@
 		WHERE  A.REL_GOODS_CD = G.GOODS_CD
 		AND    A.CUST_NO = C.CUST_NO
 		AND    A.REL_GOODS_CD = #{relGoodsCd}
-		<if test='secretYn != null and secretYn == "Y" '>
+		<if test='secretYn != null and secretYn == "N" '>
 		AND    A.SECRET_YN = #{secretYn}
 		</if>
 		AND    A.SITE_CD = #{siteCd}

+ 85 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -628,14 +628,98 @@
 		     , B.RTN_LOC_DTL_ADDR
 		     , B.RTN_LOC_TELNO
 		     , S.NOTE
+		     , SC.SHIP_COMP_CD
+		     , SC.SHIP_COMP_NM
 		FROM TB_GOODS G
 		INNER JOIN TB_SUPPLY_COMPANY S ON G.SUPPLY_COMP_CD = S.SUPPLY_COMP_CD
 		INNER JOIN TB_DELV_FEE_POLICY A ON G.DELV_FEE_CD = A.DELV_FEE_CD
-		LEFT OUTER JOIN TB_DELIVERY_LOC B ON A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD 
+		INNER JOIN TB_DELIVERY_LOC B ON A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD 
 		                                  AND B.USE_YN = 'Y'
+		INNER JOIN TB_SHIP_COMPANY SC ON B.SHIP_COMP_CD = SC.SHIP_COMP_CD
+		                              AND SC.USE_YN = 'Y'
 		WHERE G.GOODS_CD = #{goodsCd}
 		ORDER BY A.DELV_FEE_CD 
 		LIMIT 1
 	</select>
 	
+	<!-- 상품 다다익선 목록 -->
+	<select id="getTmtbGoodsList" parameterType="Goods" resultType="Goods">
+		/* TsfGoods.getTmtbGoodsList */
+		SELECT Z.*
+		     , 100 - ROUND((CURR_PRICE / LIST_PRICE) * 100 ,0) AS DC_RATE
+		FROM (
+		      SELECT B.GOODS_CD 
+		           , G.GOODS_NM
+		           , CONCAT(IF(IFNULL(G.GOODS_GB,'') IN ('G073_11','G073_15', ''), '',IFNULL(CONCAT('[',FN_GET_CODE_NM('G073',G.GOODS_GB),']'),'') )
+		                   ,IF(G.FOREIGN_BUY_YN='Y','[해외구매대행]','' )
+		                   ,IF(G.PARALLEL_IMPORT_YN = 'Y','[병행수입]','')
+		                   ,IF(G.ORDER_MADE_YN='Y','[주문제작]','')
+		                   ,G.GOODS_NM ) AS GOODS_FULL_NM
+		          , G.GOODS_STAT
+		          , G.GOODS_TYPE
+		          , G.MIN_ORD_QTY 
+		          , (CASE WHEN E.DISP_NM_LANG = 'EN' THEN E.BRAND_GROUP_ENM ELSE E.BRAND_GROUP_KNM END) AS BRAND_GROUP_NM
+		          , G.LIST_PRICE
+		          , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD, G.CURR_PRICE,#{custGb}) AS CURR_PRICE
+		          , G.MAIN_COLOR_CD
+		          , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
+		          , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND MOUSEOVER_IMG_YN = 'Y') AS SYS_IMG_NM2
+		          , S.STOCK_QTY
+		          , S.SOLDOUT_YN
+		          , S.OPT_CD
+		          , V.VIDEO_GB_M
+		          , V.VIDEO_VAL_M
+		          , V.VIDEO_GB_S
+		          , V.VIDEO_VAL_S
+		          , (CASE WHEN W.GOODS_CD IS NULL THEN 'N' ELSE 'Y' END) AS WISH_YN
+		      FROM TB_TMTB A
+		      INNER JOIN TB_TMTB_APPLY_GOODS B ON a.TMTB_SQ  = B.TMTB_SQ
+		      INNER JOIN TB_GOODS G ON B.GOODS_CD = G.GOODS_CD
+		                            AND G.GOODS_STAT = 'G008_90'
+		                            AND G.SELF_MALL_YN = 'Y'
+		      INNER JOIN TB_BRAND D ON G.BRAND_CD = D.BRAND_CD
+		                    AND D.USE_YN = 'Y'
+		      INNER JOIN TB_BRAND_GROUP E ON D.BRAND_GROUP_NO = E.BRAND_GROUP_NO
+		                            AND E.USE_YN = 'Y'
+		      
+		      LEFT OUTER JOIN (SELECT GOODS_CD
+		                            , SUM(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
+		                                       ELSE CURR_STOCK_QTY END) AS STOCK_QTY
+		                            , MIN(SOLDOUT_YN) AS SOLDOUT_YN
+		                            , MIN(CASE WHEN SOLDOUT_YN = 'N' THEN OPT_CD 
+		                                       ELSE 'XXX' END) AS OPT_CD 
+		                       FROM VW_STOCK
+		                       WHERE DISP_YN = 'Y'
+		                       GROUP BY GOODS_CD) S ON G.GOODS_CD = S.GOODS_CD
+		      LEFT OUTER JOIN (SELECT MAX(GOODS_CD) AS GOODS_CD 
+		                             , MAX(CASE WHEN  RNUM = 1 THEN  VIDEO_GB END) AS  VIDEO_GB_M
+		                             , MAX(CASE WHEN  RNUM = 1 THEN  VIDEO_VAL END) AS  VIDEO_VAL_M
+		                             , MAX(CASE WHEN  RNUM = 2 THEN  VIDEO_GB END) AS  VIDEO_GB_S
+		                             , MAX(CASE WHEN  RNUM = 2 THEN  VIDEO_VAL END) AS  VIDEO_VAL_S
+		                       FROM (
+		                             SELECT A.DISPLOC_VAL AS GOODS_CD
+		                                  , B.VIDEO_GB 
+		                                  , B.VIDEO_VAL 
+		                                  , A.REG_DT 
+		                                  , RANK() OVER(PARTITION BY A.DISPLOC_VAL ORDER BY A.REG_DT ) RNUM 
+		                             FROM TB_VIDEO_DISPLOC  A
+		                             INNER JOIN  TB_VIDEO B ON A.VIDEO_SQ = B.VIDEO_SQ 
+		                                                    AND B.DISP_YN ='Y'
+		                             WHERE A.DISPLOC_GB ='G'
+		                             AND A.DISP_YN = 'Y'
+		                            ) V
+		                       ) V ON G.GOODS_CD = V.GOODS_CD
+		      LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
+		                              AND IFNULL(#{custNo}, 0) = W.CUST_NO
+		      WHERE NOW() BETWEEN A.TMTB_ST_DT AND A.TMTB_ED_DT
+		      AND A.TMTB_STAT ='G232_11'
+		      AND A.TMTB_SQ IN (SELECT TMTB_SQ FROM tb_tmtb_apply_goods WHERE GOODS_CD = #{goodsCd} AND DEL_YN = 'N')
+		      <![CDATA[
+		      AND B.GOODS_CD <> #{goodsCd}
+		       ]]>
+		      ORDER BY A.TMTB_SQ 
+		) Z
+		LIMIT #{maxRownum}
+	</select>
+	
 </mapper>

+ 22 - 14
src/main/webapp/WEB-INF/views/web/SigninFormWeb.html

@@ -107,7 +107,7 @@
 							</li>
 							<li>
 								<a href="javascript:void(0)">
-									<i class="ico ico_snslogin yes24"></i>
+									<i class="ico ico_snslogin yes24" onclick="cfnLoginYes24();"></i>
 									<span>YES24로 시작하기</span>
 								</a>
 							</li>
@@ -152,6 +152,25 @@
 			, $.param(params)
 			, function(result) {
 				if (result.status != 'OK') {
+
+					if (result.status == 'PWD_5WRONG') {
+						// Do nothing
+					} else if (result.status == 'DORMANT_CUST') {
+						// 휴면회원
+						mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
+							sureBtnText: "확인",
+							sureBtnClick: function() {
+								cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
+							}
+						});
+
+						return;
+					} else if (result.status == 'SECEDE_CUST') {
+						// 탈퇴회원
+					} else if (result.status == 'SESSION_EXPIRED') {
+						// 세션만료
+					}
+
 					if (!gagajf.isNull(result.message)) {
 						let loginFailCnt = Number(result.loginFailInfo.loginFailCnt);
 						
@@ -176,18 +195,7 @@
 							}
 						}
 					}
-					
-					if (result.status == 'PWD_5WRONG') {
-						// Do nothing
-					} else if (result.status == 'DORMANT_CUST') {
-						// 휴면회원
-						//cfnGoToPage(_PAGE_DORMANT_GUIDE);
-					} else if (result.status == 'SECEDE_CUST') {
-						// 탈퇴회원
-					} else if (result.status == 'SESSION_EXPIRED') {
-						// 세션만료
-					}
-					
+
 					return; // 정상적으로 로그인 되지 않았으므로 return
 				}
 				
@@ -292,7 +300,7 @@
 
 
 
-$(document).ready(function() {
+	$(document).ready(function() {
 		$('#loginForm input[name=loginId]').val(gagajf.getCookie(ckLoginId));
 		if (gagajf.isNull($('#loginForm input[name=loginId]').val())) {
 			$('#loginForm input[name=loginId]').focus();

+ 3 - 6
src/main/webapp/WEB-INF/views/web/customer/DormantCertifyCompleteFormWeb.html

@@ -23,13 +23,10 @@
 	<div class="wrap">
 		<div class="content dormant_clear"> <!-- 페이지특정 클래스 = dormant_clear -->
 			<div class="cont_head">
-				<h3>style24</h3>
+				<h4>휴면회원 전환안내</h4>
 			</div>
 			<div class="cont_body">
-				<div class="form_wrap form_col_c">
-					<div class="form_head">
-						<h4>휴면회원 전환안내</h4>
-					</div>
+				<form class="form_wrap form_col_c" role="form">
 					<div class="form_info">
 						<span class="ico_content_dormant2"></span>
 						<p class="c_primary">휴면상태가 해제되었습니다!</p>
@@ -40,7 +37,7 @@
 							<button type="button" class="btn btn_dark btn_block" onclick="cfnGoToPage(_PAGE_LOGIN);"><span>로그인</span></button>
 						</div>
 					</div>
-				</div>
+				</form>
 			</div>
 		</div>
 	</div>

+ 4 - 7
src/main/webapp/WEB-INF/views/web/customer/DormantCertifyFormWeb.html

@@ -23,13 +23,10 @@
 	<div class="wrap">
 		<div class="content dormant"> <!-- 페이지특정 클래스 = dormant -->
 			<div class="cont_head">
-				<h3>style24</h3>
+				<h4>휴면회원 전환안내</h4>
 			</div>
 			<div class="cont_body">
-				<div class="form_wrap form_col_c">
-					<div class="form_head">
-						<h4>휴면회원 전환안내</h4>
-					</div>
+				<form class="form_wrap form_col_c form_full" role="form">
 					<div class="form_info">
 						<span class="ico_content_dormant"></span>
 						<p class="c_primary">최근 1년 이상 서비스를 이용하지 않아 휴면회원으로 전환되었습니다.</p>
@@ -55,7 +52,7 @@
 							정보통신망 이용촉진 및 정보보호 등에 관한 법률 제 29조 (개인정보의 파기) 2항 및 동법 시행령 제 16조에 의거하여 최근 1년 이상 서비스 및 이용 회원의 개인정보를 별도 분리&middot;보관하고 있습니다.
 						</p>
 					</div>
-				</div>
+				</form>
 			</div>
 		</div>
 	</div>
@@ -69,7 +66,7 @@
 			let custInfo = {};
 			custInfo.encData = encData;
 			let jsonData = JSON.stringify(custInfo);
-			gagajf.ajaxJsonSubmit('/customer/dormnat/release', jsonData, fnRelaseCallback);
+			gagajf.ajaxJsonSubmit('/customer/dormant/release', jsonData, fnRelaseCallback);
 		}
 	};
 

+ 2 - 2
src/main/webapp/WEB-INF/views/web/goods/GoodsDeliveryFormWeb.html

@@ -75,7 +75,7 @@
 									배송업체
 								</th>
 								<td>
-									CJ 대한통운  -- 수정
+									<th:block th:text="${deliveryInfo.shipCompNm}" ></th:block>
 								</td>
 							</tr>
 							<tr>
@@ -106,7 +106,7 @@
 									반품/교환 배송업체
 								</th>
 								<td>
-									CJ 대한통운  -- 수정
+									<th:block th:text="${deliveryInfo.shipCompNm}" ></th:block>
 								</td>
 							</tr>
 							<tr>

+ 394 - 609
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -38,7 +38,11 @@
 									<div class="swiper-container">
 										<div class="swiper-wrapper">
 										<th:block th:each="goodsImg, status : ${goodsImgList}">
-											<div class="swiper-slide" th:classappend="${status.first}? 'on' : ''"><a th:href="${'#navLocate'+ status.count}"><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt=""></span></a></div>
+											<div class="swiper-slide" th:classappend="${status.first}? 'on' : ''" 
+													th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_S1.') 
+															or #strings.contains(goodsImg.sysImgNm,'_L1.')
+															or #strings.contains(goodsImg.sysImgNm,'_L2.'))}">
+											<a th:href="${'#navLocate'+ status.count}"><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt=""></span></a></div>
 										</th:block>	
 										</div>
 									</div>
@@ -49,7 +53,11 @@
 						<div class="thumb_list_wrap"  th:if="${goodsImgList != null and !goodsImgList.empty}" >
 							<ul>
 								<th:block th:each="goodsImg, status : ${goodsImgList}">
-								<li th:id="${'navLocate'+ status.count}"  th:classappend="${status.first}? 'on' : ''"><a href=""><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt=""></span></a></li>
+								<li th:id="${'navLocate'+ status.count}"  th:classappend="${status.first}? 'on' : ''" 
+									th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_S1.') 
+												or #strings.contains(goodsImg.sysImgNm,'_L1.')
+												or #strings.contains(goodsImg.sysImgNm,'_L2.'))}">
+									<a href="javascript:void(0);"><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt=""></span></a></li>
 								</th:block>
 							</ul>
 						</div>
@@ -376,58 +384,8 @@
 		</div>
 		<!-- 상품 대표설명 -->
 		<!-- 함께하면 할인되는 다다익선 상품 -->
-		<div class="content wide pd_together">
-			<div class="cont_head">
-				<h3 class="subH1 t_c mb40">함께하면 할인되는 다다익선 상품</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_pdTogether1.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_pdTogether1.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>
-						<!-- Add Scrollbar -->
-						<div class="swiper-scrollbar"></div> 
-					</div>
-				</div>
-				<!-- // CONT-BODY -->
-			</div>
+		<div class="content wide pd_together" id="goodsTmtbArea">
+			
 		</div>
 		<!-- // 함께하면 할인되는 다다익선 상품 -->
 		<!-- 상품상세정보 -->
@@ -629,61 +587,7 @@
 		</div>
 		<!-- //상품상세정보 -->
 		<!-- 이 상품과 함께 본 상품 -->
-		<div class="content wide pd_clickother">
-			<div class="cont_head">
-				<h3 class="subH1 t_c mb40">이 상품과 함께 본 상품</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_pdClickother1.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_pdClickother1.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 class="content wide pd_clickother" id="goodsTogetherbArea">
 		</div>
 		<!-- // 이 상품과 함께 본 상품 -->
 		<!-- STYLE24의 스타일링 추천 -->
@@ -725,7 +629,12 @@
 															<div class="item_prod" th:classappend="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}? 'unable' : ''"
 																					th:attr="goodsCd=${lookbookGoods.goodsCd}, optCd=${lookbookGoods.optCd}, minOrdQty=${lookbookGoods.minOrdQty},  goodsType=${lookbookGoods.goodsType}, ithrCd=${ithrCd}, contentsLoc=${contentsLoc}"> <!-- 판매불가 상품에 unable 추가 -->
 																<div class="item_state">
+																	<th:block th:if="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}">
+																	<a href="javascript:void(0);" class="itemLink" >
+																	</th:block>
+																	<th:block th:unless="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}">
 																	<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${lookbookGoods.goodsCd}]], '',[[${ithrCd}]],[[${contentsLoc}]] )">
+																	</th:block>
 																		<div class="itemPic">
 																			<img alt="" class="vLHTC pd_img"  th:src="${imgGoodsUrl+'/'+lookbookGoods.sysImgNm}">
 																		</div>
@@ -760,137 +669,11 @@
 		</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>
-						</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_brand" id="goodsRecommendbArea">
+		</div>
 			<!-- // 브랜드 추천상품 -->
 		<!-- 이 상품과 비슷한 상품 -->
-		<div class="content wide pd_relate">
-			<div class="cont_head">
-				<h3 class="subH1 t_c mb40">이 상품과 비슷한 상품</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>
-						</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 class="content wide pd_relate" id="goodsLikebArea">
 		</div>
 		<!-- // 이 상품과 비슷한 상품 -->
 	</div>
@@ -2242,376 +2025,92 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 
-	$(document).ready( function() {
-		// 상품 대표설명 > 좌측 상품썸네일 navi, 우측 상품정보 고정 
-		$(window).scroll(function(){
-			var scrollTop= $(window).scrollTop();
-			var firstFixed =  $('#header').outerHeight();
-			var thumbListWrap_h = $('.pd_detail .thumb_list_wrap').outerHeight();
-			var descWrap_h = $('.pd_detail .desc_wrap').outerHeight();
-			var secondFixed_left =  firstFixed + $('.pd_detail').outerHeight() - $('.pd_detail .thumb_nav_wrap').outerHeight();
-			var secondFixed_right =  firstFixed + $('.pd_detail .desc_wrap').outerHeight() - $(window).outerHeight();
-			var secondFixed_right2 =  firstFixed + $('.pd_detail').outerHeight() - $(window).outerHeight();
+	// 다다익선 상품
+	var jfGoodsTmtbSearch = function(params) {
+		gagajf.ajaxSubmit("/goods/detail/tmtb/frame", "html", "goodsTmtbArea", params);
+	}
+	
+	// 함께본 상품
+	var jfGoodsTogetherSearch = function(params) {
+		gagajf.ajaxSubmit("/goods/detail/together/frame", "html", "goodsTogetherbArea", params);
+	}
+	
+	// 추천 상품
+	var jfGoodsRecommendSearch = function(params) {
+		gagajf.ajaxSubmit("/goods/detail/recommend/frame", "html", "goodsRecommendbArea", params);
+	}
+	
+	// 비슷한 상품
+	var jfGoodsLikeSearch = function(params) {
+		gagajf.ajaxSubmit("/goods/detail/like/frame", "html", "goodsLikebArea", params);
+	}
 
-			/* 좌측 상품썸네일 navi 고정 */
-			if (scrollTop > firstFixed){  
-				$('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixbottom').addClass('fixtop');
-			}
-			else if (scrollTop < firstFixed){
-				$('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop');
-			}
-			if (scrollTop > secondFixed_left){
-				$('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop').addClass('fixbottom');
-			} 
-			
-			/* 우측 상품정보 고정 */
-			if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right) {
-				$('.pd_detail .area_desc .desc_wrap').removeClass('absbottom').addClass('fixbottom');
-			}
-			else if (thumbListWrap_h > descWrap_h && scrollTop < secondFixed_right) {
-				$('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom');
-			}
-			if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right2) {
-				$('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom').addClass('absbottom');
-			}
-		});
+	
+	//사이즈 클릭시
+	var jfViewStock = function(obj, goodsCd, optCd1, optCd2,  minOrdQty, maxOrdQty) {
+		let $obj = $(obj);
 
-		//슬라이드 - 상품 대표설명 > 좌측 상품썸네일 navi
-		var thumbNavSwiper = new Swiper('.area_pic .thumb_nav_wrap .swiper-container', {
-			direction: 'vertical',
-			slidesPerView: 6,
-			slidesPerGroup : 6,
-			spaceBetween: 10,
-			navigation: {
-				nextEl: '.area_pic .thumb_nav_wrap .swiper-button-next',
-				prevEl: '.area_pic .thumb_nav_wrap .swiper-button-prev',
-			},
-		});
+		var $target = $obj.parent().parent().children('input[name="rdi-optsize"]');
+		$target.prop("checked",true);
+		var addPrice  = $target.attr("addPrice");
+		var optCd  = $target.attr("optCd");
+		$("#selectOptCd1").html(optCd2);
+		if (Number(addPrice) > 0) $("#selectOptCd1addPrice").html("(+" + addPrice.addComma() + ")");
+		$("#cartForm  input[name=optCd]").val(optCd);
+		$("#cartForm  input[name=optCd1]").val(optCd1);
+		$("#cartForm  input[name=optCd2]").val(optCd2);
+		$("#cartForm  input[name=addPrice]").val(addPrice);
+		$("#cartForm  input[name=ordQty]").val("");
+		var selfGoodsYn = $("#cartForm  input[name=selfGoodsYn]").val();
 
-		//상품 대표설명 > 상품썸네일 1개일때
-		var thumblist = $('.area_pic .thumb_list_wrap li');	
-		var thumblistLength = thumblist.length;
-		if (thumblistLength == 1) {
-			thumblist.parents('.area_pic').addClass('onlyitem');
-		} else {
-			thumblist.parents('.area_pic').removeClass('onlyitem');
-		}
+		var maxCnt = maxOrdQty;
+		var params = new Object();
+		params.goodsCd = goodsCd;
+		params.optCd = optCd;
+		params.optCd1 = optCd1;
+		params.optCd2 = optCd2;
+		params.selfGoodsYn = selfGoodsYn;
 
-		//상품 대표설명 > 좌측 상품썸네일 6개 이하일때
-		var thumbnavSlide = $('.area_pic .thumb_nav_wrap .swiper-container .swiper-slide');	
-		var thumbnavLength = thumbnavSlide.length;
-		if (thumbnavLength < 7) {
-			thumbnavSlide.parents('.thumbnav').addClass('disabled');
-		} else {
-			thumbnavSlide.parents('.thumbnav').removeClass('disabled');
-		}
+		$.get("/goods/detail/ajaxGoodsStockQty", $.param(params), function(result) {
+			var itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
 
-		//상품 대표설명 > 좌측 상품썸네일 navi 선택시 해당 대표 썸네일 위치로 이동
-		$(document).on('click','.pd_detail .area_pic .thumbnav .swiper-slide a',function(e){
-			e.preventDefault();
-			var hdHeight = $('#header').outerHeight();
-			var targetThumb = $($(this).attr('href'));
-			var topThumb = targetThumb.offset().top - hdHeight;
-			$(this).parents('.thumbnav').find('.swiper-slide').removeClass('on');
-			$(this).parent('.swiper-slide').addClass('on');
-			targetThumb.siblings('li').removeClass('on');
-			targetThumb.addClass('on');
-			$('html,body').animate({scrollTop : topThumb}, 500);
-			return false;
-		});
+			if (maxCnt > itemCnt) {
+				maxCnt = itemCnt;
+			}
 
-		//상품 대표설명 > 우측 상품정보 
-		/* 1차 옵션선택 후 2차 옵션 활성화 */
-		var opt_selecter01 = new sCombo('.opt_select .select_custom.item_opt1');
-		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;
-		});
-		
-		/* 행사 남은시간 */
-		function promotionTimer() {
-			var endTime = new Date('30 March 2021 9:56:00 GMT+0900'); // 남은시간 지정		
-				endTime = (Date.parse(endTime) / 1000);
+			if (minOrdQty > itemCnt) {
+				$target.prop("disabled", true);
+			}else{
+				$("#cartForm  input[name=ordQty]").val(minOrdQty);
+				$("#cartForm  input[name=maxOrdQty]").val(maxCnt);
+				$("#cartForm  input[name=minOrdQty]").val(minOrdQty);
+				$("#cartForm  input[name=cea]").val(minOrdQty);
+				$("#cartForm  input[name=cea]").attr("readonly",false);
+				$("#cartForm  input[name=stock]").val(itemCnt);
 
-				var now = new Date();
-				now = (Date.parse(now) / 1000);
+				jfSetTotalPrice();
+			}
 
-				var timeLeft = endTime - now;
+		}, "text");
+	}
+	
+	// 수량 변경 클릭
+	var jfAdjustOrderEa = function(obj) {
 
-				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; }
-
-				$('#d-days').html(days);
-				$('#d-hours').html(hours);
-				$('#d-minutes').html(minutes);
-				$('#d-seconds').html(seconds);		
-		}
-		setInterval(function() { promotionTimer(); }, 1000);
-
-		/* 상품옵션변경 팝업 > 수량조절 */
-//		
-		
-		//스타일링 추천 picker	
-		$(document).on('mouseenter','.pd_recommend .area_slider .item_picker button',function(e){
-			$(this).parents('.item_picker').find('.pick_descr').show();
-			return false;
-		}).on('mouseleave','.pd_recommend .area_slider .item_picker button', function(e){
-			$(this).parents('.item_picker').find('.pick_descr').hide();
-			return false;
-		});   
-
-		//상품상세정보 더보기   
-		$(document).on('click','.pd_descrp .btn_more_box button',function(e){
-			$('.pd_descrp .cont_body').toggleClass('on'); 
-			$(this).toggleClass('active');
-			$(this).parent('.btn_more_box').toggleClass('covered');
-			var descrpToggle = $(this).find('span');
-			$(descrpToggle).text($(descrpToggle).text() == '상세정보 더보기' ? '상세정보 접기' : '상세정보 더보기');
-			return false;
-		}); 
-
-		//관심상품 등록
-		$(document).on('click','.pd .itemLike',function(e){
-			$(this).toggleClass('active');
-			return false;
-		});	
-
-		//슬라이드 - 함께하면 할인되는 다다익선 상품
-		var togetherItemSwiper = new Swiper('.pd .pd_together .area_slider .swiper-container', {
-			slidesPerView: 6,
-			spaceBetween: 20,
-			scrollbar: {
-				el: '.pd_together .swiper-scrollbar',
-				hide: true,
-			},
-		});  
-
-		//슬라이드 - 브랜드 추천상품
-		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,
-			spaceBetween: 20,
-			navigation: {
-				nextEl: '.pd_clickother .swiper-button-next',
-				prevEl: '.pd_clickother .swiper-button-prev',
-			},
-			pagination: {
-				el: '.pd_clickother .swiper-pagination',
-				clickable: true,
-			},
-		});			
-
-		//슬라이드 - STYLE24의 스타일링 추천
-		var rcmdItemSwiper = new Swiper('.pd .pd_recommend .area_slider .swiper-container', {
-			slidesPerView: 1,
-			spaceBetween: 0,
-			navigation: {
-				nextEl: '.pd_recommend .swiper-button-next',
-				prevEl: '.pd_recommend .swiper-button-prev',
-			},
-			pagination: {
-				el: '.pd_recommend .swiper-pagination',
-				clickable: true,
-			},
-		});			
-
-		//슬라이드 - 이 상품과 비슷한 상품 
-		var relateItemSwiper = new Swiper('.pd .pd_relate .area_slider .swiper-container', {
-			slidesPerView: 5,
-			spaceBetween: 20,
-			navigation: {
-				nextEl: '.pd_relate .swiper-button-next',
-				prevEl: '.pd_relate .swiper-button-prev',
-			},
-			pagination: {
-				el: '.pd_relate .swiper-pagination',
-				clickable: true,
-			},
-		});	  
-
-		//alert -쇼핑백담기
-		/* document.getElementById("btn_add_cart").onclick = function(){
-			mcxDialog.confirm("<div class="+"dialog-title"+">"+"상품이 쇼핑백에 추가되었습니다.</div><p>쇼핑백으로 이동하시겠습니까?</p>", {
-				cancelBtnText: "계속 쇼핑하기",
-				sureBtnText: "쇼핑백 가기",
-				sureBtnClick: function(){
-					location.href=''; 	//내 쇼핑백 이동url
-				}
-			});
-		}; */
-
-		//팝업 - 공통 닫기 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"); //할인쿠폰받기
-			//$("#epCouponPop").modal("show"); ep채널 쿠폰받기
-			return false;
-		});
-
-		//팝업 - 쇼핑혜택 > 자세히보기
-		$(document).on('click','#btn_bnfShopping_pop',function(e){
-			$("#bnfShoppingPop").modal("show");
-			return false;
-		});
-
-		//팝업 - 사이즈정보
-		$(document).on('click','#btn_infoSize_pop',function(e){
-			$("#infoSizePop").modal("show");
-			return false;
-		});			
-
-		//팝업 - 사이즈정보 > 탭
-		$(document).on('click','.info_size_pop .tab_nav ul li',function(e){
-			$(this).addClass('active').siblings().removeClass('active');
-			$('.info_size_pop .tab_cont_wrap .tab_cont').hide();		
-			$('.info_size_pop .tab_cont_wrap .tab_cont').eq($(this).index()).show();
-			return false;
-		});
-
-		//팝업 - 사이즈정보 > 서브탭
-		$(document).on('click','.info_size_pop .sub_tab_nav ul li',function(e){
-			$(this).addClass('active').siblings().removeClass('active');
-			$(this).parents('.tab_cont').find('.sub_tab_cont').hide();
-			$(this).parents('.tab_cont').find('.sub_tab_cont').eq($(this).index()).show();
-			return false;
-		});
-		
-		//팝업 - 재입고 알림 신청
-		$(document).on('click','#btn_pushRestock_pop',function(e){
-			//선택옵션 호출
-			var opt_selecter03 = new sCombo('.opt_select .select_custom.item_opt3');
-			var opt_selecter04 = new sCombo('.opt_select .select_custom.item_opt4');
-			
-			$("#pushRestockPop").modal("show");
-			return false;
-		});					 
-
-		//팝업 - 상품리뷰
-		$(document).on('click','#btn_pdReview_pop',function(e){
-			$('body').addClass('lock');
-			$("#pdReviewPop .full_pop_container").load("pd_review_pop.html");
-			$("#pdReviewPop").show(); 
-			return false;
-		}).on('click','#btn_close_reviewPop',function(e){
-			$("#pdReviewPop").hide(); 
-			$('body').removeClass('lock');
-			return false;
-		});
-		
-		//팝업 - 상품 베스트 리뷰 (detail)
-		$(document).on('click','#btn_pdBestReview_pop, .area_rv_best .best_review a',function(e){
-			$("#pdBestReviewPop .modal-content").load("pd_bestreviewdetail_pop.html");
-			$("#pdBestReviewPop").modal("show");
-			return false;
-		});	  
-
-		//팝업 - 포토/영상 리뷰 (detail)
-		$(document).on('click','.area_rv_photo .photo_list a, .area_rv_all .review_list .photo_list a, .pd_photoreviewlist_pop .photo_list ul li a',function(e){
-			$("#pdPhotoReviewDetailPop .modal-content").load("pd_photoreviewdetail_pop.html");
-			$("#pdPhotoReviewDetailPop").modal("show");
-			return false;
-		});				  
-		
-		//팝업 - 포토/영상 리뷰 (list)
-		$(document).on('click','#btn_more_photoreview, #btn_pdPhotoReviewList_pop',function(e){
-			$("#pdPhotoReviewListPop .modal-content").load("pd_photoreviewlist_pop.html");
-			$("#pdPhotoReviewListPop").modal("show");
-			return false;
-		});		
-		
-	});
-	
-	//사이즈 클릭시
-	var jfViewStock = function(obj, goodsCd, optCd1, optCd2,  minOrdQty, maxOrdQty) {
-		let $obj = $(obj);
-
-		var $target = $obj.parent().parent().children('input[name="rdi-optsize"]');
-		$target.prop("checked",true);
-		var addPrice  = $target.attr("addPrice");
-		var optCd  = $target.attr("optCd");
-		$("#selectOptCd1").html(optCd2);
-		if (Number(addPrice) > 0) $("#selectOptCd1addPrice").html("(+" + addPrice.addComma() + ")");
-		$("#cartForm  input[name=optCd]").val(optCd);
-		$("#cartForm  input[name=optCd1]").val(optCd1);
-		$("#cartForm  input[name=optCd2]").val(optCd2);
-		$("#cartForm  input[name=addPrice]").val(addPrice);
-		$("#cartForm  input[name=ordQty]").val("");
-		var selfGoodsYn = $("#cartForm  input[name=selfGoodsYn]").val();
-
-		var maxCnt = maxOrdQty;
-		var params = new Object();
-		params.goodsCd = goodsCd;
-		params.optCd = optCd;
-		params.optCd1 = optCd1;
-		params.optCd2 = optCd2;
-		params.selfGoodsYn = selfGoodsYn;
-
-		$.get("/goods/detail/ajaxGoodsStockQty", $.param(params), function(result) {
-			var itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
-
-			if (maxCnt > itemCnt) {
-				maxCnt = itemCnt;
-			}
-
-			if (minOrdQty > itemCnt) {
-				$target.prop("disabled", true);
-			}else{
-				$("#cartForm  input[name=ordQty]").val(minOrdQty);
-				$("#cartForm  input[name=maxOrdQty]").val(maxCnt);
-				$("#cartForm  input[name=minOrdQty]").val(minOrdQty);
-				$("#cartForm  input[name=cea]").val(minOrdQty);
-				$("#cartForm  input[name=cea]").attr("readonly",false);
-				$("#cartForm  input[name=stock]").val(itemCnt);
-
-				jfSetTotalPrice();
-			}
-
-		}, "text");
-	}
-	
-	// 수량 변경 클릭
-	var jfAdjustOrderEa = function(obj) {
-
-		if("G056_N" == $("#cartForm  input[name=goodsType]").val()){
-			if(gagajf.isNull($("#cartForm  input[name=optCd2]").val())){
-				mcxDialog.alert("사이즈를 선택하세요.");
-				return false;
-			}
-		}else{
-			// 세트작업시 작업요망 eskim
-			/* var targetSize=$('.sizelist').length;	//구성품 갯수;
-			var itemSize = $('.option').find('.item').find('input[type=radio]:checked').length;	//사이즈 선택 상품수
-			if (targetSize > itemSize){
-				mcxDialog.alert("구성상품들의 사이즈를 선택하세요.");
-				return false;
-			} */
-		}
+		if("G056_N" == $("#cartForm  input[name=goodsType]").val()){
+			if(gagajf.isNull($("#cartForm  input[name=optCd2]").val())){
+				mcxDialog.alert("사이즈를 선택하세요.");
+				return false;
+			}
+		}else{
+			// 세트작업시 작업요망 eskim
+			/* var targetSize=$('.sizelist').length;	//구성품 갯수;
+			var itemSize = $('.option').find('.item').find('input[type=radio]:checked').length;	//사이즈 선택 상품수
+			if (targetSize > itemSize){
+				mcxDialog.alert("구성상품들의 사이즈를 선택하세요.");
+				return false;
+			} */
+		}
 
 		var $obj = $(obj);
 		var $target = $obj.parent().children('input[name="cea"]');
@@ -2764,21 +2263,20 @@
 		var params = [];
 		
 		$target.each(function(){
-			
-			if ($target.hasClass('unbale')) {
+			if ($(this).hasClass('unable')) {
 				
 			}else{
-				debugger;
+				
 				var obj = new Object();
-				obj.goodsCd = $target.attr("goodsCd");
-				obj.optCd = $target.attr("optCd");
-				obj.goodsQty = $target.attr("minOrdQty");
-				obj.goodsType = $target.attr("goodsType");
+				obj.goodsCd = $(this).attr("goodsCd");
+				obj.optCd = $(this).attr("optCd");
+				obj.goodsQty = $(this).attr("minOrdQty");
+				obj.goodsType = $(this).attr("goodsType");
 				//obj.dealGoodsCd = $("#cartForm  input[name=goodsType]").val();
 				obj.cartGb = btnType;
 				obj.afLinkCd =$("#cartForm  input[name=afLinkCd]").val();
-				obj.ithrCd = $target.attr("ithrCd");
-				obj.contentsLoc = $target.attr("contentsLoc");
+				obj.ithrCd = $(this).attr("ithrCd");
+				obj.contentsLoc = $(this).attr("contentsLoc");
 				obj.planDtlSq = '';
 				params.push(obj);
 			}
@@ -2787,9 +2285,296 @@
 		});
 		
 		// 장바구니담기
-		cfnAddCart(params);
+		if (params.length > 0){
+			cfnAddCart(params);	
+		}
 	}
 	
+	$(document).ready( function() {
+		
+		var params = new Object();
+		params.goodsCd = [[${params.goodsCd}]];
+		params.viewDt = [[${params.viewDt}]];
+		params.preview = [[${params.preview}]];
+		params.adminYn = [[${params.adminYn}]];
+		params.goodsType = [[${params.goodsType}]];
+		params.supplyCompCd = [[${params.supplyCompCd}]];
+		params.brandGroupNm = [[${goodsInfo.brandGroupNm}]];
+		
+
+		// 다다익선 상품(ajax html)
+		params.goodsOtherGb = "tmtb";
+		params.ithrCd = "tmtb";
+		params.contentsLoc = "tmtb";
+		jfGoodsTmtbSearch(params);
+		
+		// 함께본 상품(ajax html)
+		params.goodsOtherGb = "together";
+		params.ithrCd = "tmtb";
+		params.contentsLoc = "tmtb";
+		jfGoodsTogetherSearch(params);
+		
+		// 추천 상품(ajax html)
+		params.goodsOtherGb = "recommend";
+		params.ithrCd = "tmtb";
+		params.contentsLoc = "tmtb";
+		jfGoodsRecommendSearch(params);
+		
+		// 비슷한 상품(ajax html)
+		params.goodsOtherGb = "like";
+		params.ithrCd = "tmtb";
+		params.contentsLoc = "tmtb";
+		jfGoodsLikeSearch(params);
+	
+		
+		// 상품 대표설명 > 좌측 상품썸네일 navi, 우측 상품정보 고정 
+		$(window).scroll(function(){
+			var scrollTop= $(window).scrollTop();
+			var firstFixed =  $('#header').outerHeight();
+			var thumbListWrap_h = $('.pd_detail .thumb_list_wrap').outerHeight();
+			var descWrap_h = $('.pd_detail .desc_wrap').outerHeight();
+			var secondFixed_left =  firstFixed + $('.pd_detail').outerHeight() - $('.pd_detail .thumb_nav_wrap').outerHeight();
+			var secondFixed_right =  firstFixed + $('.pd_detail .desc_wrap').outerHeight() - $(window).outerHeight();
+			var secondFixed_right2 =  firstFixed + $('.pd_detail').outerHeight() - $(window).outerHeight();
+
+			/* 좌측 상품썸네일 navi 고정 */
+			if (scrollTop > firstFixed){  
+				$('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixbottom').addClass('fixtop');
+			}
+			else if (scrollTop < firstFixed){
+				$('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop');
+			}
+			if (scrollTop > secondFixed_left){
+				$('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop').addClass('fixbottom');
+			} 
+			
+			/* 우측 상품정보 고정 */
+			if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right) {
+				$('.pd_detail .area_desc .desc_wrap').removeClass('absbottom').addClass('fixbottom');
+			}
+			else if (thumbListWrap_h > descWrap_h && scrollTop < secondFixed_right) {
+				$('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom');
+			}
+			if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right2) {
+				$('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom').addClass('absbottom');
+			}
+		});
+
+		//슬라이드 - 상품 대표설명 > 좌측 상품썸네일 navi
+		var thumbNavSwiper = new Swiper('.area_pic .thumb_nav_wrap .swiper-container', {
+			direction: 'vertical',
+			slidesPerView: 6,
+			slidesPerGroup : 6,
+			spaceBetween: 10,
+			navigation: {
+				nextEl: '.area_pic .thumb_nav_wrap .swiper-button-next',
+				prevEl: '.area_pic .thumb_nav_wrap .swiper-button-prev',
+			},
+		});
+
+		//상품 대표설명 > 상품썸네일 1개일때
+		var thumblist = $('.area_pic .thumb_list_wrap li');	
+		var thumblistLength = thumblist.length;
+		if (thumblistLength == 1) {
+			thumblist.parents('.area_pic').addClass('onlyitem');
+		} else {
+			thumblist.parents('.area_pic').removeClass('onlyitem');
+		}
+
+		//상품 대표설명 > 좌측 상품썸네일 6개 이하일때
+		var thumbnavSlide = $('.area_pic .thumb_nav_wrap .swiper-container .swiper-slide');	
+		var thumbnavLength = thumbnavSlide.length;
+		if (thumbnavLength < 7) {
+			thumbnavSlide.parents('.thumbnav').addClass('disabled');
+		} else {
+			thumbnavSlide.parents('.thumbnav').removeClass('disabled');
+		}
+
+		//상품 대표설명 > 좌측 상품썸네일 navi 선택시 해당 대표 썸네일 위치로 이동
+		$(document).on('click','.pd_detail .area_pic .thumbnav .swiper-slide a',function(e){
+			e.preventDefault();
+			var hdHeight = $('#header').outerHeight();
+			var targetThumb = $($(this).attr('href'));
+			var topThumb = targetThumb.offset().top - hdHeight;
+			$(this).parents('.thumbnav').find('.swiper-slide').removeClass('on');
+			$(this).parent('.swiper-slide').addClass('on');
+			targetThumb.siblings('li').removeClass('on');
+			targetThumb.addClass('on');
+			$('html,body').animate({scrollTop : topThumb}, 500);
+			return false;
+		});
+
+		//상품 대표설명 > 우측 상품정보 
+		/* 1차 옵션선택 후 2차 옵션 활성화 */
+		var opt_selecter01 = new sCombo('.opt_select .select_custom.item_opt1');
+		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;
+		});
+		
+		/* 행사 남은시간 */
+		function promotionTimer() {
+			var endTime = new Date('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; }
+
+				$('#d-days').html(days);
+				$('#d-hours').html(hours);
+				$('#d-minutes').html(minutes);
+				$('#d-seconds').html(seconds);		
+		}
+		setInterval(function() { promotionTimer(); }, 1000);
+
+		/* 상품옵션변경 팝업 > 수량조절 */
+//		
+		
+		//스타일링 추천 picker	
+		$(document).on('mouseenter','.pd_recommend .area_slider .item_picker button',function(e){
+			$(this).parents('.item_picker').find('.pick_descr').show();
+			return false;
+		}).on('mouseleave','.pd_recommend .area_slider .item_picker button', function(e){
+			$(this).parents('.item_picker').find('.pick_descr').hide();
+			return false;
+		});   
+
+		//상품상세정보 더보기   
+		$(document).on('click','.pd_descrp .btn_more_box button',function(e){
+			$('.pd_descrp .cont_body').toggleClass('on'); 
+			$(this).toggleClass('active');
+			$(this).parent('.btn_more_box').toggleClass('covered');
+			var descrpToggle = $(this).find('span');
+			$(descrpToggle).text($(descrpToggle).text() == '상세정보 더보기' ? '상세정보 접기' : '상세정보 더보기');
+			return false;
+		}); 
+
+		//슬라이드 - STYLE24의 스타일링 추천
+		var rcmdItemSwiper = new Swiper('.pd .pd_recommend .area_slider .swiper-container', {
+			slidesPerView: 1,
+			spaceBetween: 0,
+			navigation: {
+				nextEl: '.pd_recommend .swiper-button-next',
+				prevEl: '.pd_recommend .swiper-button-prev',
+			},
+			pagination: {
+				el: '.pd_recommend .swiper-pagination',
+				clickable: true,
+			},
+		});			
+		
+
+		//alert -쇼핑백담기
+		/* document.getElementById("btn_add_cart").onclick = function(){
+			mcxDialog.confirm("<div class="+"dialog-title"+">"+"상품이 쇼핑백에 추가되었습니다.</div><p>쇼핑백으로 이동하시겠습니까?</p>", {
+				cancelBtnText: "계속 쇼핑하기",
+				sureBtnText: "쇼핑백 가기",
+				sureBtnClick: function(){
+					location.href=''; 	//내 쇼핑백 이동url
+				}
+			});
+		}; */
+
+		//팝업 - 공통 닫기 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"); //할인쿠폰받기
+			//$("#epCouponPop").modal("show"); ep채널 쿠폰받기
+			return false;
+		});
+
+		//팝업 - 쇼핑혜택 > 자세히보기
+		$(document).on('click','#btn_bnfShopping_pop',function(e){
+			$("#bnfShoppingPop").modal("show");
+			return false;
+		});
+
+		//팝업 - 사이즈정보
+		$(document).on('click','#btn_infoSize_pop',function(e){
+			$("#infoSizePop").modal("show");
+			return false;
+		});			
+
+		//팝업 - 사이즈정보 > 탭
+		$(document).on('click','.info_size_pop .tab_nav ul li',function(e){
+			$(this).addClass('active').siblings().removeClass('active');
+			$('.info_size_pop .tab_cont_wrap .tab_cont').hide();		
+			$('.info_size_pop .tab_cont_wrap .tab_cont').eq($(this).index()).show();
+			return false;
+		});
+
+		//팝업 - 사이즈정보 > 서브탭
+		$(document).on('click','.info_size_pop .sub_tab_nav ul li',function(e){
+			$(this).addClass('active').siblings().removeClass('active');
+			$(this).parents('.tab_cont').find('.sub_tab_cont').hide();
+			$(this).parents('.tab_cont').find('.sub_tab_cont').eq($(this).index()).show();
+			return false;
+		});
+		
+		//팝업 - 재입고 알림 신청
+		$(document).on('click','#btn_pushRestock_pop',function(e){
+			//선택옵션 호출
+			var opt_selecter03 = new sCombo('.opt_select .select_custom.item_opt3');
+			var opt_selecter04 = new sCombo('.opt_select .select_custom.item_opt4');
+			
+			$("#pushRestockPop").modal("show");
+			return false;
+		});					 
+
+		//팝업 - 상품리뷰
+		$(document).on('click','#btn_pdReview_pop',function(e){
+			$('body').addClass('lock');
+			$("#pdReviewPop .full_pop_container").load("pd_review_pop.html");
+			$("#pdReviewPop").show(); 
+			return false;
+		}).on('click','#btn_close_reviewPop',function(e){
+			$("#pdReviewPop").hide(); 
+			$('body').removeClass('lock');
+			return false;
+		});
+		
+		//팝업 - 상품 베스트 리뷰 (detail)
+		$(document).on('click','#btn_pdBestReview_pop, .area_rv_best .best_review a',function(e){
+			$("#pdBestReviewPop .modal-content").load("pd_bestreviewdetail_pop.html");
+			$("#pdBestReviewPop").modal("show");
+			return false;
+		});	  
+
+		//팝업 - 포토/영상 리뷰 (detail)
+		$(document).on('click','.area_rv_photo .photo_list a, .area_rv_all .review_list .photo_list a, .pd_photoreviewlist_pop .photo_list ul li a',function(e){
+			$("#pdPhotoReviewDetailPop .modal-content").load("pd_photoreviewdetail_pop.html");
+			$("#pdPhotoReviewDetailPop").modal("show");
+			return false;
+		});				  
+		
+		//팝업 - 포토/영상 리뷰 (list)
+		$(document).on('click','#btn_more_photoreview, #btn_pdPhotoReviewList_pop',function(e){
+			$("#pdPhotoReviewListPop .modal-content").load("pd_photoreviewlist_pop.html");
+			$("#pdPhotoReviewListPop").modal("show");
+			return false;
+		});		
+		
+	});
+	
+	
+	
 /*]]>*/
 </script>
 </th:block>

+ 126 - 0
src/main/webapp/WEB-INF/views/web/goods/GoodsOtherFormWeb.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : GoodsOtherFormWeb.html
+ * @desc    : 상품 안내
+ *============================================================================
+ * Wivismall
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.09   eskim        최초 작성
+ *******************************************************************************
+ -->
+ <th:block th:if="${goodsList != null and !goodsList.empty}">
+<div class="cont_head">
+	<h3 class="subH1 t_c mb40">
+		<th:block th:if="${params.goodsOtherGb =='tmtb'}" th:text="${'함께하면 할인되는 다다익선 상품'}"></th:block>
+		<th:block th:if="${params.goodsOtherGb =='together'}" th:text="${'이 상품과 함께 본 상품'}"></th:block>
+		<th:block th:if="${params.goodsOtherGb =='recommend'}" th:text="${params.brandGroupNm +' 추천상품'}"></th:block>
+		<th:block th:if="${params.goodsOtherGb =='like'}" th:text="${'이 상품과 비슷한 상품'}"></th:block>
+	</h3>
+</div>
+<div class="cont_body" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}">
+	<!-- CONT-BODY -->
+	<div class="area_slider">
+		<div class="swiper-container">
+			<div class="swiper-wrapper">
+				<div class="swiper-slide" th:each="goodsInfo, status : ${goodsList}">
+					<div class="item_prod">
+						<div class="item_state">
+							<a href="javascript:void(0);" class="itemLink" >
+								<div class="itemPic">
+									<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm}">
+									<button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'active' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsInfo.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=''">관심상품 추가</button>
+								</div>
+								<p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">BRAND NAME1</p>
+								<div class="itemName" th:text="${goodsInfo.goodsFullNm}">남성 로고 자카드 방풍 패딩</div>
+								<p class="itemPrice">
+										<th:block th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}"></th:block>
+										<span class="itemPrice_original" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}"  th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">1,000,000</span>
+										<span class="itemPercent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">30%</span>
+									</p>
+							</a>
+						</div>
+					</div>
+				</div>
+			</div>
+			<th:block th:if="${params.goodsOtherGb == 'tmtb'}">
+			<!-- Add Scrollbar -->
+			<div class="swiper-scrollbar"></div>
+			</th:block> 
+		</div>
+		<th:block th:if="${params.goodsOtherGb != 'tmtb'}">
+		<!-- Add Pagination 1111111-->
+		<div class="swiper-pagination"></div>
+		<!-- Add Arrows -->
+		<div class="swiper-button-next"></div>
+		<div class="swiper-button-prev"></div>
+		</th:block>
+	</div>
+	<!-- // CONT-BODY -->
+</div>
+</th:block>
+
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	
+//슬라이드 - 함께하면 할인되는 다다익선 상품
+	var togetherItemSwiper = new Swiper('.pd .pd_together .area_slider .swiper-container', {
+		slidesPerView: 6,
+		spaceBetween: 20,
+		scrollbar: {
+			el: '.pd_together .swiper-scrollbar',
+			hide: true,
+		},
+	});  	
+	
+	//슬라이드 - 브랜드 추천상품
+	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,
+		spaceBetween: 20,
+		navigation: {
+			nextEl: '.pd_clickother .swiper-button-next',
+			prevEl: '.pd_clickother .swiper-button-prev',
+		},
+		pagination: {
+			el: '.pd_clickother .swiper-pagination',
+			clickable: true,
+		},
+	});	
+	
+	//슬라이드 - 이 상품과 비슷한 상품 
+	var relateItemSwiper = new Swiper('.pd .pd_relate .area_slider .swiper-container', {
+		slidesPerView: 5,
+		spaceBetween: 20,
+		navigation: {
+			nextEl: '.pd_relate .swiper-button-next',
+			prevEl: '.pd_relate .swiper-button-prev',
+		},
+		pagination: {
+			el: '.pd_relate .swiper-pagination',
+			clickable: true,
+		},
+	});	  
+/*]]>*/
+</script>	
+</html>

+ 8 - 2
src/main/webapp/WEB-INF/views/web/goods/GoodsQnaFormWeb.html

@@ -58,7 +58,8 @@
 			<div class="qna_list">
 				<!-- 나열조건결과 있을 때 노출 내용 -->
 				<div class="form_field">
-					<input id="except_secret" type="checkbox" value="Y" name="secretYn" onclick=""><label for="except_secret"><span>비밀글제외</span></label>
+					<input id="except_secret" name="except_secret" type="checkbox"  onclick="fnGetList();"><label for="except_secret"><span>비밀글제외</span></label>
+					<input  type="hidden" name="secretYn" >
 				</div>
 				<div class="ui_row">
 					<div class="foldGroup case1">
@@ -91,7 +92,12 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 	
-	let fnGetList = function() {
+	var fnGetList = function() {
+
+		$('#goodsQnaForm  input[name="secretYn"]').val('');
+		if ($("#goodsQnaForm input:checkbox[name=except_secret]").is(':checked')){
+			$('#goodsQnaForm  input[name="secretYn"]').val('N');
+		}
 		// Initialize a pagination
 		gagaPaging.init('goodsQnaForm', fnGetListCallback, 'pageNav', 20);
 

+ 13 - 16
src/main/webapp/ux/style24_link.js

@@ -278,8 +278,8 @@ var cfnLoginKakao = function (requestGb, chkRememberMe) {
  */
 var cfnLoginYes24 = function (requestGb, chkRememberMe) {
 	let actionUrl = _frontUrl + '/signin/yes24login?rememberMe=' + chkRememberMe;
-	let popupWidth = 484;
-	let popupHeight = 390;
+	let popupWidth = 987;
+	let popupHeight = 862;
 	let popupX = (window.screen.width / 2) - (popupWidth / 2);
 	let popupY = (window.screen.height / 3) - (popupHeight / 3);
 	if ('P' === _frontGb) {
@@ -529,10 +529,6 @@ function cfCheckLogin() {
  * <pre>
  *	 cfnPutWishList(OBJ);
  * </pre>
- * @param  : goodsCd - 상품코드. 필수
- * @param  : planSq - 기획전번호. 옵션
- * @date   : 2021/03/08
- * @author : yujung
  */
 function cfnPutWishList(a) {
 
@@ -595,13 +591,13 @@ function cfnPutWishList(a) {
 			}
 
 			// 메시지 처리
-			if (!gagajf.isNull(Msg)) {
-				if (_frontGb == "M") {
+			//if (!gagajf.isNull(Msg)) {
+			//	if (_frontGb == "M") {
 			//		mcxDialog.toast(Msg);
-				} else {
+			//	} else {
 			//		mcxDialog.alertC(Msg);
-				}
-			}
+			//	}
+			//}
 		});
 	} else {
 		gagajf.ajaxJsonSubmit(_PAGE_WISHLIST_DEL, jsonData, function (result) {
@@ -614,13 +610,14 @@ function cfnPutWishList(a) {
 			}
 
 			// 메시지 처리
-			if (!gagajf.isNull(Msg)) {
-				if (_frontGb == "M") {
+			//if (!gagajf.isNull(Msg)) {
+			//	if (_frontGb == "M") {
 			//		mcxDialog.toast(Msg);
-				} else {
+			//	} else {
 			//		mcxDialog.alertC(Msg);
-				}
-			}
+			//	}
+			//}
 		});
 	}
+	return false;
 }