Ver código fonte

Merge remote-tracking branch 'origin/order' into jsh77b

Conflicts:
	src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html
jsh77b 5 anos atrás
pai
commit
59b600b9b6
79 arquivos alterados com 9169 adições e 3873 exclusões
  1. 28 8
      src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java
  2. 12 2
      src/main/java/com/style24/front/biz/dao/TsfOrderChangeDao.java
  3. 10 0
      src/main/java/com/style24/front/biz/dao/TsfOrderDao.java
  4. 10 8
      src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java
  5. 9 1
      src/main/java/com/style24/front/biz/dao/TsfReviewDao.java
  6. 12 2
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  7. 56 0
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  8. 52 27
      src/main/java/com/style24/front/biz/service/TsfOrderChangeService.java
  9. 15 9
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  10. 21 2
      src/main/java/com/style24/front/biz/service/TsfPlanningService.java
  11. 12 1
      src/main/java/com/style24/front/biz/service/TsfReviewService.java
  12. 8 0
      src/main/java/com/style24/front/biz/service/TsfSocialService.java
  13. 50 31
      src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  14. 93 67
      src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  15. 98 81
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  16. 5 5
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  17. 1 0
      src/main/java/com/style24/front/biz/web/TsfPgController.java
  18. 14 18
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  19. 43 0
      src/main/java/com/style24/front/biz/web/TsfRendererController.java
  20. 1 0
      src/main/java/com/style24/persistence/domain/Goods.java
  21. 13 0
      src/main/java/com/style24/persistence/domain/GoodsCompose.java
  22. 1 0
      src/main/java/com/style24/persistence/domain/GoodsStock.java
  23. 4 0
      src/main/java/com/style24/persistence/domain/Plan.java
  24. 10 0
      src/main/java/com/style24/persistence/domain/Review.java
  25. 6 0
      src/main/java/com/style24/persistence/domain/Social.java
  26. 3 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml
  27. 7 7
      src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml
  28. 26 32
      src/main/java/com/style24/persistence/mybatis/shop/TsfGiftcard.xml
  29. 86 97
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  30. 50 19
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml
  31. 97 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml
  32. 20 14
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml
  33. 137 17
      src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml
  34. 7 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfSocial.xml
  35. 0 49
      src/main/webapp/WEB-INF/views/mob/cart/CartListFormMob.html
  36. 3 11
      src/main/webapp/WEB-INF/views/mob/pg/kcpOrderMob.html
  37. 269 0
      src/main/webapp/WEB-INF/views/web/cart/CartChangeOptionPopupWeb_20210319.html
  38. 520 325
      src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html
  39. 1019 0
      src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb_20210319.html
  40. 234 230
      src/main/webapp/WEB-INF/views/web/cart/CartListFormWeb.html
  41. 345 0
      src/main/webapp/WEB-INF/views/web/cart/CartListFormWeb_20210319.html
  42. 81 0
      src/main/webapp/WEB-INF/views/web/common/advertisements/GoodsDetailScriptsWeb.html
  43. 73 94
      src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html
  44. 2 2
      src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html
  45. 69 0
      src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html
  46. 0 1
      src/main/webapp/WEB-INF/views/web/common/layout/BrandLayoutWeb.html
  47. 0 1
      src/main/webapp/WEB-INF/views/web/common/layout/CallcenterLayoutWeb.html
  48. 0 1
      src/main/webapp/WEB-INF/views/web/common/layout/DefaultLayoutWeb.html
  49. 0 2
      src/main/webapp/WEB-INF/views/web/common/layout/MypageLayoutWeb.html
  50. 300 0
      src/main/webapp/WEB-INF/views/web/customer/PrivacyPolicyFormWeb.html
  51. 235 0
      src/main/webapp/WEB-INF/views/web/customer/UseTermsFormWeb.html
  52. 2273 0
      src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb2.html
  53. 19 19
      src/main/webapp/WEB-INF/views/web/goods/GoodsCouponFormWeb.html
  54. 7 11
      src/main/webapp/WEB-INF/views/web/goods/GoodsDeliveryFormWeb.html
  55. 252 126
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  56. 2 2
      src/main/webapp/WEB-INF/views/web/goods/GoodsInstockAlarmFormWeb.html
  57. 3 2
      src/main/webapp/WEB-INF/views/web/goods/GoodsOtherFormWeb.html
  58. 1 3
      src/main/webapp/WEB-INF/views/web/goods/GoodsQnaDetailFormWeb.html
  59. 7 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsReviewDetailFormWeb.html
  60. 137 88
      src/main/webapp/WEB-INF/views/web/goods/GoodsReviewFormWeb.html
  61. 0 994
      src/main/webapp/WEB-INF/views/web/goods/GoodsReviewPhotoDetailFormWeb.html
  62. 59 79
      src/main/webapp/WEB-INF/views/web/goods/GoodsReviewPhotoFormWeb.html
  63. 607 0
      src/main/webapp/WEB-INF/views/web/mypage/MypageCancelFormWeb.html
  64. 47 52
      src/main/webapp/WEB-INF/views/web/mypage/MypageCouponDetailPopWeb.html
  65. 127 62
      src/main/webapp/WEB-INF/views/web/mypage/MypageCouponFormWeb.html
  66. 335 260
      src/main/webapp/WEB-INF/views/web/mypage/MypageGiftcardFormWeb.html
  67. 290 175
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html
  68. 1 15
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListWeb.html
  69. 1 1
      src/main/webapp/WEB-INF/views/web/pg/kcpOrderWeb.html
  70. 62 59
      src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html
  71. 17 21
      src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html
  72. BIN
      src/main/webapp/images/pc/thumb/hotdeal_bg2.jpg
  73. 5 0
      src/main/webapp/ux/pc/css/common.css
  74. 431 533
      src/main/webapp/ux/pc/css/layout.css
  75. 246 70
      src/main/webapp/ux/pc/js/common-ui.js
  76. 46 101
      src/main/webapp/ux/pc/js/mypage.js
  77. 6 2
      src/main/webapp/ux/plugins/gaga/gaga.paging.js
  78. 0 0
      src/main/webapp/ux/sha512.min.js
  79. 21 30
      src/main/webapp/ux/style24_link.js

+ 28 - 8
src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java

@@ -126,6 +126,16 @@ public interface TsfGoodsDao {
 	 */
 	Collection<GoodsStock> getGoodsOption2List(Goods goods);
 
+	/**
+	 * 상품 옵션 목록 - 입점용
+	 *
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @date 2021. 3. 18
+	 */
+	Collection<GoodsStock> getGoodsOptionList(Goods goods);
+
 	/**
 	 * 상품 고시정보
 	 *
@@ -205,7 +215,7 @@ public interface TsfGoodsDao {
 	 * @since 2021. 3. 7
 	 */
 	GoodsSafeNo getGoodsSafeNo(Goods goods);
-	
+
 	/**
 	 * 상품  배송안내정보
 	 *
@@ -215,7 +225,7 @@ public interface TsfGoodsDao {
 	 * @since 2021. 03. 08
 	 */
 	Delivery getGoodsDeliveryInfo(String goodsCd);
-	
+
 	/**
 	 * 상품 다다익선 목록
 	 *
@@ -225,7 +235,7 @@ public interface TsfGoodsDao {
 	 * @date 2021. 3. 8
 	 */
 	Collection<Goods> getTmtbGoodsList(Goods goods);
-	
+
 	/**
 	 * 재입고 알림 미 알림 조회
 	 *
@@ -235,7 +245,7 @@ public interface TsfGoodsDao {
 	 * @date 2021. 3. 10
 	 */
 	ReinboundInform getNotReinboundInform(ReinboundInform reinboundInform);
-	
+
 	/**
 	 * 재입고알림 생성
 	 *
@@ -245,7 +255,7 @@ public interface TsfGoodsDao {
 	 * @date 2021. 3. 10
 	 */
 	void createReinboundInform(ReinboundInform reinboundInform);
-	
+
 	/**
 	 * 재입고알림 수정
 	 *
@@ -255,7 +265,7 @@ public interface TsfGoodsDao {
 	 * @date 2021. 3. 10
 	 */
 	void updateReinboundInform(ReinboundInform reinboundInform);
-	
+
 	/**
 	 * 실측사이즈 조회
 	 *
@@ -265,7 +275,7 @@ public interface TsfGoodsDao {
 	 * @date 2021. 3. 10
 	 */
 	Collection<Measurement> getMeasurementList(Goods goods);
-	
+
 	/**
 	 * 사이즈 정보 조회
 	 *
@@ -275,5 +285,15 @@ public interface TsfGoodsDao {
 	 * @date 2021. 3. 11
 	 */
 	Collection<SizeInfo> getSizeInfoList(SizeInfo sizeInfo);
-	
+
+	/**
+	 * 세트상품 구성상품정보 조회
+	 *
+	 * @param
+	 * @return
+	 * @author eskim
+	 * @since 2021. 3. 21
+	 */
+	Collection<GoodsCompose> getGoodsSetComposeList(Goods goods);
+
 }

+ 12 - 2
src/main/java/com/style24/front/biz/dao/TsfOrderChangeDao.java

@@ -17,15 +17,25 @@ import com.style24.persistence.domain.Point;
 public interface TsfOrderChangeDao {
 
 	/**
-	 * 마이페이지 취소/반품 목록 조회
+	 * 마이페이지 취소 목록 조회
 	 *
 	 * @param Order
 	 * @return Collection<Order>
 	 * @author card007
-	 * @since 2021. 02. 26
+	 * @since 2021. 03. 19
 	 */
 	Collection<Order> getCancelListForMypage(Order order);
 
+	/**
+	 * 마이페이지 반품 목록 조회
+	 *
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author card007
+	 * @since 2021. 02. 26
+	 */
+	Collection<Order> getReturnListForMypage(Order order);
+
 	/**
 	 * 사용 상품권 정보 조회
 	 *

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

@@ -46,6 +46,16 @@ public interface TsfOrderDao {
 	 */
 	int getPagingOrdNoListCount(Order order);
 
+	/**
+	 * 마이페이지 주문목록 사은품 조회
+	 *
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author card007
+	 * @since 2021. 03. 19
+	 */
+	Collection<Order> getOrderFreeGiftListForMypage(Order order);
+
 	/**
 	 * 마이페이지 주문목록 페이징 처리 주문번호 조회
 	 *

+ 10 - 8
src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java

@@ -1,5 +1,6 @@
 package com.style24.front.biz.dao;
 
+import java.util.ArrayList;
 import java.util.Collection;
 
 import com.style24.core.support.annotation.ShopDs;
@@ -56,25 +57,26 @@ public interface TsfPlanningDao {
 	Collection<Plan> getPlanGoodsList(Plan plan);
 	
 	/**
-	 * 기획전 상세정보
+	 * 기획전 접근 가능 등급 고객
 	 *
 	 * @param 기획전 번호
 	 * @return
 	 * @author sowon
-	 * @date 2020. 7. 27
+	 * @date 2021. 3. 19
 	 */
-	Plan getPlanDetailInfo(Plan plan);
+	ArrayList<Plan> accessCustGrade(Plan plan);
+	
 	
 	/**
-	 * 기획전 고객등급 확인 목록
+	 * 기획전 상세정보
 	 *
-	 * @param
+	 * @param 기획전 번호
 	 * @return
 	 * @author sowon
-	 * @date 2021. 3. 8
+	 * @date 2020. 7. 27
 	 */
-	Collection<Plan> planCustGrade(Plan plan);
-
+	Plan getPlanDetailInfo(Plan plan);
+	
 	/**
 	 * 이벤트 갯수 조회
 	 * 

+ 9 - 1
src/main/java/com/style24/front/biz/dao/TsfReviewDao.java

@@ -52,6 +52,14 @@ public interface TsfReviewDao {
 	 */
 	Collection<Goods> getReviewGoodsOptionList(Review review);
 	
-	
+	/**
+	 * 상품평 옵션 목록
+	 * @param review
+	 * @return 
+	 * @author eskim
+	 * @since 2021. 3. 19
+	 */
+	Collection<Goods> getReviewOptionList(String goodsCd);
+
 
 }

+ 12 - 2
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -562,11 +562,21 @@ public class TsfCartService {
 				order.setItemNmArr(order.getItemNm().split("!@!"));
 				order.setOptCdArr(order.getOptCd().split(","));
 				order.setItemQtyArr(order.getItemQtyr().split(","));
+				order.setOptCd1Arr(order.getOptCd1().split(","));
+				order.setOptCd2Arr(order.getOptCd2().split(","));
+				order.setColorNmArr(order.getColorNm().split(","));
 			} else {
-				String[] arr = {order.getItemNm()}, arr2 = {order.getOptCd()}, arr3 = {order.getItemQtyr()};
+				/*String[] arr = {order.getItemNm()}, arr2 = {order.getOptCd()}, arr3 = {order.getItemQtyr()};
 				order.setItemNmArr(arr);
 				order.setOptCdArr(arr2);
-				order.setItemQtyArr(arr3);
+				order.setItemQtyArr(arr3);*/
+
+				String[] arr = {order.getItemNm()}, arr2 = {order.getOptCd1()}, arr3 = {order.getOptCd2()}, arr4 = {order.getItemQtyr()}, arr5 = {order.getColorNm()};
+				order.setItemNmArr(arr);
+				order.setOptCd1Arr(arr2);
+				order.setOptCd2Arr(arr3);
+				order.setItemQtyArr(arr4);
+				order.setColorNmArr(arr5);
 			}
 
 			// 1.3 배송정책별 상품 구분

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

@@ -317,6 +317,18 @@ public class TsfGoodsService {
 		return goodsDao.getGoodsOption2List(goods);
 	}
 
+	/**
+	 * 상품 옵션 목록 - 입점용
+	 *
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @since 2021. 3. 18
+	 */
+	public Collection<GoodsStock> getGoodsOptionList(Goods goods) {
+		return goodsDao.getGoodsOptionList(goods);
+	}
+
 	/**
 	 * 상품 고시정보
 	 *
@@ -539,4 +551,48 @@ public class TsfGoodsService {
 	public String createGoodsCoupon(Goods goods) {
 		return couponService.createGoodsCoupon(goods);
 	}
+
+	/**
+	 * 세트상품 구성상품정보 조회
+	 *
+	 * @param
+	 * @return
+	 * @author eskim
+	 * @since 2021. 3. 21
+	 */
+	public Collection<GoodsCompose> getGoodsSetComposeList(Goods goods) {
+		Collection<GoodsCompose> getGoodsSetComposeList = goodsDao.getGoodsSetComposeList(goods);
+		for (GoodsCompose goodsExtend : getGoodsSetComposeList) {
+			Goods tmpGoods = new Goods();
+			tmpGoods.setGoodsCd(goodsExtend.getCompsGoodsCd());
+			tmpGoods.setSupplyCompCd(goods.getSupplyCompCd());
+			tmpGoods.setFrontGb(goods.getFrontGb());
+			tmpGoods.setIsApp(goods.getIsApp());
+			tmpGoods.setSiteCd(goods.getSiteCd());
+			tmpGoods.setCustGb(goods.getCustGb());
+			tmpGoods.setCustNo(goods.getCustNo());
+
+			// 상품상세
+			Goods resultGoods = this.getGoodsDesc(tmpGoods);
+			if (resultGoods != null) {
+				goodsExtend.setGoodsTitle(resultGoods.getGoodsTitle());
+				goodsExtend.setGoodsTitleDesc(resultGoods.getGoodsTitleDesc());
+				goodsExtend.setGoodsSpecialDesc(resultGoods.getGoodsSpecialDesc());
+				goodsExtend.setGoodsTopDesc(resultGoods.getGoodsTopDesc());
+				goodsExtend.setGoodsDownDesc(resultGoods.getGoodsDownDesc());
+				goodsExtend.setGoodsDesc(resultGoods.getGoodsDesc());
+			}
+
+			// 상품 옵션1(색상) 정보
+			goodsExtend.setGoodsOption1List(goodsDao.getGoodsOption1List(tmpGoods));
+			// 상품 옵션2(사이즈) 정보
+			//goodsExtend.setGoodsOption2List(goodsDao.getGoodsOption2List(tmpGoods));
+			// 고시 정보
+			goodsExtend.setGoodsNotiList(goodsDao.getGoodsNotiList(tmpGoods));
+			// 이미지 정보
+			goodsExtend.setGoodsImgList(goodsDao.getGoodsImgList(tmpGoods));
+
+		}
+		return getGoodsSetComposeList;
+	}
 }

+ 52 - 27
src/main/java/com/style24/front/biz/service/TsfOrderChangeService.java

@@ -1,6 +1,8 @@
 package com.style24.front.biz.service;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,45 +33,68 @@ public class TsfOrderChangeService {
 	private TscOrderChangeService coreOrderChangeService;
 
 	/**
-	 * 마이페이지 취소/반품 목록 조회
+	 * 마이페이지 취소 목록 조회
 	 *
 	 * @param Order
 	 * @return Collection<Order>
 	 * @author card007
-	 * @since 2021. 02. 26
+	 * @since 2021. 03. 19
 	 */
 	public GagaMap getCancelListForMypage(Order order) {
 		GagaMap map = new GagaMap();
-		Boolean shotDelv = false;
-		Boolean selfMall = false;
-		Boolean supplyMall = false;
-		
+
 		Collection<Order> result = orderChangeDao.getCancelListForMypage(order);
-		for (Order tmpOrder : result) {
-			// 총알배송 아이콘 설정
-			if (!shotDelv && "Y".equals(tmpOrder.getShotDelvYn())) {
-				shotDelv = true;
-			}
-
-			// STYLE24 일반배송 아이콘 설정
-			if (!selfMall && "Y".equals(tmpOrder.getSelfGoodsYn())) {
-				selfMall = true;
-			}
-
-			// 업체직배송 아이콘 설정
-			if (!supplyMall && "N".equals(tmpOrder.getSelfGoodsYn())) {
-				supplyMall = true;
-			}
-		}
-		
-		map.set("shotDelv", shotDelv);
-		map.set("selfMall", selfMall);
-		map.set("supplyMall", supplyMall);
-		map.set("oneData", result.iterator().next());
+		Order oneData = result.iterator().next();
+		oneData.setOrdDtlNoArr(getOrdDtlNoArr(result));
+
+		map.set("oneData", oneData);
+		map.set("cancelList", result);
+
+		return map;
+	}
+
+	/**
+	 * 마이페이지 반품 목록 조회
+	 *
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author card007
+	 * @since 2021. 02. 26
+	 */
+	public GagaMap getReturnListForMypage(Order order) {
+		GagaMap map = new GagaMap();
+
+		Collection<Order> result = orderChangeDao.getReturnListForMypage(order);
+		Order oneData = result.iterator().next();
+		oneData.setOrdDtlNoArr(getOrdDtlNoArr(result));
+
+		map.set("oneData", oneData);
 		map.set("returnList", result);
+
 		return map;
 	}
 
+	/**
+	 * 마이페이지 주문상세번호 배열 처리
+	 *
+	 * @param Collection<Order>
+	 * @return int[]
+	 * @author card007
+	 * @since 2021. 03. 19
+	 */
+	private int[] getOrdDtlNoArr(Collection<Order> orderList) {
+		Order order = new Order();
+		List<Integer> ordDtlNoList = new ArrayList<>();
+		
+		for (Order tmp : orderList) {
+			ordDtlNoList.add(tmp.getOrdDtlNo());
+		}
+		
+		order.setOrdDtlNoArr(ordDtlNoList.stream().mapToInt(Integer::intValue).toArray());
+		
+		return ordDtlNoList.stream().mapToInt(Integer::intValue).toArray();
+	}
+
 	/**
 	 * 사용 상품권 정보 조회
 	 *

+ 15 - 9
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -18,7 +18,6 @@ import com.style24.core.biz.service.TscKakaoPayService;
 import com.style24.core.biz.service.TscKcpService;
 import com.style24.core.biz.service.TscNaverPayService;
 import com.style24.core.support.env.TscConstants;
-import com.style24.core.support.session.TscSession;
 import com.style24.front.biz.dao.TsfOrderDao;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Coupon;
@@ -85,16 +84,21 @@ public class TsfOrderService {
 			index++;
 		}
 
-		orderList.add(setOrderMap(ordDtlList));
+		if (ordDtlList.size() > 0) {
+			orderList.add(setOrderMap(ordDtlList));
+		}
 		
 		return orderList;
 	}
 	
 	private GagaMap setOrderMap(Collection<Order> ordDtlList) {
+		Order order = ordDtlList.iterator().next();
+
 		GagaMap map = new GagaMap();
-		map.set("giftPackYn", ordDtlList.iterator().next().getGiftPackYn());
-		map.set("ordNo", ordDtlList.iterator().next().getOrdNo());
-		map.set("ordDt", ordDtlList.iterator().next().getOrdDt());
+		map.set("giftPackYn", order.getGiftPackYn());
+		map.set("ordNo", order.getOrdNo());
+		map.set("ordDt", order.getOrdDt());
+		map.set("freeGiftList", orderDao.getOrderFreeGiftListForMypage(order));
 		map.set("ordDtlList", ordDtlList);
 
 		return map;
@@ -282,11 +286,15 @@ public class TsfOrderService {
 				result.setPayMeans(TscConstants.PayMeans.CREDIT_CARD.value());
 			}
 
+			// 모바일 주문의 경우 result에서 고객 번호 보유중.
+			if(TscConstants.FrontGb.PC.value().equals(TsfSession.getFrontGb())) {
+				result.setUpdNo(param.getCustNo());
+				result.setRegNo(param.getCustNo());
+			}
 			result.setPaySq(param.getPaySq());
-			result.setUpdNo(param.getCustNo());
-			result.setRegNo(param.getCustNo());
 			result.setPayGb("O");
 
+			// TB_PAYMENT 등록. 실패시 PG 환불.
 			if(coreOrderDao.insertPayment(result) < 1) {
 				if(TscConstants.PgGb.KCP.value().equals(param.getPgGb()) || TscConstants.PgGb.PAYCO.value().equals(param.getPgGb())) {
 					coreKcpService.kcpPayRollBack(result, request);
@@ -298,8 +306,6 @@ public class TsfOrderService {
 					throw new IllegalArgumentException("결제 정보 저장 실패. 새로고침 후 다시 시작해주세요.");
 				}
 			}
-
-			coreKcpService.kcpPayRollBack(result, request);
 		} catch(Exception e) {
 			e.printStackTrace();
 			throw new IllegalArgumentException(e.getMessage());

+ 21 - 2
src/main/java/com/style24/front/biz/service/TsfPlanningService.java

@@ -1,13 +1,19 @@
 package com.style24.front.biz.service;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.style24.front.biz.dao.TsfPlanningDao;
 import com.style24.front.support.env.TsfConstants;
+import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Cate4Srch;
+import com.style24.persistence.domain.Login;
 import com.style24.persistence.domain.Plan;
 import com.style24.persistence.domain.Point;
 
@@ -82,8 +88,21 @@ public class TsfPlanningService {
 	 * @author sowon
 	 * @since 2021. 3. 9
 	 */
-	public Collection<Plan>planCustGrade(Plan plan) {
-		return planningDao.planCustGrade(plan);
+	public void accessCustGrade(Plan plan){
+		if (!TsfSession.isLogin()) {
+			throw new IllegalArgumentException("로그인 후 접근이 가능합니다.");
+		}
+		else {
+			String custGrade = TsfSession.getInfo().getCustGrade();
+			List<Plan> custGradeList = planningDao.accessCustGrade(plan);
+			System.out.println("=====" + custGradeList.iterator().next().getCustGrade());
+			/*
+			 * if (!custGradeList.) { throw new IllegalArgumentException("너 왜그래"); }
+			 */
+			
+		}
+		
+		
 	}
 	
 	/**

+ 12 - 1
src/main/java/com/style24/front/biz/service/TsfReviewService.java

@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.style24.front.biz.dao.TsfReviewDao;
+import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Review;
 
 import lombok.extern.slf4j.Slf4j;
@@ -49,10 +50,20 @@ public class TsfReviewService {
 			loopReview.setReviewAttachList(reviewDao.getReviewAttachList(loopReview));
 			loopReview.setGoodsOptionList(reviewDao.getReviewGoodsOptionList(loopReview));
 		}
-		log.info("getReviewList {}", reviewList);
+		//log.info("getReviewList {}", reviewList);
 		
 		return reviewList;
 	}
 	
+	/**
+	 * 상품평 옵션 목록
+	 * @param review
+	 * @return 
+	 * @author eskim
+	 * @since 2021. 3. 19
+	 */
+	public Collection<Goods> getReviewOptionList(String goodsCd) {
+		 return reviewDao.getReviewOptionList(goodsCd);
+	}
 	
 }

+ 8 - 0
src/main/java/com/style24/front/biz/service/TsfSocialService.java

@@ -6,6 +6,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.style24.front.biz.dao.TsfSocialDao;
+import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.Login;
 import com.style24.persistence.domain.Social;
 
 import lombok.extern.slf4j.Slf4j;
@@ -46,6 +48,12 @@ public class TsfSocialService {
 	public Collection<Social> getSocialGoodsList(Social social) {
 		Social info = new Social();
 		info = socialDao.getSocialInfo(social);
+		
+		// TODO 로그인 정보 입력
+		if (TsfSession.isLogin()) {
+			Login login = TsfSession.getInfo();
+			social.setCustNo(login.getCustNo());
+		}
 		social.setSocialSq(info.getSocialSq());
 		return socialDao.getSocialGoodsList(social);
 	}

+ 50 - 31
src/main/java/com/style24/front/biz/web/TsfCustomerController.java

@@ -1,17 +1,8 @@
 package com.style24.front.biz.web;
 
-import com.gagaframework.web.parameter.GagaMap;
-import com.style24.core.biz.service.TscClauseService;
-import com.style24.core.support.env.TscConstants;
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.core.support.session.TscSession;
-import com.style24.front.biz.service.TsfCustomerService;
-import com.style24.front.biz.service.TsfKakaoService;
-import com.style24.front.biz.thirdparty.NiceCertify;
-import com.style24.front.support.controller.TsfBaseController;
-import com.style24.front.support.security.session.TsfSession;
-import com.style24.persistence.domain.Customer;
-import lombok.extern.slf4j.Slf4j;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -23,9 +14,20 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import com.style24.core.biz.service.TscClauseService;
+import com.style24.core.support.env.TscConstants;
+import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.core.support.session.TscSession;
+import com.style24.front.biz.service.TsfCustomerService;
+import com.style24.front.biz.service.TsfKakaoService;
+import com.style24.front.biz.thirdparty.NiceCertify;
+import com.style24.front.support.controller.TsfBaseController;
+import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.Customer;
+
+import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.parameter.GagaMap;
 
 /**
  * 고객(회원) Controller
@@ -53,8 +55,6 @@ public class TsfCustomerController extends TsfBaseController {
 	@Autowired
 	private NiceCertify niceCertify;
 
-
-
 	/**
 	 * 아이디 찾기 화면
 	 *
@@ -90,7 +90,7 @@ public class TsfCustomerController extends TsfBaseController {
 
 		Customer params = new Customer();
 		// 인증방법
-		 GagaMap authInfo;
+		GagaMap authInfo;
 		if (TscConstants.AuthMethod.CUSTINFO.value().equals(customer.getAuthMethod())) {
 			// 기본정보
 			params.setCustNm(customer.getCustNm());
@@ -121,7 +121,6 @@ public class TsfCustomerController extends TsfBaseController {
 		return result;
 	}
 
-
 	/**
 	 * 비밀번호 찾기 화면
 	 *
@@ -233,7 +232,7 @@ public class TsfCustomerController extends TsfBaseController {
 	 * @since 2021. 02. 17
 	 */
 	@GetMapping("/password/change/form")
-	public ModelAndView passwrodChangeForm(@RequestParam(value = "pageGb")String pageGb) {
+	public ModelAndView passwrodChangeForm(@RequestParam(value = "pageGb") String pageGb) {
 		ModelAndView mav = new ModelAndView();
 		String custNo = "";
 
@@ -342,12 +341,10 @@ public class TsfCustomerController extends TsfBaseController {
 	@GetMapping("/marketing/layer/form")
 	public ModelAndView getMarketingLayerForm() {
 		ModelAndView mav = new ModelAndView();
-		
 
 		return mav;
 	}
 
-
 	/**
 	 * 회원가입 유형 화면
 	 *
@@ -389,8 +386,7 @@ public class TsfCustomerController extends TsfBaseController {
 	 * @since 2021. 02. 09
 	 */
 	@GetMapping("/nice/cellphone/form")
-	public ModelAndView niceCellphoneForm(@RequestParam(value = "redirectUrl", required = false) String redirectUrl
-			, @RequestParam(value = "custparams", required = false) String custparams) {
+	public ModelAndView niceCellphoneForm(@RequestParam(value = "redirectUrl", required = false) String redirectUrl, @RequestParam(value = "custparams", required = false) String custparams) {
 		ModelAndView mav = new ModelAndView();
 		GagaMap result = niceCertify.certifyCellPhone();
 
@@ -435,9 +431,7 @@ public class TsfCustomerController extends TsfBaseController {
 	 */
 	@RequestMapping("/nice/certify/callback")
 	public ModelAndView niceCertifyCallback(
-			@RequestParam(value = "EncodeData", required = false) String encodeData
-			, @RequestParam(value = "enc_data", required = false) String encData
-			, @RequestParam(value = "param_r1", required = false) String redirectUrl) {
+		@RequestParam(value = "EncodeData", required = false) String encodeData, @RequestParam(value = "enc_data", required = false) String encData, @RequestParam(value = "param_r1", required = false) String redirectUrl) {
 
 		ModelAndView mav = new ModelAndView();
 		String sEncData = "";
@@ -478,7 +472,7 @@ public class TsfCustomerController extends TsfBaseController {
 			throw new IllegalStateException("확인 할 아이디가 없습니다.");
 		}
 
-		boolean isFind  = customerService.getCustomerFindByCustIdCount(customer.getCustId());
+		boolean isFind = customerService.getCustomerFindByCustIdCount(customer.getCustId());
 
 		result.setBoolean("isFind", isFind);
 		return result;
@@ -537,7 +531,6 @@ public class TsfCustomerController extends TsfBaseController {
 		return result;
 	}
 
-
 	/**
 	 * 가입화면 - 나이스 휴대폰인증
 	 *
@@ -555,7 +548,6 @@ public class TsfCustomerController extends TsfBaseController {
 		customer.setCi(authInfo.getString("sCi"));
 		customer.setCellPhnno(authInfo.getString("sMobileNo"));
 
-
 		if ("N".equals(authInfo.getString("adult"))) {
 			throw new IllegalStateException("만14세 이상만 회원가입이 가능합니다.");
 		}
@@ -582,7 +574,7 @@ public class TsfCustomerController extends TsfBaseController {
 		result.setBoolean("isFind", false);
 		result.setString("cellPhnno", customer.getCellPhnno());
 
-		TscSession.setAttribute("encData",customer.getEncData());
+		TscSession.setAttribute("encData", customer.getEncData());
 
 		return result;
 	}
@@ -620,7 +612,6 @@ public class TsfCustomerController extends TsfBaseController {
 		customer.setFrontGb(TsfSession.getFrontGb());
 		customer.setAfLinkCd(TsfSession.getAttribute("afLinkCd"));
 
-
 		// 3. 가입 가능여부
 		GagaMap resultMap = customerService.generalCustomerValidation(customer);
 		boolean isPossible = resultMap.getBoolean("isPossibe");
@@ -808,6 +799,34 @@ public class TsfCustomerController extends TsfBaseController {
 		return customerService.updatePasswordDate(customer);
 	}
 
+	/**
+	 * 이용약관
+	 * @return ModelAndView
+	 * @author gagamel
+	 * @since 2021. 3. 18
+	 */
+	@GetMapping("/use/terms/form")
+	public ModelAndView useTermsForm() {
+		ModelAndView mav = new ModelAndView(super.getDeviceViewName("customer/UseTermsForm"));
+
+		mav.addObject("clause", clauseService.getClause(TscConstants.Site.STYLE24.value(), "G057_10"));
+
+		return mav;
+	}
+
+	/**
+	 * 개인정보취급방침
+	 * @return ModelAndView
+	 * @author gagamel
+	 * @since 2021. 3. 18
+	 */
+	@GetMapping("/privacy/policy/form")
+	public ModelAndView privacyPolicyForm() {
+		ModelAndView mav = new ModelAndView(super.getDeviceViewName("customer/PrivacyPolicyForm"));
 
+		mav.addObject("clause", clauseService.getClause(TscConstants.Site.STYLE24.value(), "G057_11"));
+
+		return mav;
+	}
 
 }

+ 93 - 67
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -1,6 +1,7 @@
 package com.style24.front.biz.web;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 
 import org.apache.commons.lang3.StringUtils;
@@ -22,12 +23,14 @@ import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCounselService;
 import com.style24.front.biz.service.TsfCouponService;
 import com.style24.front.biz.service.TsfGoodsService;
+import com.style24.front.biz.service.TsfRendererService;
 import com.style24.front.biz.service.TsfReviewService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.env.TsfConstants;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.CardPromotion;
+import com.style24.persistence.domain.CommonCode;
 import com.style24.persistence.domain.Counsel;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsStock;
@@ -72,10 +75,13 @@ public class TsfGoodsController extends TsfBaseController {
 
 	@Autowired
 	private TsfCouponService couponService;
-	
+
 	@Autowired
 	private TsfReviewService reviewService;
 
+	@Autowired
+	private TsfRendererService rendererService;
+
 	@Value("${has-ssl}")
 	private String hasSsl;
 
@@ -110,11 +116,6 @@ public class TsfGoodsController extends TsfBaseController {
 		}
 
 		Goods goods = goodsService.getGoodsInfo(paramsGoods);
-		// 조회색상이 없으면 메인컬러 설정
-		if (StringUtils.isEmpty(paramsGoods.getColorCd())) {
-			paramsGoods.setColorCd(goods.getMainColorCd());
-		}
-
 		if (goods == null || goods.getGoodsCd().isEmpty()) {
 			if (StringUtils.isBlank(afLinkCd)) {
 				mav.setViewName("redirect:/display/mall/main/form");
@@ -124,6 +125,15 @@ public class TsfGoodsController extends TsfBaseController {
 			return mav;
 		}
 
+		// 조회색상이 없으면 메인컬러 설정
+		if (StringUtils.isEmpty(paramsGoods.getColorCd())) {
+			paramsGoods.setColorCd(goods.getMainColorCd());
+		}
+		paramsGoods.setSelfGoodsYn(goods.getSelfGoodsYn());
+		if (TscConstants.GoodsType.DEAL.value().equals(goods.getGoodsType()) || TscConstants.GoodsType.SET.value().equals(goods.getGoodsType())) {
+			paramsGoods.setColorCd("XX");
+		}
+
 		// 상품 상세
 		goods = goodsService.getGoodsDesc(goods);
 
@@ -149,19 +159,19 @@ public class TsfGoodsController extends TsfBaseController {
 		// 상품 공지
 		mav.addObject("goodsNoticeList", goodsService.getGoodsNoticeList(paramsGoods));
 
-		if ("G056_D".equals(goods.getGoodsType())) {	// 딜상품
+		if (TscConstants.GoodsType.DEAL.value().equals(goods.getGoodsType())) {	// 딜상품
 			// 딜 구성상품 정보
 			paramsGoods.setGoodsComposeSearchYn("Y");
-			mav.addObject("goodsExtendList", goodsService.getGoodsDealComposeList(paramsGoods));
+			mav.addObject("goodsDealComposeList", goodsService.getGoodsDealComposeList(paramsGoods));
 		} else {
-			if ("G056_N".equals(goods.getGoodsType())) {	// 일반상품
+			if (TscConstants.GoodsType.NORMAL.value().equals(goods.getGoodsType())) {	// 일반상품
 				if ("Y".equals(goods.getSelfGoodsYn())) {  // 자사상품
 					// 상품 옵션1(색상) 정보
 					mav.addObject("goodsOption1List", goodsService.getGoodsOption1List(paramsGoods));
 					// 상품 옵션2(사이즈) 정보
 					mav.addObject("goodsOption2List", goodsService.getGoodsOption2List(paramsGoods));
 				} else {
-					//mav.addObject("goodsOptionList", goodsService.getGoodsOptionList(paramsGoods));
+					mav.addObject("goodsOptionList", goodsService.getGoodsOptionList(paramsGoods));
 				}
 
 //				// 상품 고시정보
@@ -173,8 +183,8 @@ public class TsfGoodsController extends TsfBaseController {
 				lookbook.setGoodsCd(paramsGoods.getGoodsCd());
 				mav.addObject("lookbookList", coreLookbookService.getLookbookListForGoods(lookbook));
 
-			} else if ("G056_S".equals(goods.getGoodsType())) {		// 셋트상품
-//				mav.addObject("goodsExtendList", goodsService.getGoodsSetExtendList(paramsGoods));
+			} else if (TscConstants.GoodsType.SET.value().equals(goods.getGoodsType())) {		// 셋트상품
+				mav.addObject("goodsComposeList", goodsService.getGoodsSetComposeList(paramsGoods));
 			}
 			// 상품쿠폰
 			paramsGoods.setMaxRownum(1);
@@ -200,7 +210,7 @@ public class TsfGoodsController extends TsfBaseController {
 		review.setRownum(1);
 		review.setGoodsType(goods.getGoodsType());
 		mav.addObject("bestReviewList", reviewService.getReviewList(review));
-		
+
 		// 카드 혜택안내
 		CardPromotion cardPromotion = new CardPromotion();
 		cardPromotion.setRownum(1); // 혜택유형별로 1건씩
@@ -221,7 +231,7 @@ public class TsfGoodsController extends TsfBaseController {
 
 		mav.addObject("params", paramsGoods);
 
-		if ("D".equals(goods.getGoodsType())) {
+		if (TscConstants.GoodsType.DEAL.value().equals(goods.getGoodsType())) {
 			if ("Y".equals(mobileYn)) {
 				mav.setViewName("mob/goods/GoodsDealFormMob");
 			} else {
@@ -608,41 +618,67 @@ public class TsfGoodsController extends TsfBaseController {
 
 		// 상품 기본정보
 		mav.addObject("goodsInfo", goods);
-		
-		// 사이즈 정보
-		// 입점은 옵션1 노출
-		// 자사는 옵션2 노출
-		
+
 		// 상품평 포인트
 		GagaMap reviewPoint = new GagaMap();
 		reviewPoint.set("textReviewPoint", envsetService.getTextReviewPoint(TscConstants.Site.STYLE24.value()));	//텍스트상품평포인트
 		reviewPoint.set("photoReviewPoint", envsetService.getPhotoReviewPoint(TscConstants.Site.STYLE24.value()));	//포토상품평포인트
 		reviewPoint.set("bestReviewPoint", envsetService.getBestReviewPoint(TscConstants.Site.STYLE24.value()));	//베스트상품평포인트
 		mav.addObject("reviewPoint", reviewPoint);
-		
+
 		Review review = new Review();
 		review.setGoodsCd(goods.getGoodsCd());
+		mav.addObject("reviewCount", reviewService.getReviewTotalCount(review));	// 전체상품평 건수 
 		review.setRownum(1);
 		review.setGoodsType(goods.getGoodsType());
 		mav.addObject("reviewList", reviewService.getReviewList(review));	// 전체상품평 유무 확인
-		
-		
 		review.setBestYn("Y");
 		review.setRownum(0);	// 전체 조회
 		mav.addObject("bestReviewList", reviewService.getReviewList(review));	//베스트상품평
-		
 		review.setPhotoYn("Y");
 		review.setBestYn("");
 		review.setRownum(0);	// 전체 조회
 		mav.addObject("photoReviewList", reviewService.getReviewList(review));	//포토상품평
 
+		// 상품평에 등록된 사이즈 정보
+		mav.addObject("reviewOptionList", reviewService.getReviewOptionList(goods.getGoodsCd()));
+
+		// 유야동: 베이비(07), 키즈여아(08), 키즈남아(09), 키즈공통(10), 주니어여야(11), 주니어남아(12), 주니어공통(13), 성인G: 유아동 제외 전체
+		// 유야동 키 공통코드 G091, 성인 키 공통코드 G090
+		String[] arrItem = {"07", "08", "09", "10", "11", "12", "13"};
+		ArrayList<String> itemList = new ArrayList<>(Arrays.asList(arrItem));
+
+		// 키전체 
+		Collection<CommonCode> reviewHeightList = new ArrayList<CommonCode>();
+		log.info("goods.getItemkindCd().substring(0, 2) => {} ", goods.getItemkindCd().substring(0, 2));
+		if (itemList.contains(goods.getItemkindCd().substring(0, 2))) {
+			reviewHeightList = rendererService.getAvailCommonCodeList("G091");
+		} else {
+			reviewHeightList = rendererService.getAvailCommonCodeList("G090");
+		}
+
+		// 상품평 키
+		mav.addObject("reviewHeightList", reviewHeightList);
+
+		// 유야동 몸무게 공통코드 G093, 성인 몸무게 공통코드 G092
+		// 몸무게
+		Collection<CommonCode> reviewWeightList = new ArrayList<CommonCode>();
+		if (itemList.contains(goods.getItemkindCd().substring(0, 2))) {
+			reviewWeightList = rendererService.getAvailCommonCodeList("G093");
+		} else {
+			reviewWeightList = rendererService.getAvailCommonCodeList("G092");
+		}
+
+		// 상품평 몸무게
+		mav.addObject("reviewWeightList", reviewWeightList);
+
 		mav.setViewName(super.getDeviceViewName("goods/GoodsReviewForm"));
 		return mav;
 	}
-	
+
 	/**
 	 * 상품평 목록
-	 * @param counsel - 상담정보
+	 * @param review
 	 * @return
 	 * @author eskim
 	 * @since 2021. 3. 16
@@ -651,10 +687,26 @@ public class TsfGoodsController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getGoodsReviewList(@RequestBody Review review) {
 
-		log.info(" getGoodsReviewList =>{}", review);
+		//log.info(" getGoodsReviewList =>{}", review);
 
 		GagaMap result = new GagaMap();
 
+		review.setReviewHeightSt(0);
+		review.setReviewHeightEd(0);
+		if (StringUtils.isNotBlank(review.getReviewHeight())) {
+			String[] arrHeight = review.getReviewHeight().split("\\-");
+			review.setReviewHeightSt(Integer.parseInt(arrHeight[0]));
+			review.setReviewHeightEd(Integer.parseInt(arrHeight[1]));
+		}
+
+		review.setReviewWeightSt(0);
+		review.setReviewWeightEd(0);
+		if (StringUtils.isNotBlank(review.getReviewWeight())) {
+			String[] arrWeight = review.getReviewWeight().split("\\-");
+			review.setReviewWeightSt(Integer.parseInt(arrWeight[0]));
+			review.setReviewWeightEd(Integer.parseInt(arrWeight[1]));
+		}
+
 		TscPageRequest pageable = new TscPageRequest((review.getPageNo() > 0 ? review.getPageNo() - 1 : 0), review.getPageSize(), review.getPageUnit());
 		pageable.setTotalCount(reviewService.getReviewTotalCount(review));
 		review.setPageable(pageable);
@@ -662,44 +714,13 @@ public class TsfGoodsController extends TsfBaseController {
 		if (TsfSession.isLogin()) {
 			review.setCustNo(TsfSession.getInfo().getCustNo());
 		}
-		
+
 		result.set("paging", review);
-		log.info("-------------------------------------------------------------");
 		result.set("dataList", reviewService.getReviewList(review));
-		log.info("-------------------------------------------------------------");
 
 		return result;
 	}
 
-	/**
-	 * 상품상세 -  상품평 - 베스트 레이어
-	 * @return
-	 * @author eskim
-	 * @since 2021. 3. 8
-	 */
-	@PostMapping("/review/best/layer/{goodsCd}")
-	public ModelAndView goodsReviewBestForm(@PathVariable String goodsCd) {
-		ModelAndView mav = new ModelAndView();
-		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
-		Goods paramsGoods = new Goods();
-		paramsGoods.setGoodsCd(goodsCd);
-		setGoods(paramsGoods);
-//		Goods goods = goodsService.getGoodsInfo(paramsGoods);
-//
-//		// 상품 기본정보
-//		mav.addObject("goodsInfo", goods);
-		
-		Review review = new Review();
-		review.setGoodsCd(paramsGoods.getGoodsCd());
-		review.setBestYn("Y");
-		mav.addObject("reviewList", reviewService.getReviewList(review));
-
-		mav.addObject("params", paramsGoods);
-		
-		mav.setViewName(super.getDeviceViewName("goods/GoodsReviewBestForm"));
-		return mav;
-	}
-
 	/**
 	 * 상품상세 -  상품평 - 포토/영상 리스트 레이어
 	 * @return
@@ -713,34 +734,39 @@ public class TsfGoodsController extends TsfBaseController {
 		Goods paramsGoods = new Goods();
 		paramsGoods.setGoodsCd(goodsCd);
 		setGoods(paramsGoods);
-		Goods goods = goodsService.getGoodsInfo(paramsGoods);
+		//Goods goods = goodsService.getGoodsInfo(paramsGoods);
 
 		// 상품 기본정보
-		mav.addObject("goodsInfo", goods);
+		mav.addObject("params", paramsGoods);
 
 		mav.setViewName(super.getDeviceViewName("goods/GoodsReviewPhotoForm"));
 		return mav;
 	}
 
 	/**
-	 * 상품상세 -  상품평 - 포토/영상 상세 레이어
+	 * 상품상세 -  상품평 상세 레이어
 	 * @return
 	 * @author eskim
 	 * @since 2021. 3. 8
 	 */
-	@PostMapping("/review/photo/detail/layer/{goodsCd}")
-	public ModelAndView goodsReviewPhotoDetailForm(@PathVariable String goodsCd) {
+	@PostMapping("/review/detail/layer")
+	public ModelAndView goodsReviewDetailForm(Review review) {
+		//log.info("goodsReviewDetailForm {}", review);
 		ModelAndView mav = new ModelAndView();
 		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
 		Goods paramsGoods = new Goods();
-		paramsGoods.setGoodsCd(goodsCd);
+		paramsGoods.setGoodsCd(review.getGoodsCd());
 		setGoods(paramsGoods);
-		Goods goods = goodsService.getGoodsInfo(paramsGoods);
+		// Goods goods = goodsService.getGoodsInfo(paramsGoods);
 
 		// 상품 기본정보
-		mav.addObject("goodsInfo", goods);
+		mav.addObject("params", paramsGoods);
+
+		mav.addObject("review", review);
+
+		mav.addObject("reviewList", reviewService.getReviewList(review));
 
-		mav.setViewName(super.getDeviceViewName("goods/GoodsReviewPhotoDetailForm"));
+		mav.setViewName(super.getDeviceViewName("goods/GoodsReviewDetailForm"));
 		return mav;
 	}
 

+ 98 - 81
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -77,7 +77,7 @@ public class TsfMypageController extends TsfBaseController {
 
 	@Autowired
 	private TscOrderService coreOrderService;
-	
+
 	@Autowired
 	private TsfOrderChangeService orderChangeService;
 
@@ -104,13 +104,13 @@ public class TsfMypageController extends TsfBaseController {
 
 	@Autowired
 	private TsfRendererService rendererService;
-	
+
 	@Autowired
 	private TscKakaoPayService kakaoPayService;
 
 	@Autowired
 	private NiceCertify niceCertify;
-	
+
 	@Autowired
 	private TscCouponService coreCouponService;
 
@@ -128,7 +128,7 @@ public class TsfMypageController extends TsfBaseController {
 		if (order == null) {
 			order = new Order();
 		}
-		
+
 		// 고객번호 설정
 		int custNo = TsfSession.getInfo().getCustNo();
 		order.setCustNo(custNo);
@@ -142,7 +142,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 쿠폰정보 조회
 		mav.addObject("couponCnt", coreOrderService.getCouponInfo(order));
-		
+
 		order.setExpiredSoon("Y");
 		mav.addObject("expiredSoonCouponCnt", coreOrderService.getCouponInfo(order));
 
@@ -190,11 +190,10 @@ public class TsfMypageController extends TsfBaseController {
 		// 주문번호 설정
 		mav.addObject("ordNo", ordNo);
 
-		
 		Order order = new Order();
 		order.setCustNo(custNo);
 		order.setOrdNo(ordNo);
-		
+
 		// 주문목록 조회
 		Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
 
@@ -213,7 +212,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 주문 결제정보 조회
 		mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
-		
+
 		// 주문 배송지 정보 조회
 		mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
 
@@ -233,19 +232,15 @@ public class TsfMypageController extends TsfBaseController {
 	@PostMapping("/order/list")
 	@ResponseBody
 	public GagaMap getOrderList(@RequestBody Order order) {
-		GagaMap map = new GagaMap();
-		ModelAndView mav = new ModelAndView();
+		GagaMap result = new GagaMap();
 
 		// 페이징 처리 설정
-		// order.setPageable(new TscPageRequest(order.getPageNo() - 1, 5));
 		TscPageRequest pageable = new TscPageRequest((order.getPageNo() > 0 ? order.getPageNo() - 1 : 0), order.getPageSize(), order.getPageUnit());
 		pageable.setTotalCount(orderService.getPagingOrdNoListCount(order));
 		order.setPageable(pageable);
-		log.info("pageable: {}", pageable);
-		log.info("totalCount {}", pageable.getTotalCount());
-		log.info("order >>> {}", order);
 
 		// 페이징 처리 및 주문정보 조회
+		Collection<GagaMap> orderList = new ArrayList<>();
 		List<Integer> ordNoList = new ArrayList<>();
 
 		for (Order tmpOrder : orderService.getPagingOrdNoList(order)) {
@@ -254,16 +249,13 @@ public class TsfMypageController extends TsfBaseController {
 
 		if (ordNoList.size() > 0) {
 			order.setOrdNoList(ordNoList.stream().mapToInt(Integer::intValue).toArray());
+			orderList = orderService.getOrderListForMypage(order);
 		}
 
-		mav.addObject("orderList", orderService.getOrderListForMypage(order));
-		mav.addObject("orderInfo", order);
-		
-		mav.setViewName(super.getDeviceViewName("mypage/MypageOrderList"));
-		
-		map.set("mav", mav);
-		map.set("pageable", order.getPageable());
-		return map;
+		result.set("orderList", orderList);
+		result.set("orderInfo", order);
+
+		return result;
 	}
 
 	/**
@@ -281,7 +273,7 @@ public class TsfMypageController extends TsfBaseController {
 		// 고객번호 설정
 		int custNo = TsfSession.getInfo().getCustNo();
 		order.setUpdNo(custNo);
-		
+
 		// 주문내역 삭제 처리
 		int chk = orderService.updateOrderDisplayYn(order);
 
@@ -319,10 +311,10 @@ public class TsfMypageController extends TsfBaseController {
 		order.setCustNo(custNo);
 		order.setRegNo(custNo);
 		order.setUpdNo(custNo);
-		
+
 		// 구매확정 처리
 		result = coreOrderService.decideOrder(order);
-		
+
 		return result;
 	}
 
@@ -338,7 +330,7 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public ModelAndView exchangeForm(Order order) {
 		ModelAndView mav = new ModelAndView();
-		
+
 		// 주문번호 설정
 		mav.addObject("ordNo", order.getOrdNo());
 
@@ -356,7 +348,6 @@ public class TsfMypageController extends TsfBaseController {
 
 		mav.addObject("customerInfo", customer);
 
-
 		// 주문목록 조회
 		Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
 
@@ -369,12 +360,12 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 주문 배송지 정보 조회
 		mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
-		
+
 		// 교환 사유 목록 조회
 		mav.addObject("exchangeReason", rendererService.getCommonCodeList("G689", "Y"));
-		
+
 		mav.setViewName(super.getDeviceViewName("/mypage/MypageExchangeForm"));
-		
+
 		return mav;
 	}
 
@@ -403,9 +394,9 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 등급쿠폰 다운 처리
 		int count = couponService.createCustGradeAllCoupon(coupon);
-		
+
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
-		
+
 		if (count == 0) {
 			result.set("message", message.getMessage("COUPON_0002"));
 		} else {
@@ -466,7 +457,7 @@ public class TsfMypageController extends TsfBaseController {
 	 * @author card007
 	 * @since 2021. 02. 25
 	 */
-	@PostMapping("/cancel/form")
+	@PostMapping("/return/form")
 	@ResponseBody
 	public ModelAndView returnForm(Order order) {
 		ModelAndView mav = new ModelAndView();
@@ -488,15 +479,17 @@ public class TsfMypageController extends TsfBaseController {
 
 		mav.addObject("customerInfo", customer);
 
-
 		// 반품 가능 리스트 조회
-		mav.addObject("returnList", orderChangeService.getCancelListForMypage(order));
+		GagaMap map = orderChangeService.getReturnListForMypage(order);
+		Order oneData = (Order) map.get("oneData");
+		mav.addObject("returnList", map);
+		mav.addObject("oneData", oneData);
 
 		// 사용 상품권 정보 조회
-		mav.addObject("usedGiftCardInfo", orderChangeService.getUsedGiftcardInfo(order));
+		mav.addObject("usedGiftCardInfo", orderChangeService.getUsedGiftcardInfo(oneData));
 
 		// 사용 포인트 정보 조회
-		mav.addObject("usedPointInfo", orderChangeService.getUsedPointInfo(order));
+		mav.addObject("usedPointInfo", orderChangeService.getUsedPointInfo(oneData));
 
 		// 주문 결제정보 조회
 		mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
@@ -511,7 +504,44 @@ public class TsfMypageController extends TsfBaseController {
 
 		return mav;
 	}
-	
+
+	/**
+	 * 마이페이지 취소신청 화면
+	 *
+	 * @param Order
+	 * @return ModelAndView
+	 * @author card007
+	 * @since 2021. 03. 19
+	 */
+	@PostMapping("/cancel/form")
+	@ResponseBody
+	public ModelAndView cancelForm(Order order) {
+		ModelAndView mav = new ModelAndView();
+
+		// 고객번호 설정
+		int custNo = TsfSession.getInfo().getCustNo();
+		order.setCustNo(custNo);
+
+		// 취소 가능 리스트 조회
+		GagaMap map = orderChangeService.getCancelListForMypage(order);
+		Order oneData = (Order) map.get("oneData");
+		mav.addObject("cancelList", map);
+		mav.addObject("oneData", oneData);
+
+		// 사용 상품권 정보 조회
+		mav.addObject("usedGiftCardInfo", orderChangeService.getUsedGiftcardInfo(oneData));
+
+		// 사용 포인트 정보 조회
+		mav.addObject("usedPointInfo", orderChangeService.getUsedPointInfo(oneData));
+
+		// 주문 결제정보 조회
+		mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
+
+		mav.setViewName(super.getDeviceViewName("/mypage/MypageCancelForm"));
+
+		return mav;
+	}
+
 	/**
 	 * 마이페이지 STYLE24 포인트화면
 	 *
@@ -524,33 +554,25 @@ public class TsfMypageController extends TsfBaseController {
 	public ModelAndView stylePointForm(Point point) {
 		ModelAndView mav = new ModelAndView();
 
-		// 테스트용 (삭제예정)
-		GagaMap map = new GagaMap();
-		map.setString("custIp", TsfSession.getIpAddress());
-		map.setString("bankNm", "김지철");
-		map.setString("accountNo", "110500288201");
-		map.setString("bankCd", "88");
-		// 테스트용 (삭제예정)
-		
 		int custNo = TsfSession.getInfo().getCustNo();
 		point.setCustNo(custNo);
 		// 잔여포인트
-		mav.addObject("pointInfo", pointService.getUsablePointInfo(point));		
+		mav.addObject("pointInfo", pointService.getUsablePointInfo(point));
 		// 적립예정포인트 expectedPntAmt
 		mav.addObject("expectedpointInfo", pointService.getExpectedPointInfo(point));
 		// 한달 이내 소멸 예정 포인트
 		mav.addObject("extinctpointInfo", pointService.getExtinctPointInfo(point));
 		// 전체내역 조회
-		mav.addObject("allPointList",pointService.getAllPointList(point));
+		mav.addObject("allPointList", pointService.getAllPointList(point));
 		// 적립내역 조회
-		mav.addObject("accumulatePointList",pointService.getAccumulatePointList(point));
+		mav.addObject("accumulatePointList", pointService.getAccumulatePointList(point));
 		// 사용내역 조회
-		mav.addObject("usePointList",pointService.getUsePointList(point));
-		
+		mav.addObject("usePointList", pointService.getUsePointList(point));
+
 		mav.setViewName(super.getDeviceViewName("mypage/MypagePointForm"));
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 STYLE24 포인트 전체,적립,사용내역
 	 *
@@ -563,17 +585,17 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getAllPointList(@RequestBody Point point) {
 		GagaMap result = new GagaMap();
-		
+
 		int custNo = TsfSession.getInfo().getCustNo();
 		point.setCustNo(custNo);
-		
+
 		// 전체내역 조회
-		result.set("allPointList",pointService.getAllPointList(point));
+		result.set("allPointList", pointService.getAllPointList(point));
 		// 적립내역 조회
-		result.set("accumulatePointList",pointService.getAccumulatePointList(point));
+		result.set("accumulatePointList", pointService.getAccumulatePointList(point));
 		// 사용내역 조회
-		result.set("usePointList",pointService.getUsePointList(point));
-		
+		result.set("usePointList", pointService.getUsePointList(point));
+
 		return result;
 	}
 
@@ -629,8 +651,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		return result;
 	}
-	
-	
+
 	/* 김소원 상품권 쿠폰 시작 */
 	/**
 	 * 마이페이지 상품권화면
@@ -648,7 +669,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 상품권 사용 리스트
 	 *
@@ -660,10 +681,10 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getGiftcardUseList(@RequestBody GiftCard giftcard) {
 		GagaMap result = new GagaMap();
-		result.set("giftcardUseList",giftcardService.getGiftcardUseList(giftcard));
+		result.set("giftcardUseList", giftcardService.getGiftcardUseList(giftcard));
 		return result;
 	}
-	
+
 	/**
 	 * 마이페이지 상품권 보유 리스트
 	 *
@@ -675,7 +696,7 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getGiftcardOwnList(@RequestBody GiftCard giftcard) {
 		GagaMap result = new GagaMap();
-		result.set("giftcardOwnList",giftcardService.getGiftcardOwnList(giftcard));
+		result.set("giftcardOwnList", giftcardService.getGiftcardOwnList(giftcard));
 		return result;
 	}
 
@@ -693,7 +714,7 @@ public class TsfMypageController extends TsfBaseController {
 		giftcardService.getGiftcardUseConfirm(giftcard);
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
-	
+
 	/**
 	 * 마이페이지 쿠폰화면
 	 *
@@ -704,13 +725,13 @@ public class TsfMypageController extends TsfBaseController {
 	@GetMapping("/coupon/form")
 	public ModelAndView mypageCouponForm(Coupon coupon) {
 		ModelAndView mav = new ModelAndView();
-		mav.addObject("couponList",couponService.getMypageCouponList(coupon));
-		mav.addObject("couponInfo",couponService.getMypageCouponInfo(coupon));
+		mav.addObject("couponList", couponService.getMypageCouponList(coupon));
+		mav.addObject("couponInfo", couponService.getMypageCouponInfo(coupon));
 		mav.setViewName(super.getDeviceViewName("mypage/MypageCouponForm"));
-		
+
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 쿠폰 상세보기 팝업
 	 *
@@ -718,10 +739,10 @@ public class TsfMypageController extends TsfBaseController {
 	 * @author sowon	
 	 * @since 2021. 03. 17
 	 */
-	@GetMapping(value="/coupon/detailPop")
+	@GetMapping(value = "/coupon/detailPop")
 	public ModelAndView mypageCouponDetailPop(@RequestParam(value = "cpnId") int cpnId) {
 		ModelAndView mav = new ModelAndView();
-		
+
 		// 쿠폰 - 기본정보
 		mav.addObject("couponDetailInfo", couponService.getCouponDetailInfo(cpnId));
 		// 쿠폰적용대상 - 공급업체 조회
@@ -738,9 +759,6 @@ public class TsfMypageController extends TsfBaseController {
 		return mav;
 	}
 
-
-
-
 	/*신주승 시작*/
 
 	/**
@@ -774,7 +792,6 @@ public class TsfMypageController extends TsfBaseController {
 		return result;
 	}
 
-
 	/**
 	 * 마이페이지 - 회원정보수정 화면
 	 *
@@ -784,16 +801,16 @@ public class TsfMypageController extends TsfBaseController {
 	 * @since 2021. 03. 15
 	 */
 	@GetMapping("/customer/modify/form")
-	public ModelAndView getCustomerModifyForm(@RequestParam(required = false)String confirmYn) {
+	public ModelAndView getCustomerModifyForm(@RequestParam(required = false) String confirmYn) {
 		ModelAndView mav = new ModelAndView();
-		String referer = StringUtils.defaultIfBlank(TsfSession.getHttpServletRequest().getHeader("referer"),"");
+		String referer = StringUtils.defaultIfBlank(TsfSession.getHttpServletRequest().getHeader("referer"), "");
 		boolean redirect = false;
 
-		if(StringUtils.isBlank(referer)) {
+		if (StringUtils.isBlank(referer)) {
 			redirect = true;
-		} else if(!referer.contains("/mypage/customer/confirm/form")) {
+		} else if (!referer.contains("/mypage/customer/confirm/form")) {
 			redirect = true;
-		} else if(!"Y".equals(confirmYn)) {
+		} else if (!"Y".equals(confirmYn)) {
 			redirect = true;
 		}
 
@@ -853,7 +870,7 @@ public class TsfMypageController extends TsfBaseController {
 	@RequestMapping("/account/check")
 	@ResponseBody
 	public GagaMap getAccountCheck(HttpServletRequest request, HttpServletResponse response) throws Exception {
-		log.info("request2 accountHolder {}",request.getParameter("accountHolder"));
+		log.info("request2 accountHolder {}", request.getParameter("accountHolder"));
 		GagaMap result = customerService.checkAccount(request);
 		return result;
 	}

+ 5 - 5
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -510,10 +510,10 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// TODO
 		// 2. 주문정보유효성체크
-		orderService.orderValidationCheck(order);
+		//orderService.orderValidationCheck(order);
 		
 		// 3. 주문기본정보등록(주문접수)
-		coreOrderService.createPreOrder(order);
+		//coreOrderService.createPreOrder(order);
 		
 		log.info("order.getPgGb()              ::: {}", order.getPgGb());
 		log.info("order.getPayMeans()          ::: {}", order.getPayMeans());
@@ -528,9 +528,9 @@ public class TsfOrderController extends TsfBaseController {
 		log.info("order.getFreegiftValArr()    ::: {}", order.getFreegiftValArr());
 		log.info("order.getFreegiftSqArr()     ::: {}", order.getFreegiftSqArr());
 		
-		for(int i = 0 ; i < order.getFreegiftGoodsArr().length ; i++) {
-			log.info("order.getFreegiftGoodsArr()  ::: {}", order.getFreegiftGoodsArr()[i]);
-		}
+		//for(int i = 0 ; i < order.getFreegiftGoodsArr().length ; i++) {
+		//	log.info("order.getFreegiftGoodsArr()  ::: {}", order.getFreegiftGoodsArr()[i]);
+		//}
 
 		// 필수 데이터
 		// pgGb = 결제타입, payMeans = 결제수단, ordNo = 주문번호, goodsNm = 상품명, payAmt = 실결제금액, ordNm = 주문자명, ordPhnno = 휴대폰번호, custNo = 고객번호

+ 1 - 0
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -154,6 +154,7 @@ public class TsfPgController extends TsfBaseController {
 		}
 
 		param.setUpdNo(param.getCustNo());
+		param.setFrontGb(TsfSession.getFrontGb());
 
 		// 2. 결재정보등록(TB_PAYMENT)
 		param = orderService.orderPgPayResult(param, request, response);

+ 14 - 18
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -1,18 +1,23 @@
 package com.style24.front.biz.web;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 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.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.gagaframework.web.rest.server.GagaResponse;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfPlanningService;
@@ -53,24 +58,17 @@ public class TsfPlanningController extends TsfBaseController {
 	public ModelAndView PlanningMainForm(Plan plan) throws Exception {
 		ModelAndView mav = new ModelAndView();
 		Cate4Srch cate = new Cate4Srch();
-		
-		// 디바이스 set
-		//plan.setFrontGb(TsfSession.getFrontGb());
-		
+			
 		// 카테고리 
 		mav.addObject("categoryList", planningService.getPlanCate1(cate));
-		mav.addObject("cateNo", plan.getCateNo());
-		
-		
+		mav.addObject("cateNo", plan.getCateNo());		
 		
 		// 각 카테고리 기획전 갯수
 		mav.addObject("planCount",planningService.getPlanAllCount(plan));
 		
 		cate.setCate1No(plan.getCateNo());
-		mav.addObject("cateNm", planningService.getPlanCate1(cate).iterator().next().getCate1Nm());
-			
-		
-		
+		mav.addObject("cateNm", planningService.getPlanCate1(cate).iterator().next().getCate1Nm());			
+				
 		mav.addObject("planList", planningService.getPlanList(plan));
 		mav.addObject("goodsList", planningService.getPlanGoodsList(plan));
 		mav.setViewName(super.getDeviceViewName("planning/PlanningMainForm"));
@@ -84,10 +82,12 @@ public class TsfPlanningController extends TsfBaseController {
 	 * @author sowon
 	 * @since 2021. 3. 9
 	 */
-	@GetMapping("/detail/form")
-	@ResponseBody
-	public ModelAndView PlanningDetailForm(Plan plan) throws Exception {
+	@PostMapping("/detail/form")
+	public ModelAndView PlanningDetailForm(@RequestBody Plan plan) throws Exception {
 		ModelAndView mav = new ModelAndView();
+		// 접근 가능 고객 등급 확인
+		planningService.accessCustGrade(plan);
+	
 		// 상세정보
 		//plan.setSiteCd(TsfConstants.SITE_CD);
 		
@@ -97,10 +97,6 @@ public class TsfPlanningController extends TsfBaseController {
 		Plan planInfo = planningService.getPlanDetailInfo(plan);
 		mav.addObject("planInfo", planInfo);
 
-		if (planInfo == null || planInfo.getPlanSq() == null) {
-			mav.setViewName("redirect:/planning/main/form");
-			return mav;
-		}
 		
 		// 다른기획전 보기 
 		mav.addObject("planList", planningService.getPlanList(plan));

+ 43 - 0
src/main/java/com/style24/front/biz/web/TsfRendererController.java

@@ -0,0 +1,43 @@
+package com.style24.front.biz.web;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.style24.front.biz.service.TsfRendererService;
+import com.style24.front.support.controller.TsfBaseController;
+import com.style24.persistence.domain.CommonCode;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 콤보박스, 체크박스, 라디오버튼 구성 시 필요한 Renderer Controller
+ *
+ * @author renderer
+ * @since 2021. 3. 18
+ */
+@Controller
+@RequestMapping("/renderer")
+@Slf4j
+public class TsfRendererController extends TsfBaseController {
+
+	@Autowired
+	private TsfRendererService rendererService;
+
+	/**
+	 * 패밀리사이트 목록
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 3. 18
+	 */
+	@GetMapping("/familysite/list")
+	@ResponseBody
+	public Collection<CommonCode> getFamilySiteList() {
+		return rendererService.getAvailCommonCodeList("G029");
+	}
+
+}

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

@@ -135,6 +135,7 @@ public class Goods extends TscBaseDomain {
 	private int scoreBall1;
 	private int scoreBall2;
 	private int scoreBall3;
+	private String goodsStatNm;
 	
 	private String sizeGb;		// 사이즈구분(T:상의, B:하의, S:신발)
 

+ 13 - 0
src/main/java/com/style24/persistence/domain/GoodsCompose.java

@@ -35,6 +35,8 @@ public class GoodsCompose extends TscBaseDomain {
 	private String sysImgNm;
 	private String crud;
 	private String compsGoodsNm;
+	private String compsGoodsFullNm;
+	private String colorCd;
 
 //	private String optionTitle;
 //	private String optionNm;
@@ -46,7 +48,18 @@ public class GoodsCompose extends TscBaseDomain {
 	private String supplyCompCd;
 
 	//private Collection<Coupon> goodsCouponList;
+	private Collection<GoodsStock> goodsOption1List;
+	private Collection<GoodsStock> goodsOption2List;
 	private Collection<GoodsNotiInfo> goodsNotiList;
 	private Collection<GoodsStock> goodsSizeList;
 	private Collection<GoodsImg> goodsImgList;
+
+	//상품상세 구분(10:상품타이틀,20:상품타이틀내용,30:상품특징,40:상위컨텐츠,50:하위컨텐츠,60:상위컨텐츠-모바일,70:하위컨텐츠-모바일,80:상품상세(as-is,입점))
+	private String goodsTitle; 			// 10:상품타이틀
+	private String goodsTitleDesc;		// 20:상품타이틀내용
+	private String goodsSpecialDesc;	// 30:상품특징
+	private String goodsTopDesc;		// 40:상위컨텐츠, 60:상위컨텐츠-모바일
+	private String goodsDownDesc;		// 50:하위컨텐츠, 70:하위컨텐츠-모바일
+	private String goodsDesc;			// 80:상품상세(as-is,입점)
+
 }

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

@@ -32,5 +32,6 @@ public class GoodsStock extends TscBaseDomain {
 	private int goodsQty;			// 안전재고
 	private int stockQty;			// 상품 재고
 	private String selfGoodsYn;		// 자사상품구분
+	private String optNm;			// 옵션명
 	
 }

+ 4 - 0
src/main/java/com/style24/persistence/domain/Plan.java

@@ -102,6 +102,10 @@ public class Plan extends TscBaseDomain{
 		private String cateNm;		// 카테고리명
 		private Integer cateNo;		// 카테고리번호
 		
+		// 고객등급
+		private String custGradeName;	// 접근가능고객 등급 네임
+		
+		
 		// 기획전 응모
 		@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 		private String[] planQtitle;

+ 10 - 0
src/main/java/com/style24/persistence/domain/Review.java

@@ -63,6 +63,15 @@ public class Review extends TscBaseDomain {
 	private String goodsType;		// 상품유형
 	private int rownum;
 	
+	private String reviewScore;		// 상품평 검색조건 평점
+	private String reviewOption;	// 상품평 검색조건 옵션
+	private String reviewHeight;	// 상품평 검색조건 키	0-150
+	private int reviewHeightSt;	// 상품평 검색조건 구간시작	0
+	private int reviewHeightEd;	// 상품평 검색조건 구간종료	150
+	private String reviewWeight;	// 상품평 검색조건 몸무게	0-50
+	private int reviewWeightSt;	// 상품평 검색조건 몸무게 구간시작	0
+	private int reviewWeightEd;	// 상품평 검색조건 몸무게 구간종료	50
+	
 	// Masking
 	public String getMaskingCustId() {
 		return (this.custId != null) ?  MaskingUtils.id(this.custId) : this.custId;
@@ -79,4 +88,5 @@ public class Review extends TscBaseDomain {
 	private int pageNo = 1;
 	private int pageSize = 10;
 	private int pageUnit = 10;
+	
 }

+ 6 - 0
src/main/java/com/style24/persistence/domain/Social.java

@@ -60,6 +60,9 @@ public class Social extends TscBaseDomain{
 		private String goodsTnm;	//상품타이틀
 		private int stockQtySum;	//상품 재고
 		
+		// 고객
+		private Integer custNo;		//고객번호
+		
 		// 브랜드
 		private String brandKnm;	//브랜드이름(한글)
 		private String brandEnm;	//브랜드이름(영어)
@@ -70,6 +73,9 @@ public class Social extends TscBaseDomain{
 		private String stDate;	// 시작일시
 		private String edDate;	// 종료일시
 		
+		// wish
+		private String wishYn;	// 위시리스트 등록 여부
+		
 		
 		// Pagination
 		private TscPageRequest pageable;

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

@@ -497,6 +497,7 @@
 		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.CART_DTL_SQ SEPARATOR '!@!') AS ITEM_NM
 			 , GROUP_CONCAT(Z.ITEM_CD ORDER BY Z.CART_DTL_SQ) AS ITEM_CD
 			 , GROUP_CONCAT(Z.OPT_CD ORDER BY Z.CART_DTL_SQ) AS OPT_CD
+			 , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.CART_DTL_SQ) AS COLOR_NM
 			 , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.CART_DTL_SQ) AS OPT_CD1
 			 , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.CART_DTL_SQ) AS OPT_CD2
 			 , GROUP_CONCAT(Z.ITEM_QTY ORDER BY Z.CART_DTL_SQ) AS ITEM_QTYR
@@ -523,7 +524,8 @@
 					 , CD.OPT_CD
 					 , CD.ITEM_QTY
 					 , CD.CART_DTL_SQ
-					 , O.OPT_CD1
+					 , (SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(O.OPT_CD1,'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y') AS COLOR_NM
+		             , O.OPT_CD1
 					 , O.OPT_CD2
 					 , G.GOODS_TYPE
 					 , G.SUPPLY_COMP_CD

+ 7 - 7
src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml

@@ -375,7 +375,7 @@
 	</select>
 	
 	<select id="getMypageCouponList" resultType="Coupon" parameterType="Coupon">
-		/* TsfCoupon.getMypageCouponList -- custNo 변경 예정*/
+		/* TsfCoupon.getMypageCouponList */
 		SELECT T.*
 		FROM 
 		(
@@ -442,7 +442,7 @@
 											)A ON TC.CPN_ID = A.CPN_ID 
 				WHERE 1=1
 					AND TC.CPN_STAT = 'G232_11'  /*쿠폰 상태 - 진행*/
-					AND A.CUST_NO = 1000039
+					AND A.CUST_NO = #{custNo}
 					AND A.USED_DT IS NULL
 					AND NOW() BETWEEN A.AVAIL_STDT AND A.AVAIL_EDDT
 			)Z
@@ -510,7 +510,7 @@
 											)A ON TC.CPN_ID = A.CPN_ID 
 				WHERE 1=1
 					AND TC.CPN_STAT = 'G232_11'  /*쿠폰 상태 - 진행*/
-					AND A.CUST_NO = 1000039
+					AND A.CUST_NO = #{custNo}
 					AND A.USED_DT IS NULL
 					AND A.AVAIL_EDDT BETWEEN DATE_ADD(NOW(), INTERVAL -3 MONTH) AND A.AVAIL_EDDT
 			)F
@@ -519,27 +519,27 @@
 	</select>
 	
 	<select id="getMypageCouponInfo" resultType="Coupon" parameterType="Coupon">
-		/* TsfCoupon.getMypageCouponInfo -- custNo 변경 예정*/
+		/* TsfCoupon.getMypageCouponInfo*/
 		SELECT COUNT(*) AS ALL_COUPON_CNT
 			,(  SELECT COUNT(*) AS USE_COUPON
 				FROM tb_coupon A INNER JOIN tb_cust_coupon B ON A.CPN_ID = B.CPN_ID 
 				WHERE 1=1
 				  AND A.CPN_ID = B.CPN_ID 
-				  AND B.CUST_NO = 1000039
+				  AND B.CUST_NO = #{custNo}
 				  AND A.CPN_STAT = 'G232_11'
 				  AND NOW() BETWEEN A.AVAIL_STDT AND A.AVAIL_EDDT ) AS USE_COUPON_CNT
 		    ,(  SELECT COUNT(*) AS USE_COUPON
 				FROM tb_coupon A INNER JOIN tb_cust_coupon B ON A.CPN_ID = B.CPN_ID 
 				WHERE 1=1
 				  AND A.CPN_ID = B.CPN_ID 
-				  AND B.CUST_NO = 1000039
+				  AND B.CUST_NO = #{custNo}
 				  AND A.CPN_STAT = 'G232_11'
 				  AND NOW() BETWEEN A.AVAIL_STDT AND A.AVAIL_EDDT 
 				  AND NOW() BETWEEN DATE_ADD(A.AVAIL_EDDT , INTERVAL -7 DAY) AND A.AVAIL_EDDT ) AS EXPIRE_COUPON_CNT
 		FROM tb_coupon A INNER JOIN tb_cust_coupon B ON A.CPN_ID = B.CPN_ID 
 		WHERE 1=1
 		  AND A.CPN_ID = B.CPN_ID 
-		  AND B.CUST_NO = 1000039
+		  AND B.CUST_NO = #{custNo}
 		  AND A.CPN_STAT = 'G232_11'
 	</select>
 	

+ 26 - 32
src/main/java/com/style24/persistence/mybatis/shop/TsfGiftcard.xml

@@ -4,7 +4,7 @@
 
 	<!-- 상품권 기본정보  -->
 	<select id="getGiftcardInfo" parameterType="GiftCard" resultType="GiftCard">
-		<!-- TsfGiftcard.getGiftcardInfo -->
+		/*TsfGiftcard.getGiftcardInfo*/
 		SELECT SUM(CG.RM_GFCD_AMT) AS USE_GIFT/*사용가능한 보유 금액*/
 		      ,(SELECT COUNT(*) 
 		        FROM TB_CUST_GIFTCARD CG2 
@@ -12,7 +12,7 @@
 		          AND CUST_NO = #{custNo}
 		          AND CG2.RM_GFCD_AMT <![CDATA[>]]> 0
 		          AND NOW() BETWEEN CG2.USE_ST_DATE AND CG2.USE_EXP_DATE) AS TOTAL_COUNT /*총 상품권 수*/
-		      ,(SELECT COUNT(*)
+		      ,(SELECT SUM(CG3.RM_GFCD_AMT)
 				FROM TB_CUST_GIFTCARD CG3
 				WHERE NOW() BETWEEN CG3.USE_ST_DATE AND CG3.USE_EXP_DATE
 				  AND  NOW() BETWEEN DATE_ADD(CG3.USE_EXP_DATE, INTERVAL -1 MONTH) AND USE_EXP_DATE
@@ -26,33 +26,27 @@
 	</select>
 	
 	<select id="getGiftcardUseList" parameterType="GiftCard" resultType="GiftCard">
-		<!-- TsfGiftcard.getGiftcardUseList -->
-		SELECT A.* 
-		      ,(CASE A.OCCUR_GB WHEN 'G074_11'THEN '+' 
-		                        WHEN 'G074_12'THEN '-'
-		                        WHEN 'G074_13'THEN '+'
-		                        WHEN 'G074_14'THEN '-'
-		                        WHEN 'G074_15'THEN '-'
-		                        WHEN 'G074_16'THEN '-'
-		                        WHEN 'G074_17'THEN '+'
-		                        WHEN 'G074_18'THEN '+'
-		                        WHEN 'G074_19'THEN '-'
-		       END) AS BALANCE
-		      ,(CASE A.OCCUR_GB WHEN 'G074_11'THEN '상품권 등록'        
-                         WHEN 'G074_12'THEN '상품권 사용'       
-                         WHEN 'G074_13'THEN '상품권 사용취소'     
-                         WHEN 'G074_14'THEN '상품권 유효기간만료'   
-                         WHEN 'G074_15'THEN '상품권 파기'       
-                         WHEN 'G074_16'THEN '상품권 현금전환'     
-                         WHEN 'G074_17'THEN '결품으로 인한 기간 연장'
-                         WHEN 'G074_18'THEN '오환불로 인한 금액추가' 
-                         WHEN 'G074_19'THEN '오환불로 인한 금액차감' 
-               END) AS BALANCE_NAME
-		      ,B.GOODS_CD 
-		      ,D.GOODS_NM 
-		FROM TB_CUST_GIFTCARD_HST A LEFT JOIN TB_ORDER_DETAIL B ON A.ORD_DTL_NO = B.ORD_DTL_NO AND A.ORD_NO = B.ORD_NO
-									LEFT JOIN TB_CUST_GIFTCARD C ON A.CUST_GFCD_SQ =C.CUST_GFCD_SQ 
-									LEFT JOIN TB_GOODS D ON B.GOODS_CD = D.GOODS_CD 
+		/*TsfGiftcard.getGiftcardUseList*/
+		SELECT A.GFCD_HST_SQ
+		      , A.CUST_NO
+		      , A.OCCUR_GB
+		      , A.OCCUR_DTL_DESC
+		      , A.GFCD_AMT
+		      , A.CUST_GFCD_SQ
+		      , A.ORD_NO
+		      , A.ORD_DTL_NO
+		      , A.REG_NO
+		      , A.REG_DT
+		      , A.UPD_NO
+		      , A.UPD_DT
+		      , B.GOODS_CD 
+		      , D.GOODS_NM 
+		FROM TB_CUST_GIFTCARD_HST A INNER JOIN TB_ORDER_DETAIL B 
+													ON A.ORD_DTL_NO = B.ORD_DTL_NO AND A.ORD_NO = B.ORD_NO
+									INNER JOIN TB_CUST_GIFTCARD C 
+													ON A.CUST_GFCD_SQ =C.CUST_GFCD_SQ 
+									INNER JOIN TB_GOODS D 
+													ON B.GOODS_CD = D.GOODS_CD 
 		WHERE 1=1
 		 AND A.CUST_NO = #{custNo}
 		 <choose>
@@ -67,7 +61,7 @@
 	</select>
 	
 	<select id="getGiftcardOwnList" parameterType="GiftCard" resultType="GiftCard">
-		<!-- TsfGiftcard.getGiftcardOwnList -->
+		/*TsfGiftcard.getGiftcardOwnList*/
 		 SELECT  CUST_GFCD_SQ
 				 , CUST_NO
 				 , GFCD_NO
@@ -87,7 +81,7 @@
 	</select>
 	
 	<insert id="saveGiftcardApi" parameterType="GiftCard">
-		<!-- TsfGiftcard.saveGiftcardApi -->
+		/*TsfGiftcard.saveGiftcardApi*/
 		INSERT INTO TB_GIFTCARD_API_HST
 		(
 		   GFCD_NO
@@ -108,7 +102,7 @@
 	</insert>
 	
 	<insert id="getGiftcardUseConfirm" parameterType="GiftCard">
-		<!-- TsfGiftcard.getGiftcardUseConfirm -->
+		/*TsfGiftcard.getGiftcardUseConfirm*/
 		INSERT INTO TB_CUST_GIFTCARD
 		(
 			CUST_NO

+ 86 - 97
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -131,6 +131,9 @@
 		     , G.RETURNABLE_YN
 		     , G.ORIGIN_CD
 		     , FN_GET_CODE_NM('G076',G.ORIGIN_CD) AS ORIGIN_NM
+		     , FN_GET_CODE_NM('G008',G.GOODS_STAT) AS GOODS_STAT_NM
+		     , DATE_FORMAT(G.REG_DT ,'%Y%m%d%H%i%S') AS REG_DT
+		     , DATE_FORMAT(G.UPD_DT ,'%Y%m%d%H%i%S') AS UPD_DT 
 		     , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(#{colorCd}, IFNULL(G.MAIN_COLOR_CD,'XX')) AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
 		     , (SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(#{colorCd},'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y') AS COLOR_NM
 		     -- , BP.CURR_PRICE AS BENEFIT_PRICE
@@ -176,6 +179,9 @@
 		INNER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
 		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		                      AND B.USE_YN = 'Y'
+		INNER JOIN TB_SITE_BRAND SB ON B.BRAND_CD  = SB.BRAND_CD
+		                            AND SB.USE_YN = 'Y'
+		                            AND SB.SITE_CD = #{siteCd}
 		INNER JOIN TB_BRAND_GROUP D ON B.BRAND_GROUP_NO = D.BRAND_GROUP_NO
 		                            AND D.USE_YN = 'Y'
 		INNER JOIN TB_DELV_FEE_POLICY E ON G.SUPPLY_COMP_CD = E.SUPPLY_COMP_CD
@@ -229,63 +235,14 @@
 		    AND NOW() BETWEEN A.SOCIAL_STDT AND A.SOCIAL_EDDT
 		    AND A.FRONT_GB IN ('A', #{frontGb})
 		    AND A.APPLY_GB = 'A' -- 적용
+		    <if test='adminYn == null or adminYn != "Y"'>
+		    AND C.GOODS_STAT = 'G008_90'
+		    </if>
 		    ORDER BY A.SOCIAL_SQ DESC
 		) A
 		LIMIT 1
 	</select>
 	
-	<!-- 상품 옵션1 목록  - 자사용 -->
-	<select id="getGoodsOption1List_ORG" parameterType="Goods" resultType="GoodsStock">
-		/* TsfGoods.getGoodsOption1List */
-		SELECT GOODS_CD
-		     , OPT_CD1
-		     , STOCK_QTY
-		     , SOLDOUT_YN
-		     , DISP_ORD
-		     , SYS_IMG_NM
-		FROM (
-		     SELECT G.GOODS_CD
-		          , G.SELF_GOODS_YN
-		          , O.OPT_CD1 
-		          , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IF(G.SELF_GOODS_YN ='Y', O.OPT_CD1, 'XX') AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
-		          , (CASE WHEN IFNULL(S.STOCK_QTY,0) - G.MIN_ORD_QTY >= 0 THEN STOCK_QTY
-		                 ELSE 0
-		            END ) AS STOCK_QTY
-		          , S.SOLDOUT_YN
-		          , S.DISP_ORD
-		     FROM TB_GOODS G
-		     INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-		                           AND B.USE_YN = 'Y'
-		     INNER JOIN (SELECT GOODS_CD, OPT_CD1, MIN(DISP_ORD) AS DISP_ORD FROM TB_OPTION WHERE DISP_YN = 'Y' GROUP BY  GOODS_CD, OPT_CD1 ) O ON G.GOODS_CD = O.GOODS_CD
-		     LEFT OUTER JOIN (SELECT GOODS_CD
-		                           , OPT_CD1
-		                           , SUM(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
-		                                      ELSE CURR_STOCK_QTY
-		                                      END) AS STOCK_QTY
-		                           , MIN(SOLDOUT_YN) AS SOLDOUT_YN
-		                           , MIN(DISP_ORD) AS DISP_ORD
-		                      FROM VW_STOCK
-		                      WHERE DISP_YN = 'Y'
-		                      GROUP BY GOODS_CD, OPT_CD1) S ON G.GOODS_CD = S.GOODS_CD 
-		                                                    AND O.OPT_CD1 = S.OPT_CD1
-		     WHERE G.GOODS_CD = #{goodsCd}
-		     AND G.GOODS_TYPE = 'G056_N' -- 일반상품
-		     ORDER BY O.DISP_ORD
-		) Z
-		WHERE 1 = 1
-		<if test='soldoutYn != null and soldoutYn == "Y"'>
-		AND (SOLDOUT_YN = 'Y'
-		     OR
-		     STOCK_QTY <![CDATA[<=]]> 0
-		    )
-		</if>
-		<if test='soldoutYn != null and soldoutYn == "N"'>
-		AND SOLDOUT_YN = 'N'
-		AND STOCK_QTY > 0
-		</if>
-		ORDER BY DISP_ORD
-	</select>
-	
 	<!-- 상품 옵션1 목록 - 자사용 -->
 	<select id="getGoodsOption1List" parameterType="Goods" resultType="GoodsStock">
 		/* TsfGoods.getGoodsOption1List */
@@ -302,6 +259,9 @@
 		                             AND O.DISP_YN = 'Y' 
 		      WHERE G.GOODS_CD =  #{goodsCd}
 		      AND G.GOODS_TYPE = 'G056_N' -- 일반상품
+		      <if test='adminYn == null or adminYn != "Y"'>
+		      AND G.GOODS_STAT = 'G008_90'
+		      </if>
 		) A
 		WHERE ROWNUM = 1
 	</select>
@@ -329,62 +289,54 @@
 		           , O.SOLDOUT_YN
 		           , O.DISP_ORD
 		           , (SELECT MIN_ORD_QTY FROM TB_GOODS WHERE GOODS_CD = O.GOODS_CD ) AS MIN_ORD_QTY
-		      FROM TB_OPTION O 
+		      FROM TB_GOODS G
+		      INNER JOIN TB_OPTION O ON G.GOODS_CD = O.GOODS_CD
+		                             AND O.OPT_CD1 = #{colorCd}
+		                             AND O.DISP_YN = 'Y' 
 		      INNER JOIN VW_STOCK VS ON O.GOODS_CD = VS.GOODS_CD
 		                          AND O.OPT_CD = VS.OPT_CD
-		      WHERE O.GOODS_CD = #{goodsCd}
-		      AND O.OPT_CD1 = #{colorCd}
-		      AND O.DISP_YN = 'Y'
+		      WHERE G.GOODS_CD = #{goodsCd}
+		      <if test='adminYn == null or adminYn != "Y"'>
+		      AND G.GOODS_STAT = 'G008_90'
+		      </if>
 		     ) B
 		ORDER BY DISP_ORD
 	</select>
 	
-	<!-- 상품 옵션2 목록  - 자사용-->
-	<select id="getGoodsOption2List_ORG" parameterType="Goods" resultType="GoodsStock">
-		/* TsfGoods.getGoodsOption2List */
+	<!-- 상품 옵션 목록  - 입점용-->
+	<select id="getGoodsOptionList" parameterType="Goods" resultType="GoodsStock">
+		/* TsfGoods.getGoodsOptionList */
 		SELECT GOODS_CD
 		     , OPT_CD
 		     , OPT_CD1
 		     , OPT_CD2
-		     , STOCK_QTY
+		     , CONCAT(OPT_CD1,'/', OPT_CD2) AS OPT_NM
+		     , ADD_PRICE 
+		     , (CASE WHEN STOCK_QTY - MIN_ORD_QTY >= 0 THEN STOCK_QTY
+		             ELSE 0
+		        END ) AS STOCK_QTY
 		     , SOLDOUT_YN
 		     , DISP_ORD
 		FROM (
-		    SELECT GOODS_CD
-		         , OPT_CD
-		         , OPT_CD1
-		         , OPT_CD2
-		         , (CASE WHEN STOCK_QTY - MIN_ORD_QTY >= 0 THEN STOCK_QTY
-		                 ELSE 0
-		            END ) AS STOCK_QTY
-		         , SOLDOUT_YN
-		         , DISP_ORD
-		    FROM (
-		          SELECT GOODS_CD
-		               , OPT_CD
-		               , OPT_CD1
-		               , OPT_CD2
-		               , CURR_STOCK_QTY AS STOCK_QTY
-		               , SOLDOUT_YN
-		               , DISP_ORD
-		               , (SELECT MIN_ORD_QTY FROM TB_GOODS WHERE GOODS_CD = A.GOODS_CD ) AS MIN_ORD_QTY
-		          FROM VW_STOCK A
-		          WHERE GOODS_CD = #{goodsCd}
-		          AND COLOR = #{colorCd}
-		          AND DISP_YN = 'Y'
-		        ) B
-		     ) Z
-		WHERE 1 = 1
-		<if test='soldoutYn != null and soldoutYn == "Y"'>
-		AND (SOLDOUT_YN = 'Y'
-		     OR
-		     STOCK_QTY <![CDATA[<=]]> 0
-		    )
-		</if>
-		<if test='soldoutYn != null and soldoutYn == "N"'>
-		AND SOLDOUT_YN = 'N'
-		AND STOCK_QTY > 0
-		</if>
+		      SELECT O.GOODS_CD
+		           , O.OPT_CD
+		           , O.OPT_CD1
+		           , O.OPT_CD2
+		           , O.ADD_PRICE 
+		           , VS.CURR_STOCK_QTY AS STOCK_QTY
+		           , O.SOLDOUT_YN
+		           , O.DISP_ORD
+		           , (SELECT MIN_ORD_QTY FROM TB_GOODS WHERE GOODS_CD = O.GOODS_CD ) AS MIN_ORD_QTY
+		      FROM TB_GOODS G
+		      INNER JOIN TB_OPTION O ON G.GOODS_CD = O.GOODS_CD
+		                             AND O.DISP_YN = 'Y' 
+		      INNER JOIN VW_STOCK VS ON O.GOODS_CD = VS.GOODS_CD
+		                          AND O.OPT_CD = VS.OPT_CD
+		      WHERE G.GOODS_CD = #{goodsCd}
+		      <if test='adminYn == null or adminYn != "Y"'>
+		      AND G.GOODS_STAT = 'G008_90'
+		      </if>
+		     ) B
 		ORDER BY DISP_ORD
 	</select>
 	
@@ -429,7 +381,9 @@
 		     , MOUSEOVER_IMG_YN
 		FROM TB_GOODS_IMG
 		WHERE GOODS_CD = #{goodsCd}
+		<if test='selfGoodsYn != null and selfGoodsYn == "Y"'>
 		AND COLOR_CD = #{colorCd}
+		</if>
 		ORDER BY DISP_ORD
 	</select>
 	
@@ -584,6 +538,7 @@
 		FROM TB_GOODS_RES_SELL
 		WHERE GOODS_CD = #{goodsCd}
 		AND DELV_RES_DT > NOW()
+		AND USE_YN = 'Y'
 		ORDER BY DELV_RES_DT
 		LIMIT 1
 	</select>
@@ -632,7 +587,7 @@
 		     , CERT_STATE
 		     , CERT_DIV
 		     , CERT_DT
-		FROM   TB_GOODS_SAFE_NO A
+		FROM TB_GOODS_SAFE_NO A
 		WHERE GOODS_CD = #{goodsCd}
 	</select>
 	
@@ -699,11 +654,16 @@
 		      INNER JOIN TB_GOODS G ON B.GOODS_CD = G.GOODS_CD
 		                            AND G.GOODS_STAT = 'G008_90'
 		                            AND G.SELF_MALL_YN = 'Y'
+		                            <if test='adminYn == null or adminYn != "Y"'>
+		                            AND G.GOODS_STAT = 'G008_90'
+		                            </if>
 		      INNER JOIN TB_BRAND D ON G.BRAND_CD = D.BRAND_CD
 		                    AND D.USE_YN = 'Y'
+		      INNER JOIN TB_SITE_BRAND SB ON B.BRAND_CD  = SB.BRAND_CD
+		                            AND SB.USE_YN = 'Y'
+		                            AND SB.SITE_CD = #{siteCd}
 		      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
@@ -849,4 +809,33 @@
 		ORDER BY A.SIZE_GB, A.DISP_ORD
 	</select>
 	
+	<!-- 셋트 구성상품의 구성상품 -->
+	<select id="getGoodsSetComposeList"  parameterType="Goods" resultType="GoodsCompose">
+		/* TsfGoods.getGoodsSetComposeList */
+		SELECT A.GOODS_CD
+		     , A.COMPS_GOODS_CD
+		     , G.GOODS_NM AS COMPS_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 COMPS_GOODS_FULL_NM
+		     , A.QTY
+		     , G.BRAND_CD
+		     , G.MAIN_COLOR_CD AS COLOR_CD
+		     , G.ITEMKIND_CD
+		     , (SELECT TI.SIZE_GB FROM TB_ITEMKIND TI WHERE TI.ITEMKIND_CD = G.ITEMKIND_CD) AS SIZE_GB
+		FROM TB_GOODS_COMPOSE A
+		INNER JOIN TB_GOODS G ON A.COMPS_GOODS_CD = G.GOODS_CD
+		                      AND G.SELF_MALL_YN = 'Y' -- 자사몰 노출
+		INNER JOIN TB_BRAND B ON  G.BRAND_CD = B.BRAND_CD
+		                      AND B.USE_YN = 'Y'
+		INNER JOIN TB_SITE_BRAND SB ON B.BRAND_CD  = SB.BRAND_CD
+		                            AND SB.USE_YN = 'Y'
+		                            AND SB.SITE_CD = #{siteCd}
+		WHERE A.GOODS_CD = #{goodsCd}
+		AND A.USE_YN = 'Y'
+		ORDER BY A.DISP_ORD
+	</select>
+	
 </mapper>

+ 50 - 19
src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml

@@ -17,7 +17,7 @@
 
 	<!-- 마이페이지 주문 목록 조회 -->
 	<select id="getOrderListForMypage" parameterType="Order" resultType="Order">
-		/* TscOrder.getOrderListForMypage */
+		/* TsfOrder.getOrderListForMypage */
 		SELECT O.ORD_NO
 		     , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
 		     , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(O.ORD_DT + INTERVAL 3 DAY, '%Y.%m.%d')
@@ -50,7 +50,7 @@
 		     , OD.SUPPLY_COMP_CD
 		     , OD.DELV_FEE_CD
 		     , OD.SHOT_DELV_YN
-		     , OD.CHANGABLE_YN
+		     , OD.CHANGEABLE_YN
 		     , OD.RETURNABLE_YN
 		     , G.SELF_GOODS_YN
 		     , CONCAT(B.BRAND_ENM, ' ', B.BRAND_KNM)						AS BRAND_NM
@@ -64,6 +64,7 @@
 		     , DA.RECIP_ZIPCODE
 		     , DA.RECIP_BASE_ADDR
 		     , DA.RECIP_DTL_ADDR
+		     , DATE_FORMAT(GRS.DELV_RES_DT, '%Y.%m.%d')						AS DELV_RES_DT
 		  FROM TB_ORDER O
 		 INNER JOIN TB_ORDER_DETAIL OD
 		    ON O.ORD_NO = OD.ORD_NO
@@ -85,6 +86,8 @@
 		    ON OD.GOODS_CD = GI.GOODS_CD
 		   AND ODI.OPT_CD1 = GI.COLOR_CD
 		   AND GI.DEFAULT_IMG_YN = 'Y'
+		  LEFT OUTER JOIN TB_GOODS_RES_SELL GRS
+		    ON GRS.GOODS_CD = OD.GOODS_CD
 		<where>
 			<choose>
 				<when test='custNo != null and custNo != ""'>
@@ -122,7 +125,7 @@
 
 	<!-- 마이페이지 주문 상태 별 수량 조회 -->
 	<select id="getOrderStatCount" parameterType="Order" resultType="Order">
-		/* TscOrder.getOrderStatCount */
+		/* TsfOrder.getOrderStatCount */
 		SELECT SUM(Z.ORDER_RECEIPT)                          AS ORDER_RECEIPT_COUNT
 		     , SUM(Z.PAYMENT_COMPLETE)                       AS PAYMENT_COMPLETE_COUNT
 		     , SUM(Z.GOODS_PREPARE)                          AS GOODS_PREPARE_COUNT
@@ -175,34 +178,62 @@
 
 	<!-- 마이페이지 주문목록 페이징 처리 주문번호 수 조회 -->
 	<select id="getPagingOrdNoListCount" parameterType="Order" resultType="int">
-		/* TscOrder.getPagingOrdNoList */
-		SELECT COUNT(ORD_NO) AS CNT
-		  FROM TB_ORDER
-		 WHERE CUST_NO = #{custNo}
-		   AND DISP_YN = 'Y'
+		/* TsfOrder.getPagingOrdNoList */
+		SELECT COUNT(*) AS CNT
+		  FROM (SELECT O.ORD_NO
+				  FROM TB_ORDER O
+				 INNER JOIN TB_ORDER_DETAIL OD
+				    ON O.ORD_NO = OD.ORD_NO
+				 WHERE O.CUST_NO = #{custNo}
+				   AND O.DISP_YN = 'Y'
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
-		   AND ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
+				   AND O.ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
 		</if>
+		<if test="ordDtlStat != null and ordDtlStat != ''">
+				   AND OD.ORD_DTL_STAT = #{ordDtlStat}
+		</if>
+				 GROUP BY O.ORD_NO
+			   ) Z
 	</select>
 
 	<!-- 마이페이지 주문목록 페이징 처리 주문번호 조회 -->
 	<select id="getPagingOrdNoList" parameterType="Order" resultType="Order">
-		/* TscOrder.getPagingOrdNoList */
+		/* TsfOrder.getPagingOrdNoList */
 		<include refid="selectForPagingHeader"/>
-		SELECT ORD_NO
-		     , RANK() OVER(ORDER BY ORD_DT DESC) AS NUMB
-		  FROM TB_ORDER
-		 WHERE CUST_NO = #{custNo}
-		   AND DISP_YN = 'Y'
+		SELECT O.ORD_NO
+		     , RANK() OVER(ORDER BY O.ORD_DT DESC) AS NUMB
+		  FROM TB_ORDER O
+		 INNER JOIN TB_ORDER_DETAIL OD
+		    ON O.ORD_NO = OD.ORD_NO
+		 WHERE O.CUST_NO = #{custNo}
+		   AND O.DISP_YN = 'Y'
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
-		   AND ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
+		   AND O.ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
 		</if>
+		<if test="ordDtlStat != null and ordDtlStat != ''">
+		   AND OD.ORD_DTL_STAT = #{ordDtlStat}
+		</if>
+		 GROUP BY O.ORD_NO
 		<include refid="selectForPagingFooter"/>
 	</select>
+	
+	<!-- 마이페이지 주문목록 사은품 조회 -->
+	<select id="getOrderFreeGiftListForMypage" parameterType="Order" resultType="Order">
+		/* TsfOrder.getPagingOrdNoList */
+		SELECT FG.GOODS_NM
+			 , OFV.USE_POINT
+		  FROM TB_ORD_FREEGIFT OFG
+		 INNER JOIN TB_ORD_FREEGIFT_VAL OFV
+		    ON OFG.ORD_FREEGIFT_SQ = OFV.ORD_FREEGIFT_SQ
+		 INNER JOIN TB_FREE_GOODS FG
+		    ON OFV.PRODUCT_NO = FG.PRODUCT_NO
+		   AND OFV.PRODUCT_CODE = FG.PRODUCT_CODE
+		 WHERE OFG.ORD_NO = #{ordNo}
+	</select>
 
 	<!-- 마이페이지 주문상세 금액정보 조회 -->
 	<select id="getOrderAmtForMypage" parameterType="Order" resultType="Order">
-		/* TscOrder.getOrderAmtForMypage */
+		/* TsfOrder.getOrderAmtForMypage */
 		SELECT SUM(OD.ORD_AMT)          AS ORD_AMT
 			 , SUM(OD.CPN1_DC_AMT)      AS CPN1_DC_AMT
 			 , SUM(OD.TMTB1_DC_AMT)     AS TMTB1_DC_AMT
@@ -231,7 +262,7 @@
 
 	<!-- 마이페이지 주문상세 결제정보 조회 -->
 	<select id="getPaymentInfoForMypage" parameterType="Order" resultType="Order">
-		/* TscOrder.getPaymentInfoForMypage */
+		/* TsfOrder.getPaymentInfoForMypage */
 		SELECT PAY_SQ
 		     , ORD_NO
 		     , PAY_DT
@@ -295,7 +326,7 @@
 
 	<!-- 마이페이지 주문상세 배송지 정보 조회 -->
 	<select id="getOrderDeliveryAddrInfo" parameterType="Order" resultType="Order">
-		/* TscOrder.getOrderDeliveryAddrInfo */
+		/* TsfOrder.getOrderDeliveryAddrInfo */
 		SELECT DA.DELV_ADDR_SQ
 			 , DA.RECIP_NM
 			 , DA.RECIP_PHNNO

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

@@ -15,9 +15,105 @@
 	</sql>
 	<!--// Paging -->
 
-	<!-- 마이페이지 취소/반품 목록 조회 -->
+	<!-- 마이페이지 취소 목록 조회 -->
 	<select id="getCancelListForMypage" parameterType="Order" resultType="Order">
 		/* TscOrderChange.getCancelListForMypage */
+		SELECT O.ORD_NO
+		     , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')				AS ORD_DT
+		     , O.CUST_NO
+		     , OD.ORD_DTL_NO
+		     , OD.ORD_DTL_STAT
+		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT)			AS ORD_DTL_STAT_NM
+		     , OD.ORD_EXCH_GB
+		     , CASE WHEN OD.ORD_DTL_STAT IN ('G013_20', 'G013_30', 'G013_40') THEN 'Y'
+					ELSE 'N'
+				END												AS ALL_CAN_YN
+		     , OD.GOODS_CD
+		     , G1.GOODS_NM
+		     , G1.GOODS_TYPE
+		     , FN_GET_CODE_NM('G056', G1.GOODS_TYPE)			AS GOODS_TYPE_NM
+		     , G2.GOODS_CD										AS ITEM_CD
+		     , G2.GOODS_NM										AS ITEM_NM
+		     , ODI.ORD_DTL_ITEM_SQ
+		     , ODI.OPT_CD
+		     , ODI.OPT_CD1
+		     , ODI.OPT_CD2
+		     , ODI.ITEM_QTY
+		     , ODI.ITEM_PRICE
+		     , ODI.OPT_ADD_PRICE
+		     , ODI.ORD_AMT
+		     , ODI.CNCL_RTN_AMT
+		     , ODI.CPN1_DC_AMT
+		     , ODI.TMTB1_DC_AMT
+		     , ODI.TMTB2_DC_AMT
+		     , ODI.GOODS_CPN_DC_AMT
+		     , ODI.CART_CPN_DC_AMT
+		     , ODI.PNT_DC_AMT
+		     , ODI.PRE_PNT_DC_AMT
+		     , ODI.GFCD_USE_AMT
+		     , ODI.REAL_ORD_AMT
+		     , GI.SYS_IMG_NM
+		     , OD.ORD_QTY
+		     , OD.CNCL_RTN_QTY
+		     , CASE WHEN OCD.ORD_REQ_CHG_QTY IS NULL THEN 0
+					ELSE OCD.ORD_REQ_CHG_QTY * ODI.ITEM_QTY
+				END												AS ORD_REQ_CHG_QTY
+		     , OD.ORD_QTY - OD.CNCL_RTN_QTY - IF(OCD.ORD_REQ_CHG_QTY IS NULL, 0, OCD.ORD_REQ_CHG_QTY * ODI.ITEM_QTY) AS ORD_CAN_CHG_QTY
+		     , OD.SAVE_PNT_AMT
+		     , OD.SHIP_COMP_CD
+		     , OD.GIFT_PACK_YN
+		     , FN_GET_SUPPLY_COMP_NM(OD.SUPPLY_COMP_CD)			AS SUPPLY_COMP_NM
+		     , OD.INVOICE_NO
+		     , OD.SUPPLY_COMP_CD
+		     , OD.DELV_FEE_CD
+		     , OD.SHOT_DELV_YN
+		     , G1.SELF_GOODS_YN
+		     , CONCAT(B.BRAND_ENM, ' ', B.BRAND_KNM)			AS BRAND_NM
+		  FROM TB_ORDER O
+		 INNER JOIN TB_ORDER_DETAIL OD
+		    ON O.ORD_NO = OD.ORD_NO
+		 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+		    ON OD.ORD_NO = ODI.ORD_NO
+		   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		 INNER JOIN TB_GOODS G1
+		    ON OD.GOODS_CD = G1.GOODS_CD
+		 INNER JOIN TB_GOODS G2
+		    ON ODI.ITEM_CD = G2.GOODS_CD
+		 INNER JOIN TB_BRAND B
+		    ON B.BRAND_CD = G1.BRAND_CD
+		  LEFT OUTER JOIN (SELECT OD.ORD_DTL_NO
+								, SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
+							 FROM TB_ORDER_CHANGE_DETAIL OCD
+							INNER JOIN TB_ORDER_DETAIL OD
+							   ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+							WHERE OD.ORD_NO = #{ordNo}
+							  AND OCD.DEL_YN = 'N'
+							  AND OCD.CHG_STAT IN ('G685_20', 'G685_30', 'G685_33', 'G685_40')
+							GROUP BY OCD.ORD_DTL_NO
+						  ) OCD
+		    ON OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+		  LEFT OUTER JOIN TB_GOODS_IMG GI
+		    ON OD.GOODS_CD = GI.GOODS_CD
+		   AND ODI.OPT_CD1 = GI.COLOR_CD
+		   AND GI.DEFAULT_IMG_YN = 'Y'
+		 WHERE O.ORD_NO = #{ordNo}
+		   AND OD.ORD_DTL_STAT IN ('G013_10', 'G013_11', 'G013_20', 'G013_30')
+		<choose>
+			<when test='custNo != null and custNo != ""'>
+		   AND O.CUST_NO = #{custNo}
+			</when>
+			<otherwise>
+		   AND O.ORD_NO = #{ordNo}
+		   AND O.ORD_NM = #{orderNm}
+			</otherwise>
+		</choose>
+		   AND O.DISP_YN = 'Y'
+		 ORDER BY OD.ORD_DTL_NO
+	</select>
+
+	<!-- 마이페이지 반품 목록 조회 -->
+	<select id="getReturnListForMypage" parameterType="Order" resultType="Order">
+		/* TscOrderChange.getReturnListForMypage */
 		SELECT O.ORD_NO
 		     , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')				AS ORD_DT
 		     , OD.ORD_DTL_NO

+ 20 - 14
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -37,6 +37,7 @@
 		FROM TB_PLAN P  
 		WHERE 1=1
 		   AND P.DEL_YN = 'N'
+		   AND P.OPEN_YN = 'Y'
 		   AND P.PLAN_GB = 'P'
 		   <if test="cateNo != null and cateNo != ''">
 		   AND P.PLAN_SQ IN (
@@ -108,13 +109,15 @@
 			AND P1.PLAN_SQ != #{planSq}
 		</if>
 		 <!--  AND P1.FRONT_GB IN (#{frontGb}, 'A') -->
+		  <if test="cateNo != null and cateNo != ''">
 		  AND P1.PLAN_SQ IN (
 				   						SELECT PLAN_SQ 
 				   						FROM TB_PLAN_CATE 
-				   						 <if test="cateNo != null and cateNo != ''">
+				   						
 				   						WHERE CATE_NO = #{cateNo}
-				   						</if>
+				   						
 				   					)
+		 </if>
 		ORDER BY P1.NEW_PLAN DESC, ABS(DATEDIFF(P1.DISP_EDDT,NOW())) 
 	</select>
 	
@@ -166,13 +169,15 @@
 					 AND PD.DISP_YN = 'Y'
 					 AND PG.DEL_YN = 'N'
 					 AND P.PLAN_GB = 'P'
+					 <if test="cateNo != null and cateNo != ''">
 				     AND P.PLAN_SQ IN (
 				   						SELECT PLAN_SQ 
 				   						FROM TB_PLAN_CATE 
-				   						 <if test="cateNo != null and cateNo != ''">
+				   						 
 				   						WHERE CATE_NO = #{cateNo}
-				   						</if>
+				   						
 				   	 					)
+				   	 </if>
 				)Z
 				ORDER BY Z.DISP_ORD ASC, STOCK_QTY_SUM DESC
 			)F
@@ -227,16 +232,6 @@
 		</if>
 	</select>
 	
-	<select id="planCustGrade" resultType="int" parameterType="Plan">
-		/* TsfPlanning.planCustGrade */
-		SELECT G.CUST_GRADE 
-			  ,G.PLAN_SQ 
-			  ,G.REG_DT 
-			  ,G.REG_NO 
-		FROM TB_PLAN_CUST_GRADE G 
-		WHERE PLAN_SQ = #{planSq}
-	</select>
-	
 	<select id="getEventAllCount" resultType="int" parameterType="Plan">
 		/* TsfPlanning.getEventAllCount */
 		SELECT COUNT(*) AS CNT
@@ -298,5 +293,16 @@
 		ORDER BY P1.NEW_PLAN DESC , ABS(DATEDIFF(P1.DISP_EDDT,NOW()))  
 	</select>
 	
+	<select id="accessCustGrade"  parameterType="Plan" resultType="Plan">
+		SELECT CUST_GRADE
+			  ,(CASE CUST_GRADE WHEN 'G110_10'THEN 'VIP'
+			                    WHEN 'G110_20'THEN 'GOLD'
+			                    WHEN 'G110_30'THEN 'SILVER'
+			                    WHEN 'G110_40'THEN 'BRONZE'
+			                    WHEN 'G110_50'THEN 'WELCOME'END) AS CUST_GRADE_NAME
+		FROM TB_PLAN TP INNER JOIN tb_plan_cust_grade g ON TP.PLAN_SQ = G.PLAN_SQ 
+		WHERE TP.PLAN_SQ = #{planSq}
+	</select>
+	
 
 </mapper>

+ 137 - 17
src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml

@@ -30,20 +30,47 @@
 		INNER JOIN TB_ORDER_DETAIL OD ON R.ORD_NO = OD.ORD_NO 
 		                              AND R.ORD_DTL_NO  = OD.ORD_DTL_NO
 		                              AND R.GOODS_CD = OD.GOODS_CD
-		INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON OD.ORD_NO = ODI.ORD_NO 
-		                                    AND OD.ORD_DTL_NO  = ODI.ORD_DTL_NO
-		<if test='goodsType != null and goodsType != "G056_S" '>
-		                              AND OD.GOODS_CD = ODI.ITEM_CD 
-		</if>
 		INNER JOIN TB_CUSTOMER C ON R.REG_NO  = C.CUST_NO
 		AND R.GOODS_CD = #{goodsCd}
 		<if test='bestYn != null and bestYn == "Y"'>
 		AND R.BEST_YN = 'Y'
 		</if>
 		<if test='photoYn != null and photoYn == "Y"'>
-		AND EXISTS (SELECT 1 FROM TB_REVIEW_ATTACH WHERE DEL_YN = 'N' AND REVIEW_SQ = R.REVIEW_SQ)
+		AND EXISTS (SELECT 1 
+		            FROM TB_REVIEW_ATTACH 
+		            WHERE DEL_YN = 'N' 
+		            AND REVIEW_SQ = R.REVIEW_SQ
+		            AND (FILE_GB  = 'I'
+		                 OR
+		                 FILE_GB = 'M' AND R.CONFIRM_YN = 'Y'
+		                )
+		            )
+		</if>
+		<if test="reviewScore != null and reviewScore != ''">
+		AND R.SCORE = #{reviewScore}
+		</if>
+		<if test="reviewOption != null and reviewOption != ''">
+		AND EXISTS (SELECT 1
+		            FROM TB_ORDER_DETAIL_ITEM ODI 
+		            WHERE ODI.ORD_NO = R.ORD_NO 
+		            AND ODI.ORD_DTL_NO  = R.ORD_DTL_NO
+		            AND ODI.OPT_CD2 = #{reviewOption}
+		           )
+		</if>
+		<if test="reviewHeight != null and reviewHeight != ''">
+		 <![CDATA[
+		AND R.HEIGHT >= #{reviewHeightSt}
+		AND R.HEIGHT < #{reviewHeightEd}
+		]]>
+		</if>
+		<if test="reviewWeight != null and reviewWeight != ''">
+		<![CDATA[
+		AND R.WEIGHT >= #{reviewWeightSt}
+		AND R.WEIGHT < #{reviewWeightEd}
+		]]>
 		</if>
 		AND R.DEL_YN = 'N'
+		AND R.DISP_YN = 'Y'
 	</select>
 		
 	<!-- 상품 리뷰 목록 -->
@@ -93,25 +120,98 @@
 		     , C.CUST_ID 
 		     , (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 TI.SIZE_GB FROM TB_ITEMKIND TI WHERE TI.ITEMKIND_CD = G.ITEMKIND_CD) AS SIZE_GB
+		     
+		     , (SELECT MAX(REVIEW_SQ) 
+		        FROM TB_REVIEW R
+		        WHERE REVIEW_SQ <![CDATA[<]]> #{reviewSq} 
+		        AND GOODS_CD = R.GOODS_CD 
+		        AND DEL_YN = 'N'
+		        <if test='bestYn != null and bestYn == "Y"'>
+		        AND BEST_YN = 'Y'
+		        </if>
+		        <if test='photoYn != null and photoYn == "Y"'>
+		        AND EXISTS (SELECT 1 
+		                    FROM TB_REVIEW_ATTACH 
+		                    WHERE DEL_YN = 'N' 
+		                    AND REVIEW_SQ = R.REVIEW_SQ
+		                    AND (FILE_GB  = 'I'
+		                         OR
+		                         FILE_GB = 'M' AND R.CONFIRM_YN = 'Y'
+		                        )
+		                    )
+		        </if>
+		        ) AS PREV_REVIEW_SQ
+		     , (SELECT MIN(REVIEW_SQ) 
+		        FROM TB_REVIEW 
+		        WHERE REVIEW_SQ > #{reviewSq}
+		        AND GOODS_CD = R.GOODS_CD 
+		        AND DEL_YN = 'N'
+		        <if test='bestYn != null and bestYn == "Y"'>
+		        AND BEST_YN = 'Y'
+		        </if>
+		        <if test='photoYn != null and photoYn == "Y"'>
+		        AND EXISTS (SELECT 1 
+		                    FROM TB_REVIEW_ATTACH 
+		                    WHERE DEL_YN = 'N' 
+		                    AND REVIEW_SQ = R.REVIEW_SQ
+		                    AND (FILE_GB  = 'I'
+		                         OR
+		                         FILE_GB = 'M' AND R.CONFIRM_YN = 'Y'
+		                        )
+		                    )
+		        </if>
+		        ) AS NEXT_REVIEW_SQ
+		     
 		     , RANK() OVER(ORDER BY R.REVIEW_SQ DESC) AS RNUM
 		FROM TB_REVIEW R 
 		INNER JOIN TB_GOODS G ON R.GOODS_CD = G.GOODS_CD
 		INNER JOIN TB_ORDER_DETAIL OD ON R.ORD_NO = OD.ORD_NO 
-		                               AND R.ORD_DTL_NO  = OD.ORD_DTL_NO 
-		INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON OD.ORD_NO = ODI.ORD_NO 
-		                                    AND OD.ORD_DTL_NO  = ODI.ORD_DTL_NO
-		<if test='goodsType != null and goodsType != "G056_S" '>
-		                              AND OD.GOODS_CD = ODI.ITEM_CD 
-		</if>
+		                              AND R.ORD_DTL_NO  = OD.ORD_DTL_NO 
+		                              AND R.GOODS_CD = OD.GOODS_CD
 		INNER JOIN TB_CUSTOMER C ON R.REG_NO  = C.CUST_NO
 		AND R.GOODS_CD = #{goodsCd}
+		<if test="reviewSq != null and reviewSq != ''" >
+		AND R.REVIEW_SQ = #{reviewSq}
+		</if>
 		<if test='bestYn != null and bestYn == "Y"'>
 		AND R.BEST_YN = 'Y'
 		</if>
 		<if test='photoYn != null and photoYn == "Y"'>
-		AND EXISTS (SELECT 1 FROM TB_REVIEW_ATTACH WHERE DEL_YN = 'N' AND REVIEW_SQ = R.REVIEW_SQ)
+		AND EXISTS (SELECT 1 
+		            FROM TB_REVIEW_ATTACH 
+		            WHERE DEL_YN = 'N' 
+		            AND REVIEW_SQ = R.REVIEW_SQ
+		            AND (FILE_GB  = 'I'
+		                 OR
+		                 FILE_GB = 'M' AND R.CONFIRM_YN = 'Y'
+		                )
+		            )
 		</if>
 		AND R.DEL_YN = 'N'
+		AND R.DISP_YN = 'Y'
+		<if test="reviewScore != null and reviewScore != ''">
+		AND R.SCORE = #{reviewScore}
+		</if>
+		<if test="reviewOption != null and reviewOption != ''">
+		AND EXISTS (SELECT 1
+		            FROM TB_ORDER_DETAIL_ITEM ODI 
+		            WHERE ODI.ORD_NO = R.ORD_NO 
+		            AND ODI.ORD_DTL_NO  = R.ORD_DTL_NO
+		            AND ODI.OPT_CD2 = #{reviewOption}
+		           )
+		</if>
+		<if test="reviewHeight != null and reviewHeight != ''">
+		 <![CDATA[
+		AND R.HEIGHT >= #{reviewHeightSt}
+		AND R.HEIGHT < #{reviewHeightEd}
+		]]>
+		</if>
+		<if test="reviewWeight != null and reviewWeight != ''">
+		<![CDATA[
+		AND R.WEIGHT >= #{reviewWeightSt}
+		AND R.WEIGHT < #{reviewWeightEd}
+		]]>
+		</if>
 		)Z
 		<if test="rownum != null and rownum > 0 ">
 		WHERE RNUM = 1
@@ -125,13 +225,19 @@
 		SELECT A.RV_ATC_SQ
 		     , A.REVIEW_SQ
 		     , A.FILE_GB
-		     , A.ORG_FILE_NM
 		     , A.SYS_FILE_NM
 		     , A.DEL_YN 
 		     , RANK() OVER(ORDER BY a.FILE_GB DESC) AS NUMB
-		FROM TB_REVIEW_ATTACH A 
-		WHERE A.DEL_YN = 'N'
-		AND A.REVIEW_SQ = #{reviewSq}
+		FROM  TB_REVIEW R
+		INNER JOIN TB_REVIEW_ATTACH A ON R.REVIEW_SQ = A.REVIEW_SQ
+		                              AND A.DEL_YN = 'N'
+		WHERE R.DISP_YN = 'Y'
+		AND R.DEL_YN = 'N'
+		AND R.REVIEW_SQ = #{reviewSq}
+		AND (A.FILE_GB  = 'I'
+		     OR
+		     A.FILE_GB = 'M' AND R.CONFIRM_YN = 'Y'
+		    )
 	</select>
 	
 	<!-- 상품평 상품 옵션 목록 -->
@@ -155,5 +261,19 @@
 		WHERE R.REVIEW_SQ = #{reviewSq} 
 		AND R.GOODS_CD = #{goodsCd}
 	</select>
+	
+	<!-- 상품평 옵션 목록 -->
+	<select id="getReviewOptionList" parameterType="String" resultType="Goods">
+		/* TsfReivew.getReviewOptionList */
+		SELECT DISTINCT ODI.OPT_CD2
+		FROM TB_REVIEW R 
+		INNER JOIN TB_ORDER_DETAIL OD ON R.ORD_NO = OD.ORD_NO 
+		                              AND R.ORD_DTL_NO  = OD.ORD_DTL_NO
+		                              AND R.GOODS_CD  = OD.GOODS_CD 
+		INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON OD.ORD_NO = ODI.ORD_NO 
+		                                    AND OD.ORD_DTL_NO  = ODI.ORD_DTL_NO
+		INNER JOIN TB_GOODS G ON ODI.ITEM_CD = G.GOODS_CD
+		WHERE R.GOODS_CD = #{goodsCd}
+	</select>
 
 </mapper>

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

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.style24.front.biz.dao.TsfSocialDao">
 	<select id="getSocialInfo" resultType="Social" parameterType="Social">
-		<!-- TsfSocial.getSocialInfo -->
+		/* TsfSocial.getSocialInfo*/
 		SELECT A.SOCIAL_SQ
 		     , A.SOCIAL_NM
 		     , A.SOCIAL_TYPE
@@ -23,6 +23,7 @@
 	</select>
 	
 	<select id="getSocialGoodsList" resultType="Social" parameterType="Social">
+		/* TsfSocial.getSocialGoodsList*/
 		SELECT F.* 
 			 ,  (CASE WHEN F.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = F.GOODS_CD) 
 			    ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = F.GOODS_CD) 
@@ -31,6 +32,7 @@
 			 , CASE IFNULL((SELECT COUNT(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = F.GOODS_CD AND COLOR_CD = F.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ),0) 
 			            WHEN 0 THEN 'N'
 			            ELSE 'Y' END AS GOODS_IMAGE_YN
+			 ,(CASE WHEN F.WISH_GOOD IS NULL THEN 'N' ELSE 'Y' END) AS WISH_YN
 			FROM
 			(   
 				 SELECT A.SOCIAL_SQ
@@ -58,9 +60,13 @@
 				     , C.MAIN_COLOR_CD 
 				     , D.BRAND_KNM 
 				     , D.BRAND_ENM 
+				     , W.CUST_NO 
+				     , W.GOODS_CD AS WISH_GOOD
 				FROM TB_SOCIAL A INNER JOIN tb_social_goods B ON A.SOCIAL_SQ = B.SOCIAL_SQ 
 				                 INNER JOIN TB_GOODS C ON B.GOODS_CD = C.GOODS_CD 
 				                 INNER JOIN TB_BRAND D ON C.BRAND_CD = D.BRAND_CD
+				                 LEFT JOIN TB_WISHLIST W ON C.GOODS_CD = W.GOODS_CD
+		                             AND W.CUST_NO  = IFNULL(#{custNo},0)
 				WHERE 1=1
 				  AND NOW() BETWEEN A.SOCIAL_STDT AND A.SOCIAL_EDDT 
 				  AND A.USE_YN = 'Y'		    		 /*사용여부*/

+ 0 - 49
src/main/webapp/WEB-INF/views/mob/cart/CartListFormMob.html

@@ -9,55 +9,6 @@
 
 <th:block layout:fragment="content">
 
-<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
-<script type="text/javascript" src="/ux/mo/js/payment.js"></script>
-<script type="text/javascript">
-	$(document).on("click", "#buyBtn", function() {
-		let orderData = {
-			pgGb		: "PAYCO"
-			, payMeans	: "G014_30"
-			, ordNo		: "5"
-			, goodsNm	: "상품 테스트"
-			, payAmt	: "1233"
-			, ordNm		: "이태영"
-			, ordEmail	: "xodud1202@naver.com"
-			, ordTelno	: "02-0000-0000"
-			, ordPhnno	: "010-7111-0000"
-		};
-
-		let jsonData = JSON.stringify(orderData);
-
-		$.ajax( {
-			type		: "POST",
-			url			: '/order/create/preOrder',
-			data		: jsonData,
-			dataType	: 'html',
-			beforeSend : function(xhr, settings) {
-				xhr.setRequestHeader("AJAX"			, "true");
-				xhr.setRequestHeader('Accept'		, 'application/json');
-				xhr.setRequestHeader('Content-Type'	, 'application/json');
-				gagajf.showProgressbar(true);
-			},
-			error : function(e) {
-				alert(3);
-			},
-			success 	: function(result) {
-				// 결재정보로드
-				$("#orderInfo").html(result);
-				kcp_AJAX();
-				//jsf__pay(document.order_info);
-				//fnKakaoPaymentReady();
-				//fnNaverPaymentReady();
-			}
-		});
-	});
-</script>
-
-
-
-
-<div id="orderInfo" name="orderInfo"></div>
-<input type="button" id="buyBtn" value="KCP TEST" style="width:100px;height:200px;" />
 
 </th:block>
 

+ 3 - 11
src/main/webapp/WEB-INF/views/mob/pg/kcpOrderMob.html

@@ -16,7 +16,6 @@
 	<input type="hidden" name="payMeans"		th:value="${payment.payMeans}" />
 
 	<input type="hidden" name="encoding_trans"	value="UTF 8" />	<!-- 추가 인코딩 네임은 대문자 -->
-	<input type="hidden" name="PayUrl"			value="" />			<!-- 주문페이지 소스에 이미 PayUrl 이 input 값에 있다면 추가하지 않습니다 -->
 
 	<input type="hidden" name="req_tx"			th:value="${payment.reqTx}" />		<!-- 요청의 종류를 구분하는 변수 결제요청페이지의 경우 ‘pay’로 설정 -->
 	<input type="hidden" name="shop_name"		th:value="${payment.siteName}" />	<!-- 상점이름(영문으로 작성권장) -->
@@ -50,16 +49,12 @@
 	<input type="hidden" name="use_pay_method"	value=""/>
 	<input type="hidden" name="cash_yn"         value=""/>
 	<input type="hidden" name="cash_tr_code"	value=""/>
-
-
-
+	<input type="hidden" name="param_opt_1"		th:value="${payment.pgGb}" />		<!-- 모바일은 URL 로 변수 이동하므로 추가 변수로 KCP인지 PAYCO인지 송부 -->
+	<input type="hidden" name="param_opt_2"		th:value="${payment.shopUserId}" />	<!-- 모바일은 URL 로 변수 이동하므로 추가 변수로 custNo 송부 -->
 
 	<input type="hidden" name="shop_user_id"	th:value="${payment.shopUserId}" />	<!-- 필수, 쇼핑몰회원ID 기관에 따라 RM 조치를 위해 쇼핑몰 관리 ID를 필수로 요청 -->
 
 
-
-
-
 	<!-- 신용카드 정보 -->
 
 
@@ -70,7 +65,7 @@
 	<input type="hidden" name="tablet_size"     value="<%=tablet_size%>">
 
 	<!-- 무통장입금 정보 -->
-	<!-- <input type="hidden" name="vcnt_expire_term"	th:value="${payment.vcntExpireTerm}"/> -->	<!-- 무통장입금 유효기간 설정 (3 = 3일) -->
+	<input type="hidden" name="vcnt_expire_term"	th:value="${payment.vcntExpireTerm}"/>	<!-- 무통장입금 유효기간 설정 (ex. 3 = 3일) -->
 
 	<!-- 2012년 8월 18일 전자상거래법 개정 관련 설정 부분 -->
 	<!-- 제공 기간 설정 0:일회성 1:기간설정(ex 1:2012010120120131)  -->
@@ -84,12 +79,9 @@
 			필수 항목 : 표준웹에서 값을 설정하는 부분으로 반드시 포함되어야 합니다
 			값을 설정하지 마십시오
 	-->
-
-
 	<input type="hidden" name="ret_pay_method"  value=""/>
 	<input type="hidden" name="tran_cd"         value=""/>
 
-
 	<!-- 주문정보 검증 관련 정보 : 표준웹 에서 설정하는 정보입니다 -->
 	<input type="hidden" name="ordr_chk"        value=""/>
 

+ 269 - 0
src/main/webapp/WEB-INF/views/web/cart/CartChangeOptionPopupWeb_20210319.html

@@ -0,0 +1,269 @@
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<!-- 옵션변경 팝업 -->
+<div class="modal-dialog cartOptionModal" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="optModifyLabel">옵션변경</h5>
+			<div class="prod_title">
+				<span class="brand" th:text="|${cart.brandEnm + ' ' + cart.brandKnm}|"></span>
+				<span class="name" th:text="${cart.goodsNm}"></span>
+			</div>
+		</div>
+
+		<div class="modal-body">
+			<div class="pop_cont">
+				<div class="prod_info">
+					<div class="prod_preview">
+						<div class="area_pic">
+							<ul class="pic_list">
+								<th:block th:if="${setType.equals(cart.goodsType) or cart.selfGoodsYn.equals('N')}">
+									<li th:each="img, index : ${cart.cartImgList}">
+										<span class="thumb"><img th:src="${cart.imgPath + '/' + img.sysImgNm}" src="#" alt="" /></span>
+									</li>
+								</th:block>
+								<th:block th:if="${!setType.equals(cart.goodsType) and cart.selfGoodsYn.equals('Y')}">
+									<th:block th:each="comp, status : ${cart.cartCompsList}">
+										<th:block th:each="color, index : ${comp.cartColorList}">
+											<th:block th:if="${color.cartOptCd1 != null and color.cartOptCd1.equals(color.optCd1)}">
+												<li th:each="img, index : ${color.cartImgList}">
+													<span class="thumb"><img th:src="${cart.imgPath + '/' + img.sysImgNm}" src="#" alt="" /></span>
+												</li>
+											</th:block>
+										</th:block>
+									</th:block>
+								</th:block>
+							</ul>
+						</div>
+						<div class="area_order">
+							<th:block th:each="comp, status : ${cart.cartCompsList}">
+								<!-- 세트상품 옵션 -->
+								<th:block th:if="${setType.equals(cart.goodsType)}">
+									<div class="opt_select setOption">
+										<div class="opt_header">
+											<span class="title" th:text="${comp.goodsNm}"></span>
+										</div>
+
+										<!-- 컬러 변경시 만들어줄 size option -->
+										<th:block th:each="color, index : ${comp.cartColorList}">
+											<span style="display:none;">
+												<select th:classappend="|color_${color.goodsCd}_${color.optCd1}|">
+													<th:block th:each="size, i : ${color.cartSizeList}">
+														<th:block th:if="${color.optCd1.equals(size.optCd1)}">
+															<option th:value="${size.optCd}" th:text="${size.optCd2}"></option>
+														</th:block>
+													</th:block>
+												</select>
+											</span>
+										</th:block>
+
+										<div class="form_field">
+											<select class="setColorSelect">
+												<th:block th:each="color, index : ${comp.cartColorList}">
+													<option th:data="${comp.goodsCd}" th:value="${color.optCd1}" rel="icon-temperature" th:text="${color.colorNm}" th:selected="${color.cartColorNm != null}"></option>
+												</th:block>
+											</select>
+										</div>
+										<div class="form_field">
+											<th:block th:each="color, index : ${comp.cartColorList}">
+											<select th:data="${color.goodsCd}" th:class="|size_${comp.goodsCd} setSizeSelect|">
+												<th:block th:each="size, i : ${color.cartSizeList}">
+													<th:block th:if="${color.optCd1.equals(size.optCd1)}">
+														<option th:data="${comp.cartDtlSq}" th:value="${size.optCd}" th:text="${size.optCd2}" th:selected="${size.cartOptCd != null}"></option>
+													</th:block>
+												</th:block>
+											</select>
+											</th:block>
+										</div>
+									</div>
+								</th:block>
+
+								<!-- 자사 일반 상품 옵션 -->
+								<th:block th:if="${!setType.equals(cart.goodsType) and 'Y'.equals(cart.selfGoodsYn)}">
+									<div class="opt_color">
+										<div class="opt_header">
+											<span class="title">컬러</span>
+											<th:block th:each="color, index : ${comp.cartColorList}">
+												<th:block th:if="${color.cartColorNm != null}">
+													<span class="color" th:text="${color.cartColorNm}"></span>
+												</th:block>
+											</th:block>
+										</div>
+										<ul>
+											<li th:each="color, index : ${comp.cartColorList}" class="selfGoodsColor">
+												<a href="" th:cartDtlSq="${color.cartDtlSq}" th:classappend="${color.cartColorNm != null} ? 'on'" class="selfGoodsColorSelect" th:data="${color.optCd1}">
+													<img th:src="${cart.imgPath + '/' + color.sysImgNm}" src="#" th:alt="${color.colorNm}" alt="" />
+												</a>
+											</li>
+										</ul>
+									</div>
+
+									<div class="opt_size">
+										<div class="opt_header">
+											<span class="title">사이즈</span>
+										</div>
+										<div class="form_field selfGoodsSize">
+											<th:block th:each="color, index : ${comp.cartColorList}">
+												<th:block th:if="${color.cartColorNm != null}">
+													<th:block th:each="size, index : ${color.cartSizeList}">
+														<div>
+															<input type="radio" name="rdi-optsize" th:id="|${'rdi-optsize' + size.goodsCd + '-' + size.optCd}|" th:value="${size.optCd}" th:checked="${size.cartOptCd != null}" th:disabled="${size.soldoutYn == 'Y' or cart.goodsQty > size.currStockQty}">
+															<label th:for="|${'rdi-optsize' + size.goodsCd + '-' + size.optCd}|"><span th:text="${size.optCd2}"></span></label>
+														</div>
+													</th:block>
+												</th:block>
+											</th:block>
+										</div>
+									</div>
+								</th:block>
+
+								<!-- 입점업체 상품 옵션 -->
+								<th:block th:if="${!setType.equals(cart.goodsType) and !'Y'.equals(cart.selfGoodsYn)}">
+									<div class="opt_select">
+										<div class="opt_header">
+											<span class="title">옵션선택</span>
+										</div>
+										<div class="form_field">
+											<select class="selfGoodsColor">
+												<th:block th:each="color, index : ${comp.cartColorList}">
+												<option th:data="${color.cartDtlSq}" th:value="${color.optCd}" th:text="${color.optCd1 + '/' + color.optCd2}" th:selected="${color.cartOptCd != null}"></option>
+												</th:block>
+											</select>
+										</div>
+									</div>
+								</th:block>
+							</th:block>
+							<div class="opt_count">
+								<div class="opt_header">
+									<span class="title">수량</span>
+								</div>
+								<div class="number_count">
+									<span class="minus"><span class="sr-only">감소</span></span>
+									<input type="text" name="goodsQty" maxlength="3" style='ime-mode:disabled' th:value="${cart.goodsQty}" />
+									<!-- <input type="text" name="goodsQty" maxlength="3" style='ime-mode:disabled' th:value="2" /> -->
+									<span class="plus"><span class="sr-only">추가</span></span>
+								</div>
+							</div>
+							<div class="btn_group_block">
+								<button class="btn btn_dark btn_block" th:onclick="|fnChangeCartOption(${cart.cartSq})|"><span>옵션변경</span></button>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+<!-- //옵션변경 팝업 -->
+
+
+<script th:inline="javascript">
+	// 세트상품 컬러 변경시
+	$(".setColorSelect").on("change", function(e) {
+		let goodsCd = $(this).find("option:checked").attr("data");
+		$(".setOption .size_" + goodsCd).html("");
+		$(".setOption .size_" + goodsCd).html($(".color_" + goodsCd + "_" + $(this).val()).html());
+	});
+
+	// 자사 일반 상품 컬러 선택시
+	$(".selfGoodsColorSelect").on("click", function(e) {
+		let html = "";
+		let cart = [[${cart}]];
+		let color =  [[${cart.cartCompsList[0].cartColorList}]];
+		let optCd1 = $(this).attr("data");
+
+		for(let i = 0 ; i < color.length ; i++) {
+			let size = color[i].cartSizeList;
+			for(let j = 0 ; j < size.length ; j++) {
+				if(optCd1 == size[j].optCd1) {
+					html += "<div>";
+					html += "<input type='radio' name='rdi-optsize' id='" + size[j].goodsCd + "-" + size[j].optCd + "' value='" + size[j].optCd + "' ";
+					if(size[j].soldoutYn == "Y" || cart.goodsQty > size[j].currStockQty) {
+						html += "disabled = 'disabled'";
+					}
+					html += " />\n";
+					html += "<label for='" + size[j].goodsCd + "-" + size[j].optCd + "'><span>" + size[j].optCd2 + "</span></label>\n"
+					html += "</div>\n";
+				}
+			}
+		}
+
+		$(".selfGoodsSize").html(html);
+	});
+
+	function fnChangeCartOption(cartSq) {
+		let cart = [[${cart}]];
+		let cartDtlSqArr = [], itemCds = [], optCds = [];
+		let data;
+
+		if(cart.goodsType == "G056_S") {
+			$(".setSizeSelect").each(function() {
+				optCds.push($(this).val());
+				itemCds.push($(this).attr("data"));
+				cartDtlSqArr.push($(this).find("option:checked").attr("data"));
+			});
+
+			data = {
+				  cartSq : cart.cartSq
+				, goodsCd : cart.goodsCd
+				, goodsType : cart.goodsType
+				, cartDtlSqArr : cartDtlSqArr
+				, itemCds : itemCds
+				, optCds : optCds
+				, goodsQty : $("input[name=goodsQty]").val()
+			}
+		} else if(cart.goodsType != "G056_S" && cart.selfGoodsYn == "Y") {
+			optCds.push($(".selfGoodsSize").find("input[name=rdi-optsize]:checked").val());
+			itemCds.push(cart.goodsCd);
+			$(".selfGoodsColorSelect").each(function() {
+				if($(this).attr("cartDtlSq") > 0) {
+					cartDtlSqArr.push($(this).attr("cartDtlSq"));
+				}
+			});
+
+			data = {
+				  cartSq : cart.cartSq
+				, goodsCd : cart.goodsCd
+				, goodsType : cart.goodsType
+				, cartDtlSqArr : cartDtlSqArr
+				, itemCds : itemCds
+				, optCds : optCds
+				, goodsQty : $("input[name=goodsQty]").val()
+			}
+		} else {
+			optCds.push($(".selfGoodsColor").val());
+			itemCds.push(cart.goodsCd);
+			$(".selfGoodsColor option").each(function() {
+				if($(this).attr("data") > 0) {
+					cartDtlSqArr.push($(this).attr("data"));
+				}
+			});
+
+			data = {
+				cartSq : cart.cartSq
+				, goodsCd : cart.goodsCd
+				, goodsType : cart.goodsType
+				, cartDtlSqArr : cartDtlSqArr
+				, itemCds : itemCds
+				, optCds : optCds
+				, goodsQty : $("input[name=goodsQty]").val()
+			}
+		}
+
+		$.ajax( {
+			type: "POST",
+			url : '/cart/change/option',
+			contentType: 'application/json',
+			dataType : 'json',
+			data : JSON.stringify(data),
+			success : function(result) {
+				alert(result.message);
+				$(".closeCartOptionModal").trigger("click");
+				getCartList();
+			}
+		});
+	}
+</script>
+
+</div>
+<a href="#close-modal" rel="modal:close" class="close-modal closeCartOptionModal">Close</a>
+</html>

+ 520 - 325
src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html

@@ -5,11 +5,11 @@
 
 	<!-- CONT-BODY -->
 	<div class="od_cont">
-		<div class="sec_head shotDelvSelect">
+		<div class="sec_head">
 			<div class="tbl type4">
 				<table>
 					<colgroup>
-						<col width="150">
+						<col width="170">
 						<col width="*">
 					</colgroup>
 					<tbody>
@@ -21,7 +21,7 @@
 							<div class="form_field">
 								<div>
 									<input type="radio" name="shotDelvUseYn" id="blt_ship1" value="Y" th:checked="${order.shotCanYn.equals('Y')}">
-									<label for="blt_ship1"><span><em class="tag">총알배송</em><span th:text="|${order.shotDelvDt}일 24:00 까지 도착|"></span></span></label>
+									<label for="blt_ship1"><span><em class="tag primary_line">총알배송</em><span th:text="|${order.shotDelvDt}일 24:00 까지 도착|"></span></span></label>
 								</div>
 								<div>
 									<input type="radio" name="shotDelvUseYn" id="blt_ship2" value="N" th:checked="${!order.shotCanYn.equals('Y')}">
@@ -35,277 +35,534 @@
 			</div>
 		</div>
 		<div class="sec_body">
-			<!-- 총알배송 -->
-			<div class="part_deliver wmsList" th:if="${wmsCartList != null and wmsCartList.size() > 0}">
-				<h3 class="subH2 mb20" th:if="${order.shotCanYn.equals('Y')}">
-					STYLE24 총알배송
-					<span class="ml10">오늘 자정까지 도착</span>
-				</h3>
-				<h3 class="subH2 mb20" th:if="${order.shotCanYn.equals('N')}">
-					STYLE24 일반배송
-				</h3>
-				<div class="tbl type2">
-					<table>
-						<colgroup>
-							<col width="900">
-							<col width="*">
-						</colgroup>
-						<tbody>
-						<th:block th:each="cart, status : ${wmsCartList}">
-							<tr class="cartInfo wmsCartInfo">
-								<input type="hidden" name="applyQtySectionYn" th:value="${cart.applyQtySectionYn}" />
-								<input type="hidden" name="applyAmtSectionYn" th:value="${cart.applyAmtSectionYn}" />
-								<input type="hidden" name="qtyTmtbSq" th:value="${cart.qtyTmtbSq}" />
-								<input type="hidden" name="qtyTmtbNm" th:value="${cart.qtyTmtbNm}" />
-								<input type="hidden" name="amtTmtbSq" th:value="${cart.amtTmtbSq}" />
-								<input type="hidden" name="amtTmtbNm" th:value="${cart.amtTmtbNm}" />
-								<input type="hidden" name="currPrice" th:value="${cart.currPrice}" />
-								<input type="hidden" name="soldoutYn" th:value="${cart.soldoutYn}" />
-								<input type="hidden" name="tmtbDcAmt" th:value="${cart.tmtbDcAmt}" />
-								<input type="hidden" name="cartSq" th:value="${cart.cartSq}" />
-
-								<td>
-									<!-- 주문가능 상품 -->
-									<div class="info_item" th:classappend="${cart.soldoutYn.equals('Y')} ? unable"> <!-- 주문불가시 class="unable" 추가 / 인풋, 버튼 disable 처리 -->
-										<div class="form_box">
-											<p class="form_field">
-												<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}" th:checked="${cart.soldoutYn.equals('N')}" th:disabled="${cart.soldoutYn.equals('Y')}"/>
-												<label th:for="|od_item_${cart.cartSq}|">
-													<span class="sr-only">상품선택</span>
-												</label>
-											</p>
+			<form class="form_wrap">
+				<div class="sec_select">
+					<div>
+						<div class="form_field">
+							<input id="od_item_all" type="checkbox"><label for="od_item_all"><span>전체선택</span></label>
+						</div>
+						<button type="button" class="btn btn_default btn_sm"><span>선택삭제</span></button>
+					</div>
+				</div>
+				<div class="sec_part">
+					<h3 class="subH2">
+						STYLE24 배송
+					</h3>
+					<div class="area_part">
+						<h4 class="subH2">
+							총알배송
+							<span class="tit_info">오늘 자정까지 도착</span>
+						</h4>
+						<div class="part_goods">
+							<div class="goods_cont">
+								<!-- 주문상품 -->
+								<th:block th:each="cart, status : ${wmsCartList}">
+									<div class="cartInfo goods_info wmsCartInfo">
+										<input type="hidden" name="applyQtySectionYn" th:value="${cart.applyQtySectionYn}" />
+										<input type="hidden" name="applyAmtSectionYn" th:value="${cart.applyAmtSectionYn}" />
+										<input type="hidden" name="qtyTmtbSq" th:value="${cart.qtyTmtbSq}" />
+										<input type="hidden" name="qtyTmtbNm" th:value="${cart.qtyTmtbNm}" />
+										<input type="hidden" name="amtTmtbSq" th:value="${cart.amtTmtbSq}" />
+										<input type="hidden" name="amtTmtbNm" th:value="${cart.amtTmtbNm}" />
+										<input type="hidden" name="currPrice" th:value="${cart.currPrice}" />
+										<input type="hidden" name="soldoutYn" th:value="${cart.soldoutYn}" />
+										<input type="hidden" name="tmtbDcAmt" th:value="${cart.tmtbDcAmt}" />
+										<input type="hidden" name="cartSq" th:value="${cart.cartSq}" />
+
+										<div class="order_desc">
+											<div class="form_box">
+												<div class="form_field">
+													<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}" th:checked="${cart.soldoutYn.equals('N')}" th:disabled="${cart.soldoutYn.equals('Y')}"/>
+													<label th:for="|od_item_${cart.cartSq}|">
+														<span class="sr-only">상품선택</span>
+													</label>
+												</div>
+											</div>
+											<div class="goods_box">
+												<div class="gd_item">
+													<a href="">
+														<span class="thumb">
+															<img th:src="${IMG_PATH} + '/' + ${cart.sysImgNm}" src="/" width="100%" alt="">
+														</span>
+														<p>
+															<span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
+														</p>
+														<p>
+															<span class="name" th:text="${cart.goodsNm}"></span>
+														</p>
+													</a>
+												</div>
+												<div class="gd_opt">
+													<div class="option_wrap">
+														<span class="title sr-only">주문 옵션</span>
+														<th:block th:each="opt, index : ${cart.itemNmArr}">
+															<th:block th:if="${cart.goodsType.equals('G056_S')}">
+																<span class="option" th:text="${cart.itemNmArr[index.index]} + ' / ' + ${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
+															</th:block>
+															<th:block th:if="${!cart.goodsType.equals('G056_S')}">
+																<span class="option" th:text="${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
+															</th:block>
+														</th:block>
+													</div>
+												</div>
+												<div class="gd_calc">
+													<p>
+														<span class="count">수량&nbsp;<em th:text="${cart.goodsQty}"></em>개</span>
+													</p>
+												</div>
+												<div class="gd_exinfo">
+													<p th:if="${!#strings.isEmpty(cart.delvResDt)}"><span class="tag primary_line">총알배송</span><span th:text="|${cart.delvResDt} 배송예정|">2020.12.25 배송예정</span></p>
+													<p th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
+												</div>
+											</div>
+											<div class="calc_box">
+												<th:block  th:if="${cart.tmtbDcAmt < cart.currPrice}">
+													<p><span class="price_org"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
+													<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.tmtbDcAmt, 1, 'COMMA')}"></em>원</span></p>
+												</th:block>
+												<th:block th:if="${cart.tmtbDcAmt == cart.currPrice}">
+													<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
+												</th:block>
+												<p>
+													<span class="point">
+														<em th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></em><stong>P</stong>&nbsp;적립예정
+													</span>
+												</p>
+											</div>
+											<div class="button_box">
+												<p th:if="${cart.soldoutYn.equals('Y')}"><button type="button" class="btn btn_dark btn_sm" disabled=""><span>구매 불가</span></button></p>
+												<p th:if="${cart.soldoutYn.equals('N')}"><button type="button" class="btn btn_primary btn_sm" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로 구매</span></button></p>
+
+												<p><button type="button" id="btn_opt_modify1" class="btn btn_default btn_sm" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|"><span>옵션 / 수량 변경</span></button></p>
+												<div class="util">
+													<span>
+														<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}">
+															<span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span>
+														</button>
+													</span>
+													<span>
+														<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|">
+															<span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span>
+														</button>
+													</span>
+												</div>
+											</div>
 										</div>
-										<div class="thumb_box">
-											<a href="">
-												<img th:src="${IMG_PATH} + '/' + ${cart.sysImgNm}" src="/" width="100%" alt="">
-											</a>
+									</div>
+								</th:block>
+								<!-- //주문상품 -->
+								<!-- 주문상품 -->
+								<div class="goods_info">
+									<div class="order_desc">
+										<div class="form_box">
+											<div class="form_field">
+												<input id="od_item_12" type="checkbox"><label for="od_item_12"><span class="sr-only">상품선택</span></label>
+											</div>
 										</div>
-										<div class="info_box">
-											<p class="od_name">
+										<div class="goods_box">
+											<div class="gd_item">
 												<a href="">
-													<span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
-													<span th:if="${!#strings.isEmpty(cart.delvResDt)}" class="reserv_date" th:text="|${cart.delvResDt} 배송예정|"></span>
-													<span class="name" th:text="${cart.goodsNm}"></span>
+                                                                    <span class="thumb">
+                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+                                                                    </span>
+													<p>
+														<span class="brand">Mollimelli 몰리멜리</span>
+													</p>
+													<p>
+														<span class="name">남성 오버 소매배색 컬러가디건 (n205ap9829p)</span>
+													</p>
 												</a>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title sr-only">주문 옵션</span>
+													<span class="option">BLACK&nbsp;/&nbsp;XXL</span>
+												</div>
+											</div>
+											<div class="gd_calc">
+												<p>
+													<span class="count">수량&nbsp;<em>1</em>개</span>
+												</p>
+											</div>
+										</div>
+										<div class="calc_box">
+											<p>
+												<span class="price_org"><em>39,990</em>원</span>
 											</p>
-											<p class="od_opt" th:each="opt, index : ${cart.itemNmArr}">
-												<span class="option"><em th:text="${cart.itemNmArr[index.index]} + '_' + ${cart.optCdArr[index.index]}"></em></span>
-											</p>
-											<p class="od_opt">
-												<span class="count">수량:<em th:text="${cart.goodsQty}"></em>개</span>
-											</p>
-
-											<p class="od_modify">
-												<button type="button" class="btn_opt_pop" th:onclick="|changeCartOptCd(${cart.cartSq})|"><span>옵션/수량변경</span></button>
+											<p>
+												<span class="price_sale"><em>15,120</em>원</span>
+											<p>
+												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
 											</p>
-											<!-- 다다익선 적용 -->
-											<div class="od_moresale applyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}">
-												<a href="" class="btn_moresale">
-													<i class="ico ico_saletag"></i><span>다다익선 할인적용!</span>
+										</div>
+										<div class="button_box">
+											<p><button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button></p>
+											<p><button type="button" id="btn_opt_modify2" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
+											<div class="util">
+                                                                <span>
+                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
+                                                                </span>
+												<span>
+                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+                                                                </span>
+											</div>
+										</div>
+									</div>
+								</div>
+								<!-- //주문상품 -->
+							</div>
+						</div>
+					</div>
+					<div class="area_part">
+						<h4 class="subH2">
+							일반배송
+						</h4>
+						<div class="part_goods">
+							<div class="goods_cont">
+								<!-- 주문상품 -->
+								<div class="goods_info">
+									<div class="order_desc">
+										<div class="form_box">
+											<div class="form_field">
+												<input id="od_item_21" type="checkbox"><label for="od_item_21"><span class="sr-only">상품선택</span></label>
+											</div>
+										</div>
+										<div class="goods_box">
+											<div class="gd_item">
+												<a href="">
+                                                                    <span class="thumb">
+                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+                                                                    </span>
+													<p>
+														<span class="brand">Mollimelli 몰리멜리</span>
+													</p>
+													<p>
+														<span class="name">남성 오버 소매배색 싸이로 리얼 컬러 블록 세미오버핏 이중지 심플 기본 와이넥 원단추 캐시미어 굵은 꼬임 10종 컬러가디건 (n205ap9829p)</span>
+													</p>
 												</a>
-												<div class="li_moresale applyTmtbNm">
-													<ul>
-														<li th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y'}" th:text="${cart.qtyTmtbNm}"></li>
-														<li th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}" th:text="${cart.amtTmtbNm}"></li>
-													</ul>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title sr-only">주문 옵션</span>
+													<span class="option">슬림핏 마이크로 체크 네이비컬러 세미오버핏 이중 심플 기본 와이넥 원단추 캐시미어 굵은 스탠드카라 베이직 셋업수트 자켓&nbsp;/&nbsp;BLACK&nbsp;/&nbsp;XXL</span>
 												</div>
 											</div>
-											<!-- 다다익선 미적용 -->
-											<div class="od_moresale notApplyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N')}">
-												<a href="" class="btn_moresale">
-													<i class="ico ico_saletag"></i><span>다다익선 상품보기</span>
+											<div class="gd_calc">
+												<p>
+													<span class="count">수량&nbsp;<em>1</em>개</span>
+												</p>
+											</div>
+											<div class="gd_exinfo">
+												<p>2020.12.25 배송예정</p>
+												<p><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+											</div>
+										</div>
+										<div class="calc_box">
+											<p>
+												<span class="price_org"><em>39,990</em>원</span>
+											</p>
+											<p>
+												<span class="price_sale"><em>15,120</em>원</span>
+											<p>
+												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
+											</p>
+										</div>
+										<div class="button_box">
+											<button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button>
+											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
+											<div class="util">
+                                                                <span>
+                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
+                                                                </span>
+												<span>
+                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+                                                                </span>
+											</div>
+										</div>
+									</div>
+								</div>
+								<!-- //주문상품 -->
+								<!-- 주문상품 -->
+								<div class="goods_info">
+									<div class="order_desc">
+										<div class="form_box">
+											<div class="form_field">
+												<input id="od_item_22" type="checkbox"><label for="od_item_22"><span class="sr-only">상품선택</span></label>
+											</div>
+										</div>
+										<div class="goods_box">
+											<div class="gd_item">
+												<a href="">
+                                                                    <span class="thumb">
+                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+                                                                    </span>
+													<p>
+														<span class="brand">Mollimelli 몰리멜리</span>
+													</p>
+													<p>
+														<span class="name">남성 오버 소매배색 컬러가디건 (n205ap9829p)</span>
+													</p>
 												</a>
-												<div class="li_moresale notApplyTmtbNm">
-													<ul>
-														<li th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}" th:inline="text">[[${cart.qtyTmtbNm}]]<a href=''>대상 상품 보기</a></li>
-														<li th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}" th:inline="text">[[${cart.amtTmtbNm}]]<a href=''>대상 상품 보기</a></li>
-													</ul>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title sr-only">주문 옵션</span>
+													<span class="option">BLACK&nbsp;/&nbsp;XXL</span>
 												</div>
 											</div>
-											<!-- 주문불가시 안내추가 -->
-											<div class="info_unable" th:if="${cart.soldoutYn.equals('Y')}">
-												해당상품은 구매가 불가능한 상품입니다. / 상품이 품절되었습니다.
+											<div class="gd_calc">
+												<p>
+													<span class="count">수량&nbsp;<em>1</em>개</span>
+												</p>
 											</div>
-											<!-- //주문불가시 안내추가 -->
 										</div>
-										<div class="info_calc">
-											<p class="price" th:if="${cart.tmtbDcAmt < cart.currPrice}">
-												<span class="selling_price" th:text="|${#numbers.formatInteger(cart.tmtbDcAmt, 1, 'COMMA')} 원|"></span>
-												<del th:text="|${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')} 원|"></del>
-											</p>
-											<p class="price" th:if="${cart.tmtbDcAmt == cart.currPrice}">
-												<span class="selling_price" th:text="|${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')} 원|"></span>
+										<div class="calc_box">
+											<p>
+												<span class="price_org"><em>39,990</em>원</span>
 											</p>
-											<p class="point"><span th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></span>p 적립예정</p>
 											<p>
-												<button th:if="${cart.soldoutYn.equals('Y')}" type="button" class="btn btn_sm" disabled><span>구매불가</span></button>
-												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm" th:onclick="|submitNoMember(${cart.cartSq})|"><span>즉시구매</span></button>
+												<span class="price_sale"><em>15,120</em>원</span>
+											<p>
+												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
 											</p>
-											<p class="util">
-										<span>
-											<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}">
-												<span>
-													<i class="ico ico_like2"></i>
-													<em class="sr-only">관심상품 추가</em>
-												</span>
-											</button>
-										</span>
+										</div>
+										<div class="button_box">
+											<p><button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button></p>
+											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
+											<div class="util">
+                                                                <span>
+                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
+                                                                </span>
 												<span>
-											<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-										</span>
-											</p>
+                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+                                                                </span>
+											</div>
 										</div>
 									</div>
-									<!-- //주문가능 상품 -->
-								</td>
-								<td class="merge_row delvFeeArea" th:classappend="|delv_${cart.delvFeeCd}|" th:if="${cart.firstCompYn == 'Y'}" th:rowspan="${wmsCartList.size()}"> <!-- 같은 데이터 노출시 동일 영역끼리 병합 : 클래스명 merge_row 추가 -->
-									<div class="info_dlvr">
-										<span class="dlvr_fee" th:if="${cart.delvFee == 0}">배송비 무료</span>
-										<span class="dlvr_fee" th:if="${cart.delvFee > 0}" th:text="|배송비 ${#numbers.formatInteger(cart.delvFee, 1, 'COMMA')} 원|"></span>
-										<a href="#" target="_blank" th:if="${cart.delvFee > 0}">배송비 SAVE 상품 보기</a>
-									</div>
-								</td>
-							</tr>
-						</th:block>
-						</tbody>
-					</table>
-				</div>
-				<div class="btn_area">
-					<button type="button" class="btn btn_default" onclick="deleteCart('WMS_SELECT')"><span>선택 삭제</span></button>
-					<button type="button" class="btn btn_default" onclick="deleteCart('WMS_ALL')"><span>전체 삭제</span></button>
+								</div>
+								<!-- //주문상품 -->
+							</div>
+							<div class="goods_foot"> <!-- 일반배송 테이블에만 .goods_foot -->
+								<div class="order_delivery">
+									<span class="dlvr_fee">배송비 무료</span>
+								</div>
+							</div>
+						</div>
+					</div>
 				</div>
-			</div>
-			<!-- //총알배송 -->
-
-			<!-- 업체직배송 -->
-			<div class="part_deliver delvList" th:if="${delvCartList != null and delvCartList.size() > 0}">
-				<h3 class="subH2 mb20">
-					업체직배송
-				</h3>
-				<div class="tbl type2">
-					<table>
-						<colgroup>
-							<col width="900">
-							<col width="*">
-						</colgroup>
-						<tbody>
-						<th:block th:each="cart, status : ${delvCartList}">
-							<tr class="cartInfo delvCartInfo">
-								<input type="hidden" name="applyQtySectionYn" th:value="${cart.applyQtySectionYn}" />
-								<input type="hidden" name="applyAmtSectionYn" th:value="${cart.applyAmtSectionYn}" />
-								<input type="hidden" name="qtyTmtbSq" th:value="${cart.qtyTmtbSq}" />
-								<input type="hidden" name="qtyTmtbNm" th:value="${cart.qtyTmtbNm}" />
-								<input type="hidden" name="amtTmtbSq" th:value="${cart.amtTmtbSq}" />
-								<input type="hidden" name="amtTmtbNm" th:value="${cart.amtTmtbNm}" />
-								<input type="hidden" name="currPrice" th:value="${cart.currPrice}" />
-								<input type="hidden" name="soldoutYn" th:value="${cart.soldoutYn}" />
-								<input type="hidden" name="tmtbDcAmt" th:value="${cart.tmtbDcAmt}" />
-								<input type="hidden" name="cartSq" th:value="${cart.cartSq}" />
-
-								<td>
-									<div class="info_item" th:classappend="${cart.soldoutYn.equals('Y')} ? unable">
+				<div class="sec_part">
+					<h3 class="subH2">업체직배송</h3>
+					<div class="area_part">
+						<div class="part_goods">
+							<div class="goods_cont">
+								<!-- 주문상품 -->
+								<div class="goods_info">
+									<div class="order_desc">
 										<div class="form_box">
-											<p class="form_field">
-												<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}" th:checked="${cart.soldoutYn.equals('N')}" th:disabled="${cart.soldoutYn.equals('Y')}"/>
-												<label th:for="|od_item_${cart.cartSq}|">
-													<span class="sr-only">상품선택</span>
-												</label>
-											</p>
-										</div>
-										<div class="thumb_box">
-											<a href="">
-												<img th:src="${IMG_PATH} + '/' + ${cart.sysImgNm}" src="/" width="100%" alt="">
-											</a>
+											<div class="form_field">
+												<input id="od_item_31" type="checkbox"><label for="od_item_31"><span class="sr-only">상품선택</span></label>
+											</div>
 										</div>
-										<div class="info_box">
-											<p class="od_name">
+										<div class="goods_box">
+											<div class="gd_item">
 												<a href="">
-													<span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
-													<span class="name" th:text="${cart.goodsNm}"></span>
+                                                                    <span class="thumb">
+                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+                                                                    </span>
+													<p>
+														<span class="brand">Mollimelli 몰리멜리</span>
+													</p>
+													<p>
+														<span class="name">남성 오버 소매배색 싸이로 리얼 컬러 블록 세미오버핏 이중지 심플 기본 와이넥 원단추 캐시미어 굵은 꼬임 10종 컬러가디건 (n205ap9829p)</span>
+													</p>
 												</a>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title sr-only">주문 옵션</span>
+													<span class="option">슬림핏 마이크로 체크 네이비컬러 세미오버핏 이중 심플 기본 와이넥 원단추 캐시미어 굵은 스탠드카라 베이직 셋업수트 자켓&nbsp;/&nbsp;BLACK&nbsp;/&nbsp;XXL</span>
+												</div>
+											</div>
+											<div class="gd_calc">
+												<p>
+													<span class="count">수량&nbsp;<em>1</em>개</span>
+												</p>
+											</div>
+											<div class="gd_exinfo">
+												<p><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+												<p>2021.03.03 배송예정</p>
+											</div>
+										</div>
+										<div class="calc_box">
+											<p>
+												<span class="price_org"><em>39,990</em>원</span>
 											</p>
-											<p class="od_opt" th:each="opt, index : ${cart.itemNmArr}">
-												<span class="option"><em th:text="${cart.itemNmArr[index.index]} + '_' + ${cart.optCdArr[index.index]}"></em></span>
-											</p>
-											<p class="od_opt">
-												<span class="count">수량:<em th:text="${cart.goodsQty}"></em>개</span>
-											</p>
-											<p class="od_modify">
-												<button type="button" class="btn_opt_pop" th:onclick="|changeCartOptCd(${cart.cartSq})|"><span>옵션/수량변경</span></button>
+											<p>
+												<span class="price_sale"><em>15,120</em>원</span>
+											<p>
+												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
 											</p>
-											<!-- 다다익선 적용 -->
-											<div class="od_moresale applyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}">
-												<a href="" class="btn_moresale">
-													<i class="ico ico_saletag"></i><span>다다익선 할인적용!</span>
+										</div>
+										<div class="button_box">
+											<p><button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button></p>
+											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
+											<div class="util">
+                                                                <span>
+                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
+                                                                </span>
+												<span>
+                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+                                                                </span>
+											</div>
+										</div>
+									</div>
+								</div>
+								<!-- //주문상품 -->
+								<!-- 주문상품 -->
+								<div class="goods_info">
+									<div class="order_desc">
+										<div class="form_box">
+											<div class="form_field">
+												<input id="od_item_32" type="checkbox"><label for="od_item_32"><span class="sr-only">상품선택</span></label>
+											</div>
+										</div>
+										<div class="goods_box">
+											<div class="gd_item">
+												<a href="">
+                                                                    <span class="thumb">
+                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+                                                                    </span>
+													<p>
+														<span class="brand">Mollimelli 몰리멜리</span>
+													</p>
+													<p>
+														<span class="name">남성 오버 소매배색 컬러가디건 (n205ap9829p)</span>
+													</p>
 												</a>
-												<div class="li_moresale applyTmtbNm">
-													<ul>
-														<li th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y'}" th:text="${cart.qtyTmtbNm}"></li>
-														<li th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}" th:text="${cart.amtTmtbNm}"></li>
-													</ul>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title sr-only">주문 옵션</span>
+													<span class="option">BLACK&nbsp;/&nbsp;XXL</span>
 												</div>
 											</div>
-											<!-- 다다익선 미적용 -->
-											<div class="od_moresale notApplyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N')}">
-												<a href="" class="btn_moresale">
-													<i class="ico ico_saletag"></i><span>다다익선 상품보기</span>
+											<div class="gd_calc">
+												<p>
+													<span class="count">수량&nbsp;<em>1</em>개</span>
+												</p>
+											</div>
+											<div class="gd_exinfo">
+												<p>해당 상품은 구매 불가능한 상품입니다.</p>
+											</div>
+										</div>
+										<div class="calc_box">
+											<p>
+												<span class="price_org"><em>39,990</em>원</span>
+											</p>
+											<p>
+												<span class="price_sale"><em>15,120</em>원</span>
+											<p>
+												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
+											</p>
+										</div>
+										<div class="button_box">
+											<p><button type="button" class="btn btn_dark btn_sm" disabled=""><span>구매 불가</span></button></p>
+											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
+											<div class="util">
+                                                                <span>
+                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
+                                                                </span>
+												<span>
+                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+                                                                </span>
+											</div>
+										</div>
+									</div>
+								</div>
+								<!-- //주문상품 -->
+							</div>
+							<div class="goods_foot">
+								<div class="order_delivery">
+									<span class="dlvr_fee">배송비&nbsp;<em>3,000</em>원</span>
+									<span class="dlvr_shop"><em>TBJ</em>&nbsp;업체직배송</span>
+									<a href="#" class="btn_popup_save">배송비 SAVE 상품 보기</a>
+								</div>
+							</div>
+						</div>
+						<div class="part_goods">
+							<div class="goods_cont">
+								<!-- 주문상품 -->
+								<div class="goods_info">
+									<div class="order_desc">
+										<div class="form_box">
+											<div class="form_field">
+												<input id="od_item_33" type="checkbox"><label for="od_item_33"><span class="sr-only">상품선택</span></label>
+											</div>
+										</div>
+										<div class="goods_box">
+											<div class="gd_item">
+												<a href="">
+                                                                    <span class="thumb">
+                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+                                                                    </span>
+													<p>
+														<span class="brand">Mollimelli 몰리멜리</span>
+													</p>
+													<p>
+														<span class="name">남성 오버 소매배색 싸이로 리얼 컬러 블록 세미오버핏 이중지 심플 기본 와이넥 원단추 캐시미어 굵은 꼬임 10종 컬러가디건 (n205ap9829p)</span>
+													</p>
 												</a>
-												<div class="li_moresale notApplyTmtbNm">
-													<ul>
-														<li th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}" th:text="${cart.qtyTmtbNm}"><a href="">대상 상품 보기</a></li>
-														<li th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}" th:text="${cart.amtTmtbNm}"><a href="">대상 상품 보기</a></li>
-													</ul>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title sr-only">주문 옵션</span>
+													<span class="option">슬림핏 마이크로 체크 네이비컬러 세미오버핏 이중 심플 기본 와이넥 원단추 캐시미어 굵은 스탠드카라 베이직 셋업수트 자켓&nbsp;/&nbsp;BLACK&nbsp;/&nbsp;XXL</span>
 												</div>
 											</div>
-											<!-- 주문불가시 안내추가 -->
-											<div class="info_unable" th:if="${cart.soldoutYn.equals('Y')}">
-												해당상품은 구매가 불가능한 상품입니다. / 상품이 품절되었습니다.
+											<div class="gd_calc">
+												<p>
+													<span class="count">수량&nbsp;<em>1</em>개</span>
+												</p>
+											</div>
+											<div class="gd_exinfo">
+												<p><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
 											</div>
-											<!-- //주문불가시 안내추가 -->
 										</div>
-										<div class="info_calc">
-											<p class="price" th:if="${cart.tmtbDcAmt < cart.currPrice}">
-												<span class="selling_price" th:text="|${#numbers.formatInteger(cart.tmtbDcAmt, 1, 'COMMA')} 원|"></span>
-												<del th:text="|${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')} 원|"></del>
-											</p>
-											<p class="price" th:if="${cart.tmtbDcAmt == cart.currPrice}">
-												<span class="selling_price" th:text="|${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')} 원|"></span>
+										<div class="calc_box">
+											<p>
+												<span class="price_org"><em>39,990</em>원</span>
 											</p>
-											<p class="point"><span th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></span>p 적립예정</p>
 											<p>
-												<button th:if="${cart.soldoutYn.equals('Y')}" type="button" class="btn btn_sm" disabled><span>구매불가</span></button>
-												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm" th:onclick="|submitNoMember(${cart.cartSq})|"><span>즉시구매</span></button>
+												<span class="price_sale"><em>15,120</em>원</span>
+											<p>
+												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
 											</p>
-											<p class="util">
-										<span>
-											<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
-										</span>
+										</div>
+										<div class="button_box">
+											<p><button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button></p>
+											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
+											<div class="util">
+                                                                <span>
+                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
+                                                                </span>
 												<span>
-											<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-										</span>
-											</p>
+                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+                                                                </span>
+											</div>
 										</div>
 									</div>
-								</td>
-								<td class="merge_row delvFeeArea" th:classappend="|delv_${cart.delvFeeCd}|" th:if="${cart.firstCompYn == 'Y'}" th:rowspan="${cart.compCnt}"> <!-- 같은 데이터 노출시 동일 영역끼리 병합 : 클래스명 merge_row 추가 -->
-									<div class="info_dlvr">
-										<span class="dlvr_fee" th:if="${cart.delvFee == 0}">배송비 무료</span>
-										<span class="dlvr_fee" th:if="${cart.delvFee > 0}" th:text="|배송비 ${#numbers.formatInteger(cart.delvFee, 1, 'COMMA')} 원|"></span>
-										<span class="dlvr_shop" th:text="|${cart.supplyCompNm} 업체직배송|"></span>
-										<a href="#" target="_blank" th:if="${cart.delvFee > 0}">배송비 SAVE 상품 보기</a>
-									</div>
-								</td>
-							</tr>
-						</th:block>
-						</tbody>
-					</table>
-				</div>
-				<div class="btn_area">
-					<button type="button" class="btn btn_default" onclick="deleteCart('DELV_SELECT')"><span>선택 삭제</span></button>
-					<button type="button" class="btn btn_default" onclick="deleteCart('DELV_ALL')"><span>전체 삭제</span></button>
+								</div>
+								<!-- //주문상품 -->
+							</div>
+							<div class="goods_foot">
+								<div class="order_delivery">
+									<span class="dlvr_fee">배송비&nbsp;무료</span>
+								</div>
+							</div>
+						</div>
+					</div>
 				</div>
-			</div>
-			<!-- //업체직배송 -->
+			</form>
 		</div>
 	</div>
 	<div class="od_side">
@@ -313,33 +570,33 @@
 			<div class="tit_box">
 				<h3>결제 정보</h3>
 				<span>
-				<em class="number" th:text="${order.totCartCnt}"></em>개의 상품
-			</span>
+                                    <em class="number">14</em>개의 상품
+                                </span>
 			</div>
 			<div class="od_amount_box">
 				<dl>
 					<div>
 						<dt>상품금액</dt>
-						<dd><em class="sumCurrPrice" th:text="${#numbers.formatInteger(order.sumOrdAmt, 1, 'COMMA')}"></em> 원</dd>
+						<dd><em>1,746,500</em>원</dd>
 					</div>
 					<div>
 						<dt>배송비</dt>
-						<dd><em class="totDelvFee" th:text="${#numbers.formatInteger(order.totDelvFee, 1, 'COMMA')}"></em> 원</dd>
+						<dd><em>0</em>원</dd>
 					</div>
 					<div>
 						<dt>할인금액</dt>
-						<dd><span class="disc_amount"><em class="totDcAmt" id="totDcAmt" th:text="${#numbers.formatInteger(order.totDcAmt, 1, 'COMMA')}"></em> 원</span></dd>
+						<dd><span class="disc_amount"><em>-46,500</em>원</span></dd>
 					</div>
 				</dl>
 			</div>
 			<div class="totalprice_box">
 				<dl>
 					<dt>총 결제 예정 금액</dt>
-					<dd data-weight="price" data-font="lato"><span class="sumRealPayAmt" id="sumRealPayAmt" th:text="${#numbers.formatInteger(order.sumRealPayAmt + order.totDelvFee, 1, 'COMMA')}"></span> 원</dd>
+					<dd><span>1,700,000</span>원</dd>
 				</dl>
 			</div>
 			<div class="btn_box">
-				<button class="btn btn_primary btn_block btn_md"><span>주문하기</span></button>
+				<button class="btn btn_primary btn_block btn_md" onclick="fnSubmitNoMember('all')"><span>구매하기</span></button>
 			</div>
 		</div>
 		<div class="area_salecoupon">
@@ -347,44 +604,34 @@
 			<div class="form_field">
 				<div class="input_wrap form_full">
 					<label class="input_label sr-only">할인코드입력</label>
-					<input type="text" id="serialCpnNm" class="form_control" placeholder="할인코드를 입력해주세요.">
+					<input type="text" class="form_control" placeholder="할인코드를 입력해주세요.">
 				</div>
-				<button type="button" class="btn btn_dark btn_default" onclick="serialCpnApply()"><span>적용</span></button>
+				<button type="button" class="btn btn_dark btn_sm"><span>적용</span></button>
 			</div>
 			<div class="coupon_box">
 				<div class="coupon">
 					<div>
-						<p class="cp_name"></p>
+						<p class="cp_name">
+							TBJ 시즌오프 20% 할인쿠폰
+						</p>
 						<p class="cp_cont">
-							<!--<span><em>12,399,900</em>원</span>
-							<span><em>40%</em></span>-->
-							<span class="cp_dc_val"></span>
+							<span><em>12,399,900</em>원</span>
+							<span><em>40</em>%</span>
 						</p>
 						<p class="cp_condition">
-							<!--500,000원 이상 구매 시 최대 50,000원 할인
-							<span><em class="tag">99장 보유</em></span>-->
+							500,000원 이상 구매 시 최대 50,000원 할인
+							<span><em class="tag primary_line">99장 보유</em></span>
 						</p>
 					</div>
 					<p class="cp_date">
-						<span class="availStdt"></span>&nbsp;~&nbsp;<span class="availEddt"></span>
+						<span>2021.01.01</span>&nbsp;~&nbsp;<span>2021.12.30</span>
 					</p>
-					<button type="button" class="btn_close_code" onClick="cancelCartCpn()">
-					<span>
-						<i class="ico ico_close1"></i>
-						<em class="sr-only">닫기</em>
-					</span>
-					</button>
-				</div>
-				<div class="info_coupon">
-					<button type="button" id="btn_cpinfo_pop">
-						<span>쿠폰 사용안내</span>
-					</button>
 				</div>
+				<button type="button" class="btn_underline" id="btn_couponInfo_pop">
+					<span>사용안내</span>
+				</button>
 			</div>
 		</div>
-		<div class="area_saleitem">
-
-		</div>
 	</div>
 	<div class="clear"></div>
 	<!-- // CONT-BODY -->
@@ -413,10 +660,7 @@
 	}
 
 	$(document).ready(function() {
-		/*
-		alert("a");
-		
-		let compsList = [];
+		/*let compsList = [];
 		let temp 			= new Object;
 		temp.goodsCd 		= "10770353";
 		temp.optCd 			= "9383682-1";
@@ -428,10 +672,7 @@
 		temp.contentsLoc 	= "G028_YYY";
 		temp.planDtlSq 		= "123";
 		compsList.push(temp);
-		cfnAddCart(compsList);
-		
-		alert("b");
-		*/
+		cfnAddCart(compsList);*/
 		
 		
 		
@@ -990,7 +1231,7 @@
 	}
 
 	//옵션변경 팝업열기
-	function changeCartOptCd(cartSq) {
+	function fnChangeCartOptCd(cartSq) {
 		$.ajax( {
 			type: "POST",
 			url : '/cart/goods/info',
@@ -1004,7 +1245,14 @@
 		});
 	}
 
-	function submitNoMember(cartSq) {
+	// 상품상세 페이지 이동 처리
+	var fnGoToGoodsDetail = function(param) {
+		let goodsCd = $(param).attr('goodsCd');
+		cfnGoToPage(_PAGE_GOODS_DETAIL + goodsCd);
+	}
+
+	// 주문하기
+	function fnSubmitNoMember(cartSq) {
 		if(cartSq == "all") {
 			$("#cartListForm").submit();
 		} else {
@@ -1015,57 +1263,4 @@
 		}
 	}
 </script>
-
-
-
-
-
-
-<!-- payment.js -->
-<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
-<script type="text/javascript" src="/ux/pc/js/payment.js"></script>
-<form id="order_info" name="order_info" method="post" action="/order/pay/result/response" ></form>
-<input type="button" id="buyBtn" value="KCP TEST" style="width:100px;height:200px;" />
-<script type="text/javascript">
-	$(document).on("click", "#buyBtn", function() {
-		let orderData = {
-			  pgGb		: "PAYCO"
-			, payMeans	: "G014_30"
-			, ordNo		: "5"
-			, goodsNm	: "상품 테스트"
-			, payAmt	: "1233"
-			, ordNm		: "이태영"
-			, ordEmail	: "xodud1202@naver.com"
-			, ordTelno	: "02-0000-0000"
-			, ordPhnno	: "010-7111-0000"
-		};
-
-		let jsonData = JSON.stringify(orderData);
-
-		$.ajax( {
-			type		: "POST",
-			url			: '/order/create/preOrder',
-			data		: jsonData,
-			dataType	: 'html',
-			beforeSend : function(xhr, settings) {
-				xhr.setRequestHeader("AJAX"			, "true");
-				xhr.setRequestHeader('Accept'		, 'application/json');
-				xhr.setRequestHeader('Content-Type'	, 'application/json');
-				gagajf.showProgressbar(true);
-			},
-			error : function(e) {
-				alert(3);
-			},
-			success 	: function(result) {
-				// 결재정보로드
-				$("#order_info").html(result);
-				//kcp_AJAX();
-				jsf__pay(document.order_info);
-				//fnKakaoPaymentReady();
-				//fnNaverPaymentReady();
-			}
-		});
-	});
-</script>
-
 </html>

+ 1019 - 0
src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb_20210319.html

@@ -0,0 +1,1019 @@
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<form id="cartListForm" method="post" action="/order/noMember">
+	<!--<input type="hidden" name="cartCpnDcAmt" id="cartCpnDcAmt" th:value="${param.cartCpnDcAmt}" />-->
+
+	<!-- CONT-BODY -->
+	<div class="od_cont">
+		<div class="sec_head shotDelvSelect">
+			<div class="tbl type4">
+				<table>
+					<colgroup>
+						<col width="150">
+						<col width="*">
+					</colgroup>
+					<tbody>
+					<tr>
+						<th>
+							배송방법 선택
+						</th>
+						<td>
+							<div class="form_field">
+								<div>
+									<input type="radio" name="shotDelvUseYn" id="blt_ship1" value="Y" th:checked="${order.shotCanYn.equals('Y')}">
+									<label for="blt_ship1"><span><em class="tag">총알배송</em><span th:text="|${order.shotDelvDt}일 24:00 까지 도착|"></span></span></label>
+								</div>
+								<div>
+									<input type="radio" name="shotDelvUseYn" id="blt_ship2" value="N" th:checked="${!order.shotCanYn.equals('Y')}">
+									<label for="blt_ship2"><span>총알 배송 안함</span></label>
+								</div>
+							</div>
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+		<div class="sec_body">
+			<!-- 총알배송 -->
+			<div class="part_deliver wmsList" th:if="${wmsCartList != null and wmsCartList.size() > 0}">
+				<h3 class="subH2 mb20" th:if="${order.shotCanYn.equals('Y')}">
+					STYLE24 총알배송
+					<span class="ml10">오늘 자정까지 도착</span>
+				</h3>
+				<h3 class="subH2 mb20" th:if="${order.shotCanYn.equals('N')}">
+					STYLE24 일반배송
+				</h3>
+				<div class="tbl type2">
+					<table>
+						<colgroup>
+							<col width="900">
+							<col width="*">
+						</colgroup>
+						<tbody>
+						<th:block th:each="cart, status : ${wmsCartList}">
+							<tr class="cartInfo wmsCartInfo">
+								<input type="hidden" name="applyQtySectionYn" th:value="${cart.applyQtySectionYn}" />
+								<input type="hidden" name="applyAmtSectionYn" th:value="${cart.applyAmtSectionYn}" />
+								<input type="hidden" name="qtyTmtbSq" th:value="${cart.qtyTmtbSq}" />
+								<input type="hidden" name="qtyTmtbNm" th:value="${cart.qtyTmtbNm}" />
+								<input type="hidden" name="amtTmtbSq" th:value="${cart.amtTmtbSq}" />
+								<input type="hidden" name="amtTmtbNm" th:value="${cart.amtTmtbNm}" />
+								<input type="hidden" name="currPrice" th:value="${cart.currPrice}" />
+								<input type="hidden" name="soldoutYn" th:value="${cart.soldoutYn}" />
+								<input type="hidden" name="tmtbDcAmt" th:value="${cart.tmtbDcAmt}" />
+								<input type="hidden" name="cartSq" th:value="${cart.cartSq}" />
+
+								<td>
+									<!-- 주문가능 상품 -->
+									<div class="info_item" th:classappend="${cart.soldoutYn.equals('Y')} ? unable"> <!-- 주문불가시 class="unable" 추가 / 인풋, 버튼 disable 처리 -->
+										<div class="form_box">
+											<p class="form_field">
+												<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}" th:checked="${cart.soldoutYn.equals('N')}" th:disabled="${cart.soldoutYn.equals('Y')}"/>
+												<label th:for="|od_item_${cart.cartSq}|">
+													<span class="sr-only">상품선택</span>
+												</label>
+											</p>
+										</div>
+										<div class="thumb_box">
+											<a href="">
+												<img th:src="${IMG_PATH} + '/' + ${cart.sysImgNm}" src="/" width="100%" alt="">
+											</a>
+										</div>
+										<div class="info_box">
+											<p class="od_name">
+												<a href="">
+													<span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
+													<span th:if="${!#strings.isEmpty(cart.delvResDt)}" class="reserv_date" th:text="|${cart.delvResDt} 배송예정|"></span>
+													<span class="name" th:text="${cart.goodsNm}"></span>
+												</a>
+											</p>
+											<p class="od_opt" th:each="opt, index : ${cart.itemNmArr}">
+												<span class="option"><em th:text="${cart.itemNmArr[index.index]} + '_' + ${cart.optCdArr[index.index]}"></em></span>
+											</p>
+											<p class="od_opt">
+												<span class="count">수량:<em th:text="${cart.goodsQty}"></em>개</span>
+											</p>
+
+											<p class="od_modify">
+												<button type="button" class="btn_opt_pop" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|"><span>옵션/수량변경</span></button>
+											</p>
+											<!-- 다다익선 적용 -->
+											<div class="od_moresale applyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}">
+												<a href="" class="btn_moresale">
+													<i class="ico ico_saletag"></i><span>다다익선 할인적용!</span>
+												</a>
+												<div class="li_moresale applyTmtbNm">
+													<ul>
+														<li th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y'}" th:text="${cart.qtyTmtbNm}"></li>
+														<li th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}" th:text="${cart.amtTmtbNm}"></li>
+													</ul>
+												</div>
+											</div>
+											<!-- 다다익선 미적용 -->
+											<div class="od_moresale notApplyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N')}">
+												<a href="" class="btn_moresale">
+													<i class="ico ico_saletag"></i><span>다다익선 상품보기</span>
+												</a>
+												<div class="li_moresale notApplyTmtbNm">
+													<ul>
+														<li th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}" th:inline="text">[[${cart.qtyTmtbNm}]]<a href=''>대상 상품 보기</a></li>
+														<li th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}" th:inline="text">[[${cart.amtTmtbNm}]]<a href=''>대상 상품 보기</a></li>
+													</ul>
+												</div>
+											</div>
+											<!-- 주문불가시 안내추가 -->
+											<div class="info_unable" th:if="${cart.soldoutYn.equals('Y')}">
+												해당상품은 구매가 불가능한 상품입니다. / 상품이 품절되었습니다.
+											</div>
+											<!-- //주문불가시 안내추가 -->
+										</div>
+										<div class="info_calc">
+											<p class="price" th:if="${cart.tmtbDcAmt < cart.currPrice}">
+												<span class="selling_price" th:text="|${#numbers.formatInteger(cart.tmtbDcAmt, 1, 'COMMA')} 원|"></span>
+												<del th:text="|${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')} 원|"></del>
+											</p>
+											<p class="price" th:if="${cart.tmtbDcAmt == cart.currPrice}">
+												<span class="selling_price" th:text="|${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')} 원|"></span>
+											</p>
+											<p class="point"><span th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></span>p 적립예정</p>
+											<p>
+												<button th:if="${cart.soldoutYn.equals('Y')}" type="button" class="btn btn_sm" disabled><span>구매불가</span></button>
+												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>즉시구매</span></button>
+											</p>
+											<p class="util">
+												<span>
+													<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}">
+														<span>
+															<i class="ico ico_like2"></i>
+															<em class="sr-only">관심상품 추가</em>
+														</span>
+													</button>
+												</span>
+												<span>
+													<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+												</span>
+											</p>
+										</div>
+									</div>
+									<!-- //주문가능 상품 -->
+								</td>
+								<td class="merge_row delvFeeArea" th:classappend="|delv_${cart.delvFeeCd}|" th:if="${cart.firstCompYn == 'Y'}" th:rowspan="${wmsCartList.size()}"> <!-- 같은 데이터 노출시 동일 영역끼리 병합 : 클래스명 merge_row 추가 -->
+									<div class="info_dlvr">
+										<span class="dlvr_fee" th:if="${cart.delvFee == 0}">배송비 무료</span>
+										<span class="dlvr_fee" th:if="${cart.delvFee > 0}" th:text="|배송비 ${#numbers.formatInteger(cart.delvFee, 1, 'COMMA')} 원|"></span>
+										<a href="#" target="_blank" th:if="${cart.delvFee > 0}">배송비 SAVE 상품 보기</a>
+									</div>
+								</td>
+							</tr>
+						</th:block>
+						</tbody>
+					</table>
+				</div>
+				<div class="btn_area">
+					<button type="button" class="btn btn_default" onclick="deleteCart('WMS_SELECT')"><span>선택 삭제</span></button>
+					<button type="button" class="btn btn_default" onclick="deleteCart('WMS_ALL')"><span>전체 삭제</span></button>
+				</div>
+			</div>
+			<!-- //총알배송 -->
+
+			<!-- 업체직배송 -->
+			<div class="part_deliver delvList" th:if="${delvCartList != null and delvCartList.size() > 0}">
+				<h3 class="subH2 mb20">
+					업체직배송
+				</h3>
+				<div class="tbl type2">
+					<table>
+						<colgroup>
+							<col width="900">
+							<col width="*">
+						</colgroup>
+						<tbody>
+						<th:block th:each="cart, status : ${delvCartList}">
+							<tr class="cartInfo delvCartInfo">
+								<input type="hidden" name="applyQtySectionYn" th:value="${cart.applyQtySectionYn}" />
+								<input type="hidden" name="applyAmtSectionYn" th:value="${cart.applyAmtSectionYn}" />
+								<input type="hidden" name="qtyTmtbSq" th:value="${cart.qtyTmtbSq}" />
+								<input type="hidden" name="qtyTmtbNm" th:value="${cart.qtyTmtbNm}" />
+								<input type="hidden" name="amtTmtbSq" th:value="${cart.amtTmtbSq}" />
+								<input type="hidden" name="amtTmtbNm" th:value="${cart.amtTmtbNm}" />
+								<input type="hidden" name="currPrice" th:value="${cart.currPrice}" />
+								<input type="hidden" name="soldoutYn" th:value="${cart.soldoutYn}" />
+								<input type="hidden" name="tmtbDcAmt" th:value="${cart.tmtbDcAmt}" />
+								<input type="hidden" name="cartSq" th:value="${cart.cartSq}" />
+
+								<td>
+									<div class="info_item" th:classappend="${cart.soldoutYn.equals('Y')} ? unable">
+										<div class="form_box">
+											<p class="form_field">
+												<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}" th:checked="${cart.soldoutYn.equals('N')}" th:disabled="${cart.soldoutYn.equals('Y')}"/>
+												<label th:for="|od_item_${cart.cartSq}|">
+													<span class="sr-only">상품선택</span>
+												</label>
+											</p>
+										</div>
+										<div class="thumb_box">
+											<a href="">
+												<img th:src="${IMG_PATH} + '/' + ${cart.sysImgNm}" src="/" width="100%" alt="">
+											</a>
+										</div>
+										<div class="info_box">
+											<p class="od_name">
+												<a href="">
+													<span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
+													<span class="name" th:text="${cart.goodsNm}"></span>
+												</a>
+											</p>
+											<p class="od_opt" th:each="opt, index : ${cart.itemNmArr}">
+												<span class="option"><em th:text="${cart.itemNmArr[index.index]} + '_' + ${cart.optCdArr[index.index]}"></em></span>
+											</p>
+											<p class="od_opt">
+												<span class="count">수량:<em th:text="${cart.goodsQty}"></em>개</span>
+											</p>
+											<p class="od_modify">
+												<button type="button" class="btn_opt_pop" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|"><span>옵션/수량변경</span></button>
+											</p>
+											<!-- 다다익선 적용 -->
+											<div class="od_moresale applyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}">
+												<a href="" class="btn_moresale">
+													<i class="ico ico_saletag"></i><span>다다익선 할인적용!</span>
+												</a>
+												<div class="li_moresale applyTmtbNm">
+													<ul>
+														<li th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y'}" th:text="${cart.qtyTmtbNm}"></li>
+														<li th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}" th:text="${cart.amtTmtbNm}"></li>
+													</ul>
+												</div>
+											</div>
+											<!-- 다다익선 미적용 -->
+											<div class="od_moresale notApplyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N')}">
+												<a href="" class="btn_moresale">
+													<i class="ico ico_saletag"></i><span>다다익선 상품보기</span>
+												</a>
+												<div class="li_moresale notApplyTmtbNm">
+													<ul>
+														<li th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}" th:text="${cart.qtyTmtbNm}"><a href="">대상 상품 보기</a></li>
+														<li th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}" th:text="${cart.amtTmtbNm}"><a href="">대상 상품 보기</a></li>
+													</ul>
+												</div>
+											</div>
+											<!-- 주문불가시 안내추가 -->
+											<div class="info_unable" th:if="${cart.soldoutYn.equals('Y')}">
+												해당상품은 구매가 불가능한 상품입니다. / 상품이 품절되었습니다.
+											</div>
+											<!-- //주문불가시 안내추가 -->
+										</div>
+										<div class="info_calc">
+											<p class="price" th:if="${cart.tmtbDcAmt < cart.currPrice}">
+												<span class="selling_price" th:text="|${#numbers.formatInteger(cart.tmtbDcAmt, 1, 'COMMA')} 원|"></span>
+												<del th:text="|${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')} 원|"></del>
+											</p>
+											<p class="price" th:if="${cart.tmtbDcAmt == cart.currPrice}">
+												<span class="selling_price" th:text="|${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')} 원|"></span>
+											</p>
+											<p class="point"><span th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></span>p 적립예정</p>
+											<p>
+												<button th:if="${cart.soldoutYn.equals('Y')}" type="button" class="btn btn_sm" disabled><span>구매불가</span></button>
+												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>즉시구매</span></button>
+											</p>
+											<p class="util">
+										<span>
+											<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
+										</span>
+												<span>
+											<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+										</span>
+											</p>
+										</div>
+									</div>
+								</td>
+								<td class="merge_row delvFeeArea" th:classappend="|delv_${cart.delvFeeCd}|" th:if="${cart.firstCompYn == 'Y'}" th:rowspan="${cart.compCnt}"> <!-- 같은 데이터 노출시 동일 영역끼리 병합 : 클래스명 merge_row 추가 -->
+									<div class="info_dlvr">
+										<span class="dlvr_fee" th:if="${cart.delvFee == 0}">배송비 무료</span>
+										<span class="dlvr_fee" th:if="${cart.delvFee > 0}" th:text="|배송비 ${#numbers.formatInteger(cart.delvFee, 1, 'COMMA')} 원|"></span>
+										<span class="dlvr_shop" th:text="|${cart.supplyCompNm} 업체직배송|"></span>
+										<a href="#" target="_blank" th:if="${cart.delvFee > 0}">배송비 SAVE 상품 보기</a>
+									</div>
+								</td>
+							</tr>
+						</th:block>
+						</tbody>
+					</table>
+				</div>
+				<div class="btn_area">
+					<button type="button" class="btn btn_default" onclick="deleteCart('DELV_SELECT')"><span>선택 삭제</span></button>
+					<button type="button" class="btn btn_default" onclick="deleteCart('DELV_ALL')"><span>전체 삭제</span></button>
+				</div>
+			</div>
+			<!-- //업체직배송 -->
+		</div>
+	</div>
+	<div class="od_side">
+		<div class="area_order">
+			<div class="tit_box">
+				<h3>결제 정보</h3>
+				<span>
+				<em class="number" th:text="${order.totCartCnt}"></em>개의 상품
+			</span>
+			</div>
+			<div class="od_amount_box">
+				<dl>
+					<div>
+						<dt>상품금액</dt>
+						<dd><em class="sumCurrPrice" th:text="${#numbers.formatInteger(order.sumOrdAmt, 1, 'COMMA')}"></em> 원</dd>
+					</div>
+					<div>
+						<dt>배송비</dt>
+						<dd><em class="totDelvFee" th:text="${#numbers.formatInteger(order.totDelvFee, 1, 'COMMA')}"></em> 원</dd>
+					</div>
+					<div>
+						<dt>할인금액</dt>
+						<dd><span class="disc_amount"><em class="totDcAmt" id="totDcAmt" th:text="${#numbers.formatInteger(order.totDcAmt, 1, 'COMMA')}"></em> 원</span></dd>
+					</div>
+				</dl>
+			</div>
+			<div class="totalprice_box">
+				<dl>
+					<dt>총 결제 예정 금액</dt>
+					<dd data-weight="price" data-font="lato"><span class="sumRealPayAmt" id="sumRealPayAmt" th:text="${#numbers.formatInteger(order.sumRealPayAmt + order.totDelvFee, 1, 'COMMA')}"></span> 원</dd>
+				</dl>
+			</div>
+			<div class="btn_box">
+				<button class="btn btn_primary btn_block btn_md"><span>주문하기</span></button>
+			</div>
+		</div>
+		<div class="area_salecoupon">
+			<h4>할인코드 입력</h4>
+			<div class="form_field">
+				<div class="input_wrap form_full">
+					<label class="input_label sr-only">할인코드입력</label>
+					<input type="text" id="serialCpnNm" class="form_control" placeholder="할인코드를 입력해주세요.">
+				</div>
+				<button type="button" class="btn btn_dark btn_default" onclick="serialCpnApply()"><span>적용</span></button>
+			</div>
+			<div class="coupon_box">
+				<div class="coupon">
+					<div>
+						<p class="cp_name"></p>
+						<p class="cp_cont">
+							<!--<span><em>12,399,900</em>원</span>
+							<span><em>40%</em></span>-->
+							<span class="cp_dc_val"></span>
+						</p>
+						<p class="cp_condition">
+							<!--500,000원 이상 구매 시 최대 50,000원 할인
+							<span><em class="tag">99장 보유</em></span>-->
+						</p>
+					</div>
+					<p class="cp_date">
+						<span class="availStdt"></span>&nbsp;~&nbsp;<span class="availEddt"></span>
+					</p>
+					<button type="button" class="btn_close_code" onClick="cancelCartCpn()">
+					<span>
+						<i class="ico ico_close1"></i>
+						<em class="sr-only">닫기</em>
+					</span>
+					</button>
+				</div>
+				<div class="info_coupon">
+					<button type="button" id="btn_cpinfo_pop">
+						<span>쿠폰 사용안내</span>
+					</button>
+				</div>
+			</div>
+		</div>
+		<div class="area_saleitem">
+
+		</div>
+	</div>
+	<div class="clear"></div>
+	<!-- // CONT-BODY -->
+</form>
+
+<!-- 옵션변경 팝업 -->
+<div class="modal fade od_pop opt_modify_pop" id="optModifyPop" tabindex="-1" role="dialog" aria-labelledby="optModifyLabel" aria-hidden="true"></div>
+<!-- //옵션변경 팝업 -->
+
+<!-- 즉시구매 form -->
+<form id="cartInfoForm" method="post" action="/order/noMember"></form>
+
+<script th:inline="javascript">
+	let sumRealPayAmt = [[${order.sumRealPayAmt + order.totDelvFee}]];
+	let totDcAmt = [[${order.totDcAmt}]];
+
+	function NotApplyTmtbCartList() {
+		let tmtbSq = 0;
+		let tmtbNm = "";
+		let goodsList = {
+			brandNm : "",
+			goodsNm : "",
+			currPrice : 0,
+			imgPath : ""
+		}
+	}
+
+	$(document).ready(function() {
+		/*let compsList = [];
+		let temp 			= new Object;
+		temp.goodsCd 		= "10770353";
+		temp.optCd 			= "9383682-1";
+		temp.goodsQty 		= 1;
+		temp.goodsType 		= "G056_N";
+		temp.cartGb 		= "C";
+		temp.afLinkCd 		= "afLinkCd";
+		temp.ithrCd 		= "G027_ZZZ";
+		temp.contentsLoc 	= "G028_YYY";
+		temp.planDtlSq 		= "123";
+		compsList.push(temp);
+		cfnAddCart(compsList);*/
+		
+		
+		
+		if([[${!order.shotCanYn.equals('Y')}]]) {
+			// $(".shotDelvSelect").hide();
+		}
+
+		$("#cartListForm .area_salecoupon .coupon_box").hide();
+
+		let loginInfo = [[${loginInfo}]];
+		if(!loginInfo || loginInfo.custNo == null || loginInfo.custNo == 0) {
+			$("#cartListForm .area_salecoupon").hide();
+		}
+
+		// 다다익선 할인 대상(미적용) 리스트
+		notApplyTmtbAreaList();
+
+		/* 세트상품 장바구니 */
+		/*let compsList = [];
+		let temp = new Object;
+		temp.goodsCd = "STYS00000042";
+		temp.itemCd = "14373746";
+		temp.optCd = "베이지110";
+		temp.goodsQty = 1;
+		temp.goodsType = "G056_S";
+		temp.cartGb = "O";
+		temp.afLinkCd = "afLinkCd";
+		temp.ithrCd = "G027_ZZZ";
+		temp.contentsLoc = "G028_YYY";
+		temp.planDtlSq = "123";
+		compsList.push(temp);
+		temp = new Object;
+		temp.goodsCd = "STYS00000042";
+		temp.itemCd = "14373769";
+		temp.optCd = "블루110";
+		temp.goodsQty = 1;
+		temp.goodsType = "G056_S";
+		temp.cartGb = "O";
+		temp.afLinkCd = "afLinkCd";
+		temp.ithrCd = "G027_ZZZ";
+		temp.contentsLoc = "G028_YYY";
+		temp.planDtlSq = "123";
+		compsList.push(temp);
+		temp = new Object;
+		temp.goodsCd = "STYS00000042";
+		temp.itemCd = "14373770";
+		temp.optCd = "아이보리110";
+		temp.goodsQty = 1;
+		temp.goodsType = "G056_S";
+		temp.cartGb = "O";
+		temp.afLinkCd = "afLinkCd";
+		temp.ithrCd = "G027_ZZZ";
+		temp.contentsLoc = "G028_YYY";
+		temp.planDtlSq = "123";
+		compsList.push(temp);
+
+		cfnAddCart(compsList);*/
+
+		/*let compsList = [];
+		let temp = new Object;
+		temp.goodsCd = "14373686";
+		temp.optCd = "챠콜그레이150";
+		temp.goodsQty = 2;
+		temp.goodsType = "G056_D";
+		temp.dealGoodsCd = "STYD000000025"
+		temp.cartGb = "O";
+		temp.afLinkCd = "afLinkCd";
+		temp.ithrCd = "G027_ZZZ";
+		temp.contentsLoc = "G028_YYY";
+		temp.planDtlSq = "123";
+		compsList.push(temp);
+
+		temp = new Object;
+		temp.goodsCd = "14373710";
+		temp.optCd = "L핑크130";
+		temp.goodsQty = 3;
+		temp.goodsType = "G056_D";
+		temp.dealGoodsCd = "STYD000000025"
+		temp.cartGb = "O";
+		temp.afLinkCd = "afLinkCd";
+		temp.ithrCd = "G027_ZZZ";
+		temp.contentsLoc = "G028_YYY";
+		temp.planDtlSq = "123";
+		compsList.push(temp);
+
+		cfnAddCart(compsList);*/
+	});
+
+	function notApplyTmtbAreaList() {
+		let notApplyQtyTmtbList = new Array();
+		let notApplyAmtTmtbList = new Array();
+
+		// 수량 다다익선 조회
+		$("#cartListForm input[name=qtyTmtbSq]").each(function (index) {
+			if($(this).val() != "0" && $(this).parent().find("input[name=applyQtySectionYn]").val() == "N") {
+				let obj = new Object();
+				obj.tmtbSq = $(this).val();
+				obj.tmtbNm = $(this).parent().find("input[name=qtyTmtbNm]").val();
+				obj.currPrice = $(this).parent().find("input[name=currPrice]").val();
+				obj.goodsNm = $(this).parent().find(".info_box").find(".name").text();
+				obj.brandNm = $(this).parent().find(".info_box").find(".brand").text();
+				obj.imgPath = $(this).parent().find(".info_item").find(".thumb_box img").attr("src");
+
+				notApplyQtyTmtbList.push(obj);
+			}
+
+			if($(this).parent().find("input[name=applyAmtSectionYn]").val() == "N") {	   // 다다익선 금액은 기본상품만 가져오면됨 (N은 기본상품에 걸려있음)
+				let obj = new Object();
+				obj.tmtbSq = $(this).parent().find("input[name=amtTmtbSq]").val();
+				obj.tmtbNm = $(this).parent().find("input[name=amtTmtbNm]").val();
+
+				notApplyAmtTmtbList.push(obj);
+			}
+		});
+
+		// 수량 다다익선 정렬
+		var t = new Object();
+		for (let i = 0; i < notApplyQtyTmtbList.length; i++) {
+			for (let j = 0; j < notApplyQtyTmtbList.length - i - 1; j++) {
+				if (notApplyQtyTmtbList[j].tmtbSq > notApplyQtyTmtbList[j + 1].tmtbSq) {
+					t = notApplyQtyTmtbList[j];
+					notApplyQtyTmtbList[j] = notApplyQtyTmtbList[j + 1];
+					notApplyQtyTmtbList[j + 1] = t;
+				}
+			}
+		}
+
+		fnCreateNotApplyTmtbAreaList(notApplyQtyTmtbList, notApplyAmtTmtbList);
+	}
+
+	function fnCreateNotApplyTmtbAreaList(notApplyQtyTmtbList, notApplyAmtTmtbList) {
+		// 정렬 후 같은 다다익선 상품은 한 배열로 묶음
+		let tmtbQtyList = new Array();
+
+		for (let i = 0; i < notApplyQtyTmtbList.length; i++) {
+			let goods = notApplyQtyTmtbList[i];
+			let tmtbInfo = new Object();
+			let chk = false;
+			for (let j = 0; j < tmtbQtyList.length; j++) {
+				let tmtb = tmtbQtyList[j];
+				if (goods.tmtbSq == tmtb.tmtbSq) {
+					tmtbInfo = tmtbQtyList[j];
+					chk = true;
+				}
+			}
+
+			// 현재 상품 정보
+			let goodsInfo = new Object();
+			goodsInfo.brandNm = goods.brandNm;
+			goodsInfo.goodsNm = goods.goodsNm;
+			goodsInfo.imgPath = goods.imgPath;
+			goodsInfo.currPrice = goods.currPrice;
+
+			// 현재 상품 정보 다다익선 정보에 세팅
+			if (chk) {
+				tmtbInfo.goodsList.push(goodsInfo);
+			} else {
+				let obj = new Object();
+				obj.tmtbSq = goods.tmtbSq;
+				obj.tmtbNm = goods.tmtbNm;
+				obj.goodsList = new Array();
+				obj.goodsList.push(goodsInfo);
+				tmtbQtyList.push(obj);
+			}
+		}
+
+		// 수량 다다익선 HTML 작성
+		let tmtbHtml = "";
+		for(let i = 0 ; i < tmtbQtyList.length ; i++) {
+			let tmtb = tmtbQtyList[i];
+			tmtbHtml += '<div class="more_sale qtyNotApplyTmtbList">';
+			for(let j = 0 ; j < tmtb.goodsList.length ; j++) {
+				let goods = tmtb.goodsList[j];
+				tmtbHtml += '<div class="item_gd">\n' +
+					'				<figure>\n' +
+					'					<a href="">\n' +
+					'						<span class="thumb"><img src="';
+				tmtbHtml += goods.imgPath;
+				tmtbHtml += '" alt=""></span>\n' +
+					'					</a>\n' +
+					'					<figcaption>\n' +
+					'						<a href="">\n' +
+					'							<div class="brand">';
+				tmtbHtml += goods.brandNm;
+				tmtbHtml += '</div>\n' +
+					'							<div class="name">';
+				tmtbHtml += goods.goodsNm;
+				tmtbHtml += '</div>\n' +
+					'							<div class="price">\n' +
+					'								<span class="selling_price">';
+				tmtbHtml += Number(goods.currPrice).toLocaleString();
+				tmtbHtml += '</span>\n' +
+					'							</div>\n' +
+					'						</a>\n' +
+					'					</figcaption>\n' +
+					'				</figure>\n' +
+					'			</div>';
+			}
+
+			tmtbHtml += '<div class="txt">\n' +
+				'				<a href="">\n' +
+				'					<i class="ico ico_saletag"></i>\n' +
+				'					<input type="hidden" name="tmtbSq" value="' + tmtb.tmtbSq + '" />' +
+				'					<span>\n';
+			tmtbHtml += tmtb.tmtbNm;
+			tmtbHtml += '</span>\n' +
+				'				</a>\n' +
+				'			</div>\n' +
+				'		</div>';
+		}
+
+		// 금액 다다익선 정보 HTML 작성
+		for(let i = 0 ; i < notApplyAmtTmtbList.length ; i++) {
+			if (notApplyAmtTmtbList[i].tmtbSq != 0) {
+				let tmtb = notApplyAmtTmtbList[i];
+				tmtbHtml += '<div class="more_sale amtNotApplyTmtbList">\n' +
+					'			<div class="txt">\n' +
+					'				<a href="">\n' +
+					'					<i class="ico ico_saletag"></i>\n' +
+					'					<input type="hidden" name="tmtbSq" value="' + tmtb.tmtbSq + '" />' +
+					'					<span>';
+				tmtbHtml += tmtb.tmtbNm;
+				tmtbHtml += '</span>\n' +
+					'				</a>\n' +
+					'			</div>\n' +
+					'		</div>';
+			}
+		}
+
+		if(tmtbHtml != "") {
+			tmtbHtml = "<h4>다다익선 할인 대상이 있습니다.</h4>" + tmtbHtml;
+		}
+
+		$(".area_saleitem").html(tmtbHtml);
+	}
+
+	function cancelCartCpn() {
+		$("#cartListForm #sumRealPayAmt").text(Number(sumRealPayAmt).toLocaleString());
+		$("#cartListForm #totDcAmt").text(Number(totDcAmt).toLocaleString());
+		$("#cartListForm .area_salecoupon .coupon_box").hide();
+	}
+
+	function serialCpnApply() {
+		let cartArr = [];
+		let currPrices = [];
+		$("#cartListForm input[name=cartSqArr]:checked").each(function(index, item) {
+			cartArr.push($(this).val());
+			currPrices.push($(this).parents(".cartInfo").find("input[name=tmtbDcAmt]").val());
+		});
+
+		let data = {
+			rdCpnNm : $("#cartListForm #serialCpnNm").val(),
+			cartSqArr : cartArr,
+			currPrices : currPrices
+		}
+
+		let jsonData = JSON.stringify(data);
+
+		$.ajax( {
+			type: "POST",
+			url : '/cart/list/serialCpnApply',
+			contentType: 'application/json',
+			dataType : 'json',
+			data : jsonData,
+			success : function(result) {
+				$("#cartListForm .area_salecoupon .coupon_box").show();
+
+				// 합계 금액
+				$("#cartListForm #sumRealPayAmt").text(Number(sumRealPayAmt - result.serialCpnInfo.dcAmt).toLocaleString());
+				$("#cartListForm #totDcAmt").text(Number(totDcAmt - result.serialCpnInfo.dcAmt).toLocaleString());
+
+				// 쿠폰 정보
+				$("#cartListForm .area_salecoupon .cp_name").text(result.serialCpnInfo.cpnNm);
+				$("#cartListForm .area_salecoupon .cp_condition").html(result.serialCpnInfo.cpnDesc + "<span><em class='tag'>1장 보유</em></span>");
+				$("#cartListForm .area_salecoupon .availStdt").text(result.serialCpnInfo.availStdt);
+				$("#cartListForm .area_salecoupon .availEddt").text(result.serialCpnInfo.availEddt);
+				if(result.serialCpnInfo.dcWay == "G240_10") {
+					$("#cartListForm .area_salecoupon .cp_dc_val").html( "<em>" + Number(result.serialCpnInfo.dcVal).toLocaleString() + "</em> 원");
+				} else if (result.serialCpnInfo.dcWay == "G240_11") {
+					$("#cartListForm .area_salecoupon .cp_dc_val").html( "<em>" + result.serialCpnInfo.dcVal + "%</em>");
+				}
+			}
+		});
+	}
+
+	//다다익선 적용내역 보기
+	$(document).on('click','.shopping_bag .part_deliver .btn_moresale',function(e){
+		$(this).toggleClass('active');
+		$(this).parents('.od_moresale').find('.li_moresale').toggle();
+		return false;
+	});
+
+	//관심상품 등록
+	$(document).on('click','.shopping_bag .part_deliver .btn_favorite',function(e){
+		$(this).toggleClass('active');
+		return false;
+	});
+
+	function deleteCartAjax(cartArr) {
+		if(cartArr.length < 1) {
+			mcxDialog.alert("삭제하실 상품을 선택해 주세요.");
+			return false;
+		}
+
+		let data = {
+			cartSqArr : cartArr
+		}
+
+		let jsonData = JSON.stringify(data);
+
+		$.ajax( {
+			type: "POST",
+			url : '/cart/deleteCart',
+			contentType: 'application/json',
+			dataType : 'json',
+			data : jsonData,
+			success : function(result) {
+				mcxDialog.alert("삭제 되었습니다.");
+				getCartList();
+			}
+		});
+	}
+
+	function deleteCart(gbn) {
+		let cartArr = [];
+		let confirmMessage = "";
+		if(gbn == "WMS_SELECT") {
+			$("#cartListForm .wmsList input[name=cartSqArr]:checked").each(function () {
+				cartArr.push($(this).val());
+			});
+
+			confirmMessage = "총 " + cartArr.length + "개의 상품을 삭제합니다.";
+		} else if(gbn == "DELV_SELECT") {
+			$("#cartListForm .delvList input[name=cartSqArr]:checked").each(function () {
+				cartArr.push($(this).val());
+			});
+
+			confirmMessage = "총 " + cartArr.length + "개의 상품을 삭제합니다.";
+		} else if(gbn == "WMS_ALL") {
+			$("#cartListForm .wmsList input[name=cartSqArr]").each(function() {
+				cartArr.push($(this).val());
+			});
+
+			confirmMessage = "총알배송상품을 전부 삭제하시겠습니까?";
+		} else if(gbn == "DELV_ALL") {
+			$("#cartListForm .delvList input[name=cartSqArr]").each(function() {
+				cartArr.push($(this).val());
+			});
+
+			confirmMessage = "업체직배송 상품을 전부 삭제하시겠습니까?";
+		} else {
+			cartArr.push(gbn);
+			deleteCartAjax(cartArr);
+			return false;
+		}
+
+		mcxDialog.confirm(confirmMessage, {
+			cancelBtnText: "취소/닫기",		//취소 또는 닫기 버튼명
+			sureBtnText  : "확인",				//처리문 버튼명
+			sureBtnClick : function () {
+				deleteCartAjax(cartArr);
+			}
+		});
+	}
+
+	//쿠폰사용안내 팝업열기
+	$(document).on('click','#btn_cpinfo_pop',function(e){
+		$("#cpinfoPop").modal("show");
+		return false;
+	});
+
+	$("input[name=cartSqArr]").on("change", function(e) {
+		let cartArr = [];
+
+		// 선택된 장바구니 번호
+		$("#cartListForm input[name=cartSqArr]:checked").each(function () {
+			cartArr.push($(this).val());
+		});
+
+		// 선택된 장바구니 정보 가공
+		let data = {	cartSqArr : cartArr }
+		let jsonData = JSON.stringify(data);
+
+		$.ajax( {
+			type: "POST",
+			url : '/cart/change/goods/list',
+			contentType: 'application/json',
+			dataType : 'json',
+			data : jsonData,
+			success : function(result) {
+				fnChangeCartListInfo(result);
+			}
+		});
+	});
+
+	function fnChangeCartListInfo(order) {
+		let wmsList = order.wmsCartList;
+		let delvList = order.delvCartList;
+		let cartList = new Array();
+
+		// 다다익선 정보 숨김
+		$("#cartListForm .applyTmtb").hide();
+		$("#cartListForm .notApplyTmtb").hide();
+
+		// 장바구니 각 상품 가격 정보 할인 전으로 변경
+		$("#cartListForm .cartInfo input[name=cartSq]").each(function() {
+			if($(this).parent().find(".info_calc .price > del").text() != "") {
+				$(this).parent().find(".info_calc .selling_price").text($(this).parent().find(".info_calc .price > del").text());
+				$(this).parent().find(".info_calc .price > del").remove();
+			}
+		});
+		$("#cartListForm").find(".delvFeeArea").html("<div class='info_dlvr'><span class='dlvr_fee'>배송비 무료</span></div>");
+
+		for(let i = 0 ; i < wmsList.length ; i++) {
+			cartList.push(wmsList[i]);
+			$("#cartListForm .wmsCartInfo input[name=cartSq]").each(function() {
+				if(wmsList[i].cartSq == $(this).val()) {
+					let wms = wmsList[i];
+					// $(this).parent().find(".thumb_box img").attr("src", result.imgPath1 + "/" + wms.sysImgNm);
+					$(this).parent().find(".od_moresale .applyTmtbNm > ul").html("");
+					$(this).parent().find(".od_moresale .notApplyTmtbNm > ul").html("");
+
+					// 다다익선 적용 정보 생성성
+					if(wms.qtyTmtbSq > 0 && wms.applyQtySectionYn == "Y") {
+						$(this).parent().find(".applyTmtb .applyTmtbNm > ul").append("<li>" + wms.qtyTmtbNm + "</li>");
+						$(this).parent().find(".applyTmtb").show();
+					}
+					if(wms.amtTmtbSq > 0 && wms.applyAmtSectionYn == "Y") {
+						$(this).parent().find(".applyTmtb .applyTmtbNm > ul").append("<li>" + wms.amtTmtbNm + "</li>");
+						$(this).parent().find(".applyTmtb").show();
+					}
+					if(wms.qtyTmtbSq > 0 && wms.applyQtySectionYn == "N") {
+						$(this).parent().find(".notApplyTmtb .notApplyTmtbNm > ul").append("<li>" + wms.qtyTmtbNm + "<a href=''>대상 상품 보기</a></li>");
+						$(this).parent().find(".notApplyTmtb").show();
+					}
+					if(wms.amtTmtbSq > 0 && wms.applyAmtSectionYn == "N") {
+						$(this).parent().find(".notApplyTmtb .notApplyTmtbNm > ul").append("<li>" + wms.amtTmtbNm + "<a href=''>대상 상품 보기</a></li>");
+						$(this).parent().find(".notApplyTmtb").show();
+					}
+
+					// 다다익선 할인가 적용
+					if(wms.tmtbDcAmt < wms.currPrice) {
+						$(this).parent().find(".info_calc .selling_price").text(Number(wms.tmtbDcAmt).toLocaleString() + " 원");
+						$(this).parent().find(".info_calc .price").append("<del>" + Number(wms.currPrice).toLocaleString() + " 원</del>");
+					}
+
+					if(wms.delvFee == 0) {
+						$(".wmsList").find(".delv_" + wms.delvFeeCd).html("<div class='info_dlvr'><span class='dlvr_fee'>배송비 무료</span></div>");
+					} else {
+						let html = "<div class='info_dlvr'><span class='dlvr_fee'>" + Number(wms.delvFee).toLocaleString() + " 원</span><a href='#' target='_black'>배송비 SAVE 상품 보기</a></div>";
+						$(".wmsList").find(".delv_" + wms.delvFeeCd).html(html);
+						// $(".wmsList").find(".delv_" + wms.delvFeeCd).append("<span class='dlvr_shop'>" + wms.supplyCompNm + " 업체직배송</span>");
+
+					}
+				}
+			});
+		}
+
+		for(let i = 0 ; i < delvList.length ; i++) {
+			cartList.push(delvList[i]);
+			$("#cartListForm .delvCartInfo input[name=cartSq]").each(function() {
+				if(delvList[i].cartSq == $(this).val()) {
+					let delv = delvList[i];
+					// $(this).parent().find(".thumb_box img").attr("src", result.imgPath1 + "/" + wms.sysImgNm);
+					$(this).parent().find(".od_moresale .applyTmtbNm > ul").html("");
+					$(this).parent().find(".od_moresale .notApplyTmtbNm > ul").html("");
+
+					// 다다익선 적용 정보 생성성
+					if(delv.qtyTmtbSq > 0 && delv.applyQtySectionYn == "Y") {
+						$(this).parent().find(".applyTmtb .applyTmtbNm > ul").append("<li>" + delv.qtyTmtbNm + "</li>");
+						$(this).parent().find(".applyTmtb").show();
+					}
+					if(delv.amtTmtbSq > 0 && delv.applyAmtSectionYn == "Y") {
+						$(this).parent().find(".applyTmtb .applyTmtbNm > ul").append("<li>" + delv.amtTmtbNm + "</li>");
+						$(this).parent().find(".applyTmtb").show();
+					}
+					if(delv.qtyTmtbSq > 0 && delv.applyQtySectionYn == "N") {
+						$(this).parent().find(".notApplyTmtb .notApplyTmtbNm > ul").append("<li>" + delv.qtyTmtbNm + "<a href=''>대상 상품 보기</a></li>");
+						$(this).parent().find(".notApplyTmtb").show();
+					}
+					if(delv.amtTmtbSq > 0 && delv.applyAmtSectionYn == "N") {
+						$(this).parent().find(".notApplyTmtb .notApplyTmtbNm > ul").append("<li>" + delv.amtTmtbNm + "<a href=''>대상 상품 보기</a></li>");
+						$(this).parent().find(".notApplyTmtb").show();
+					}
+
+					// 다다익선 할인가 적용
+					if(delv.tmtbDcAmt < delv.currPrice) {
+						$(this).parent().find(".info_calc .selling_price").text(Number(delv.tmtbDcAmt).toLocaleString() + " 원");
+						$(this).parent().find(".info_calc .price").append("<del>" + Number(delv.currPrice).toLocaleString() + " 원</del>");
+					}
+
+					if(delv.delvFee == 0) {
+						$(".delvList").find(".delv_" + delv.delvFeeCd).html("<div class='info_dlvr'><span class='dlvr_fee'>배송비 무료</span></div>");
+					} else {
+						let html = "<div class='info_dlvr'><span class='dlvr_fee'>" + Number(delv.delvFee).toLocaleString() + " 원</span><span class='dlvr_shop'>" + delv.supplyCompNm + " 업체직배송</span><a href='#' target='_black'>배송비 SAVE 상품 보기</a></div>";
+						$(".delvList").find(".delv_" + delv.delvFeeCd).html(html);
+					}
+				}
+			});
+		}
+
+		// 결제 총액 영역 수정
+		$("#cartListForm .sumCurrPrice").text(Number(order.sumOrdAmt).toLocaleString());
+		$("#cartListForm .totDelvFee").text(Number(order.totDelvFee).toLocaleString());
+		sumRealPayAmt = order.sumRealPayAmt + order.totDelvFee;
+		totDcAmt = order.totDcAmt;
+
+		// 할인코드 쿠폰 금액 재확인
+		if($("#cartListForm #serialCpnNm").val()) {
+			serialCpnApply();
+		} else {
+			$("#cartListForm .totDcAmt").text(Number(order.totDcAmt).toLocaleString());
+			$("#cartListForm .sumRealPayAmt").text(Number(order.sumRealPayAmt + order.totDelvFee).toLocaleString());
+			cancelCartCpn();
+		}
+
+		let notApplyQtyTmtbList = new Array();
+		let notApplyAmtTmtbList = new Array();
+		for(let i = 0 ; i < cartList.length ; i++) {
+			let cart = cartList[i];
+			if(cart.applyQtySectionYn == "N") {
+				let obj = new Object();
+				obj.tmtbSq = cart.qtyTmtbSq;
+				obj.tmtbNm = cart.qtyTmtbNm;
+				obj.currPrice = cart.currPrice;
+				obj.goodsNm = cart.goodsNm;
+				obj.brandNm = cart.brandEnm + " " + cart.brandKnm;
+				obj.imgPath = order.imgPath1 + "/" + cart.sysImgNm;
+
+				notApplyQtyTmtbList.push(obj);
+			}
+
+			if(cart.applyAmtSectionYn == "N") {
+				let obj = new Object();
+				obj.tmtbSq = cart.amtTmtbSq;
+				obj.tmtbNm = cart.amtTmtbNm;
+
+				notApplyAmtTmtbList.push(obj);
+			}
+		}
+
+		// 수량 다다익선 정렬
+		var t = new Object();
+		for (let i = 0; i < notApplyQtyTmtbList.length; i++) {
+			for (let j = 0; j < notApplyQtyTmtbList.length - i - 1; j++) {
+				if (notApplyQtyTmtbList[j].tmtbSq > notApplyQtyTmtbList[j + 1].tmtbSq) {
+					t = notApplyQtyTmtbList[j];
+					notApplyQtyTmtbList[j] = notApplyQtyTmtbList[j + 1];
+					notApplyQtyTmtbList[j + 1] = t;
+				}
+			}
+		}
+
+		// 다다익선 적용 대상 상품 노출
+		fnCreateNotApplyTmtbAreaList(notApplyQtyTmtbList, notApplyAmtTmtbList);
+	}
+
+	//옵션변경 팝업열기
+	function fnChangeCartOptCd(cartSq) {
+		$.ajax( {
+			type: "POST",
+			url : '/cart/goods/info',
+			dataType : 'html',
+			data : {cartSq : cartSq},
+			success : function(result) {
+				//fnChangeCartListInfo(result);
+				$("#optModifyPop").html(result);
+				$("#optModifyPop").modal("show");
+			}
+		});
+	}
+
+	// 상품상세 페이지 이동 처리
+	var fnGoToGoodsDetail = function(param) {
+		let goodsCd = $(param).attr('goodsCd');
+		cfnGoToPage(_PAGE_GOODS_DETAIL + goodsCd);
+	}
+
+	// 주문하기
+	function fnSubmitNoMember(cartSq) {
+		if(cartSq == "all") {
+			$("#cartListForm").submit();
+		} else {
+			let html	 = "<input type='hidden' name='cartSqArr' value='" + cartSq + "' />";
+			html		+= "<input type='hidden' name='shotDelvUseYn' value='" + $("input[name=shotDelvUseYn]:checked").val() + "' />";
+			$("#cartInfoForm").html(html);
+			$("#cartInfoForm").submit();
+		}
+	}
+</script>
+</html>

+ 234 - 230
src/main/webapp/WEB-INF/views/web/cart/CartListFormWeb.html

@@ -3,6 +3,7 @@
       xmlns:th="http://www.thymeleaf.org"
       xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
       layout:decorator="web/common/layout/DefaultLayoutWeb">
+
 <!--
  *******************************************************************************
  * @source  : cartListFormWeb
@@ -19,239 +20,242 @@
 <body>
 
 <th:block layout:fragment="content">
-    <!--  container -->
-    <div id="container" class="container od">
-        <div class="wrap">
-            <div class="content shopping_bag"> <!-- 페이지특정 클래스 = shop_bag -->
-                <div class="cont_head">
-                    <h2>쇼핑백</h2>
-                    <div class="oder_steps">
-                        <ul>
-                        <li class="on">01 쇼핑백</li>
-                        <li>02 주문/결제</li>
-                        <li>03 주문완료</li>
-                    </ul>
-                </div>
-            </div>
-            <div id="cartAjaxList" class="cont_body">
 
-            </div>
-        </div>
-        <div class="content shopping_bag mt100">
-            <div class="cont_head">
-                <h4 class="subH1 t_c mb40">추천상품</h4>
-            </div>
-            <div class="cont_body">
-                <div class="od_recommend">
-                    <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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.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>
-                                            <div class="itemcolorchip">
-                                                <span class="chip_color35" value="ABM">BEIGE</span>
-                                                <span class="chip_color54" value="BDS">BLACK</span>
-                                                <span class="chip_color40" value="YBR">WHITE</span>
-                                            </div>
-                                            <div class="itemComment">#주문 폭주 상품</div>
-                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
-                                                <button type="button" class="itemLike">관심상품 추가</button>
-                                            </div>
-                                            <p class="itemBrand">BRAND NAME2</p>
-                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-                                            <p class="itemPrice">80,100
-                                                <span class="itemPrice_original">89,000</span>
-                                                <span class=" itemPercent">10%</span>
-                                            </p>
-                                            <div class="itemcolorchip">
-                                                <span class="chip_color35" value="ABM">BEIGE</span>
-                                                <span class="chip_color54" value="BDS">BLACK</span>
-                                                <span class="chip_color40" value="YBR">WHITE</span>
-                                            </div>
-                                            <div class="itemComment">#주문 폭주 상품</div>
-                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
-                                                <button type="button" class="itemLike">관심상품 추가</button>
-                                            </div>
-                                            <p class="itemBrand">BRAND NAME3</p>
-                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-                                            <p class="itemPrice">80,100
-                                                <span class="itemPrice_original">89,000</span>
-                                                <span class=" itemPercent">10%</span>
-                                            </p>
-                                            <div class="itemcolorchip">
-                                                <span class="chip_color35" value="ABM">BEIGE</span>
-                                                <span class="chip_color54" value="BDS">BLACK</span>
-                                                <span class="chip_color40" value="YBR">WHITE</span>
-                                            </div>
-                                            <div class="itemComment">#주문 폭주 상품</div>
-                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
-                                                <button type="button" class="itemLike">관심상품 추가</button>
-                                            </div>
-                                            <p class="itemBrand">BRAND NAME4</p>
-                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-                                            <p class="itemPrice">80,100
-                                                <span class="itemPrice_original">89,000</span>
-                                                <span class=" itemPercent">10%</span>
-                                            </p>
-                                            <div class="itemcolorchip">
-                                                <span class="chip_color35" value="ABM">BEIGE</span>
-                                                <span class="chip_color54" value="BDS">BLACK</span>
-                                                <span class="chip_color40" value="YBR">WHITE</span>
-                                            </div>
-                                            <div class="itemComment">#주문 폭주 상품</div>
-                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
-                                                <button type="button" class="itemLike">관심상품 추가</button>
-                                            </div>
-                                            <p class="itemBrand">BRAND NAME5</p>
-                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-                                            <p class="itemPrice">80,100
-                                                <span class="itemPrice_original">89,000</span>
-                                                <span class=" itemPercent">10%</span>
-                                            </p>
-                                            <div class="itemcolorchip">
-                                                <span class="chip_color35" value="ABM">BEIGE</span>
-                                                <span class="chip_color54" value="BDS">BLACK</span>
-                                                <span class="chip_color40" value="YBR">WHITE</span>
-                                            </div>
-                                            <div class="itemComment">#주문 폭주 상품</div>
-                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
-                                                <button type="button" class="itemLike">관심상품 추가</button>
-                                            </div>
-                                            <p class="itemBrand">BRAND NAME6</p>
+    <!-- payment.js -->
+    <script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
+    <script type="text/javascript" src="/ux/pc/js/payment.js"></script>
 
-                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-                                            <p class="itemPrice">80,100
-                                                <span class="itemPrice_original">89,000</span>
-                                                <span class=" itemPercent">10%</span>
-                                            </p>
-                                            <div class="itemcolorchip">
-                                                <span class="chip_color35" value="ABM">BEIGE</span>
-                                                <span class="chip_color54" value="BDS">BLACK</span>
-                                                <span class="chip_color40" value="YBR">WHITE</span>
-                                            </div>
-                                            <div class="itemComment">#주문 폭주 상품</div>
-                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
-                                                <button type="button" class="itemLike">관심상품 추가</button>
-                                            </div>
-                                            <p class="itemBrand">BRAND NAME7</p>
+	<!--  container -->
+	<div id="container" class="container od">
+		<div class="wrap">
+			<div class="content shopping_bag"> <!-- 페이지특정 클래스 = shop_bag -->
+				<div class="cont_head">
+					<h2>쇼핑백</h2>
+					<div class="oder_steps">
+						<ul>
+							<li class="on">01 쇼핑백</li>
+							<li>02 주문/결제</li>
+							<li>03 주문완료</li>
+						</ul>
+					</div>
+				</div>
+				<div id="cartAjaxList" class="cont_body">
 
-                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-                                            <p class="itemPrice">80,100
-                                                <span class="itemPrice_original">89,000</span>
-                                                <span class=" itemPercent">10%</span>
-                                            </p>
-                                            <div class="itemcolorchip">
-                                                <span class="chip_color35" value="ABM">BEIGE</span>
-                                                <span class="chip_color54" value="BDS">BLACK</span>
-                                                <span class="chip_color40" value="YBR">WHITE</span>
-                                            </div>
-                                            <div class="itemComment">#주문 폭주 상품</div>
-                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
-                                                <button type="button" class="itemLike">관심상품 추가</button>
-                                            </div>
-                                            <p class="itemBrand">BRAND NAME8</p>
-                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-                                            <p class="itemPrice">80,100
-                                                <span class="itemPrice_original">89,000</span>
-                                                <span class=" itemPercent">10%</span>
-                                            </p>
-                                            <div class="itemcolorchip">
-                                                <span class="chip_color35" value="ABM">BEIGE</span>
-                                                <span class="chip_color54" value="BDS">BLACK</span>
-                                                <span class="chip_color40" value="YBR">WHITE</span>
-                                            </div>
-                                            <div class="itemComment">#주문 폭주 상품</div>
-                                        </a>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                        <!-- Add Pagination -->
-                        <div class="swiper-pagination"></div>
-                    </div>
-                    <!-- Add Arrows -->
-                    <div class="swiper-button-next"></div>
-                    <div class="swiper-button-prev"></div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<!-- // container -->
+				</div>
+			</div>
+			<div class="content od_recommend">
+				<div class="cont_head">
+					<h4 class="subH1 t_c mb40">추천상품</h4>
+				</div>
+				<div class="cont_body">
+					<div class="swiper-container">
+						<div class="swiper-wrapper">
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+											</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>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+											</div>
+											<p class="itemBrand">BRAND NAME2</p>
+											<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class=" itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+											</div>
+											<p class="itemBrand">BRAND NAME3</p>
+											<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class=" itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+											</div>
+											<p class="itemBrand">BRAND NAME4</p>
+											<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class=" itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+											</div>
+											<p class="itemBrand">BRAND NAME5</p>
+											<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class=" itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+											</div>
+											<p class="itemBrand">BRAND NAME6</p>
+
+											<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class=" itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+											</div>
+											<p class="itemBrand">BRAND NAME7</p>
+
+											<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class=" itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+											</div>
+											<p class="itemBrand">BRAND NAME8</p>
+											<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class=" itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+						</div>
+						<!-- Add Pagination -->
+						<div class="swiper-pagination"></div>
+					</div>
+					<!-- Add Arrows -->
+					<div class="swiper-button-next"></div>
+					<div class="swiper-button-prev"></div>
+				</div>
+			</div>
+		</div>
+	</div>
+	<!-- // container -->
 
 <!-- 쿠폰사용안내 팝업 -->
 <div class="modal fade od_pop cpinfo_pop" id="cpinfoPop" tabindex="-1" role="dialog" aria-labelledby="cpinfoLabel" aria-hidden="true">

+ 345 - 0
src/main/webapp/WEB-INF/views/web/cart/CartListFormWeb_20210319.html

@@ -0,0 +1,345 @@
+<!DOCTYPE html>
+<html lang="ko"
+      xmlns:th="http://www.thymeleaf.org"
+      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+      layout:decorator="web/common/layout/DefaultLayoutWeb">
+
+<!--
+ *******************************************************************************
+ * @source  : cartListFormWeb
+ * @desc    : 장바구니
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.02   xodud1202   최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+
+    <!-- payment.js -->
+    <script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
+    <script type="text/javascript" src="/ux/pc/js/payment.js"></script>
+
+    <!--  container -->
+    <div id="container" class="container od">
+        <div class="wrap">
+            <div class="content shopping_bag"> <!-- 페이지특정 클래스 = shop_bag -->
+                <div class="cont_head">
+                    <h2>쇼핑백</h2>
+                    <div class="oder_steps">
+                        <ul>
+                        <li class="on">01 쇼핑백</li>
+                        <li>02 주문/결제</li>
+                        <li>03 주문완료</li>
+                    </ul>
+                </div>
+            </div>
+            <div id="cartAjaxList" class="cont_body">
+
+            </div>
+        </div>
+        <div class="content shopping_bag mt100">
+            <div class="cont_head">
+                <h4 class="subH1 t_c mb40">추천상품</h4>
+            </div>
+            <div class="cont_body">
+                <div class="od_recommend">
+                    <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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.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>
+                                            <div class="itemcolorchip">
+                                                <span class="chip_color35" value="ABM">BEIGE</span>
+                                                <span class="chip_color54" value="BDS">BLACK</span>
+                                                <span class="chip_color40" value="YBR">WHITE</span>
+                                            </div>
+                                            <div class="itemComment">#주문 폭주 상품</div>
+                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+                                                <button type="button" class="itemLike">관심상품 추가</button>
+                                            </div>
+                                            <p class="itemBrand">BRAND NAME2</p>
+                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+                                            <p class="itemPrice">80,100
+                                                <span class="itemPrice_original">89,000</span>
+                                                <span class=" itemPercent">10%</span>
+                                            </p>
+                                            <div class="itemcolorchip">
+                                                <span class="chip_color35" value="ABM">BEIGE</span>
+                                                <span class="chip_color54" value="BDS">BLACK</span>
+                                                <span class="chip_color40" value="YBR">WHITE</span>
+                                            </div>
+                                            <div class="itemComment">#주문 폭주 상품</div>
+                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+                                                <button type="button" class="itemLike">관심상품 추가</button>
+                                            </div>
+                                            <p class="itemBrand">BRAND NAME3</p>
+                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+                                            <p class="itemPrice">80,100
+                                                <span class="itemPrice_original">89,000</span>
+                                                <span class=" itemPercent">10%</span>
+                                            </p>
+                                            <div class="itemcolorchip">
+                                                <span class="chip_color35" value="ABM">BEIGE</span>
+                                                <span class="chip_color54" value="BDS">BLACK</span>
+                                                <span class="chip_color40" value="YBR">WHITE</span>
+                                            </div>
+                                            <div class="itemComment">#주문 폭주 상품</div>
+                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+                                                <button type="button" class="itemLike">관심상품 추가</button>
+                                            </div>
+                                            <p class="itemBrand">BRAND NAME4</p>
+                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+                                            <p class="itemPrice">80,100
+                                                <span class="itemPrice_original">89,000</span>
+                                                <span class=" itemPercent">10%</span>
+                                            </p>
+                                            <div class="itemcolorchip">
+                                                <span class="chip_color35" value="ABM">BEIGE</span>
+                                                <span class="chip_color54" value="BDS">BLACK</span>
+                                                <span class="chip_color40" value="YBR">WHITE</span>
+                                            </div>
+                                            <div class="itemComment">#주문 폭주 상품</div>
+                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+                                                <button type="button" class="itemLike">관심상품 추가</button>
+                                            </div>
+                                            <p class="itemBrand">BRAND NAME5</p>
+                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+                                            <p class="itemPrice">80,100
+                                                <span class="itemPrice_original">89,000</span>
+                                                <span class=" itemPercent">10%</span>
+                                            </p>
+                                            <div class="itemcolorchip">
+                                                <span class="chip_color35" value="ABM">BEIGE</span>
+                                                <span class="chip_color54" value="BDS">BLACK</span>
+                                                <span class="chip_color40" value="YBR">WHITE</span>
+                                            </div>
+                                            <div class="itemComment">#주문 폭주 상품</div>
+                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+                                                <button type="button" class="itemLike">관심상품 추가</button>
+                                            </div>
+                                            <p class="itemBrand">BRAND NAME6</p>
+
+                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+                                            <p class="itemPrice">80,100
+                                                <span class="itemPrice_original">89,000</span>
+                                                <span class=" itemPercent">10%</span>
+                                            </p>
+                                            <div class="itemcolorchip">
+                                                <span class="chip_color35" value="ABM">BEIGE</span>
+                                                <span class="chip_color54" value="BDS">BLACK</span>
+                                                <span class="chip_color40" value="YBR">WHITE</span>
+                                            </div>
+                                            <div class="itemComment">#주문 폭주 상품</div>
+                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+                                                <button type="button" class="itemLike">관심상품 추가</button>
+                                            </div>
+                                            <p class="itemBrand">BRAND NAME7</p>
+
+                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+                                            <p class="itemPrice">80,100
+                                                <span class="itemPrice_original">89,000</span>
+                                                <span class=" itemPercent">10%</span>
+                                            </p>
+                                            <div class="itemcolorchip">
+                                                <span class="chip_color35" value="ABM">BEIGE</span>
+                                                <span class="chip_color54" value="BDS">BLACK</span>
+                                                <span class="chip_color40" value="YBR">WHITE</span>
+                                            </div>
+                                            <div class="itemComment">#주문 폭주 상품</div>
+                                        </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="BLACK-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
+                                                <button type="button" class="itemLike">관심상품 추가</button>
+                                            </div>
+                                            <p class="itemBrand">BRAND NAME8</p>
+                                            <div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+                                            <p class="itemPrice">80,100
+                                                <span class="itemPrice_original">89,000</span>
+                                                <span class=" itemPercent">10%</span>
+                                            </p>
+                                            <div class="itemcolorchip">
+                                                <span class="chip_color35" value="ABM">BEIGE</span>
+                                                <span class="chip_color54" value="BDS">BLACK</span>
+                                                <span class="chip_color40" value="YBR">WHITE</span>
+                                            </div>
+                                            <div class="itemComment">#주문 폭주 상품</div>
+                                        </a>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- Add Pagination -->
+                        <div class="swiper-pagination"></div>
+                    </div>
+                    <!-- Add Arrows -->
+                    <div class="swiper-button-next"></div>
+                    <div class="swiper-button-prev"></div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<!-- // container -->
+
+<!-- 쿠폰사용안내 팝업 -->
+<div class="modal fade od_pop cpinfo_pop" id="cpinfoPop" tabindex="-1" role="dialog" aria-labelledby="cpinfoLabel" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title" id="cpinfoLabel">쿠폰사용안내</h5>
+            </div>
+            <div class="modal-body">
+                <div class="pop_cont">
+                    쿠폰사용안내 내용입니다.
+                </div>
+            </div>
+            <div class="modal-footer"></div>
+        </div>
+    </div>
+</div>
+<!-- //쿠폰사용안내 팝업 -->
+
+<script src="/ux/pc/js/swiper.min.js"></script>
+<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css" />
+
+<script type="text/javascript">
+    $(document).ready(function() {
+        // 장바구니 상품 정보 select
+        getCartList();
+    });
+
+    function getCartList() {
+        // 장바구니 정보 조회
+        $.ajax( {
+            type: "POST",
+            url : '/cart/goods/list',
+            dataType : 'html',
+            success : function(result) {
+                if (result != null) {
+                    $("#cartAjaxList").html(result);
+                }
+            }
+        });
+    }
+
+    //상품옵션변경 팝업 > 수량조절
+    $(document).on('click','.opt_modify_pop .number_count .minus',function(e){
+        var $input = $(this).parent().find('input');
+        var count = parseInt($input.val()) - 1;
+        count = count < 1 ? 1 : count;
+        $input.val(count);
+        $input.change();
+        return false;
+    }).on('click','.opt_modify_pop .number_count .plus',function(e){
+        var $input = $(this).parent().find('input');
+        $input.val(parseInt($input.val()) + 1);
+        $input.change();
+        return false;
+    });
+
+    //상품옵션변경 팝업 > 컬러선택 표기
+    $(document).on('click','.opt_modify_pop .opt_color ul li a',function(e){
+        $(this).parents('.opt_color').find('li a').removeClass('on');
+        $(this).addClass('on');
+        var optColor = $(this).find("img").attr('alt');
+        $(this).parent().parent().parent().find(".color").text(optColor);
+        return false;
+    });
+
+    $(function(){
+        //추천상품 슬라이드
+        var rcmdItemSwiper = new Swiper('.od_recommend .swiper-container', {
+            slidesPerView: 5,
+            spaceBetween: 0,
+            navigation: {
+                nextEl: '.od_recommend .swiper-button-next',
+                prevEl: '.od_recommend .swiper-button-prev',
+            },
+            pagination: {
+                el: '.od_recommend .swiper-pagination',
+                clickable: true,
+            },
+        });
+    });
+</script>
+</th:block>
+</body>
+</html>

+ 81 - 0
src/main/webapp/WEB-INF/views/web/common/advertisements/GoodsDetailScriptsWeb.html

@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : GoodsDetailScriptsWeb.html
+ * @desc    : 상품상세 광고 스크립트
+ *============================================================================
+ * pastelmall.com
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.18   eskim     최초 작성
+ *******************************************************************************
+ -->
+<th:block th:fragment="scripts">
+	<script th:inline="javascript">
+
+		window._eglqueue = window._eglqueue || [];
+		_eglqueue.push(['setVar', 'cuid', eglqueueCuid]);
+		_eglqueue.push(['setVar', 'itemId', [[${goodsInfo.goodsCd}]]]);
+		_eglqueue.push(['setVar', 'userId', hCustId]);
+		_eglqueue.push(['setVar', 'categoryId', cateNm]);
+		_eglqueue.push(['setVar', 'brandId', [[${goodsInfo.brandGroupNo}]]]);
+		_eglqueue.push(['track', 'view']);
+		_eglqueue.push(['track', 'product']);
+		(function (s, x) {
+		s = document.createElement('script'); s.type = 'text/javascript';
+		s.async = true; s.defer = true; s.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://logger.eigene.io/js/logger.min.js';
+		x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
+		})();
+		
+	</script>
+
+	<!-- Criteo 상품 태그 --> <!-- 적용완료 --> 
+<!-- 	<script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
+	<script type="text/javascript">
+	window.criteo_q = window.criteo_q || [];
+	var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
+	window.criteo_q.push(
+	 { event: "setAccount", account: 6762}, // 이 라인은 업데이트하면 안됩니다
+	 { event: "setEmail", email: hEmail}, // 유저가 로그인이 안되 있는 경우 빈 문자열을 전달
+	 { event: "setSiteType", type: deviceType},
+	 { event: "viewItem", item:  [[${goodsInfo.goodsCd}]]+''}); 
+-->
+	</script>
+	<!-- END Criteo 상품 태그 -->
+
+	<!-- 모비온 -->
+	<!-- Withpan]g Shop Log Tracker v3.0 strat -->
+<!-- 	<script src="http://cdn.megadata.co.kr/js/enliple_min2.js"></script>
+	Withpang Tracker v3.0 start
+	<script type="text/javascript">
+	var sh = new EN();
+	sh.setData("sc", "b3663f40e0088be0fc9041fa372a3afc");
+	sh.setData("userid", "is24");
+	sh.setData("pcode", [[${goodsInfo.goodsCd}]]);
+	sh.setData("pnm", encodeURIComponent(encodeURIComponent(snsGoodsFullNm)));
+	sh.setData("img", encodeURIComponent(snsGoodsImg));   //전체URL
+	sh.setData("price",[[${goodsInfo.currPrice}]]);
+	sh.setData("cate1", encodeURIComponent(encodeURIComponent(cateNm))); 
+	 
+	sh.sendRfShop();
+	
+	//위시담기
+	document.getElementById("btnGoodsWish").onmouseup = sendWish;
+    function sendWish() {
+        sh.sendWish();
+    } 
+    
+    //장바구니
+    document.getElementById("btnGoodsCart").onmouseup = sendCart;
+    function sendCart() {
+      sh.sendCart(); 
+-->
+	</script>
+	<!-- END 모비온 상품 태그 -->
+	
+</th:block>
+</html>

+ 73 - 94
src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html

@@ -12,23 +12,23 @@
 				<em class="sr-only">STYLE24</em>
 			</h2>
 			<ul class="support_txt">
-				<li><a href=""><span>이용약관</span></a></li>
-				<li><a href=""><strong>개인정보취급방침</strong></a></li>
-				<li><a href="" target="_blank" title="새창 열림"><span>제휴/입점문의</span></a></li>
-				<li><a href="" target="_blank" title="새창 열림"><span data-font="lato">SN<em>@</em>PP</span><i class="ico ico_blank ml5"></i></a></li>
+				<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_USE_TERMS);"><span>이용약관</span></a></li>
+				<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_PRIVACY_POLICY);"><strong>개인정보취급방침</strong></a></li>
+				<li><a href="#partnersPop" rel="modal:open" return false;><span>제휴/입점문의</span></a></li>
+				<li><a href="http://zine.istyle24.com" target="_blank" title="새창 열림"><span data-font="lato">SN<em>@</em>PP</span><i class="ico ico_blank ml5"></i></a></li>
 			</ul>
 			<div class="family_link">
 				<h2><a href="" class="btn ui_toggle" data-font="lato">FAMILY SITE<i class="ico ico_ft_arrow_b"></i></a></h2>
 				<dl id="family_site" class="">
 					<dt class="no_tit"><span class="blind">그룹없음</span></dt>
-					<dd><a class="clickable" href="" target="_blank" title="새창 열림">한세예스24홀딩스</a></dd>
-					<dd><a class="clickable" href="" target="_blank" title="새창 열림">한세실업</a></dd>
-					<dd><a class="clickable" href="" target="_blank" title="새창 열림">한세드림</a></dd>
-					<dd><a class="clickable" href="" target="_blank" title="새창 열림">컬리수</a></dd>
-					<dd><a class="clickable" href="" target="_blank" title="새창 열림">예스24</a></dd>
-					<dd><a class="clickable" href="" target="_blank" title="새창 열림">YES24 Vietnam</a></dd>
-					<dd><a class="clickable" href="" target="_blank" title="새창 열림">YES24 Indonesia</a></dd>
-					<dd><a class="clickable" href="" target="_blank" title="새창 열림">동아출판</a></dd>
+					<dd><a class="clickable" href="http://www.hansaeyes24.com" target="_blank" title="새창 열림">한세예스24홀딩스</a></dd>
+					<dd><a class="clickable" href="https://www.hansae.com" target="_blank" title="새창 열림">한세실업</a></dd>
+					<dd><a class="clickable" href="http://www.hansaedreams.co.kr" target="_blank" title="새창 열림">한세드림</a></dd>
+					<dd><a class="clickable" href="https://www.curlysue.co.kr" target="_blank" title="새창 열림">컬리수</a></dd>
+					<dd><a class="clickable" href="http://www.yes24.com/main/default.aspx" target="_blank" title="새창 열림">예스24</a></dd>
+					<dd><a class="clickable" href="https://www.yes24.vn" target="_blank" title="새창 열림">YES24 Vietnam</a></dd>
+					<dd><a class="clickable" href="http://www.yes24.co.id" target="_blank" title="새창 열림">YES24 Indonesia</a></dd>
+					<dd><a class="clickable" href="http://www.bookdonga.com/main.donga" target="_blank" title="새창 열림">동아출판</a></dd>
 					<!-- 그룹 구분 할 경우,
 					<dt><span class="txt">그룹1</span></dt>
 					<dd><a class="clickable" href="" target="_blank" title="새창 열림">그룹1의사이트맵1</a></dd>
@@ -40,7 +40,7 @@
 			<div class="connect">
 				<div class="cs_box">
 					<p>
-						<span class="mb20"><a class="clickable" href="#" th:href="@{'/callcenter/faq/form'}" target="_blank" title="새창 열림">고객센터<i class="ico ico_ft_arrow_r ml5"></i></a></span><br>
+						<span class="mb20"><a class="clickable" href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_FAQ);">고객센터<i class="ico ico_ft_arrow_r ml5"></i></a></span><br>
 						<span class="time mb20">평일 <span data-font="lato"> 09:00 ~ 18:00</span> <br> (토/일공휴일 휴무)</span><br>
 						<span class="tel mb10" data-font="lato">1544-5336</span><br>
 						<span class="fax mb10" data-font="lato">F.02-780-0435</span><br>
@@ -48,11 +48,13 @@
 					</p>
 				</div>
 				<div class="sns_box clear">
-					<a href="https://www.facebook.com/" class="fbook clickable fl mr5" target="_blank" title="새창 열림"><span class="sr-only">STYLE24 페이스북</span></a>
-					<a href="https://www.instagram.com/" class="insta clickable fl" target="_blank" title="새창 열림"><span class="sr-only">STYLE24 인스타그램</span></a>
+					<a href="https://www.facebook.com/istyle24" class="fbook clickable fl mr5" target="_blank" title="새창 열림"><span class="sr-only">STYLE24 페이스북</span></a>
+					<a href="https://instagram.com/istyle24.official?igshid=o3nzm9tydg9n" class="insta clickable fl" target="_blank" title="새창 열림"><span class="sr-only">STYLE24 인스타그램</span></a>
 				</div>
 				<div class="isms_box mt30">
-					<p>정보보호관리체계<br>ISMS 인증획득</p>
+					<a href="http://www.yes24.com/notice/pop_isms.html" onclick="window.open(this.href, '_blank','width=500,height=708,toolbars=no,scrollbars=no'); return false;">
+						<p>정보보호관리체계<br>ISMS 인증획득</p>
+					</a>
 				</div>
 			</div>
 		</div>
@@ -67,7 +69,7 @@
 								<span>주소: 서울시 영등포구 은행로 <em data-font="lato">11</em>, <em data-font="lato">8</em>층 (여의도동, 일신빌딩)</span> <br>
 								<span>사업자등록번호: <em data-font="lato">116-27-32499</em></span>
 								<span>통신판매업 신고번호: 제<rm data-font="lato">2020</rm>-서울영등포-<rm data-font="lato">1432</rm></span>
-								<span><a class="clickable" href="" target="_blank" title="새창 열림">사업자정보확인</a></span><br>
+								<span><a class="clickable" href="http://www.ftc.go.kr/bizCommPop.do?wrkr_no=2298137000" target="_blank" title="새창 열림">사업자정보확인</a></span><br>
 								<span>개인정보보호책임자 : 김명인</span>
 								<span>호스팅 서비스사업자 : 아이스타일이십사(주)</span>
 							</p>
@@ -83,7 +85,7 @@
 							<p>
 								고객님은 안전거래를 위해 현금 결제 시 저희 쇼핑몰이 가입한<br>
 								소비자피해보상보험 서비스를 이용하실 수 있습니다.
-								<a class="clickable" href="" target="_blank" title="새창 열림">가입정보확인</a>
+								<a class="clickable" href="https://mall.sgic.co.kr/csh/iutf/sh/shop/CSHINFO004VM0.mvc?tm=3&q_sk=2&q_sv=2298137000" target="_blank" title="새창 열림">가입정보확인</a>
 							</p>
 						</div>
 					</dd>
@@ -112,91 +114,68 @@
 			$(this).parents('.family_link').find('#family_site').slideToggle(100);
 			$(this).find('.ico.ico_ft_arrow_b').toggleClass('ico_ft_arrow_t');
 		});
-	});
-	/* //familysite  */
-/*]]>*/
-</script>
-
-<script th:inline="javascript">
-/*<![CDATA[*/
-var element_layer = document.getElementById('zipcode_layer');
-var cfnGetDaumRoadAddr = function(data) {
-	// 팝업에서 검색결과 항목을 클릭했을 때 실행할 코드를 작성하는 부분입니다.
-	// 예제를 참고하여 다양한 활용법을 확인해 보세요.
-	// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분
 
-	// 도로명 주소의 노출 규칙에 따라 주소를 조합한다.
-	// 내려오는 변수가 값이 없는 경우엔 공백('') 값을 가지므로, 이를 참고하여 분기한다.
-	let fullRoadAddr = data.roadAddress; // 도로명 주소 변수
-	let extraRoadAddr = ''; // 도로명 조합형 주소 변수
-
-	// 법정동명이 있을 경우 추가한다. (법정리는 제외)
-	// 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다.
-	if (data.bname !== '' && /[동|로|가]$/g.test(data.bname)) {
-		extraRoadAddr += data.bname;
-	}
-
-	// 건물명이 있고, 공동주택일 경우 추가한다.
-	if (data.buildingName !== '' && data.apartment === 'Y') {
-		extraRoadAddr += (extraRoadAddr !== '' ? ', ' + data.buildingName : data.buildingName);
-	}
-	
-	// 도로명, 지번 조합형 주소가 있을 경우, 괄호까지 추가한 최종 문자열을 만든다.
-	if (extraRoadAddr !== '') {
-		extraRoadAddr = ' (' + extraRoadAddr + ')';
-	}
-	
-	// 도로명, 지번 주소의 유무에 따라 해당 조합형 주소를 추가한다.
-	if (fullRoadAddr !== '') {
-		fullRoadAddr += extraRoadAddr;
-	}
-	
-	return fullRoadAddr;
-}
+		//퀵메뉴
+		var tabAnchor = $('.quick_btn button'),
+			tabPanel = $('#quick_menu .quick_con');
+		
+		$(document).on('click','.quick_btn button:not(#top_btn)',function(e){
+			e.preventDefault();
+			$('body').addClass('lock');
+			$('#quick_menu').addClass('active');
+			tabAnchor.removeClass('active');
+			$(this).addClass('active');
+			var NewLink = $(this).attr('data-tab');
+			tabPanel.hide();
+			$('.' + NewLink).show();
+		});
+		
+		//퀵메뉴_쿠폰
+		var couponAnchor = $('.coupon_tab a'),
+			couponPanel = $('.coupon_area');
 
-var cfnOpenDaumAddr = function(daumZip) {
-	if ($('html').hasClass('is-ie')) {
-		daumZip.open();
-	} else {
-		daumZip.embed(element_layer);
+		$(document).on('click','.coupon_tab a',function(e){
+			e.preventDefault();
+			couponAnchor.removeClass('active');
+			$(this).addClass('active');
+			var NewLink = $(this).attr('href');
+			
+			couponPanel.hide();
+			$(NewLink).show();
+			
+		});
 		
-		// iframe을 넣은 element를 보이게 한다.
-		element_layer.style.display = 'block';
+		couponAnchor.eq(0).trigger('click');
 
-		// iframe을 넣은 element의 위치를 화면의 가운데로 이동시킨다.
-		cfnInitLayerPosition();
-	}
-}
+		//퀵메뉴 닫을 때
+		$(document).on('click','#quick_menu .quick_close_btn',function(e){
+			e.preventDefault();
+			$('body').removeClass('lock');
+			$('#quick_menu').removeClass('active');
+			//$('#quick_menu .quick_con').hide();
+		});
 
-var cfnCloseDaumAddr = function() {
-	// iframe을 넣은 element를 안보이게 한다.
-	element_layer.style.display = 'none';
-}
+		//퀵메뉴 카테고리 메뉴 클릭시
+		$(document).on('click','#quick_menu .category .quick_cate_wrap > li',function(e){
+			$(this).toggleClass('active');
+			$(this).find('> ul').slideToggle(300);
+			$(this).siblings('li').find('> ul').slideUp(300);
+			$(this).siblings('li').removeClass('active');
+		});
 
-// 브라우저의 크기 변경에 따라 레이어를 가운데로 이동시키고자 하실때에는
-// resize이벤트나, orientationchange이벤트를 이용하여 값이 변경될때마다 아래 함수를 실행 시켜 주시거나,
-// 직접 element_layer의 top,left값을 수정해 주시면 됩니다.
-var cfnInitLayerPosition = function() {
-	let width = 420; //우편번호서비스가 들어갈 element의 width
-	let height = 470; //우편번호서비스가 들어갈 element의 height
-	let borderWidth = 1; //샘플에서 사용하는 border의 두께
+		//퀵메뉴 탑버튼 클릭 시
+		$(document).on('click','#top_btn',function(e){
+			$('body,html').animate({scrollTop:0});
+		});
 
-	// 위에서 선언한 값들을 실제 element에 넣는다.
-	element_layer.style.width = width + 'px';
-	element_layer.style.height = height + 'px';
-	element_layer.style.border = borderWidth + 'px solid';
-	
-	// 실행되는 순간의 화면 너비와 높이 값을 가져와서 중앙에 뜰 수 있도록 위치를 계산한다.
-	/*
-	element_layer.style.left = (((window.innerWidth || document.documentElement.clientWidth) - width) / 2 - borderWidth) + 'px';
-	element_layer.style.top = (((window.innerHeight || document.documentElement.clientHeight) - height) / 2 - borderWidth) + 'px';
-	*/
-	
-	// 다음 레이어 적용
-	$("#__daum__layer_1").css("z-index", 3000);
-}
+		//퀵메뉴_쿠폰 사용안내 팝업
+		$(".coupon_pop_btn").click(function() {
+			$(".coupon_popup").modal("show");
+		});
+	});
 /*]]>*/
 </script>
+
 </footer>
 
 </html>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html

@@ -200,12 +200,12 @@
 					$.each(cate1.cate2List, function(idx2, cate2) {
 						tag += '					<li>\n';
 						tag += '						<a href="javascript:void(0);" onclick="cfnGoToCategoryMain(\'' + cate2.cateGb + '\',\'' + cate2.cate1No + '\',\'' + cate2.cate2No + '\');">' + cate2.cate2Nm + '</a>\n';
-						if (cate2.leafYn == 'N' && cate2.cate3List.length > 0) {
+						if (cate2.leafYn == 'N' && cate2.cate3List != null && cate2.cate3List.length > 0) {
 							tag += '						<ul class="box_depth2">\n';
 							$.each(cate2.cate3List, function(idx3, cate3) {
 								tag += '							<li>\n';
 								tag += '								<a href="javascript:void(0);" onclick="cfnGoToCategoryMain(\'' + cate3.cateGb + '\',\'' + cate3.cate1No + '\',\'' + cate3.cate2No + '\',\'' + cate3.cate3No + '\');">' + cate3.cate3Nm + '</a>\n';
-								if (cate3.leafYn == 'N' && cate3.cate4List.length > 0) {
+								if (cate3.leafYn == 'N' && cate3.cate4List != null && cate3.cate4List.length > 0) {
 									tag += '								<ul class="box_depth3">\n';
 									$.each(cate3.cate4List, function(idx4, cate4) {
 										tag += '									<li><a href="javascript:void(0);" onclick="cfnGoToCategoryMain(\'' + cate4.cateGb + '\',\'' + cate4.cate1No + '\',\'' + cate4.cate2No + '\',\'' + cate4.cate3No + '\',\'' + cate4.cate4No + '\');">' + cate4.cate4Nm + '</a></li>\n';

+ 69 - 0
src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html

@@ -19,6 +19,30 @@
 	<meta property="og:locale" content="ko_KR"/>
 	<meta property="og:site_name" th:content="${metaBrowserTitle}" content="한세공식몰 스타일24"/>
 	
+	<!-- 추천솔루션 meta -->
+	<meta property="eg:cuid" content="" />
+	<meta property="eg:itemId" content="" />
+	<meta property="eg:itemName" content="" />
+	<meta property="eg:itemImage" content="" />
+	<meta property="eg:itemUrl" content="" />
+	<meta property="eg:originalPrice" content="" />
+	<meta property="eg:salePrice" content="" />
+	<meta property="eg:category1" content="" />
+	<meta property="eg:category2" content="" />
+	<meta property="eg:category3" content="" />
+	<meta property="eg:brandId" content="" />
+	<meta property="eg:brandName" content="" />
+	<meta property="eg:regDate" content="" />
+	<meta property="eg:updateDate" content="" />
+	<meta property="eg:isNew" content="" />
+	<meta property="eg:stock" content="" />
+	<meta property="eg:state" content="" />
+	<meta property="eg:description" content="" />
+	<meta property="eg:extraImage" content="" />
+	<meta property="eg:locale" content="" />
+	<meta property="eg:etc1" content="" />
+	<!-- 추천솔루션 meta -->
+	
 	<title th:text="${metaBrowserTitle}">한세공식몰 스타일24</title>
 	<link rel="icon" th:href="@{/images/favicon.ico}" href="favicon.ico" type="image/x-icon"/>
 	<link rel="apple-touch-icon" href="/images/apple-touch-icon.png" sizes="180x180"/>
@@ -49,6 +73,51 @@
 // 		gtag('js', new Date());
 // 		gtag('config', 'UA-168660512-1');
 	</script>
+	
+	<th:block th:if="${sessioninfo != null}">
+		<script th:inline="javascript">
+		/*<![CDATA[*/
+			var gCustId = [[${sessionInfo.custId}]];
+			var gEmail = [[${sessionInfo.Email}]];
+			/*]]>*/
+		</script>
+	</th:block>
+	<th:block th:if="${sessioninfo == null}">
+		<script th:inline="javascript">
+		/*<![CDATA[*/
+			var gCustId = '';
+			var gEmail = '';
+			/*]]>*/
+		</script>
+	</th:block>
+	
+	<script src="/ux/sha512.min.js"></script>
+	<script>
+		String.prototype.hashCode = function() {
+			var hash = 0;
+			for (var i = 0; i < this.length; i++) {
+				var character = this.charCodeAt(i);
+				hash = ((hash<<5) - hash) + character;
+				hash = hash & hash; // Convert to 32bit integer
+			}
+			return hash;
+		}
+		var eglqueueCuid = '1252aed4-78dc-46e8-b784-94ac42e86dd4';
+		var hCustId = gCustId ? hex_sha512(gCustId).toString().hashCode() : '';
+		var hEmail = gEmail;
+		
+		/* Eiengine Script (Visit) */
+		window._eglqueue = window._eglqueue || [];
+		_eglqueue.push(['setVar', 'cuid', eglqueueCuid]);
+		_eglqueue.push(['setVar', 'userId', hCustId]);
+		_eglqueue.push(['track', 'visit']);
+		(function (s, x) {
+			s = document.createElement('script'); s.type = 'text/javascript';
+			s.async = true; s.defer = true; s.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://logger.eigene.io/js/logger.min.js';
+			x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
+		})();
+		/* \\Eiengine Script (Visit) */
+	</script>
 </head>
 
 </html>

+ 0 - 1
src/main/webapp/WEB-INF/views/web/common/layout/BrandLayoutWeb.html

@@ -27,7 +27,6 @@
 <footer id="footer" th:replace="~{web/common/fragments/FooterWeb :: footer}"></footer>
 
 <th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
-<!-- <th:block th:replace="~{web/common/fragments/MarketingScripts :: mscripts}"></th:block> -->
 
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 0 - 1
src/main/webapp/WEB-INF/views/web/common/layout/CallcenterLayoutWeb.html

@@ -27,7 +27,6 @@
 <footer id="footer" th:replace="~{web/common/fragments/FooterWeb :: footer}"></footer>
 
 <th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
-<!-- <th:block th:replace="~{web/common/fragments/MarketingScripts :: mscripts}"></th:block> -->
 
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 0 - 1
src/main/webapp/WEB-INF/views/web/common/layout/DefaultLayoutWeb.html

@@ -27,7 +27,6 @@
 <footer id="footer" th:replace="~{web/common/fragments/FooterWeb :: footer}"></footer>
 
 <th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
-<!-- <th:block th:replace="~{web/common/fragments/MarketingScripts :: mscripts}"></th:block> -->
 
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 0 - 2
src/main/webapp/WEB-INF/views/web/common/layout/MypageLayoutWeb.html

@@ -74,8 +74,6 @@
 <footer id="footer" th:replace="~{web/common/fragments/FooterWeb :: footer}"></footer>
 
 <th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
-<!-- <th:block th:replace="~{web/common/fragments/MarketingScripts :: mscripts}"></th:block> -->
-
 <script th:src="@{'/ux/pc/js/mypage.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/ux/pc/js/mypage.js"></script>
 
 <script th:inline="javascript">

+ 300 - 0
src/main/webapp/WEB-INF/views/web/customer/PrivacyPolicyFormWeb.html

@@ -0,0 +1,300 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="web/common/layout/DefaultLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : PrivacyPolicyFormWeb.html
+ * @desc    : 개인정보취급방침 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.18   jsshin     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+<div id="container" class="container ps">
+	<div class="breadcrumb"> 
+		<ul>
+			<li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
+			<li class="bread_2depth">개인정보취급방침</li>
+		</ul> 
+	</div>
+	
+	<div class="wrap">
+		<div class="content ps_privacy"> <!-- 페이지특정 클래스 = ps_privacy -->
+			<div class="cont_head">
+				<div>
+					<h3>개인정보취급방침</h3>
+				</div>
+			</div>
+			<div class="cont_body" th:utext="${#strings.replace(#strings.replace(clause,'&amplt;','<'),'&ampgt;','>')}">
+				<!-- <p>
+                        아이스타일이십사 주식회사에서 운영하는 www.istyle24.com은 고객님의 개인정보를 소중히 여기며, 안전한 거래를 위해 관련법령의 규정을 반영하여 준수하고 있습니다.
+                    </p>                    
+                    <div class="hookGrp">
+                        <div class="hook_list">
+                            <ul>
+                                <li>
+                                    <a href="#prvc1"><span>제1조 개인정보의 수집, 이용목적</span></a>
+                                    <a href="#prvc2"><span>제2조 정의</span></a>
+                                    <a href="#prvc3"><span>제3조 약관 등의 명시와 설명 및 개정</span></a>
+                                    <a href="#prvc4"><span>제4조 서비스의 제공 및 변경</span></a>
+                                    <a href="#prvc5"><span>제5조 서비스의 중단</span></a>
+                                    <a href="#prvc6"><span>제6조 회원가입</span></a>
+                                    <a href="#prvc7"><span>제7조 회원 탈퇴 및 자격 상실 등</span></a>
+                                    <a href="#prvc8"><span>제8조 회원에 대한 통지</span></a>
+                                </li>
+                                <li>
+                                    <a href="#prvc9"><span>제9조 구매신청</span></a>
+                                    <a href="#prvc10"><span>제10조 계약의 성립</span></a>
+                                    <a href="#prvc11"><span>제 11조</span></a>
+                                    <a href="#prvc12"><span>제 12조</span></a>
+                                    <a href="#prvc13"><span>제 13조</span></a>
+                                    <a href="#prvc14"><span>제 14조</span></a>
+                                    <a href="#prvc15"><span>제 15조</span></a>
+                                    <a href="#prvc16"><span>제 16조</span></a>
+                                </li>
+                                <li>
+                                    <a href="#prvc17"><span>제 17조</a>
+                                    <a href="#prvc18"><span>제 18조</span></a>
+                                    <a href="#prvc19"><span>제 19조</span></a>
+                                    <a href="#prvc20"><span>제 20조</span></a>
+                                    <a href="#prvc21"><span>제 21조</span></a>
+                                    <a href="#prvc22"><span>제 22조</span></a>
+                                    <a href="#prvc23"><span>제 23조</span></a>
+                                    <a href="#prvc24"><span>제24조 재판권 및 준거법</span></a>
+                                </li>
+                            </ul>
+                            
+                        </div>
+                        <div class="hook_cont"> 
+                            <div id="prvc1">
+                                <h4><span>제1조 개인정보의 수집, 이용목적</span></h4>
+                                <p>
+                                    이 약관은 아이스타일이십사 주식회사가 운영하는 www.istyle24.com(이하 "몰"이라 한다)에서 제공하는 인터넷 관련 서비스 (이하 "서비스"라 한다)를 이용함에 있어 사이버 몰과 이용자의
+                                    권리, 의무 및 책임사항을 규정함을 목적으로 합니다.
+                                </p>
+                                <table>
+                                    <colgroup>
+                                        <col width="300">
+                                        <col width="*">
+                                    </colgroup>   
+                                    <thead>
+                                        <tr>
+                                            <th>구분</th>
+                                            <th>이용목적</th>
+                                        </tr>
+                                    </thead>
+                                    <tbody>
+                                        <tr>
+                                            <td rowspan="5">회원관리</td>
+                                            <td>회원제 서비스 이용에 따른 본인확인, 개인식별</td>
+                                        </tr>
+                                        <tr>
+                                            <td>불량회원의 부정이용 방지와 비인가 사용 방지, 중복가입방지</td>
+                                        </tr>
+                                        <tr>
+                                            <td></td>
+                                        </tr>
+                                        <tr>
+                                            <td></td>
+                                        </tr>
+                                        <tr>
+                                            <td></td>
+                                        </tr>
+                                        <tr>
+                                            <td rowspan="3">서비스 제공에 관한 계약의 이행 및 서비스 제공에 따른 요금정산</td>
+                                            <td>콘텐츠 제공, 이벤트 당첨 결과안내 및 경품배송</td>
+                                        </tr>
+                                        <tr>
+                                            <td>금융거래 본인 인증 및 금융 서비스</td>
+                                        </tr>
+                                        <tr>
+                                            <td>물품 배송, 구매 및 요금 결제</td>
+                                        </tr>
+                                        <tr>
+                                            <td rowspan="7">마케팅 광고에 활용</td>
+                                            <td></td>
+                                        </tr>
+                                        <tr>
+                                            <td></td>
+                                        </tr>
+                                        <tr>
+                                            <td></td>
+                                        </tr>
+                                        <tr>
+                                            <td></td>
+                                        </tr>
+                                        <tr>
+                                            <td></td>
+                                        </tr>
+                                        <tr>
+                                            <td></td>
+                                        </tr>
+                                        <tr>
+                                            <td></td>
+                                        </tr>
+                                    </tbody>
+                                </table>
+                            </div>
+                            <div id="prvc2">
+                                <h4><span>제2조 정의</span></h4>
+                                <p>1. “몰”이란 아이스타일24가 재화 또는 용역(이하 “재화 등”이라 함)을 이용자에게 제공하기 위하여 컴퓨터 등 정보통신설비를 이용하여 재화 등을 거래할 수 있도록 설정한 가상의 영업장을 말하며, 아울러 사이버몰을 운영하는 사업자의 의미로도 사용합니다.</p>
+                                <p>2. '이용자'란 "몰"에 접속하여 이 약관에 따라 "몰"이 제공하는 서비스를 받는 회원 및 비회원을 말합니다.</p>
+                                <p>3. '회원'이라 함은 "몰"에 개인정보를 제공하여 회원등록을 한 자로서, "몰"의 정보를 지속적으로 제공받으며, "몰"이 제공하는 서비스를 계속적으로 이용할 수 있는 자를 말합니다.</p>
+                                <p>4. ‘비회원’이라 함은 회원에 가입하지 않고 몰”이 제공하는 서비스를 이용하는 자를 말합니다.</p>
+                                <p>5. '아이디(ID)'란 이용자가 회원가입 당시 몰에 등록한 사용자 '개인이용문자'를 말합니다.</p>
+                                <p>6. '비밀번호'란 회원의 동일성 확인과 비밀보호를 위하여 회원 스스로가 설정하여 몰에 등록한 '개인이용문자'로 회원으로 로그인을 하기위해 아이디와 같이 사용됩니다.</p>
+                                <p>7. ‘영업일’이란 회사가 정상적으로 서비스를 제공한 날로서 토요일, 일요일 및 법정 공휴일을 제외한 날을 말합니다.</p>
+                                <p>8. ‘아이포인트’란 아이스타일24를 통하여 회원이 상품을 구매할 때, 구매금액의 일정 비율이 적립되는 ‘몰’전용 마일리지로 적립일로부터 3년이 지나면 자동 소멸 됩니다</p>
+                                <p>9. ‘아이머니’란 상품구매 시 현금과 같이 이용할 수 있는 ‘몰’ 전용 사이버머니로, 적립된 아이포인트를 일정한 단위로 환전하여 사용할 수 있습니다.</p>
+                                <p>10. 기타 ‘2조’에서 정의되지 아니한 이 약관상의 용어의 의미는 일반적인 거래관행에 의합니다.</p>
+                            </div>
+                            <div id="prvc3">
+                                <h4><span>제3조 약관 등의 명시와 설명 및 개정</span></h4>
+                                <p>1. "몰"은 이 약관의 내용과 상호 및 대표자 성명, 영업소 소재지 주소(소비자의 불만을 처리할 수 있는 곳의 주소를 포함), 전화번호, 팩스번호, 전자우편주소, 사업자등록번호,
+                                    통신판매업신고번호, 개인정보관리책임자 등을 이용자가 쉽게 알 수 있도록 www.istyle24.com의 초기 서비스화면(전면)에 게시합니다.
+                                    다만, 이용약관의 내용은 이용자가 연결화면을 통하여 볼 수 있도록 할 수 있습니다.</p>
+                                <p>2. "몰"은 이용자가 약관에 동의하기에 앞서 약관에 정하여져 있는 내용 중 청약철회 배송책임 환불조건 등과 같은 중요한 내용을 이용자가 이해할 수 있도록 별도의 연결화면 또는 팝업화면 등을
+                                    제공하여 이용자의 확인을 구하여야 합니다.</p>
+                                <p>3. "몰"은 전자상거래등에서의소비자보호에관한법률, 약관의규제에관한법률, 전자거래기본법, 전자서명법, 정보통신망이용촉진등에관한법률, 방문판매등에관한법률, 소비자보호법 등
+                                    관련법을 위배하지 않는 범위에서 이 약관을 개정할 수 있습니다.</p>
+                                <p>4. "몰"이 약관을 개정할 경우에는 적용일자 및 개정사유를 명시하여 현행약관과 함께 몰의 초기화면에 그 적용일자 7일 이전부터 적용일자 전일까지 공지합니다.
+                                    다만, 이용자에게 불리하게 약관내용을 변경하는 경우에는 최소한 30일 이상의 사전 유예기간을 두고 공지합니다. 이 경우 "몰"은 개정 전 내용과 개정 후 내용을 명확하게 비교하여 이용자가
+                                    알기 쉽도록 표시합니다.</p>
+                                <p>5. "몰"이 약관을 개정할 경우에는 그 개정 약관은 그 적용일자 이후에 체결되는 계약에만 적용되고 그 이전에 이미 체결된 계약에 대해서는 개정전의 약관조항이 그대로 적용됩니다.
+                                    다만 이미 계약을 체결한 이용자가 개정 약관 조항의 적용을 받기를 원하는 뜻을 제3조에 의한 개정약관의 공지기간내에 "몰"에 송신하여 "몰"의 동의를 받은 경우에는 개정약관 조항이
+                                    적용됩니다.</p>
+                                <p>6. 본 약관에서 정하지 아니한 사항과 이 약관의 해석에 관하여는 전자상거래등에서의 소비자보호에관한법률, 약관의규제등에관한법률, 공정거래위원회가 정하는 전자상거래등에서의
+                                    소비자보호지침 및 관계법령 또는 상관례에 따릅니다.</p>
+                            </div>
+                            <div id="prvc4">
+                                <h4><span>제4조 서비스의 제공 및 변경</span></h4>
+                                <p>1. “몰"은 다음과 같은 업무를 수행합니다.</p>
+                                <ol>
+                                    <li>① 재화 또는 용역에 대한 정보 제공 및 구매계약의 체결</li>
+                                    <li>② 구매계약이 체결된 재화 또는 용역의 배송</li>
+                                    <li>③ 기타 “몰”이 정하는 업무</li>
+                                </ol>
+                                <p>2. "몰"은 재화 또는 용역의 품절 또는 기술적 사양의 변경 등의 경우에는 장차 체결되는 계약에 의해 제공할 재화 또는 용역의 내용을 변경할 수 있습니다. 이 경우에는 변경된 재화 또는 용역의
+                                    내용 및 제공일자를 명시하여 현재의 재화 또는 용역의 내용을 게시한 곳에 즉시 공지합니다.단, "몰"이 합리적으로 예측할 수 없는 불가피한 여건이나 사정이 있는 경우, 위 공지를 하지 않을 수
+                                    있습니다.
+                                    </p>
+                                <p>3. "몰"이 제공하기로 이용자와 계약을 체결한 서비스의 내용을 재화등의 품절 또는 기술적 사양의 변경 등의 사유로 변경할 경우에는 그 사유를 이용자에게 통지 합니다.</p>
+                                <p>4. 전항의 경우 "몰"은 이로 인하여 이용자가 입은 손해를 배상합니다. 다만, "몰"이 고의 또는 과실이 없음을 입증하는 경우에는 그러하지 아니합니다.</p>
+                            </div>
+                            <div id="prvc5">
+                                <h4><span>제5조 서비스의 중단</span></h4>
+                                <p>1. "몰"은 컴퓨터 등 정보통신설비의 보수점검·교체 및 고장, 통신의 두절 등의 사유가 발생한 경우에는 서비스의 제공을 일시적으로 중단할 수 있습니다.</p>
+                                <p>2. "몰"은 제1항의 사유로 서비스의 제공이 일시적으로 중단됨으로 인하여 이용자 또는 제3자가 입은 손해에 대하여 배상합니다.단, "몰"에 고의 또는 과실이 없는 경우에는 그러하지
+                                    아니합니다.</p>
+                                <p>3. "사업종목의 전환, 사업의 포기, 업체간의 통합 등의 이유로 서비스를 제공할 수 없게 되는 경우에는 "몰"은 제8조에 정한 방법으로 이용자에게 통지하고 당초 "몰"에서 제시한 조건에 따라
+                                    소비자에게 보상합니다.</p>
+                                <p>4. 다만, "몰"이 보상기준 등을 고지하지 아니한 경우에는 이용자들의 적립금 등을 "몰"에서 통용되는 통화가치에 상응하는 현물 또는 현금으로 이용자에게 지급합니다.</p>
+                            </div>
+                            <div>
+                                <h4  id="prvc6"><span>제6조 회원가입</span></h4>
+                                <p>1. 이용자는 "몰"이 정한 가입 양식에 따라 회원정보를 기입한 후 이 약관에 동의한다는 의사표시를 함으로서 회원가입을 신청합니다.</p>
+                                <p>2. "몰"은 제1항과 같이 회원으로 가입할 것을 신청한 이용자 중 다음 각호에 해당하지 않는 한 회원으로 등록합니다.</p>
+                                <ol>
+                                    <li>① 가입신청자가 이 약관 제7조 제3항에 의하여 이전에 회원자격을 상실한 적이 있는 경우, 다만 제7조 제3항에 의한 회원자격 상실후 3년이 경과한 자로서 "몰"의 회원 재가입 승낙을 얻은
+                                        경우에는 예외로 한다.</li>
+                                    <li>② 등록 내용에 허위, 기재누락, 오기가 있는 경우</li>
+                                    <li>③ 만 14세가 되지 않은 자가 신청하였을 경우</li>
+                                    <li>④기타 회원으로 등록하는 것이 "몰"의 기술상 현저히 지장이 있다고 판단되는 경우</li>
+                                </ol>
+                                <p>3. 회원가입계약의 성립시기는 "몰"의 승낙이 회원에게 도달한 시점으로 합니다.</p>
+                                <p>4. 가입신청자가 "몰"에 회원으로 가입하더라도 로그인하지 않은 상태에서 주문하는 경우는 회원주문이 아니라 비회원주문으로 인정합니다.</p>
+                                <p>5. 회원은 제15조 제1항에 의한 등록사항에 변경이 있는 경우, 즉시 전자우편 기타 방법으로 "몰"에 대하여 그 변경사항을 알려야 합니다.이러한 변경사항의 미 통보로 인해 발생하는 손해는
+                                    회원에게 그 책임이 있습니다.</p>
+                            </div>
+                            <div id="prvc7">
+                                <h4><span>제7조 회원 탈퇴 및 자격 상실 등</span></h4>
+                                <p>1. 회원은 "몰"에 언제든지 탈퇴를 요청할 수 있으며 "몰"은 즉시 회원탈퇴를 처리합니다.</p>
+                                <p>2. 회원이 다음 각호의 사유에 해당하는 경우, "몰"은 회원자격을 제한 및 정지시킬 수 있습니다.</p>
+                                <p>3. "몰"이 회원 자격을 제한 정지 시킨 후, 동일한 행위가 2회 이상 반복되거나 30일 이내에 그 사유가 시정되지 아니하는 경우 "몰"은 회원자격을 상실시킬 수 있습니다.</p>
+                                <p>4. "몰"이 회원자격을 상실시키는 경우에는 회원등록을 말소합니다. 이 경우 회원에게 이를 통지하고, 회원등록 말소 전에 최소한 30일 이상의 기간을 정하여 소명할 기회를 부여합니다.</p>
+                            </div>
+                            <div id="prvc8">
+                                <h4><span>제8조 회원에 대한 통지</span></h4>
+                                <p>1. "몰"이 회원에 대한 통지를 하는 경우, 회원이 "몰"에 제출하여 지정한 전자우편 주소로 할 수 있습니다.</p>
+                                <p>2. "몰"은 불특정다수 회원에 대한 통지의 경우 1주일이상 "몰" 게시판에 게시함으로서 개별 통지에 갈음할 수 있습니다.
+                                    다만, 회원 본인의 거래와 관련하여 중대한 영향을 미치는 사항에 대하여는 개별통지를 합니다.</p>
+                            </div>
+                            <div id="prvc9">
+                                <h4><span>제9조 구매신청</span></h4>
+                                <p>"몰"이용자는 "몰"상에서 다음 또는 이와 유사한 방법에 의하여 구매를 신청하며, "몰"은 이용자가 구매신청을 함에 있어서 다음의 각 내용을 알기 쉽게 제공하여야 합니다.
+                                    단, 회원인 경우 제2호 내지 제4호의 적용을 제외할 수 있습니다.</p>
+                                <p>1. 재화 등의 검색 및 선택</p>
+                                <p>2. 성명, 주소, 전화번호, 전자우편주소(또는 이동전화번호) 등의 입력</p>
+                                <p>3. 약관내용, 청약철회권이 제한되는 서비스, 배송료 설치비 등의 비용부담과 관련한 내용에 대한 확인</p>
+                                <p>4. 이 약관에 동의하고 위 3.호의 사항을 확인하거나 거부하는 표시(예, 마우스 클릭)</p>
+                                <p>5. 재화 등의 구매신청 및 이에 관한 확인 또는 "몰"의 확인에 대한 동의</p>
+                                <p>6. 결제방법의 선택</p>
+                            </div>
+                            <div id="prvc10">
+                                <h4><span>제10조 계약의 성립</span></h4>
+                                <p>1."몰"은 제9조와 같은 구매신청에 대하여 다음 각호에 해당하면 승낙하지 않을 수 있습니다. 다만, 미성년자와 계약을 체결하는 경우에는 법정대리인의 동의를 얻지 못하면 미성년자 본인 또는
+                                    법정대리인이 계약을 취소할 수 있다는 내용을 고지하여야 합니다.</p>
+                                    <ol>
+                                        <li>① 신청 내용에 허위, 기재누락, 오기가 있는 경우</li>
+                                        <li>② 미성년자가 담배, 주류 등 청소년보호법에서 금지하는 재화 및 용역을 구매하는 경우</li>
+                                        <li>③ 기타 구매신청에 승낙하는 것이 "몰" 기술상 현저히 지장이 있다고 판단하는 경우</li>
+                                    </ol>
+                                <p>2. "몰"의 승낙이 제12조 제1항의 수신확인통지형태로 이용자에게 도달한 시점에 계약이 성립한 것으로 봅니다.</p>
+                                <p>3. "몰"의 승낙의 의사표시에는 이용자의 구매 신청에 대한 확인 및 판매가능 여부, 구매신청의 정정 취소 등에 관한 정보 등을 포함하여야 합니다.</p>
+                                <p>4. 이 약관에 동의하고 위 3.호의 사항을 확인하거나 거부하는 표시(예, 마우스 클릭)</p>
+                                <p>5. 재화 등의 구매신청 및 이에 관한 확인 또는 "몰"의 확인에 대한 동의</p>
+                            </div>
+                            <div id="prvc24">
+                                <h4><span>제24조 재판권 및 준거법</span></h4>
+                                <p>1."몰"과 이용자간에 발생한 전자상거래 분쟁에 관한 소송은 제소 당시의 이용자의 주소에 의하고, 주소가 없는 경우에는 거소를 관할하는 지방법원의 전속관할로 합니다.
+                                    다만, 제소 당시 이용자의 주소 또는 거소가 분명하지 않거나 외국 거주자의 경우에는 민사소송법상의 관할법원에 제기합니다.</p>
+                                <p>2. "몰"과 이용자간에 제기된 전자상거래 소송에는 한국법을 적용합니다.</p>
+                            </div>
+                            <div id="prvc">
+                                <h4><span></span></h4>
+                                <p></p>
+                                <p></p>
+                                <p></p>
+                                <p></p>
+                                <p></p>
+                            </div>
+                            
+                            <div>
+                                <p>부칙 : 본 약관은 2016년 01월 04일부터 시행하며, 종전의 약관내용은 본 약관으로 대체합니다.</p>
+                            </div>
+
+                        </div>
+                    </div> -->
+			</div>
+		</div>
+	</div>
+</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	// 약관 내부 링크
+	$(function() {
+		$(".hook_list ul li a").on("click", function() {
+			var hookHeader = $("header").outerHeight() + 100;
+			var hookHref = $(this).attr("href");
+			var hookPot = $(hookHref == "#" || hookHref == "" ? "body" : hookHref);
+			var hookPos = hookPot.offset().top - hookHeader;
+			$("html, body").animate({ scrollTop: hookPos }, 300);
+		});
+	});
+/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 235 - 0
src/main/webapp/WEB-INF/views/web/customer/UseTermsFormWeb.html

@@ -0,0 +1,235 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="web/common/layout/DefaultLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : UseTermsFormWeb.html
+ * @desc    : 이용약관 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.18   jsshin     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+<div id="container" class="container ps">
+	<div class="breadcrumb"> 
+		<ul>
+			<li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
+			<li class="bread_2depth">이용약관</li>
+		</ul> 
+	</div>
+	
+	<div class="wrap">
+		<div class="content ps_terms"> <!-- 페이지특정 클래스 = ps_terms -->
+			<div class="cont_head">
+				<div>
+					<h3>이용약관</h3>
+				</div>
+			</div>
+			<div class="cont_body" th:utext="${#strings.replace(#strings.replace(clause,'&amplt;','<'),'&ampgt;','>')}">
+				<!-- <p>
+					아이스타일이십사 주식회사에서 운영하는 www.istyle24.com은 고객님의 개인정보를 소중히 여기며, 안전한 거래를 위해 관련법령의 규정을 반영하여 준수하고 있습니다.
+				</p>
+				<div class="hookGrp">
+					<div class="hook_list">
+						<ul>
+							<li>
+								<a href="#terms1"><span>제1조 목적</span></a>
+								<a href="#terms2"><span>제2조 정의</span></a>
+								<a href="#terms3"><span>제3조 약관 등의 명시와 설명 및 개정</span></a>
+								<a href="#terms4"><span>제4조 서비스의 제공 및 변경</span></a>
+								<a href="#terms5"><span>제5조 서비스의 중단</span></a>
+								<a href="#terms6"><span>제6조 회원가입</span></a>
+								<a href="#terms7"><span>제7조 회원 탈퇴 및 자격 상실 등</span></a>
+								<a href="#terms8"><span>제8조 회원에 대한 통지</span></a>
+							</li>
+							<li>
+								<a href="#terms9"><span>제9조 구매신청</span></a>
+								<a href="#terms10"><span>제10조 계약의 성립</span></a>
+								<a href="#terms11"><span>제 11조</span></a>
+								<a href="#terms12"><span>제 12조</span></a>
+								<a href="#terms13"><span>제 13조</span></a>
+								<a href="#terms14"><span>제 14조</span></a>
+								<a href="#terms15"><span>제 15조</span></a>
+								<a href="#terms16"><span>제 16조</span></a>
+							</li>
+							<li>
+								<a href="#terms17"><span>제 17조</a>
+								<a href="#terms18"><span>제 18조</span></a>
+								<a href="#terms19"><span>제 19조</span></a>
+								<a href="#terms20"><span>제 20조</span></a>
+								<a href="#terms21"><span>제 21조</span></a>
+								<a href="#terms22"><span>제 22조</span></a>
+								<a href="#terms23"><span>제 23조</span></a>
+								<a href="#terms24"><span>제24조 재판권 및 준거법</span></a>
+							</li>
+						</ul>
+					</div>
+					<div class="hook_cont">
+						<div id="terms1">
+							<h4><span>제1조 목적</span></h4>
+							<p>
+								이 약관은 아이스타일이십사 주식회사가 운영하는 www.istyle24.com(이하 "몰"이라 한다)에서 제공하는 인터넷 관련 서비스 (이하 "서비스"라 한다)를 이용함에 있어 사이버 몰과 이용자의
+								권리, 의무 및 책임사항을 규정함을 목적으로 합니다.
+							</p>
+						</div>
+						<div id="terms2">
+							<h4><span>제2조 정의</span></h4>
+							<p>1. “몰”이란 아이스타일24가 재화 또는 용역(이하 “재화 등”이라 함)을 이용자에게 제공하기 위하여 컴퓨터 등 정보통신설비를 이용하여 재화 등을 거래할 수 있도록 설정한 가상의 영업장을 말하며, 아울러 사이버몰을 운영하는 사업자의 의미로도 사용합니다.</p>
+							<p>2. '이용자'란 "몰"에 접속하여 이 약관에 따라 "몰"이 제공하는 서비스를 받는 회원 및 비회원을 말합니다.</p>
+							<p>3. '회원'이라 함은 "몰"에 개인정보를 제공하여 회원등록을 한 자로서, "몰"의 정보를 지속적으로 제공받으며, "몰"이 제공하는 서비스를 계속적으로 이용할 수 있는 자를 말합니다.</p>
+							<p>4. ‘비회원’이라 함은 회원에 가입하지 않고 몰”이 제공하는 서비스를 이용하는 자를 말합니다.</p>
+							<p>5. '아이디(ID)'란 이용자가 회원가입 당시 몰에 등록한 사용자 '개인이용문자'를 말합니다.</p>
+							<p>6. '비밀번호'란 회원의 동일성 확인과 비밀보호를 위하여 회원 스스로가 설정하여 몰에 등록한 '개인이용문자'로 회원으로 로그인을 하기위해 아이디와 같이 사용됩니다.</p>
+							<p>7. ‘영업일’이란 회사가 정상적으로 서비스를 제공한 날로서 토요일, 일요일 및 법정 공휴일을 제외한 날을 말합니다.</p>
+							<p>8. ‘아이포인트’란 아이스타일24를 통하여 회원이 상품을 구매할 때, 구매금액의 일정 비율이 적립되는 ‘몰’전용 마일리지로 적립일로부터 3년이 지나면 자동 소멸 됩니다</p>
+							<p>9. ‘아이머니’란 상품구매 시 현금과 같이 이용할 수 있는 ‘몰’ 전용 사이버머니로, 적립된 아이포인트를 일정한 단위로 환전하여 사용할 수 있습니다.</p>
+							<p>10. 기타 ‘2조’에서 정의되지 아니한 이 약관상의 용어의 의미는 일반적인 거래관행에 의합니다.</p>
+						</div>
+						<div id="terms3">
+							<h4><span>제3조 약관 등의 명시와 설명 및 개정</span></h4>
+							<p>1. "몰"은 이 약관의 내용과 상호 및 대표자 성명, 영업소 소재지 주소(소비자의 불만을 처리할 수 있는 곳의 주소를 포함), 전화번호, 팩스번호, 전자우편주소, 사업자등록번호,
+							통신판매업신고번호, 개인정보관리책임자 등을 이용자가 쉽게 알 수 있도록 www.istyle24.com의 초기 서비스화면(전면)에 게시합니다.
+							다만, 이용약관의 내용은 이용자가 연결화면을 통하여 볼 수 있도록 할 수 있습니다.</p>
+							<p>2. "몰"은 이용자가 약관에 동의하기에 앞서 약관에 정하여져 있는 내용 중 청약철회 배송책임 환불조건 등과 같은 중요한 내용을 이용자가 이해할 수 있도록 별도의 연결화면 또는 팝업화면 등을
+							제공하여 이용자의 확인을 구하여야 합니다.</p>
+							<p>3. "몰"은 전자상거래등에서의소비자보호에관한법률, 약관의규제에관한법률, 전자거래기본법, 전자서명법, 정보통신망이용촉진등에관한법률, 방문판매등에관한법률, 소비자보호법 등
+							관련법을 위배하지 않는 범위에서 이 약관을 개정할 수 있습니다.</p>
+							<p>4. "몰"이 약관을 개정할 경우에는 적용일자 및 개정사유를 명시하여 현행약관과 함께 몰의 초기화면에 그 적용일자 7일 이전부터 적용일자 전일까지 공지합니다.
+							다만, 이용자에게 불리하게 약관내용을 변경하는 경우에는 최소한 30일 이상의 사전 유예기간을 두고 공지합니다. 이 경우 "몰"은 개정 전 내용과 개정 후 내용을 명확하게 비교하여 이용자가
+							알기 쉽도록 표시합니다.</p>
+							<p>5. "몰"이 약관을 개정할 경우에는 그 개정 약관은 그 적용일자 이후에 체결되는 계약에만 적용되고 그 이전에 이미 체결된 계약에 대해서는 개정전의 약관조항이 그대로 적용됩니다.
+							다만 이미 계약을 체결한 이용자가 개정 약관 조항의 적용을 받기를 원하는 뜻을 제3조에 의한 개정약관의 공지기간내에 "몰"에 송신하여 "몰"의 동의를 받은 경우에는 개정약관 조항이
+							적용됩니다.</p>
+							<p>6. 본 약관에서 정하지 아니한 사항과 이 약관의 해석에 관하여는 전자상거래등에서의 소비자보호에관한법률, 약관의규제등에관한법률, 공정거래위원회가 정하는 전자상거래등에서의
+							소비자보호지침 및 관계법령 또는 상관례에 따릅니다.</p>
+						</div>
+						<div id="terms4">
+							<h4><span>제4조 서비스의 제공 및 변경</span></h4>
+							<p>1. “몰"은 다음과 같은 업무를 수행합니다.</p>
+							<ol>
+								<li>① 재화 또는 용역에 대한 정보 제공 및 구매계약의 체결</li>
+								<li>② 구매계약이 체결된 재화 또는 용역의 배송</li>
+								<li>③ 기타 “몰”이 정하는 업무</li>
+							</ol>
+							<p>2. "몰"은 재화 또는 용역의 품절 또는 기술적 사양의 변경 등의 경우에는 장차 체결되는 계약에 의해 제공할 재화 또는 용역의 내용을 변경할 수 있습니다. 이 경우에는 변경된 재화 또는 용역의
+							내용 및 제공일자를 명시하여 현재의 재화 또는 용역의 내용을 게시한 곳에 즉시 공지합니다.단, "몰"이 합리적으로 예측할 수 없는 불가피한 여건이나 사정이 있는 경우, 위 공지를 하지 않을 수
+							있습니다.
+							</p>
+							<p>3. "몰"이 제공하기로 이용자와 계약을 체결한 서비스의 내용을 재화등의 품절 또는 기술적 사양의 변경 등의 사유로 변경할 경우에는 그 사유를 이용자에게 통지 합니다.</p>
+							<p>4. 전항의 경우 "몰"은 이로 인하여 이용자가 입은 손해를 배상합니다. 다만, "몰"이 고의 또는 과실이 없음을 입증하는 경우에는 그러하지 아니합니다.</p>
+						</div>
+						<div id="terms5">
+							<h4><span>제5조 서비스의 중단</span></h4>
+							<p>1. "몰"은 컴퓨터 등 정보통신설비의 보수점검·교체 및 고장, 통신의 두절 등의 사유가 발생한 경우에는 서비스의 제공을 일시적으로 중단할 수 있습니다.</p>
+							<p>2. "몰"은 제1항의 사유로 서비스의 제공이 일시적으로 중단됨으로 인하여 이용자 또는 제3자가 입은 손해에 대하여 배상합니다.단, "몰"에 고의 또는 과실이 없는 경우에는 그러하지
+							아니합니다.</p>
+							<p>3. "사업종목의 전환, 사업의 포기, 업체간의 통합 등의 이유로 서비스를 제공할 수 없게 되는 경우에는 "몰"은 제8조에 정한 방법으로 이용자에게 통지하고 당초 "몰"에서 제시한 조건에 따라
+							소비자에게 보상합니다.</p>
+							<p>4. 다만, "몰"이 보상기준 등을 고지하지 아니한 경우에는 이용자들의 적립금 등을 "몰"에서 통용되는 통화가치에 상응하는 현물 또는 현금으로 이용자에게 지급합니다.</p>
+						</div>
+						<div>
+							<h4  id="terms6"><span>제6조 회원가입</span></h4>
+							<p>1. 이용자는 "몰"이 정한 가입 양식에 따라 회원정보를 기입한 후 이 약관에 동의한다는 의사표시를 함으로서 회원가입을 신청합니다.</p>
+							<p>2. "몰"은 제1항과 같이 회원으로 가입할 것을 신청한 이용자 중 다음 각호에 해당하지 않는 한 회원으로 등록합니다.</p>
+							<ol>
+								<li>① 가입신청자가 이 약관 제7조 제3항에 의하여 이전에 회원자격을 상실한 적이 있는 경우, 다만 제7조 제3항에 의한 회원자격 상실후 3년이 경과한 자로서 "몰"의 회원 재가입 승낙을 얻은
+								경우에는 예외로 한다.</li>
+								<li>② 등록 내용에 허위, 기재누락, 오기가 있는 경우</li>
+								<li>③ 만 14세가 되지 않은 자가 신청하였을 경우</li>
+								<li>④기타 회원으로 등록하는 것이 "몰"의 기술상 현저히 지장이 있다고 판단되는 경우</li>
+							</ol>
+							<p>3. 회원가입계약의 성립시기는 "몰"의 승낙이 회원에게 도달한 시점으로 합니다.</p>
+							<p>4. 가입신청자가 "몰"에 회원으로 가입하더라도 로그인하지 않은 상태에서 주문하는 경우는 회원주문이 아니라 비회원주문으로 인정합니다.</p>
+							<p>5. 회원은 제15조 제1항에 의한 등록사항에 변경이 있는 경우, 즉시 전자우편 기타 방법으로 "몰"에 대하여 그 변경사항을 알려야 합니다.이러한 변경사항의 미 통보로 인해 발생하는 손해는
+							회원에게 그 책임이 있습니다.</p>
+						</div>
+						<div id="terms7">
+							<h4><span>제7조 회원 탈퇴 및 자격 상실 등</span></h4>
+							<p>1. 회원은 "몰"에 언제든지 탈퇴를 요청할 수 있으며 "몰"은 즉시 회원탈퇴를 처리합니다.</p>
+							<p>2. 회원이 다음 각호의 사유에 해당하는 경우, "몰"은 회원자격을 제한 및 정지시킬 수 있습니다.</p>
+							<p>3. "몰"이 회원 자격을 제한 정지 시킨 후, 동일한 행위가 2회 이상 반복되거나 30일 이내에 그 사유가 시정되지 아니하는 경우 "몰"은 회원자격을 상실시킬 수 있습니다.</p>
+							<p>4. "몰"이 회원자격을 상실시키는 경우에는 회원등록을 말소합니다. 이 경우 회원에게 이를 통지하고, 회원등록 말소 전에 최소한 30일 이상의 기간을 정하여 소명할 기회를 부여합니다.</p>
+						</div>
+						<div id="terms8">
+							<h4><span>제8조 회원에 대한 통지</span></h4>
+							<p>1. "몰"이 회원에 대한 통지를 하는 경우, 회원이 "몰"에 제출하여 지정한 전자우편 주소로 할 수 있습니다.</p>
+							<p>2. "몰"은 불특정다수 회원에 대한 통지의 경우 1주일이상 "몰" 게시판에 게시함으로서 개별 통지에 갈음할 수 있습니다.
+							다만, 회원 본인의 거래와 관련하여 중대한 영향을 미치는 사항에 대하여는 개별통지를 합니다.</p>
+						</div>
+						<div id="terms9">
+							<h4><span>제9조 구매신청</span></h4>
+							<p>"몰"이용자는 "몰"상에서 다음 또는 이와 유사한 방법에 의하여 구매를 신청하며, "몰"은 이용자가 구매신청을 함에 있어서 다음의 각 내용을 알기 쉽게 제공하여야 합니다.
+							단, 회원인 경우 제2호 내지 제4호의 적용을 제외할 수 있습니다.</p>
+							<p>1. 재화 등의 검색 및 선택</p>
+							<p>2. 성명, 주소, 전화번호, 전자우편주소(또는 이동전화번호) 등의 입력</p>
+							<p>3. 약관내용, 청약철회권이 제한되는 서비스, 배송료 설치비 등의 비용부담과 관련한 내용에 대한 확인</p>
+							<p>4. 이 약관에 동의하고 위 3.호의 사항을 확인하거나 거부하는 표시(예, 마우스 클릭)</p>
+							<p>5. 재화 등의 구매신청 및 이에 관한 확인 또는 "몰"의 확인에 대한 동의</p>
+							<p>6. 결제방법의 선택</p>
+						</div>
+						<div id="terms10">
+							<h4><span>제10조 계약의 성립</span></h4>
+							<p>1."몰"은 제9조와 같은 구매신청에 대하여 다음 각호에 해당하면 승낙하지 않을 수 있습니다. 다만, 미성년자와 계약을 체결하는 경우에는 법정대리인의 동의를 얻지 못하면 미성년자 본인 또는
+							법정대리인이 계약을 취소할 수 있다는 내용을 고지하여야 합니다.</p>
+							<ol>
+								<li>① 신청 내용에 허위, 기재누락, 오기가 있는 경우</li>
+								<li>② 미성년자가 담배, 주류 등 청소년보호법에서 금지하는 재화 및 용역을 구매하는 경우</li>
+								<li>③ 기타 구매신청에 승낙하는 것이 "몰" 기술상 현저히 지장이 있다고 판단하는 경우</li>
+							</ol>
+							<p>2. "몰"의 승낙이 제12조 제1항의 수신확인통지형태로 이용자에게 도달한 시점에 계약이 성립한 것으로 봅니다.</p>
+							<p>3. "몰"의 승낙의 의사표시에는 이용자의 구매 신청에 대한 확인 및 판매가능 여부, 구매신청의 정정 취소 등에 관한 정보 등을 포함하여야 합니다.</p>
+							<p>4. 이 약관에 동의하고 위 3.호의 사항을 확인하거나 거부하는 표시(예, 마우스 클릭)</p>
+							<p>5. 재화 등의 구매신청 및 이에 관한 확인 또는 "몰"의 확인에 대한 동의</p>
+						</div>
+						<div id="terms24">
+							<h4><span>제24조 재판권 및 준거법</span></h4>
+							<p>1."몰"과 이용자간에 발생한 전자상거래 분쟁에 관한 소송은 제소 당시의 이용자의 주소에 의하고, 주소가 없는 경우에는 거소를 관할하는 지방법원의 전속관할로 합니다.
+							다만, 제소 당시 이용자의 주소 또는 거소가 분명하지 않거나 외국 거주자의 경우에는 민사소송법상의 관할법원에 제기합니다.</p>
+							<p>2. "몰"과 이용자간에 제기된 전자상거래 소송에는 한국법을 적용합니다.</p>
+						</div>
+						<div id="terms">
+							<h4><span></span></h4>
+							<p></p>
+							<p></p>
+							<p></p>
+							<p></p>
+							<p></p>
+						</div>
+						<div>
+							<p>부칙 : 본 약관은 2016년 01월 04일부터 시행하며, 종전의 약관내용은 본 약관으로 대체합니다.</p>
+						</div>
+					</div>
+				</div> -->
+			</div>
+		</div>
+	</div>
+</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	// 약관 내부 링크
+	$(function() {
+		$(".hook_list ul li a").on("click", function() {
+			var hookHeader = $("header").outerHeight() + 100;
+			var hookHref = $(this).attr("href");
+			var hookPot = $(hookHref == "#" || hookHref == "" ? "body" : hookHref);
+			var hookPos = hookPot.offset().top - hookHeader;
+			$("html, body").animate({ scrollTop: hookPos }, 300);
+		});
+	});
+/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 2273 - 0
src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb2.html

@@ -0,0 +1,2273 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="web/common/layout/DefaultLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : MallMainFormWeb.html
+ * @desc    : 몰메인 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.01.28   gagamel     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+<div id="container" class="container main"> 
+	<!-- <div class="breadcrumb"> (breadcrumb) </div> -->
+
+	<div class="wrap ">
+		<!-- 1. 비주얼 슬라이드 -->
+		<div class="content wide main_visual">
+			<div class="cont_head dpnone">
+				<p class="t_c">비주얼 슬라이드</p>
+			</div>
+			<div class="cont_body">
+				<div class="post-slider">
+					<div class="post-wrapper post-visual">
+						<div class="post">
+							<div class="txtWrap">
+								<p class="vrt_txt">NBA</p>
+								<dl class="w">
+									<dt>NBA</dt>
+									<dd>2020 FALL</dd>
+									<dd>NEW ARRIVAL</dd>
+									<dd class="txt_xs">나만의 가을 스타일 찾기</dd>
+								</dl>
+								<button type="button" class="btn"><span>VIEW MORE</span></button>
+							</div>
+							<img src="/images/thumb/main_visual01.jpg" alt="">
+						</div>
+					
+						<div class="post">
+							<div class="txtWrap">
+								<p class="vrt_txt">vertical-BrandName</p>
+								<dl class="w">
+									<dt>브랜드명</dt>
+									<dd>F/W SEASON</dd>
+									<dd>DENIM SALE</dd>
+									<dd class="txt_xs">데님 신상 아이템 ~20% 세일</dd>
+								</dl>
+								<button type="button" class="btn"><span>VIEW MORE</span></button>
+							</div>
+							<img src="/images/thumb/main_visual02.jpg" alt="">
+						</div>
+	
+						<div class="post">
+							<div class="txtWrap">
+								<p class="vrt_txt">vertical-BrandName</p>
+								<dl class="w">
+									<dt>브랜드명</dt>
+									<dd>F/W SEASON</dd>
+									<dd>DENIM SALE</dd>
+									<dd class="txt_xs">데님 신상 아이템 ~20% 세일</dd>
+								</dl>
+								<button type="button" class="btn"><span>VIEW MORE</span></button>
+							</div>
+							<img src="/images/thumb/main_visual03.jpg" alt="">
+						</div>
+						<div class="post">
+							<div class="txtWrap">
+								<p class="vrt_txt">vertical-BrandName</p>
+								<dl class="">
+									<dt>브랜드명</dt>
+									<dd>F/W SEASON</dd>
+									<dd>DENIM SALE</dd>
+									<dd class="txt_xs">데님 신상 아이템 ~20% 세일</dd>
+								</dl>
+								<button type="button" class="btn"><span>VIEW MORE</span></button>
+							</div>
+							<img src="/images/thumb/main_visual04.jpg" alt="">
+						</div>
+						<div class="post">
+							<div class="txtWrap">
+								<p class="vrt_txt">vertical-BrandName</p>
+								<dl class="">
+									<dt>브랜드명</dt>
+									<dd>F/W SEASON</dd>
+									<dd>DENIM SALE</dd>
+									<dd class="txt_xs">데님 신상 아이템 ~20% 세일</dd>
+								</dl>
+								<button type="button" class="btn"><span>VIEW MORE</span></button>
+							</div>
+							<img src="/images/thumb/main_visual05.jpg" alt="">
+						</div>
+					</div>
+				</div>
+				
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+		<!-- 2. 스타일리포트 -->
+		<div class="content main_stylereport">
+			<div class="cont_head">
+				<p class="displayH t_c">스타일리포트</p>
+			</div>
+			<div class="cont_body">
+				<div class="ui_row">
+					<div class="ui_col_3">
+						<a href="#none">
+							<img src="/images/thumb/main_stylereport01.jpg" alt="">
+							<dl>
+								<dt>겨울 아우터 미리 준비하기</dt>
+								<dd>올 겨울 무엇을 입을지 고민하는</dd>
+								<dd>당신을 위해 준비한 아우터 픽을 만나보자</dd>
+							</dl>
+						</a>
+					</div>
+					<div class="ui_col_3">
+						<a href="#none">
+							<img src="/images/thumb/main_stylereport02.jpg" alt="">
+							<dl>
+								<dt>트렌드 스타일링</dt>
+								<dd>가을의 냄새가 느껴지는 요즘,</dd>
+								<dd>쌀쌀한 날씨에서 나를 지켜줄 아우터만 모았다</dd>
+							</dl>
+						</a>
+					</div>
+					<div class="ui_col_3">
+						<a href="#none">
+							<img src="/images/thumb/main_stylereport03.jpg" alt="">
+							<dl>
+								<dt>TBJ 가을신상 아이템</dt>
+								<dd>오직 스타일24 에서만 만날 수 있는</dd>
+								<dd>TBJ의 가을 신상 아이템들을 만나보자</dd>
+							</dl>
+						</a>
+					</div>
+					<div class="ui_col_3">
+						<a href="#none">
+							<img src="/images/thumb/main_stylereport04.jpg" alt="">
+							<dl>
+								<dt>컬리수 2020 F/W</dt>
+								<dd>사랑스러운 컬리수의 2020 F/W 신상</dd>
+								<dd>~10% 쿠폰찬스 놓치지 말자</dd>
+							</dl>
+						</a>
+					</div>
+				</div>
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+		<!-- 3. 트렌디한 신상아이템 -->
+		<div class="content wide main_trendy">
+
+			<div class="cont_head">
+				
+				<p class="displayH t_c">트렌디한 신상 아이템 </p>
+			</div>
+			<div class="cont_body">
+				<div class="post-slider variable">
+					<div class="post-wrapper post-trendy">
+						<div class="post">
+							<div class=" item_prod inc">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/main_trendy01.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">스타 착용 여성 퍼 아플리케 오버핏 투마일 웨어링 점퍼</div>
+										<p class="itemPrice">488,000</p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod shr">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/main_trendy02.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">유니 다이아몬드 누빔 포인트포켓 거위털 밴딩 점퍼 스웨이드 집업 트러커 점퍼</div>
+										<p class="itemPrice">
+											<span>80,100</span>
+											<span class="itemPrice_original">89,000</span>
+											<span class=" itemPercent">10%</span>
+										</p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod shr">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/main_trendy03.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">여성 카라리스 오버핏 메탈릭 포켓 셔츠</div>
+										<p class="itemPrice">488,000</p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod inc">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/main_trendy04.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">가을 신상 면 혼방 블루종 자수 로고 포인트 자켓 유니 스몰 로고 긴팔 티셔츠</div>
+										<p class="itemPrice">488,000</p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod shr">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/main_trendy05.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">가을 신상 남성 스탠다드핏 로고맨 블루 볼 캡 유니 경량다운 시보리넥 베스트</div>
+										<p class="itemPrice">488,000</p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<img src="/images/thumb/main_trendy03.jpg" alt="">
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+		<!-- 4. 잇 아이템 -->
+		<div class="content main_it">
+			<div class="cont_head">
+				<p class="displayH">가장 사랑받은<br>잇 아이템</p>
+				<a href="#none"><span>전체보기</span></a>
+			</div>
+			<div class="cont_body">
+				<div class="it_nav">
+					<ul>
+						<li><button class="btn btn_link active" data-tab="it1"><span>여성</span></button></li>
+						<li><button class="btn btn_link" data-tab="it2"><div><span>남성</span></button></li>
+						<li><button class="btn btn_link" data-tab="it3"><div><span>유아동</span></button></li>
+						<li><button class="btn btn_link" data-tab="it4"><div><span>골프</span></button></li>
+						<li><button class="btn btn_link" data-tab="it5"><div><span>라이프</span></button></li>
+					</ul>
+				</div>
+				<div class="post-slider it_item active " id="it1">
+					<div class="post-wrapper post-it">
+						<div class="post">
+							<div class=" item_prod sUiXc "> <!-- item_prod ranker d_detail -->
+								
+								<div class="item_state"> <!-- item_state AD soldout -->
+									<a href="#none" class=" itemLink">
+										<div class="shape ranker"><span>1</span></div>
+										<div class="itemPic">
+											<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class=" itemBrand">BRAND NAME</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="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="shape "><span>2</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">여성 체인 프린트 큐롯 스커트 프린트 큐롯 스커트</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="shape"><span>3</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="shape"><span>4</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 니트 후드 경량 다운 점퍼 여성 니트 후드 경량 다운 점퍼 여성 니트 후드 경량 다운 점퍼</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="shape "><span>5</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod sUiXc "> 
+								<div class="item_state"> 
+									<a href="#none" class=" itemLink">
+										<div class="shape ranker"><span>1</span></div>
+										<div class="itemPic">
+											<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class=" itemBrand">BRAND NAME</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="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape"><span>88</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape"><span>999</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape"><span>특가</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape dealdetail"><span>상품<br>   04</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+					</div>
+					<div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100">
+						<span class="slider__label sr-only">
+						</span>
+					</div>
+				</div>
+				<div class="post-slider it_item " id="it2">
+					<div class="post-wrapper post-it">
+						<div class="post">
+							<div class=" item_prod sUiXc "> <!-- item_prod ranker d_detail -->
+								
+								<div class="item_state"> <!-- item_state AD soldout -->
+									<a href="#none" class=" itemLink">
+										<div class="rank ranker"><span>1</span></div>
+										<div class="itemPic">
+											<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class=" itemBrand">BRAND NAME</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="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="rank r⸏an⸏ke⸏r"><span>88</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">여성 체인 프린트 큐롯 스커트 프린트 큐롯 스커트</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="rank"><span>100</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="rank"><span>특가</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 니트 후드 경량 다운 점퍼 여성 니트 후드 경량 다운 점퍼 여성 니트 후드 경량 다운 점퍼</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="rank detail"><span>상품 014</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod sUiXc "> 
+								<div class="item_state"> 
+									<a href="#none" class=" itemLink">
+										<div class="shape ranker"><span>1</span></div>
+										<div class="itemPic">
+											<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class=" itemBrand">BRAND NAME</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="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape"><span>88</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape"><span>999</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape"><span>특가</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape dealdetail"><span>상품<br>   04</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+					</div>
+					<div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100">
+						<span class="slider__label sr-only">
+						</span>
+					</div>
+				</div>
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+		<!-- 5. 프로모션배너 -->
+		<div class="content main_2stage">
+			<div class="cont_head dpnone">
+				<p class="t_c">프로모션배너</p>
+			</div>
+			<div class="cont_body">
+				<div class="ui_row">
+					<div class="ui_col_6">
+						<a href="#none"><img src="/images/thumb/bnn_2stage1.jpg" alt=""></a>
+					</div>
+					<div class="ui_col_6">
+						<a href="#none"><img src="/images/thumb/bnn_2stage2.jpg" alt=""></a>
+					</div>
+				</div>
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+
+		<!-- 6. 타임딜 : 슬라이드 -->
+		<div class="content wide main_deal">
+			<div class="cont_head">
+				<p class="displayH">오늘만<br>이 가격에 만나요</p>
+				<a href="#none"><span>전체보기</span></a>
+
+				<div class="count">
+					<style>
+							/**
+*  Progress Bar
+*/
+.progress {
+display: block;
+width: 100%;
+height: 2px;
+border-radius: 0px;
+overflow: hidden;
+background-color: #dddddd;
+background-image: linear-gradient(to right, #222222, #222222);
+background-repeat: no-repeat;
+/* background-size: 0 100%; */
+background-size: 0% 100%;
+transition: background-size .4s ease-in-out;
+}
+						</style>
+				</div>
+			</div>
+			<div class="cont_body">
+				<div class="post-slider  active" id="it1">
+					<div class="post-wrapper post-deal">
+						<div class="post">
+							<div class=" item_prod sUiXc "> <!-- item_prod ranker d_detail -->
+								
+								<div class="item_state"> <!-- item_state AD soldout -->
+									<a href="#none" class=" itemLink">
+										<div class="rank ranker"><span>1</span></div>
+										<div class="itemPic">
+											<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class=" itemBrand">BRAND NAME</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="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="rank r⸏an⸏ke⸏r"><span>88</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod2.jpg">
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">여성 체인 프린트 큐롯 스커트 프린트 큐롯 스커트</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="rank"><span>100</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod3.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="rank"><span>특가</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod4.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 니트 후드 경량 다운 점퍼 여성 니트 후드 경량 다운 점퍼 여성 니트 후드 경량 다운 점퍼</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="rank detail"><span>상품 014</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod sUiXc "> 
+								<div class="item_state"> 
+									<a href="#none" class=" itemLink">
+										<div class="shape ranker"><span>1</span></div>
+										<div class="itemPic">
+											<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod4.jpg">
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class=" itemBrand">BRAND NAME</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="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape"><span>88</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape"><span>999</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape"><span>특가</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="post">
+							<div class=" item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+									<div class="shape dealdetail"><span>상품<br>   04</span></div>
+										<div class=" itemPic">
+											<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg"> 
+											<button type="button" class="itemLike">관심상품 추가</button>
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+
+										<div class=" itemName">[온라인 단독] 여성 겨울 부클칼라 A라인 다운베스트(구스)</div>
+										<p class="itemPrice">488,000 </p>
+									</a>
+								</div>
+							</div>
+						</div>							
+					</div>
+					<div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100">
+						<span class="slider__label sr-only">
+						</span>
+					</div>
+				</div>
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+		<!-- 7. 브랜드픽 -->
+		<div class="content main_pick">
+			<div class="cont_head">
+				<p class="displayH t_c">브랜드 PICK</p>
+			</div>
+			<div class="cont_body">
+				<div class="post-slider variable">
+					<div class="post-wrapper post-pick-nav">
+						<div><span><img src="/images/thumb/main_picklogo01.png" alt="barnd name"></span></div>
+						<div><span><img src="/images/thumb/main_picklogo02.png" alt="barnd name"></span></div>
+						<div><span><img src="/images/thumb/main_picklogo03.png" alt="barnd name"></span></div>
+						<div><span><img src="/images/thumb/main_picklogo04.png" alt="barnd name"></span></div>
+						<div><span><img src="/images/thumb/main_picklogo05.png" alt="barnd name"></span></div>
+						<div><span><img src="/images/thumb/main_picklogo06.png" alt="barnd name"></span></div>
+					</div>
+				</div>
+
+				<div class="post-slider">
+					<div class="post-wrapper post-pick-for">
+						<div>
+							<div class="pick_look">
+								<div class="post-slider variable">
+									<div class="post-wrapper post-lookbook">
+										<div><img src="/images/thumb/main_pickImg01.jpg" alt="barnd lookbook"></div>
+										<div><img src="/images/thumb/main_pickImg01.jpg" alt="barnd lookbook"></div>
+										<div><img src="/images/thumb/main_pickImg01.jpg" alt="barnd lookbook"></div>
+									</div>
+								</div>
+							</div>
+							<div class="pick_item">
+								
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink" tabindex="0">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+												<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+											</div>
+											<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 class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink" tabindex="0">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+												<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+											</div>
+											<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 class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink" tabindex="0">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+												<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+											</div>
+											<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>
+							<div class="pick_look">
+								<div class="post-slider variable">
+									<div class="post-wrapper post-lookbook">
+										<div><img src="/images/thumb/main_pickImg01.jpg" alt="barnd lookbook"></div>
+										<div><img src="/images/thumb/main_pickImg01.jpg" alt="barnd lookbook"></div>
+										<div><img src="/images/thumb/main_pickImg01.jpg" alt="barnd lookbook"></div>
+									</div>
+								</div>
+							</div>
+							<div class="pick_item">
+								
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink" tabindex="0">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod2.jpg">
+												<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+											</div>
+											<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 class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink" tabindex="0">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod2.jpg">
+												<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+											</div>
+											<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 class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink" tabindex="0">
+											<div class="itemPic">
+												<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod2.jpg">
+												<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+											</div>
+											<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>
+							<div class="pick_look"></div>
+							<div class="pick_item"></div>
+						</div>
+						<div>
+							<div class="pick_look"></div>
+							<div class="pick_item"></div>
+						</div>
+						<div>
+							<div class="pick_look"></div>
+							<div class="pick_item"></div>
+						</div>
+						<div>
+							<div class="pick_look"></div>
+							<div class="pick_item"></div>
+						</div>
+					</div>
+				</div>
+
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+
+		<!-- 8. 가로 긴 배너 슬라이드 -->
+		<!-- bnn_1stage -->
+		<div class="content wide main_1stage">
+			<div class="cont_head dpnone">
+				<p class="t_c">배너 슬라이드</p>
+			</div>
+			<div class="cont_body">
+				<div class="post-slider">
+					<div class="post-wrapper post-bnnWide">
+						<div class="post">
+							<a href="#none">
+								<div class="bnnbox" style="background:#e3e7ea;">
+									<div class="txtWrap ">
+										<p>TBJ 가을 신상</p>
+										<p>아우터 + 이너 단독세일</p>
+										<button type="button" class="btn">VIEW MORE</button>
+									</div>
+									<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/bnn_1stage.jpg"> 
+								</div>
+							</a>
+						</div>
+						<div class="post">
+							<a href="#none">
+								<div class="bnnbox" style="background:#eef1f3;">
+									<div class="txtWrap ">
+										<p>TBJ 가을 신상</p>
+										<p>아우터 + 이너 단독세일</p>
+										<button type="button" class="btn">VIEW MORE</button>
+									</div>
+									<img alt="BLUE-a" class=" vLHTC pd_img" src="/images/thumb/bnn_1stage.jpg"> 
+								</div>
+							</a>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+
+		<!-- 9. MD추천 스타일 -->
+		<div class="content main_recomm">
+			<div class="cont_head">
+				<p class="displayH t_c">MD가 추천하는 스타일</p>
+			</div>
+			<div class="cont_body">
+				<section>
+					<div class="sec_head">
+						<div class="filter action">
+							<button data-filter="tag_warm" class="btn">따뜻한 무드</button>
+							<button data-filter="tag_daily" class="btn">일상의 데일리룩</button>
+							<button data-filter="tag_homeware" class="btn">집콕스타일</button>
+							<button data-filter="tag_point" class="btn" disabled >포인트 아이템</button>
+							<button data-filter="tag_classic" class="btn" disabled >클래식 자켓</button>
+							<button data-filter="Test" class="btn test_btn" disabled >테스트 버튼</button>
+						</div>
+					</div>
+					<div class="sec_body">
+						<div class="post-slider">
+							<div class="post-wrapper post-recomm">
+								<div class="tag_warm post">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod3.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod3.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="tag_warm post">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod3.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod3.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="tag_daily post">
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod4.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod2.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod4.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod2.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod4.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="tag_daily post">
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod4.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod2.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod4.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod2.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod4.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="tag_homeware post">
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="tag_homeware post">
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+									<div class=" item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/prod5.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME</p>
+
+												<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class=" itemPercent">10%</span>
+												</p>
+												<div class="itemComment">#주문 폭주 상품</div>
+											</a>
+										</div>
+									</div>
+								</div>
+							</div>
+						</div>
+						
+					</div>
+					<div class="sec_foot dpnone">SECTION-FOOT</div>
+				</section>
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+
+		<!-- 10. 당신을위한제안 -->
+		<div class="content wide main_foryou">
+			<div class="cont_head">
+				<p class="displayH">당신을 위한 제안</p>
+				<span>스타일24에서 가장 주목받는 상품을 살펴보세요</span>
+			</div>
+			<div class="cont_body">
+
+				<div class="post-slider fy_nav">
+					<div class="post-wrapper post-sug">
+						<div class="post">
+							<ul>
+								<li><button class="btn btn_shape active" data-tab="fy1"><div><span class="number">1</span><span>BUCKAROO</span></div></button><a href="#none">더보기</a></li>
+								<li><button class="btn btn_shape" data-tab="fy2"><div><span class="number">2</span><span>기모청바지</span></div></button><a href="#none">더보기</a></li>
+								<li><button class="btn btn_shape" data-tab="fy3"><div><span class="number">3</span><span>겨울 팬츠</span></div></button><a href="#none">더보기</a></li>
+								<li><button class="btn btn_shape" data-tab="fy4"><div><span class="number">4</span><span>컨버스 주니어</span></div></button><a href="#none">더보기</a></li>
+								<li><button class="btn btn_shape" data-tab="fy5"><div><span class="number">5</span><span>모이몰른</span></div></button><a href="#none">더보기</a></li>
+							</ul>
+						</div>
+						<div class="post">
+							<ul>
+								<li><button class="btn btn_shape" data-tab="fy6"><div><span class="number">6</span><span>컨버스 주니어</span></div></button><a href="#none">더보기</a></li>
+								<li><button class="btn btn_shape" data-tab="fy7"><div><span class="number">7</span><span>겨울 팬츠</span></div></button><a href="#none">더보기</a></li>
+								<li><button class="btn btn_shape" data-tab="fy8"><div><span class="number">8</span><span>BUCKAROO</span></div></button><a href="#none">더보기</a></li>
+								<li><button class="btn btn_shape" data-tab="fy9"><div><span class="number">9</span><span>모이몰른</span></div></button><a href="#none">더보기</a></li>
+								<li><button class="btn btn_shape" data-tab="fy10"><div><span class="number">10</span><span>기모청바지</span></div></button><a href="#none">더보기</a></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+
+
+				<div class="fy_item active" id="fy1">
+					<div class="part">
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug01.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">자카드 방풍 패딩 스웨터 가디건 자카드 </div>
+										<p class="itemPrice">80,100
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug02.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+											<span class="itemPrice_original">89,000</span>
+											<span class=" itemPercent">10%</span>
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+					</div>
+					<div class="part lg">
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug03.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+											<span class="itemPrice_original">89,000</span>
+											<span class=" itemPercent">10%</span>
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+					</div>
+					<div class="part">
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug04.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug05.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 가디건</div>
+										<p class="itemPrice">80,100
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+					</div>
+					<div class="part">
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug06.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+											<span class="itemPrice_original">89,000</span>
+											<span class=" itemPercent">10%</span>
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug07.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+					</div>
+				</div>
+
+				<div class="fy_item" id="fy2">
+					<div class="part">
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug04.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug05.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 가디건</div>
+										<p class="itemPrice">80,100
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+					</div>
+					<div class="part">
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug01.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">자카드 방풍 패딩 스웨터 가디건 자카드 </div>
+										<p class="itemPrice">80,100
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug02.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+											<span class="itemPrice_original">89,000</span>
+											<span class=" itemPercent">10%</span>
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+					</div>
+					<div class="part">
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug06.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+											<span class="itemPrice_original">89,000</span>
+											<span class=" itemPercent">10%</span>
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug07.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+					</div>
+					<div class="part lg">
+						<div class="item_prod">
+							<div class="item_state">
+								<a href="#none" class="itemLink" tabindex="0">
+									<div class="itemPic">
+										<img alt="BLACK-a" class=" vLHTC pd_img" src="/images/thumb/main_sug03.jpg">
+										<button type="button" class="itemLike" tabindex="0">관심상품 추가</button>
+									</div>
+									<div class="itemInfo">
+										<p class="itemBrand">BRAND NAME</p>
+										<div class=" itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+										<p class="itemPrice">80,100
+											<span class="itemPrice_original">89,000</span>
+											<span class=" itemPercent">10%</span>
+										</p>
+									</div>
+								</a>
+							</div>
+						</div>
+					</div>
+				</div>
+
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+
+
+		<!-- 11. 바닥 슬라이드 -->
+		<div class="content wide main_tv">
+			<div class="cont_head">
+				<p class="displayH t_c">STYLE24 TV</p>
+			</div>
+			<div class="cont_body">
+				<div class="post-slider">
+					<div class="post-wrapper post-tv">
+						<div class="post">
+							<div class="movbox">
+								<iframe width="100%" height="100%" src="https://www.youtube.com/embed/hqryeW6scd0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+							</div>
+						</div>
+						<div class="post">
+							<div class="movbox">
+								<iframe width="100%" height="100%" src="https://www.youtube.com/embed/J7nowE2iTIM" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+							</div>
+						</div>
+						<div class="post">
+							<div class="movbox">
+								<iframe width="100%" height="100%" src="https://www.youtube.com/embed/cRiKrFk7FTM" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+							</div>
+						</div>
+						<div class="post">
+							<div class="movbox">
+								<iframe width="100%" height="100%" src="https://www.youtube.com/embed/hqryeW6scd0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+							</div>
+						</div>
+						<div class="post">
+							<div class="movbox">
+								<iframe width="100%" height="100%" src="https://www.youtube.com/embed/J7nowE2iTIM" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+							</div>
+						</div>
+						<div class="post">
+							<div class="movbox">
+								<iframe width="100%" height="100%" src="https://www.youtube.com/embed/cRiKrFk7FTM" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+							</div>
+						</div>
+					</div>
+				</div>
+
+			</div>
+			<div class="cont_foot dpnone">
+				CONT-FOOT
+			</div>
+		</div>
+	<!-- End Of Main Contents -->
+	</div>
+</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	// 컨텐츠 호출
+	$(document).ready(function() {
+// 		$("#header").load("head.html");
+// 		$("#footer").load("foot.html");
+
+		$('.post-visual').slick({
+			// autoplay: true,
+			// autoplaySpeed: 1000,
+			dots: true,
+			infinite: true,
+			centerMode: true,
+			slidesToShow: 1,
+			slidesToScroll: 1,
+			centerMode: true,
+			centerPadding: '340px',
+		});
+
+		$('.post-trendy').slick({
+			// autoplay: true,
+			// autoplaySpeed: 1000,
+			dots: true,
+			infinite: true,
+			slidesToShow: 5,
+			slidesToScroll: 1,
+			variableWidth: true,
+		});	
+		
+		$('.post-it').slick({
+			// autoplay: true,
+			// autoplaySpeed: 1000,
+			// dots: true,
+			infinite: false,
+			arrows: false,
+			slidesToShow: 4,
+			slidesToScroll: 4,
+			speed: 400,
+			variableWidth: true,
+			freeMode: true,
+		});
+		
+		$(".it_nav .btn").click(function(){
+			var itActive = $(this).attr('data-tab');
+			$(".it_nav .btn").removeClass('active');
+			$(".it_item").removeClass('active');
+			$(this).addClass('active');
+			$('#'+itActive).addClass('active');
+		});
+		
+		// $('.post-it').slick('unslick');
+		//#it1 progress
+		$it1Slider = $('#it1 .post-it');
+		$it1ProgressBar = $('#it1 .post-it + .progress');
+		$it1ProgressBarLabel = $( '#it1 .post-it + .slider__label' );
+		$it1Slider.on('beforeChange', function(event, slick, currentSlide, nextSlide) {   
+			var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
+			$it1ProgressBar
+				.css('background-size', calc + '% 100%')
+				.attr('aria-valuenow', calc );
+			$it1ProgressBarLabel.text( calc + '% completed' );
+		});
+
+		//#it2 progress
+		var $it2Slider = $('#it2 .post-it');
+		var $it2ProgressBar = $('#it2 .post-it + .progress');
+		var $it2ProgressBarLabel = $( '#it2 .post-it + .slider__label' );
+		$it2Slider.on('beforeChange', function(event, slick, currentSlide, nextSlide) {   
+			var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
+			$it2ProgressBar
+				.css('background-size', calc + '% 100%')
+				.attr('aria-valuenow', calc );
+			$it2ProgressBarLabel.text( calc + '% completed' );
+		});
+		
+		$('.post-deal').slick({
+			// dots: true,
+			infinite: false,
+			arrows: false,
+			slidesToShow: 4,
+			slidesToScroll: 2,
+			variableWidth: true,
+			speed: 400,
+		});
+		
+		//post-deal progress
+		var $dealSlider = $('.post-deal');
+		var $dealProgressBar = $('.post-deal + .progress');
+		var $dealProgressBarLabel = $( '.post-deal + .slider__label' );
+		$dealSlider.on('beforeChange', function(event, slick, currentSlide, nextSlide) {   
+			var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
+			$dealProgressBar
+				.css('background-size', calc + '% 100%')
+				.attr('aria-valuenow', calc );
+			$dealProgressBarLabel.text( calc + '% completed' );
+		});
+
+		$('.post-lookbook').slick({
+			slidesToShow: 1,
+			slidesToScroll: 1,
+			dots: true,
+			arrows:false,
+			infinite: true,
+			autoplay: true,
+			autoplaySpeed: 1000,
+		});
+		
+		$('.post-pick-nav').slick({
+			infinite: true,
+			slidesToScroll: 1,
+			focusOnSelect: true,
+			variableWidth: true,
+			dots: false,
+			asNavFor: '.post-pick-for',
+		});
+		
+		$('.post-pick-for').slick({
+			slidesToShow: 1,
+			slidesToScroll: 1,
+			arrows: false,
+			fade: true,
+			asNavFor: '.post-pick-nav',
+		});
+
+		$('.post-bnnWide').slick({
+			slidesToShow: 1,
+			slidesToScroll: 1,
+			// cssEase: 'linear'
+			// autoplay: true,
+			// autoplaySpeed: 1000,
+		});
+		$('.post-recomm').slick({
+			slidesToShow: 1,
+			slidesToScroll: 1,
+			dots: true,
+			infinite: true,
+		});
+		
+		$(".action button").on('click', function(){
+			var filter = $(this).data('filter');
+			$(".post-recomm").slick('slickUnfilter');
+			
+			if(filter == 'tag_warm'){
+				$(".post-recomm").slick('slickFilter','.tag_warm');
+			}
+			else if(filter == 'tag_daily'){
+				$(".post-recomm").slick('slickFilter','.tag_daily');
+			}
+			else if(filter == 'tag_homeware'){
+				$(".post-recomm").slick('slickFilter','.tag_homeware');
+			}
+			else if(filter == 'tag_point'){
+				$(".post-recomm").slick('slickFilter','.tag_point');
+			}
+			else if(filter == 'tag_classic'){
+				$(".post-recomm").slick('slickFilter','.tag_classic');
+			}
+			else if(filter == 'all'){		
+				$(".post-recomm").slick('slickUnfilter');
+			}
+		})
+
+		$('.post-sug').slick({
+			slidesToShow: 1,
+			slidesToScroll: 1,
+			dots: true,
+			arrows: false,
+			fade: true,
+			infinite: true,
+			// autoplay: true,
+			// autoplaySpeed: 3000,
+		});
+		
+		$(".fy_nav .btn_shape").click(function(){
+			var fyActive = $(this).attr('data-tab');
+			$(".fy_nav .btn_shape").removeClass('active');
+			$(".fy_item").removeClass('active');
+			$(this).addClass('active');
+			$('#'+fyActive).addClass('active');
+		});
+
+		$('.post-tv').slick({
+			swipeToSlide: true,
+			dots: true,
+			infinite: true,
+			slidesToShow: 1,
+			slidesToScroll: 1,
+			centerMode: true,
+			centerPadding: '340px',
+			
+			// autoplay: true,
+			// autoplaySpeed: 850,
+
+			// 반응형대응
+			// responsive: [{
+			// 	breakpoint: 768,
+			// 	settings: {
+			// 		arrows: false,
+			// 		centerMode: true,
+			// 		centerPadding: '40px',
+			// 		slidesToShow: 3
+			// 	}
+			// },
+			// {
+			// 	breakpoint: 480,
+			// 	settings: {
+			// 		arrows: false,
+			// 		centerMode: true,
+			// 		centerPadding: '40px',
+			// 		slidesToShow: 1
+			// 	}
+			// }]
+		});
+	});
+	
+	// header scroll
+	$(function(){
+		$(window).scroll(function(){
+			var scroll = $(this).scrollTop();
+			var headerH = $(".header").height();
+			if ($(window).scrollTop() > headerH){
+				$(".header").addClass("minify");
+				return false;
+			}
+			else {
+				$(".header").removeClass("minify");
+				return false;
+			}
+		});
+	});
+/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 19 - 19
src/main/webapp/WEB-INF/views/web/goods/GoodsCouponFormWeb.html

@@ -43,7 +43,7 @@
 							<button type="button" class="btn btn_dark btn_block btn_coupon_down"   disabled="disabled"><span>받기완료</span></button>
 							</th:block>
 							<th:block th:unless="${goodsCoupon.custPubLimitQty > 0 and goodsCoupon.custPubLimitQty <= goodsCoupon.custCouponCnt}">
-							<button type="button" class="btn btn_dark btn_block btn_coupon_down" th:attr="cpnId=${goodsCoupon.cpnId}" th:id="${'coupon_'+goodsCoupon.cpnId}" onclick="jfGoodsCouponDown(this);"><span>쿠폰받기</span></button>
+							<button type="button" class="btn btn_dark btn_block btn_coupon_down" th:attr="cpnId=${goodsCoupon.cpnId}" th:id="${'coupon_'+goodsCoupon.cpnId}" onclick="fnGoodsCouponDown(this);"><span>쿠폰받기</span></button>
 							</th:block>
 						</div>
 					</li>
@@ -52,7 +52,7 @@
 		</form>	
 		</div>
 		<div class="modal-footer">
-			<button type="button" class="btn btn_primary btn_all_cpdown" onclick="jfGoodsCouponDownAll();"><span>쿠폰 모두 받기</span></button>
+			<button type="button" class="btn btn_primary btn_all_cpdown" onclick="fnGoodsCouponDownAll();"><span>쿠폰 모두 받기</span></button>
 		</div>
 	</div>
 </div>
@@ -61,18 +61,18 @@
 /*<![CDATA[*/
 
 	// 쿠폰 다운로드
-	var jfGoodsCouponDown = function(obj){
+	var fnGoodsCouponDown = function(obj){
 	
 		if (!cfCheckLogin()) {
 			cfnGoToPage(_PAGE_LOGIN);
 			return false;
 		}
 		
-		var $obj = $(obj);
-		var cpnId = $obj.attr('cpnId');
-		var goodsCd = $('#goodsCouponForm input[name=goodsCd]').val();
+		let $obj = $(obj);
+		let cpnId = $obj.attr('cpnId');
+		let goodsCd = $('#goodsCouponForm input[name=goodsCd]').val();
 		
-		 gagajf.ajaxJsonSubmit(_PAGE_GOODS_CPN_DOWNLOAD, JSON.stringify({goodsCd: goodsCd, cpnId: cpnId}), jfGoodsCouponCallBack);
+		 gagajf.ajaxJsonSubmit(_PAGE_GOODS_CPN_DOWNLOAD, JSON.stringify({goodsCd: goodsCd, cpnId: cpnId}), fnGoodsCouponCallBack);
 		 
 	//쿠폰이 발급되었습니다
 	//죄송합니다. 쿠폰이 모두 소진되었습니다
@@ -80,11 +80,11 @@
 	}
 	
 	// 쿠폰다운로드 콜백
-	var jfGoodsCouponCallBack = function(result){
+	var fnGoodsCouponCallBack = function(result){
 		if (result.status == "200"){
-			var cpnId = result.params.cpnId;
+			let cpnId = result.params.cpnId;
 			if (result.goodsCouponList == null) return;
-			var list = result.goodsCouponList;
+			let list = result.goodsCouponList;
 
 			list.forEach(function(coupon){
 				if (coupon.cpnId == cpnId){
@@ -108,10 +108,10 @@
 	
 	
 	// 쿠폰 전체 다운로드
-	var jfGoodsCouponDownAll = function(){
+	var fnGoodsCouponDownAll = function(){
 		//00개 쿠폰이 발급되었습니다.
-		var couponDownAbleYn = "N";
-		var arrCpnId = [];
+		let couponDownAbleYn = "N";
+		let arrCpnId = [];
 		$('.btn_coupon_down').each(function(){
 			if (!$(this).attr('disabled')){
 				couponDownAbleYn = "Y";
@@ -123,21 +123,21 @@
 			mcxDialog.alert("다운 받을 쿠폰이 없습니다.");
 			return false;
 		}
-		var goodsCd = $('#goodsCouponForm input[name=goodsCd]').val();
-		gagajf.ajaxJsonSubmit(_PAGE_GOODS_CPN_DOWNLOAD, JSON.stringify({goodsCd: goodsCd, arrCpnId: arrCpnId}), jfGoodsCouponDownAllBack);
+		let goodsCd = $('#goodsCouponForm input[name=goodsCd]').val();
+		gagajf.ajaxJsonSubmit(_PAGE_GOODS_CPN_DOWNLOAD, JSON.stringify({goodsCd: goodsCd, arrCpnId: arrCpnId}), fnGoodsCouponDownAllBack);
 		
 	}
 	
 	// 쿠폰 전체 다운로드 콜백
-	var jfGoodsCouponDownAllBack = function(result){
+	var fnGoodsCouponDownAllBack = function(result){
 		if (result.status == "200"){
 			if (result.goodsCouponList == null) return;
-			var list = result.goodsCouponList;
+			let list = result.goodsCouponList;
 
 			list.forEach(function(coupon){
 				$('.btn_coupon_down').each(function(){
 					if (!$(this).attr('disabled')){
-						var cpnId = $(this).attr('cpnId');
+						let cpnId = $(this).attr('cpnId');
 						if (coupon.cpnId == cpnId){
 							if (Number(coupon.custPubLimitQty) > 0){
 								if (Number(coupon.custPubLimitQty) <= Number(coupon.custCouponCnt)){
@@ -161,7 +161,7 @@
 	
 	
 	var jfCouponCheck = function(){
-		var couponDownAbleYn = "N";
+		let couponDownAbleYn = "N";
 		$('.btn_coupon_down').each(function(){
 			if (!$(this).attr('disabled')){
 				couponDownAbleYn = "Y";

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

@@ -75,7 +75,7 @@
 									배송업체
 								</th>
 								<td>
-									<th:block th:text="${deliveryInfo.shipCompNm}" ></th:block>
+									<th:block th:if="${deliveryInfo != null}" th:text="${deliveryInfo.shipCompNm}" ></th:block>
 								</td>
 							</tr>
 							<tr>
@@ -106,7 +106,7 @@
 									반품/교환 배송업체
 								</th>
 								<td>
-									<th:block th:text="${deliveryInfo.shipCompNm}" ></th:block>
+									<th:block  th:if="${deliveryInfo != null}" th:text="${deliveryInfo.shipCompNm}" ></th:block>
 								</td>
 							</tr>
 							<tr>
@@ -114,7 +114,7 @@
 									반품배송비
 								</th>
 								<td>
-									<th:block th:text="${#numbers.formatInteger(deliveryInfo.rtnDelvFee, 0,'COMMA')}" ></th:block>원(최소 배송비가 무료인 경우 왕복 배송비 <th:block th:text="${#numbers.formatInteger((deliveryInfo.rtnDelvFee+deliveryInfo.delvFee), 0,'COMMA')}" ></th:block>원 부과)
+									<th:block  th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}" th:text="${#numbers.formatInteger(deliveryInfo.rtnDelvFee, 0,'COMMA')}" ></th:block>원(최소 배송비가 무료인 경우 왕복 배송비 <th:block th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}" th:text="${#numbers.formatInteger((deliveryInfo.rtnDelvFee+deliveryInfo.delvFee), 0,'COMMA')}" ></th:block>원 부과)
 								</td>
 							</tr>
 							<tr>
@@ -122,7 +122,7 @@
 									교환배송비
 								</th>
 								<td>
-									<th:block th:text="${#numbers.formatInteger((deliveryInfo.rtnDelvFee+deliveryInfo.delvFee), 0,'COMMA')}" ></th:block>원
+									<th:block  th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}" th:text="${#numbers.formatInteger((deliveryInfo.rtnDelvFee+deliveryInfo.delvFee), 0,'COMMA')}" ></th:block>원
 								</td>
 							</tr>
 							<tr>
@@ -130,7 +130,7 @@
 									반품/교환 주소
 								</th>
 								<td>
-									<th:block th:text="${deliveryInfo.rtnLocZipcode +' '+ deliveryInfo.rtnLocBaseAddr +' '+ deliveryInfo.rtnLocDtlAddr }"></th:block>
+									<th:block th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}" th:text="${deliveryInfo.rtnLocZipcode +' '+ deliveryInfo.rtnLocBaseAddr +' '+ deliveryInfo.rtnLocDtlAddr }"></th:block>
 								</td>
 							</tr>
 							<tr>
@@ -166,11 +166,11 @@
 									신발, 그릇류의 박스포장을 포함, 상품이 판매할 수 없게 훼손 된 경우(신발박스 등의 파손, 박스포장 위 송장 부착, 박스 훼손/파손/찢어짐, 택 분실 등)
 								</td>
 							</tr>
-							<tr th:if="${not #strings.isEmpty(deliveryInfo.note)}">
+							<tr th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}">
 								<th>
 									기타사항
 								</th>
-								<td th:utext="${#strings.unescapeJava(#strings.escapeJava(deliveryInfo.note))}">
+								<td  th:if="${not #strings.isEmpty(deliveryInfo.note)}" th:utext="${#strings.unescapeJava(#strings.escapeJava(deliveryInfo.note))}">
 									상품에 따라 반송주소/방법이 각각 다를 수 있습니다.<br>
 								</td>
 							</tr>
@@ -181,13 +181,9 @@
 		</div>	
 	</div>
 </div>
-<script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 /*<![CDATA[*/
 	
-	
-	
 /*]]>*/
 </script>
-
  </html>

+ 252 - 126
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -40,7 +40,7 @@
 													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>
+											<a th:href="${'#navLocate'+ status.count}"><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'"></span></a></div>
 										</th:block>	
 										</div>
 									</div>
@@ -55,7 +55,7 @@
 									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>
+									<a href="javascript:void(0);"><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'"></span></a></li>
 								</th:block>
 							</ul>
 						</div>
@@ -117,7 +117,7 @@
 										<del class="org_price" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}" >
 											<em th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">149,000</em>원
 										</del>
-										<span class="save_point">
+										<span class="save_point" th:if="${goodsInfo.pntAmt > 0}">
 											스타일포인트 <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"  th:if="${goodsCouponList != null and !goodsCouponList.empty}" th:onclick="cfGoodsCouponInfo([[${goodsInfo.goodsCd}]])"><span>쿠폰받기</span></button>
@@ -161,7 +161,8 @@
 								</dl>
 							</div>
 							<div class="option_box">
-								<th:block th:if="${goodsInfo.selfGoodsYn =='Y' }">
+								<th:block th:if="${goodsInfo.selfGoodsYn =='Y' }"> <!-- 자사상품 -->
+								<th:block th:if="${goodsInfo.goodsType =='G056_N' }">	<!-- 일반상품 -->
 								<div class="opt_color"  th:if="${goodsOption1List != null and !goodsOption1List.empty}" >
 									<div class="opt_header">
 										<span class="title">컬러</span>
@@ -187,62 +188,73 @@
 									<div class="form_field">
 										<div  th:each="goodsOption2, status : ${goodsOption2List}">
 											<input type="radio" name="opt"  th:id="${goodsOption2.optCd}" th:disabled="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}" 
-													th:attr="addPrice=${goodsOption2.addPrice}, optCd1=${goodsOption2.optCd1}, optCd=${goodsOption2.optCd}">
-											<label th:for="${goodsOption2.optCd}"><span th:text="${goodsOption2.optCd2}" th:onclick="jfViewStock(this, [[${goodsInfo.goodsCd}]],[[${goodsOption2.optCd1}]],[[${goodsOption2.optCd2}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]] )">100</span></label>
+													th:attr="addPrice=${goodsOption2.addPrice}, optCd1=${goodsOption2.optCd1}, optCd2=${goodsOption2.optCd2}, optCd=${goodsOption2.optCd}">
+											<label th:for="${goodsOption2.optCd}"><span th:text="${goodsOption2.optCd2}" th:onclick="fnViewStock(this, [[${goodsInfo.goodsCd}]],[[${goodsOption2.optCd1}]],[[${goodsOption2.optCd2}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]] )">100</span></label>
 										</div>
 									</div>
 								</div>
 								</th:block>
-								<th:block th:if="${goodsInfo.selfGoodsYn =='N' }">
-								<div class="opt_select">
-									<form class="form_wrap">
-										<div class="form_field">
-											<div class="select_custom item_opt1">
-												<div class="combo">
-													<div class="select">선택</div>
-													<ul class="list">
-														<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" / 품절표기 data-soldout="true" 추가  -->
-														<li class="selected">선택</li> 
-														<li>상품옵션01</li>
-														<li>상품옵션02</li>
-														<li>상품옵션03</li>
-														<li aria-disabled="true">
-															<div>상품옵션05</div>
-															<div>120,000원</div>
-														</li>
-														<li>상품옵션06</li>
-														<li aria-disabled="true" data-soldout="true">
-															<div>상품옵션07</div>
-															<div>120,000원</div>
-														</li>
-													</ul>
-												</div>
+								<th:block th:if="${goodsInfo.goodsType =='G056_S' }">	<!-- 세트상품 -->
+								<div class="opt_select"  th:if="${goodsComposeList != null and !goodsComposeList.empty}" >
+									<th:block th:each="goodsCompose, status : ${goodsComposeList}">
+									<div class="opt_header">
+										<span class="title" th:text="${goodsCompose.compsGoodsFullNm}">옵션</span>
+										<button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsCompose.compsGoodsCd}]],[[${goodsCompose.colorCd}]] )"><span>사이즈정보</span></button>
+									</div>
+									<div class="form_field">
+										<div class="select_custom item_opt1" th:classappend="${goodsCompose.compsGoodsCd}" th:if="${goodsCompose.goodsOption1List != null and !goodsCompose.goodsOption1List.empty}" >
+											<div class="combo">
+												<div class="select">선택</div>
+												<ul class="list">
+													<th:block th:each="goodsOption, status : ${goodsCompose.goodsOption1List}" >
+													<li class="selected" th:id="|selfGoodsOpt1${goodsOption.goodsCd}|" th:if=${status.first}>선택</li> 
+													<li th:onclick="fnOption2(this, [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]])">
+														<div th:text="${goodsOption.optCd1}">상품옵션</div>
+														<div th:if="${goodsOption.addPrice > 0}" th:text="|${#numbers.formatInteger(goodsOption.addPrice, 0,'COMMA')}원|">0원</div>
+														<input type="hidden" name="opt"  th:id="${goodsOption.optCd}" th:attr="addPrice=${goodsOption.addPrice}, optCd1=${goodsOption.optCd1},optCd2=${goodsOption.optCd2}, optCd=${goodsOption.optCd}"/>
+													</li>
+													</th:block>
+												</ul>
 											</div>
 										</div>
-										<!-- <div class="form_field">
-											<div class="select_custom item_opt2" disabled="">
-												<div class="combo">
-													<div class="select">선택</div>
-													<ul class="list">
-														선택처리 class="selected" / 선택불가 aria-disabled="true" / 품절표기 data-soldout="true" 추가 
-														<li class="selected">선택</li> 
-														<li>상품옵션11</li>
-														<li>상품옵션12</li>
-														<li>상품옵션13</li>
-														<li aria-disabled="true">
-															<div>상품옵션15</div>
-															<div>120,000원</div>
-														</li>
-														<li>상품옵션16</li>
-														<li aria-disabled="true" data-soldout="true">
-															<div>상품옵션17</div>
-															<div>120,000원</div>
-														</li>
-													</ul>
-												</div>
+									</div>
+									<div class="form_field">
+										<div class="select_custom item_opt2" disabled>
+											<div class="combo">
+												<div class="select">선택</div>
+												<ul class="list">
+													<li class="selected">선택</li> 
+												</ul>
+											</div>
+										</div>
+									</div>
+									</th:block>
+								</div>
+								</th:block>
+								</th:block>
+								<th:block th:if="${goodsInfo.selfGoodsYn =='N' }"> <!--  입점상품 -->
+								<div class="opt_select" th:if="${goodsOptionList != null and !goodsOptionList.empty}">
+									<div class="opt_header">
+											<span class="title">옵션</span>
+											<button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.colorCd}]] )"><span>사이즈정보</span></button>
+										</div>
+									<div class="form_field">
+										<div class="select_custom item_opt1">
+											<div class="combo">
+												<div class="select">선택</div>
+												<ul class="list">
+													<li class="selected" id="selfNoGoodsOpt">선택</li> 
+													<th:block th:each="goodsOption, status : ${goodsOptionList}" >
+													<li th:attr="aria-disabled=${(goodsOption.soldoutYn == 'Y' or goodsOption.stockQty <= 0)? 'true':''}, data-soldout=${(goodsOption.soldoutYn == 'Y' or goodsOption.stockQty <= 0)? 'true':''}" th:onclick="fnViewStock(this, [[${goodsInfo.goodsCd}]],[[${goodsOption.optCd1}]],[[${goodsOption.optCd}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]] )">
+														<div th:text="${goodsOption.optNm}">상품옵션</div>
+														<div th:if="${goodsOption.addPrice > 0}" th:text="|${#numbers.formatInteger(goodsOption.addPrice, 0,'COMMA')}원|">0원</div>
+														<input type="hidden" name="opt"  th:id="${goodsOption.optCd}" th:attr="addPrice=${goodsOption.addPrice}, optCd1=${goodsOption.optCd1},optCd2=${goodsOption.optCd2}, optCd=${goodsOption.optCd}"/>
+													</li>
+													</th:block>
+												</ul>
 											</div>
-										</div> -->
-									</form>
+										</div>
+									</div>
 								</div>
 								</th:block>
 								<!-- 해당 상품 품절시 노출 -->
@@ -255,10 +267,10 @@
 										<span class="title">수량</span>
 									</div>
 									<div class="number_count">
-										<span class="minus" onclick="jfAdjustOrderEa(this);" adjust="-"><em class="sr-only">감소</em></a></span>
-										<input type="text" name="cea" maxlength="3" style="ime-mode:disabled" th:value="${goodsInfo.minOrdQty}" onblur="jfChangeOrderEa(this)" data-valid-type="numeric">
+										<span class="minus" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">감소</em></a></span>
+										<input type="text" name="cea" maxlength="3" style="ime-mode:disabled" th:value="${goodsInfo.minOrdQty}" onblur="fnChangeOrderEa(this)" data-valid-type="numeric">
 										<input type="hidden" name="coption" value=""   th:attr="price=${goodsInfo.currPrice}">
-										<span class="plus" onclick="jfAdjustOrderEa(this);" adjust="+"><em class="sr-only">추가</em></span>
+										<span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">추가</em></span>
 									</div>
 								</div>
 							</div>
@@ -276,10 +288,10 @@
 								<div class="btn_group_block ui_row">
 								<th:block  th:if="${goodsInfo.stockQty > 0}">
 									<div class="ui_col_6">
-										<button type="button" class="btn btn_dark btn_block" onclick="jfAddCart('C');"><span>쇼핑백</span></button>
+										<button type="button" class="btn btn_dark btn_block" id="btnGoodsWish" onclick="jfAddCart('C');"><span>쇼핑백</span></button>
 									</div>
 									<div class="ui_col_6">
-										<button type="button" class="btn btn_primary btn_block" onclick="jfAddCart('O');"><span>바로구매</span></button>
+										<button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="jfAddCart('O');"><span>바로구매</span></button>
 									</div>
 								</th:block>
 								<th:block  th:unless="${goodsInfo.stockQty > 0}">
@@ -311,7 +323,7 @@
 										<!-- 베스트 리뷰 등록시 노출 -->
 										<div class="best_review" th:if="${bestReviewList != null and !bestReviewList.empty}">
 											<th:block th:each="bestReview, status : ${bestReviewList}" th:if="${status.first}">
-											<a href="javascript:void(0);" id="btn_pdBestReview_pop"  th:onclick="cfGoodsBestReview([[${goodsInfo.goodsCd}]])" >
+											<a href="javascript:void(0);" id="btn_pdBestReview_pop"  th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]],'Y', '',[[${bestReview.reviewSq}]])" >
 												<div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
 													<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
 													<span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
@@ -486,8 +498,8 @@
 				</div>
 				<!-- //브랜드 노출 -->
 				<!-- 상품필수정보 노출 -->
-				<div class="required_box" th:if="${goodsNotiList != null and !goodsNotiList.empty}">
-					<div class="area_infotbl">
+				<div class="required_box" >
+					<div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_N' and goodsNotiList != null and !goodsNotiList.empty}">
 						<span class="title">상품고시정보</span>
 						<div class="tbl type1 mt30">
 							<table>
@@ -500,6 +512,21 @@
 							</table>
 						</div>
 					</div>
+					<div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_S' and goodsComposeList != null and !goodsComposeList.empty}">
+						<span class="title">상품고시정보</span>
+						<th:block th:each="goodsCompose, status : ${goodsComposeList}">
+						<div class="tbl type1 mt30">
+							<table>
+								<tbody>
+									<tr  th:each="goodsNoti, status : ${goodsCompose.goodsNotiList}" >
+										<th th:text="${goodsNoti.niItemNm}">스타일</th>
+										<td th:text="${goodsNoti.niContent}">F94U-MD01XA60F0</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+						</th:block>
+					</div>
 					<div class="area_kcl" th:if="${goodsSafeNo != null}">
 						<i class="ico ico_kcl"></i>
 						<p class="tit normal" th:text="${goodsSafeNo.certDiv}">
@@ -629,7 +656,7 @@
 														</li>
 													</ul>
 												</div>
-												<button type="button" class="btn btn_block btn_md" onclick="jfAddCartLookBookGoods(this);"><span>모두 쇼핑백 담기</span></button>
+												<button type="button" class="btn btn_block btn_md" onclick="fnAddCartLookBookGoods(this);"><span>모두 쇼핑백 담기</span></button>
 											</div>
 										</div>
 									</div>
@@ -655,6 +682,19 @@
 		</div>
 		<!-- // 이 상품과 비슷한 상품 -->
 	</div>
+	<!-- 상품썸네일 크게보기 팝업 -->
+	<div class="pd_pop full_pop pd_itemthumb_pop" id="pdItemThumbPop"> 
+		<div class="full_popup_wrap">
+			<h5 class="sr-only">상품썸네일 크게보기</h5>
+			<div class="btn_close">
+				<a href="" id="btn_close_itemThumbPop">닫기버튼</a>
+			</div>
+			<div class="full_pop_container">
+				<!-- 배송교환반품안내 리스트 내용 -->
+			</div>
+		</div>		
+	</div>
+	<!-- //상품썸네일 크게보기 팝업 -->
 </div>
 
 <!-- EP 제휴쿠폰 팝업 -->
@@ -705,46 +745,54 @@
 	
 <script th:inline="javascript">
 /*<![CDATA[*/
-
+		
+	var cateNm = "";
 	// 다다익선 상품
-	var jfGoodsTmtbSearch = function(params) {
+	var fnGoodsTmtbSearch = function(params) {
 		gagajf.ajaxSubmit("/goods/detail/tmtb/frame", "html", "goodsTmtbArea", params);
 	}
 	
 	// 함께본 상품
-	var jfGoodsTogetherSearch = function(params) {
+	var fnGoodsTogetherSearch = function(params) {
 		gagajf.ajaxSubmit("/goods/detail/together/frame", "html", "goodsTogetherbArea", params);
 	}
 	
 	// 추천 상품
-	var jfGoodsRecommendSearch = function(params) {
+	var fnGoodsRecommendSearch = function(params) {
 		gagajf.ajaxSubmit("/goods/detail/recommend/frame", "html", "goodsRecommendbArea", params);
 	}
 	
 	// 비슷한 상품
-	var jfGoodsLikeSearch = function(params) {
+	var fnGoodsLikeSearch = function(params) {
 		gagajf.ajaxSubmit("/goods/detail/like/frame", "html", "goodsLikebArea", params);
 	}
 	
 	//사이즈 클릭시
-	var jfViewStock = function(obj, goodsCd, optCd1, optCd2,  minOrdQty, maxOrdQty) {
-		var $obj = $(obj);
-
-		var $target = $obj.parent().parent().children('input[name="opt"]');
-		$target.prop("checked",true);
-		var addPrice  = $target.attr("addPrice");
-		var optCd  = $target.attr("optCd");
-		$("#selectOptCd1").html(optCd2);
+	var fnViewStock = function(obj, goodsCd, optCd1, optCd2,  minOrdQty, maxOrdQty) {
+		let $obj = $(obj);
+		let selfGoodsYn = $("#cartForm  input[name=selfGoodsYn]").val();
+		let $target = null;
+		if (selfGoodsYn == "Y"){
+			$target = $obj.parent().parent().children('input[name="opt"]');
+			$target.prop("checked",true);
+			$("#selectOptCd1").html(optCd2);
+		}else{
+			$target = $obj.children('input[name="opt"]');
+			
+		}
+		let addPrice  = $target.attr("addPrice");
+		let optCd  = $target.attr("optCd");
+		
 		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();
+		let maxCnt = maxOrdQty;
+		let params = new Object();
 		params.goodsCd = goodsCd;
 		params.optCd = optCd;
 		params.optCd1 = optCd1;
@@ -752,7 +800,7 @@
 		params.selfGoodsYn = selfGoodsYn;
 
 		$.get("/goods/detail/ajaxGoodsStockQty", $.param(params), function(result) {
-			var itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
+			let itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
 
 			if (maxCnt > itemCnt) {
 				maxCnt = itemCnt;
@@ -768,14 +816,14 @@
 				$("#cartForm  input[name=cea]").attr("readonly",false);
 				$("#cartForm  input[name=stock]").val(itemCnt);
 
-				jfSetTotalPrice();
+				fnSetTotalPrice();
 			}
 
 		}, "text");
 	}
 	
 	// 수량 변경 클릭
-	var jfAdjustOrderEa = function(obj) {
+	var fnAdjustOrderEa = function(obj) {
 
 		if("G056_N" == $("#cartForm  input[name=goodsType]").val()){
 			if(gagajf.isNull($("#cartForm  input[name=optCd2]").val())){
@@ -792,10 +840,10 @@
 			} */
 		}
 
-		var $obj = $(obj);
-		var $target = $obj.parent().children('input[name="cea"]');
-		var minOrdQty = parseInt($("#cartForm  input[name=minOrdQty]").val());
-		var ea =parseInt($target.val());
+		let $obj = $(obj);
+		let $target = $obj.parent().children('input[name="cea"]');
+		let minOrdQty = parseInt($("#cartForm  input[name=minOrdQty]").val());
+		let ea =parseInt($target.val());
 
 		if ($obj.attr('adjust') == '-') --ea;
 		else ++ea;
@@ -808,11 +856,11 @@
 
 		$target.val(ea);
 
-		jfChangeOrderEa();
+		fnChangeOrderEa();
 	}
 
 	//옵션 갯수 변경
-	var jfChangeOrderEa = function() {
+	var fnChangeOrderEa = function() {
 
 		if("G056_N" == $("#cartForm  input[name=goodsType]").val()){
 			if(gagajf.isNull($("#cartForm  input[name=optCd2]").val())){
@@ -829,11 +877,11 @@
 			} */
 		}
 
-		var f = document.cartForm;
-		var ea = parseInt($("#cartForm  input[name=cea]").val());
-		var buymin = parseInt($("#cartForm  input[name=minOrdQty]").val());
-		var buymax = parseInt($("#cartForm  input[name=maxOrdQty]").val());
-		var alertMsg = '';
+		//let f = document.cartForm;
+		let ea = parseInt($("#cartForm  input[name=cea]").val());
+		let buymin = parseInt($("#cartForm  input[name=minOrdQty]").val());
+		let buymax = parseInt($("#cartForm  input[name=maxOrdQty]").val());
+		let alertMsg = '';
 		if (ea < buymin) {
 			alertMsg ="최소 주문 가능 수량은 "+buymin+"개 입니다.";
 			ea = buymin;
@@ -852,20 +900,20 @@
 			//return;
 		}
 
-		jfSetTotalPrice();
+		fnSetTotalPrice();
 	}
 	
 	//합계 계산
-	var jfSetTotalPrice = function() {
-		var f = document.cartForm;
+	var fnSetTotalPrice = function() {
+		//let f = document.cartForm;
 
-		var totalEa = 0;
-		var totalPrice = 0;
+		let totalEa = 0;
+		let totalPrice = 0;
 
 		$('input[name="cea"]').each(function() {
-			var ea = parseInt($(this).val());
-			var addPrice = parseInt($("#cartForm  input[name=addPrice]").val());
-			var goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
+			let ea = parseInt($(this).val());
+			let addPrice = parseInt($("#cartForm  input[name=addPrice]").val());
+			let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
 
 			totalEa += ea;
 			if (goodsPrice > 0) {
@@ -884,7 +932,7 @@
 		// 바로구매는 로그인여부 확인
 		if (btnType == "O" && !cfCheckLogin()) {
 			
-			var btn = ["비회원 구매", "로그인후 구매"]; //버튼명[좌,우]
+			let btn = ["비회원 구매", "로그인후 구매"]; //버튼명[좌,우]
 			mcxDialog.confirmC("로그인 후 구매 시 다양한 혜택을 받으실 수 있습니다.", { //내용
 				btn: btn,
 				btnClick: function(index){
@@ -899,8 +947,8 @@
 			return false;
 		}
 		
-		var params = [];
-		var goodsType = $("#cartForm  input[name=goodsType]").val();
+		let params = [];
+		let goodsType = $("#cartForm  input[name=goodsType]").val();
 
 		if (goodsType == 'G056_N'){
 			if (gagajf.isNull($("#cartForm  input[name=optCd2]").val())) {
@@ -908,7 +956,7 @@
 				return;
 			}
 		
-			var obj = new Object();
+			let obj = new Object();
 			obj.goodsCd = $("#cartForm  input[name=goodsCd]").val();
 			obj.optCd = $("#cartForm  input[name=optCd]").val();
 			obj.goodsQty = $("#cartForm  input[name=ordQty]").val();
@@ -949,27 +997,24 @@
 			}); */
 		}
 		
-		
-
-		
 		// 장바구니담기
 		cfnAddCart(params);
 	}
 
 	// 룩북속 상품 쇼핑백 담기
-	var jfAddCartLookBookGoods = function(obj){
+	var fnAddCartLookBookGoods = function(obj){
 		
-		var $obj = $(obj);
-		var $target = $obj.parent().find('.li_item').find('.item_prod');
-		var btnType = "C";
-		var params = [];
+		let $obj = $(obj);
+		let $target = $obj.parent().find('.li_item').find('.item_prod');
+		let btnType = "C";
+		let params = [];
 		
 		$target.each(function(){
 			if ($(this).hasClass('unable')) {
 				
 			}else{
 				
-				var obj = new Object();
+				let obj = new Object();
 				obj.goodsCd = $(this).attr("goodsCd");
 				obj.optCd = $(this).attr("optCd");
 				obj.goodsQty = $(this).attr("minOrdQty");
@@ -993,8 +1038,8 @@
 	}
 	
 	var jfOptionSoldout = function(){
-		var $target=$("#cartForm").find('.form_field');
-		var soldout = false;
+		let $target=$("#cartForm").find('.form_field');
+		let soldout = false;
 		for(var i=0;i<$target.find('input[name="opt"]').length;i++){
 			
 			if($target.find('input[name="opt"]').eq(i).attr('disabled')) {
@@ -1002,8 +1047,8 @@
 			}
 		}
 
-		var goodsType = [[${goodsInfo.goodsType}]];
-		if (soldout && goodsType == 'G056_N') {
+		let goodsType = [[${goodsInfo.goodsType}]];
+		if (soldout && goodsType == 'G056_N'&& $("#cartForm  input[name=goodsGoodsYn]").val() == 'Y') {
 			$(".info_restock").show();
 		}
 	}
@@ -1013,7 +1058,7 @@
 		
 		$('.timer_box').css('display', 'none');
 		
-		var params = new Object();
+		let params = new Object();
 		params.goodsCd = [[${params.goodsCd}]];
 		params.viewDt = [[${params.viewDt}]];
 		params.preview = [[${params.preview}]];
@@ -1027,25 +1072,25 @@
 		params.goodsOtherGb = "tmtb";
 		params.ithrCd = "tmtb";
 		params.contentsLoc = "tmtb";
-		jfGoodsTmtbSearch(params);
+//		fnGoodsTmtbSearch(params);
 		
 		// 함께본 상품(ajax html)
 		params.goodsOtherGb = "together";
 		params.ithrCd = "tmtb";
 		params.contentsLoc = "tmtb";
-		jfGoodsTogetherSearch(params);
+		//		fnGoodsTogetherSearch(params);
 		
 		// 추천 상품(ajax html)
 		params.goodsOtherGb = "recommend";
 		params.ithrCd = "tmtb";
 		params.contentsLoc = "tmtb";
-		jfGoodsRecommendSearch(params);
+		//		fnGoodsRecommendSearch(params);
 		
 		// 비슷한 상품(ajax html)
 		params.goodsOtherGb = "like";
 		params.ithrCd = "tmtb";
 		params.contentsLoc = "tmtb";
-		jfGoodsLikeSearch(params);
+		//		fnGoodsLikeSearch(params);
 	
 		
 		// 상품 대표설명 > 좌측 상품썸네일 navi, 우측 상품정보 고정 
@@ -1129,10 +1174,10 @@
 		/* 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;
-		});
+		//$('.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;
+		//});
 		
 		if (!gagajf.isNull([[${goodsInfo.socialSq}]])){
 			$('.timer_box').css('display', 'block');
@@ -1216,6 +1261,81 @@
 		}; */
 		
 		jfOptionSoldout();
+		
+		// 광고 스크립트용
+		var goodsNavigation = [[${goodsNavigation}]];
+		var cate1Nm = "";
+		var cate2Nm = "";
+		var cate3Nm = "";
+		var cate4Nm = "";
+		var cate5Nm = "";
+		if (!gagajf.isNull(goodsNavigation)) {
+			cate1Nm = goodsNavigation.cate1Nm;
+			cate2Nm = goodsNavigation.cate2Nm;
+			cate3Nm = goodsNavigation.cate3Nm;
+			cate4Nm = goodsNavigation.cate4Nm;
+			cate5Nm = goodsNavigation.cate3Nm;
+			
+			if (!gagajf.isNull(cate1Nm)) {
+				cateNm += cate1Nm;
+			}
+			if (!gagajf.isNull(cate2Nm)) {
+				cateNm += ' > ' + cate2Nm;
+			}
+			if (!gagajf.isNull(cate3Nm)) {
+				cateNm += ' > ' + cate3Nm;
+			}
+			if (!gagajf.isNull(cate4Nm)) {
+				cateNm += ' > ' + cate4Nm;
+			}
+			if (!gagajf.isNull(cate5Nm)) {
+				cateNm += ' > ' + cate5Nm;
+			}
+		}
+		// 광고 스크립트용
+		
+		var snsGoodsImg = _uploadGoodsUrl + [[${goodsInfo.sysImgNm}]];
+		var snsUrl = location.protocol + _PAGE_GOODS_DETAIL + params.goodsCd +'&colorCd =' + params.colorCd  ;
+		var snsGoodsFullNm = [[${goodsInfo.goodsFullNm}]];
+		
+		<!-- 페이스북 카카오스토리 연동 관련 메타태그 -->
+		$("meta[property='og:url']").attr('content', snsUrl);
+		$("meta[property='og:title']").attr('content', snsGoodsFullNm);
+		$("meta[property='og:description']").attr('content', snsGoodsFullNm);
+		$("meta[property='og:image']").attr('content', snsGoodsImg);
+
+		<!-- 트위터 관련 메타태그 -->
+		$("meta[name='twitter:url']").attr('content', snsUrl);
+		$("meta[name='twitter:title']").attr('content', snsGoodsFullNm);
+		$("meta[name='twitter:description']").attr('content', snsGoodsFullNm);
+		$("meta[name='twitter:image']").attr('content', snsGoodsImg);
+
+		// 추천솔류션 meta 설정
+		$("meta[property='eg:type']").attr('content',"product");
+		$("meta[property='eg:cuid']").attr('content',eglqueueCuid);
+		$("meta[property='eg:itemId']").attr('content', [[${goodsInfo.goodsCd}]] );
+		$("meta[property='eg:itemName']").attr('content',[[${goodsInfo.goodsFullNm}]] );
+		$("meta[property='eg:itemImage']").attr('content', snsGoodsImg);
+		$("meta[property='eg:itemUrl']").attr('content',snsUrl);
+		$("meta[property='eg:originalPrice']").attr('content',[[${goodsInfo.listPrice}]]);
+		$("meta[property='eg:salePrice']").attr('content',[[${goodsInfo.currPrice}]]);
+		$("meta[property='eg:category1']").attr('content',cate1Nm);
+		$("meta[property='eg:category2']").attr('content',cate2Nm);
+		$("meta[property='eg:category3']").attr('content',cate3Nm);
+		$("meta[property='eg:category4']").attr('content',cate4Nm);
+		$("meta[property='eg:category5']").attr('content',cate5Nm);
+		$("meta[property='eg:brandId']").attr('content',[[${goodsInfo.brandGroupNo}]]);
+		$("meta[property='eg:brandName']").attr('content',[[${goodsInfo.brandGroupNm}]]);
+		$("meta[property='eg:regDate']").attr('content',[[${goodsInfo.regDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
+		$("meta[property='eg:updateDate']").attr('content',[[${goodsInfo.updDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
+		$("meta[property='eg:stock']").attr('content',"");
+		$("meta[property='eg:state']").attr('content',[[${goodsInfo.goodsStatNm}]]);
+		$("meta[property='eg:description']").attr('content',null);
+		$("meta[property='eg:extraImage']").attr('content',null);
+		$("meta[property='eg:locale']").attr('content',"KR");
+		$("meta[property='eg:isNew']").attr('content',([[${goodsInfo.formalGb}]] == 'G009_10')? 'True' :'False');
+		$("meta[property='eg:etc1']").attr('content', [[${goodsInfo.selfGoodsYn}]]);
+		
 	});
 	
 	// 상품평 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
@@ -1238,6 +1358,12 @@
 	
 /*]]>*/
 </script>
+
+<!-- 광고 스크립트 -->
+<th:block th:replace="~{web/common/advertisements/GoodsDetailScriptsWeb :: scripts}"></th:block>
+<!-- //광고 스크립트 -->
+
 </th:block>
+
 </body>
 </html>

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

@@ -130,8 +130,8 @@
 	
 	var jfInstockAlarm = function(){
 	
-		var optCd2 = "";
-		var optCd = "";
+		let optCd2 = "";
+		let optCd = "";
 		$("#goodsInstockAlarmForm input:radio[name=opt]").each(function(){
 			if ($(this).is(':checked')){
 				optCd2 = $(this).val();

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

@@ -31,10 +31,11 @@
 				<div class="swiper-slide" th:each="goodsInfo, status : ${goodsList}">
 					<div class="item_prod">
 						<div class="item_state">
-							<a href="javascript:void(0);" class="itemLink" >
+							<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>
+							<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail([[${goodsInfo.goodsCd}]], '',[[${params.ithrCd}]],'[[${params.contentsLoc}]]','','pc_detail');" 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>

+ 1 - 3
src/main/webapp/WEB-INF/views/web/goods/GoodsQnaDetailFormWeb.html

@@ -74,7 +74,7 @@
 
 	// 상품문의 작성 > 글자수 체크
 	$('.pd_qnawrite_pop .doc_itemqna').keyup(function (e){
-		var contentQna = $(this).val();
+		let contentQna = $(this).val();
 		$('#itemqna_cnt').html("(<em class='c_primary'>"+contentQna.length+"</em>/500자)");  
 		if (contentQna.length > 500){
 			alert("최대 500자까지 입력 가능합니다.");
@@ -114,8 +114,6 @@
 		});
 	
 	});
-	
-
 
 /*]]>*/
 </script>

+ 7 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewBestFormWeb.html → src/main/webapp/WEB-INF/views/web/goods/GoodsReviewDetailFormWeb.html

@@ -17,7 +17,13 @@
 <div class="modal-dialog" role="document" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, imgUrl=${@environment.getProperty('upload.image.view')}">
 	<div class="modal-content">
 		<div class="modal-header">
+			<th:block th:if="${review.bestYn == 'Y'}">
 			<h5 class="modal-title" id="pdBestReviewLabel">베스트 리뷰</h5>
+			</th:block>
+			<th:block th:unless="${review.bestYn == 'Y'}">
+			<h5 class="modal-title" id="pdPhotoReviewDetailLabel">포토/영상 리뷰</h5>
+			<button type="button" id="btn_pdPhotoReviewList_pop" th:onclick="cfGoodsReviewPhoto([[${params.goodsCd}]])"  class="btn_more"><span>전체보기</span></button>
+			</th:block>
 		</div>
 		<div class="modal-body" th:if="${reviewList != null and !reviewList.empty}">
 			<div class="pop_cont">
@@ -136,7 +142,7 @@
 								<div class="thumblist" th:if="${review.reviewAttachList != null and !review.reviewAttachList.empty and #lists.size(review.reviewAttachList) >= 2}">
 									<ul>
 										<li th:each="reviewAttach, attachStatus : ${review.reviewAttachList}">
-											<div class="pic" th:classAppend="${(attachStatus.first) ? 'active' :''}" >><!-- 활성화시 active 클래스 추가 -->
+											<div class="pic" th:classAppend="${(attachStatus.first) ? 'active' :''}" ><!-- 활성화시 active 클래스 추가 -->
 												<span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}"  th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}" ></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
 											</div>
 										</li>

+ 137 - 88
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewFormWeb.html

@@ -322,15 +322,14 @@
 					<div class="swiper-wrapper">
 						<div class="swiper-slide" th:each="bestReview, status : ${bestReviewList}" >
 							<div class="best_review">
-								<a href="javascript:void(0);" th:onclick="cfGoodsBestReview([[${goodsInfo.goodsCd}]])" >
+								<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], 'Y', '', [[${bestReview.reviewSq}]])" >
 									<div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
 										<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}">
 										<span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
 										</th:block>
 									</div>
 									<div class="pic" th:unless="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
-										<span class="thumb">
-										<img th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm}" alt="">
+										<span class="thumb" th:style="${'background-image:url('+imgGoodsUrl+ '/'+goodsInfo.sysImgNm+');'}">
 										</span>
 									</div>
 									<div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.score*100/5), 0,0)}">
@@ -357,7 +356,7 @@
 							<th:block th:if="${photoReview.reviewAttachList != null and !photoReview.reviewAttachList.empty}">
 							<th:block th:each="reviewAttach, attachStatus : ${photoReview.reviewAttachList}" th:if="${attachStatus.first}">
 							
-							<a href="javascript:void(0);" th:onclick="cfGoodsReviewPhotoDetail([[${goodsInfo.goodsCd}]])">
+							<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], '', 'Y', [[${photoReview.reviewSq}]])">
 								<div class="pic">
 									<span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
 								</div>
@@ -368,7 +367,7 @@
 						
 					</ul>
 					<!-- 포토영상 게시글 최대 7개 & 버튼노출 -->
-					<th:block th:if="${#lists.size(photoReviewList) >= 8}">
+					<th:block th:if="${#lists.size(photoReviewList) >= 1}"> <!-- 나중에 8로 수정 -->
 					<button type="button" id="btn_more_photoreview" th:onclick="cfGoodsReviewPhoto([[${goodsInfo.goodsCd}]])" ><span>더 보기</span></button>
 					<!-- //포토영상 게시글 최대 7개 & 버튼노출 -->
 					</th:block>
@@ -377,84 +376,81 @@
 			<div class="area_rv_all">
 			<form id="goodsReviewForm" name="goodsReviewForm" action="#" th:action="@{'/goods/review/list'}">
 			<input type="hidden" name="pageNo" value ="1"/>
-			<input type="hidden" name="pageSize" value ="20"/>
+			<input type="hidden" name="pageSize" value ="1"/>
 			<input type="hidden" name="goodsCd" th:value ="${goodsInfo.goodsCd}"/>
 			<input type="hidden" name="goodsType" th:value ="${goodsInfo.goodsType}"/>
-				<h6>전체리뷰<span>(9,999+)</span></h6>
+			<input type="hidden" name="reviewScore" />
+			<input type="hidden" name="reviewOption" />
+			<input type="hidden" name="reviewHeight" />
+			<input type="hidden" name="reviewWeight" />
+			
+				<h6>전체리뷰<span>(<span id="reviewCount" th:text="${(reviewCount <= 9999) ? #numbers.formatInteger(reviewCount, 0,'COMMA') : '9,999+'}">9,999+</span>)</span></h6>
 				<div class="selection">
-					<form class="form_wrap">
-						<div class="form_field">
-							<div class="select_custom sort_opt1">
-								<div class="combo">
-									<div class="select">평점 전체</div>
-									<ul class="list">
-										<!-- 선택처리 class="selected" -->
-										<li class="selected">평점 전체</li> 
-										<li>5점&nbsp;&starf;&starf;&starf;&starf;&starf;</li>
-										<li>4점&nbsp;&starf;&starf;&starf;&starf;</li>
-										<li>3점&nbsp;&starf;&starf;&starf;</li>
-										<li>2점&nbsp;&starf;&starf;</li>
-										<li>1점&nbsp;&starf;</li>
-									</ul>
-								</div>
+					<div class="form_field">
+						<div class="select_custom sort_opt1">
+							<div class="combo">
+								<div class="select">평점 전체<input type="hidden" name="selScore" value=""/></div>
+								<ul class="list" onclick="jfReviewSearch();" >
+									<!-- 선택처리 class="selected" -->
+									<li class="selected" >평점 전체<input type="hidden" name="selScore" value=""/></li> 
+									<li>5점&nbsp;&starf;&starf;&starf;&starf;&starf;<input type="hidden" name="selScore" value="5"/></li>
+									<li>4점&nbsp;&starf;&starf;&starf;&starf;<input type="hidden" name="selScore" value="4" scoreId="4"/></li>
+									<li>3점&nbsp;&starf;&starf;&starf;<input type="hidden" name="selScore" value="3"/></li>
+									<li>2점&nbsp;&starf;&starf;<input type="hidden" name="selScore" value="2"/></li>
+									<li>1점&nbsp;&starf;<input type="hidden" name="selScore" value="1"/></li>
+								</ul>
 							</div>
-							<div class="select_custom sort_opt2">
-								<div class="combo">
-									<div class="select" th:text="${(goodsInfo.selfGoodsYn == 'Y')? '사이즈 전체' :'옵션 전체'}">사이즈 전체</div>
-									<ul class="list">
-										<!-- 선택처리 class="selected" -->
-										<li class="selected" th:text="${(goodsInfo.selfGoodsYn == 'Y')? '사이즈 전체' :'옵션 전체'}">사이즈 전체</li> 
-										<li>90</li>
-										<li>95</li>
-										<li>100</li>
-										<li>105</li>
-										<li>110</li>
-									</ul>
-								</div>
+						</div>
+						<div class="select_custom sort_opt2" th:if="${reviewOptionList != null and !reviewOptionList.empty}">
+							<div class="combo">
+								<th:block th:if="${(goodsInfo.selfGoodsYn == 'Y')}">
+								<div class="select">사이즈 전체<input type="hidden" name="selOption" value=""/></div>
+								</th:block>
+								<th:block th:unless="${(goodsInfo.selfGoodsYn == 'Y')}">
+								<div class="select">옵션 전체<input type="hidden" name="selOption" value=""/></div>
+								</th:block>
+								<ul class="list" onclick="jfReviewSearch();">
+									<!-- 선택처리 class="selected" -->
+									<li class="selected" th:text="${(goodsInfo.selfGoodsYn == 'Y')? '사이즈 전체' :'옵션 전체'}">사이즈 전체</li> 
+									<li th:each="reviewOption, status : ${reviewOptionList}" >
+									<th:block th:text="${reviewOption.optCd2}"></th:block>
+									<input type="hidden" name="selOption" th:value="${reviewOption.optCd2}"/>
+									</li>
+								</ul>
 							</div>
-							<div class="select_custom sort_opt3">
-								<div class="combo">
-									<div class="select">키 전체</div>
-									<ul class="list">
-										<!-- 선택처리 class="selected" -->
-										<li class="selected">키 전체</li> 
-										<li>150cm 이하</li>
-										<li>150~155cm</li>
-										<li>155~160cm</li>
-										<li>160~165cm</li>
-										<li>165~170cm</li>
-										<li>175~180cm</li>
-										<li>185~190cm</li>
-										<li>190~200cm</li>
-									</ul>
-								</div>
+						</div>
+						<div class="select_custom sort_opt3" th:if="${reviewHeightList != null and !reviewHeightList.empty}">
+							<div class="combo">
+								<div class="select">키 전체<input type="hidden" name="selHeight" value=""/></div>
+								<ul class="list" onclick="jfReviewSearch();">
+									<!-- 선택처리 class="selected" -->
+									<li class="selected">키 전체<input type="hidden" name="selHeight" value=""/></li> 
+									<li th:each="reviewHeight, status : ${reviewHeightList}" >
+									<th:block th:text="${reviewHeight.cdNm}"></th:block>
+									<input type="hidden" name="selHeight" th:value="${reviewHeight.cd}"/>
+									</li>
+								</ul>
 							</div>
-							<div class="select_custom sort_opt4">
-								<div class="combo">
-									<div class="select">몸무게 전체</div>
-									<ul class="list">
-										<!-- 선택처리 class="selected" -->
-										<li class="selected">몸무게 전체</li> 
-										<li>40kg 이하</li>
-										<li>40~45kg</li>
-										<li>45~50kg</li>
-										<li>50~55kg</li>
-										<li>55~60kg</li>
-										<li>60~65kg</li>
-										<li>65~70kg</li>
-										<li>75~80kg</li>
-										<li>85~85kg</li>
-										<li>90~95kg</li>
-									</ul>
-								</div>
+						</div>
+						<div class="select_custom sort_opt4" th:if="${reviewWeightList != null and !reviewWeightList.empty}">
+							<div class="combo">
+								<div class="select">몸무게 전체<input type="hidden" name="selWeight" value=""/></div>
+								<ul class="list" onclick="jfReviewSearch();">
+									<!-- 선택처리 class="selected" -->
+									<li class="selected">몸무게 전체<input type="hidden" name="selWeight" value=""/></li> 
+									<li th:each="reviewWeight, status : ${reviewWeightList}" >
+									<th:block th:text="${reviewWeight.cdNm}"></th:block>
+									<input type="hidden" name="selWeight" th:value="${reviewWeight.cd}"/>
+									</li>
+									
+								</ul>
 							</div>
-						</div>				
-					</form>
+						</div>
+					</div>
 				</div>
 				<!-- 나열조건결과 있을 때 노출 내용 -->
 				<div class="review_list">
-					<ul  id="ulGoodsReviewQna">
-						
+					<ul  id="ulGoodsReview">
 					</ul>
 				</div>
 				<div class="ui_row">
@@ -471,7 +467,7 @@
 						</p>
 					</div>
 					<div class="btn_box">
-						<button class="btn btn_default"><span>선택한 조건 초기화</span></button>
+						<button type="button" class="btn btn_default" onclick="jfReviewSearchInit();"><span>선택한 조건 초기화</span></button>
 					</div>
 				</div>
 				<!-- //나열조건결과 없을 때 노출 내용 -->
@@ -492,15 +488,16 @@
 			$('#goodsReviewForm  input[name="secretYn"]').val('N');
 		} */
 		// Initialize a pagination
-		gagaPaging.init('goodsReviewForm', fnGetListCallback, 'pageNav', 20);
+		gagaPaging.init('goodsReviewForm', fnGetListCallback, 'pageNav', 1);
 
 		// Load data
 		gagaPaging.load(1);
 	}
 	
 	var fnGetListCallback = function(result) {
-		$('#ulGoodsReviewQna').html('');
+		$('#ulGoodsReview').html('');
 		$('.nodata').hide();
+		$('.ui_row').show();
 		// 목록
 		if (result.dataList != null && result.dataList.length > 0) {
 			
@@ -510,7 +507,7 @@
 				tag += '	<div class="info_box">\n';
 				tag += '		<div class="star_score">\n';
 				tag += '			<span class="star">\n';
-				tag += '				<em class="progbar" style="width:70%;"></em>\n'; //<!-- 평점 style로 표기 -->
+				tag += '				<em class="progbar" style="width:'+(item.score*20)+'%;"></em>\n'; //<!-- 평점 style로 표기 -->
 				tag += '			</span>\n';
 				tag += '		</div>\n';
 				tag += '		<div class="writer">\n';
@@ -523,7 +520,11 @@
 				tag += '			<dl>\n';
 				tag += '				<div>\n';
 				tag += '					<dt>구매옵션</dt>\n';
-				tag += '					<dd>'+ item.optCd1 +' / '+ item.optCd2 +'</dd>\n';
+				if (item.goodsOptionList != null && item.goodsOptionList.length > 0){
+					$.each(item.goodsOptionList, function(gIdx, goodsOption){
+				tag += '					<dd>'+ goodsOption.optCd1 +' / '+ goodsOption.optCd2 +'</dd>\n';		
+					});
+				}
 				tag += '				</div>\n';
 				tag += '			</dl>\n';
 				tag += '		</div>\n';
@@ -533,7 +534,7 @@
 				tag += '					<dt>키/몸무게</dt>\n';
 				tag += '					<dd>'+ item.height +'cm/'+ item.weight +'kg</dd>\n';
 				tag += '				</div>\n';
-				if (!gagajf.isNuil(item.sizeGb) ){	// 사이즈구분값이 있을경우 노출
+				if (!gagajf.isNull(item.sizeGb) ){	// 사이즈구분값이 있을경우 노출
 					tag += '				<div>\n';
 					tag += '					<dt>사이즈</dt>\n';
 					tag += '					<dd>'+ item.scoreSizeNm +'</dd>\n';
@@ -570,19 +571,24 @@
 				tag += '		<div class="photo_list">\n';
 				tag += '			<ul>\n';
 				if (item.reviewAttachList != null && item.reviewAttachList.length > 0){
-					tag += '				<li>\n';
-					tag += '					<a href="">\n';
-					tag += '						<div class="pic">\n';
-					tag += '							<span class="thumb mov" style="background-image:url(\'/images/pc/thumb/tmp_pdLookbook3.jpg\');"></span>\n'; //<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
-					tag += '						</div>\n';
-					tag += '					</a>\n';
-					tag += '				</li>\n';
+					var fileGbClass = '';
+					$.each(item.reviewAttachList, function(aIdx, reviewAttach){
+						fileGbClass = '';
+						if (reviewAttach == "M") fileGbClass = "mov";
+				tag += '				<li>\n';
+				tag += '					<a href="javascript:void();" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\');">\n';
+				tag += '						<div class="pic">\n';
+				tag += '							<span class="thumb '+ fileGbClass +'" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');"></span>\n'; //<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+				tag += '						</div>\n';
+				tag += '					</a>\n';
+				tag += '				</li>\n';		
+					});	
 				}
 				tag += '			</ul>\n';
 				tag += '		</div>\n';
 				tag += '	</div>\n';
 				tag += '	<div class="txt_review_box">\n';
-				tag += '		<p>' + item.reviewContent '+</p>\n';
+				tag += '		<p>' + item.reviewContent +'</p>\n';
 				tag += '	</div>\n';
 				if (!gagajf.isNull(item.admRpl)){
 					tag += '	<div class="reply_box">\n';
@@ -600,7 +606,7 @@
 				tag += '</div>\n';
 				tag += '</li>\n';
 				
-				$('#ulGoodsReviewQna').append(tag);
+				$('#ulGoodsReview').append(tag);
 			});
 		} else {
 			$('.nodata').show();
@@ -611,6 +617,49 @@
 		gagaPaging.createPagination(result.paging.pageable);
 	}
 	
+	// 상품평 검색조건 클릭시
+	var jfReviewSearch = function(){
+		let reviewScore = $('#goodsReviewForm').find('.select_custom.sort_opt1').find('.select input[name=selScore]').val();
+		let reviewOption = $('#goodsReviewForm').find('.select_custom.sort_opt2').find('.select input[name=selOption]').val();
+		let reviewHeight = $('#goodsReviewForm').find('.select_custom.sort_opt3').find('.select input[name=selHeight]').val();
+		let reviewWeight = $('#goodsReviewForm').find('.select_custom.sort_opt4').find('.select input[name=selWeight]').val();
+		
+		let changFlag = false;
+		if ($('#goodsReviewForm input[name=reviewScore]').val() != reviewScore){
+			changFlag = true;
+		}else if ($('#goodsReviewForm input[name=reviewOption]').val() != reviewOption){
+			changFlag = true;
+		}else if ($('#goodsReviewForm input[name=reviewHeight]').val() != reviewHeight){
+			changFlag = true;
+		}else if ($('#goodsReviewForm input[name=reviewWeight]').val() != reviewWeight){
+			changFlag = true;
+		}
+		
+		$('#goodsReviewForm input[name=reviewScore]').val(reviewScore);
+		$('#goodsReviewForm input[name=reviewOption]').val(reviewOption);
+		$('#goodsReviewForm input[name=reviewHeight]').val(reviewHeight);
+		$('#goodsReviewForm input[name=reviewWeight]').val(reviewWeight);
+		
+		if (changFlag) fnGetList();
+		
+	}
+	
+	// 상품평 초기화
+	var jfReviewSearchInit = function(){
+		
+		$('#goodsReviewForm').find('.select_custom.sort_opt1').find('.list li').eq(0).trigger('click')
+		$('#goodsReviewForm').find('.select_custom.sort_opt2').find('.list li').eq(0).trigger('click')
+		$('#goodsReviewForm').find('.select_custom.sort_opt3').find('.list li').eq(0).trigger('click')
+		$('#goodsReviewForm').find('.select_custom.sort_opt4').find('.list li').eq(0).trigger('click')
+		
+		$('#goodsReviewForm input[name=reviewScore]').val('');
+		$('#goodsReviewForm input[name=reviewOption]').val('');
+		$('#goodsReviewForm input[name=reviewHeight]').val('');
+		$('#goodsReviewForm input[name=reviewWeight]').val('');
+		
+		fnGetList();
+	}
+	
 	$(document).ready( function() {
 
 		var sort_selecter01 = new sCombo('.area_rv_all .selection .select_custom.sort_opt1');

+ 0 - 994
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewPhotoDetailFormWeb.html

@@ -1,994 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko"
-	xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : GoodsReviewPhotoDetailFormWeb.html
- * @desc	: 상품평- 포토/영상 리뷰 상세 팝업
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE		 AUTHOR	  DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.03.09   eskim		최초 작성
- *******************************************************************************
- -->
-<div class="modal-dialog" role="document">
-	<div class="modal-content">
-		<div class="modal-header">
-			<h5 class="modal-title" id="pdPhotoReviewDetailLabel">포토/영상 리뷰</h5>
-			<button type="button" id="btn_pdPhotoReviewList_pop" class="btn_more"><span>전체보기</span></button>
-		</div>
-		<div class="modal-body">
-			<div class="pop_cont">
-				<div class="swiper-container detail">
-					<div class="swiper-wrapper">
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb mov"><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
-										<video poster="http://cdn.011st.com/11dims/resize/1999x1999/quality/75/11src/review/60101202/3121440803/5ce466b90b46400f860fe083437140ac.jpg" muted="muted" preload="metadata" controls="controls">
-											<source src="http://snsvideo.11st.co.kr/movie/item/www/662/66238860_06_1_C1.mp4" type="video/mp4">
-										</video>
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb">
-										<img src="/images/pc/thumb/tmp_pdLookbook2.jpg" alt="">
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb">
-										<img src="/images/pc/thumb/tmp_pdLookbook1.jpg" alt="">
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb">
-										<img src="/images/pc/thumb/tmp_pdLookbook3.jpg" alt="">
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb">
-										<img src="/images/pc/thumb/tmp_pdLookbook2.jpg" alt="">
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb mov">
-										<img src="/images/pc/thumb/tmp_pdLookbook3.jpg" alt="">
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb">
-										<img src="/images/pc/thumb/tmp_pdLookbook2.jpg" alt="">
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb">
-										<img src="/images/pc/thumb/tmp_pdLookbook1.jpg" alt="">
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb">
-										<img src="/images/pc/thumb/tmp_pdLookbook3.jpg" alt="">
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>
-						<div class="swiper-slide">
-							<!-- 리뷰내용 -->
-							<div class="review">
-								<div class="pic">
-									<span class="thumb">
-										<img src="/images/pc/thumb/tmp_pdLookbook2.jpg" alt="">
-									</span>
-								</div>
-								<div class="review_cont">
-									<div class="box_wrap">
-										<div class="star_box">
-											<div class="star_score">
-												<span class="star">
-													<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
-												</span>
-											</div>
-										</div>
-										<div class="response_box">
-											<div class="full">
-												<dl>
-													<div>
-														<dt>구매옵션</dt>
-														<dd>베이지 / 100</dd>
-													</div>
-												</dl>
-											</div>
-											<div class="full">
-												<dl>
-													<div>
-														<dt>키/몸무게</dt>
-														<dd>178cm/71kg</dd>
-													</div>
-												</dl>									
-											</div>
-											<div>
-												<dl>
-													<div>
-														<dt>사이즈</dt>
-														<dd>작음</dd>
-													</div>
-													<div>
-														<dt>컬러</dt>
-														<dd>밝음</dd>
-													</div>
-													<div>
-														<dt>핏</dt>
-														<dd>레귤러</dd>
-													</div>
-													<div>
-														<dt>두께감</dt>
-														<dd>적당함</dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<div class="txt_review_box">
-											<p>
-												슬림하게 나와서 핏이 더 이쁩니다. 팔 기장도 수선 안해도 될 것 같고 살짝 접어서 코디해도 멋스러울것 같네요. 편하게 간절기 여기저기 코디하기도 좋을것 같고 추천할 만한 아이템 입니다. 광택이 있는데 심하지않고 너무 고급스러워 보여요. 코트안 이너로 입기도 좋고 니트에 걸치면 겨울 잘지낼 수 있을 것 같아요. 편하게 간절기 여기저기 코디하기도 좋고 추천할 만한 아이템입니다.
-											</p>
-										</div>
-										<div class="writer_box">
-											<div class="writer">
-												<span class="wr_id">ab2****</span>
-												<span class="wr_date">2020.07.15</span>
-											</div>
-										</div>
-										<div class="reply_box">
-											<div class="reply">
-												<div class="reply_writer">
-													<span class="wr_name">관리자</span>
-													<span class="wr_date">2020.07.15</span>
-												</div>
-												<div class="reply_txt">
-													<p>
-														안녕하세요, 스타일24 관리자입니다.<br>
-														최대한 검수작업을 하고 있으나, 상품 출고량이 많은 경우 간혹 검수가 누락되는 경우가 있습니다.<br>
-														만약, 받아보시고 문제가 있을 경우 텍 제거하지마시고 고객센터로 접수 해주시면 처리 도와드리겠습니다.<br>
-														구매해주셔서 감사합니다.												 
-													</p>
-												</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<!-- //리뷰내용 -->
-						</div>				
-					</div>
-				</div>
-				<div class="swiper-button-next"></div>
-				<div class="swiper-button-prev"></div>
-				<!-- 리뷰 썸네일 리스트 -->
-				<div class="swiper-container thumblist">
-					<div class="swiper-wrapper">
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb mov" style="background-image:url('http://cdn.011st.com/11dims/resize/1999x1999/quality/75/11src/review/60101202/3121440803/5ce466b90b46400f860fe083437140ac.jpg');"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
-							</div>
-						</div>
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook2.jpg');"></span>
-							</div>
-						</div>
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook1.jpg');"></span>
-							</div>
-						</div>
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook3.jpg');"></span>
-							</div>
-						</div>
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook2.jpg');"></span>
-							</div>
-						</div>
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook3.jpg');"></span>
-							</div>
-						</div>
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook2.jpg');"></span>
-							</div>
-						</div>
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook1.jpg');"></span>
-							</div>
-						</div>
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook3.jpg');"></span>
-							</div>
-						</div>
-						<div class="swiper-slide">
-							<div class="pic">
-								<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook2.jpg');"></span>
-							</div>
-						</div>						  
-					</div>
-					<div class="swiper-scrollbar"></div>
-				</div>
-				<!-- //리뷰 썸네일 리스트 -->
-			</div>
-		</div>
-	</div>
-</div>
-<a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_review_photo_detail')" class="close-modal">Close</a>
-<script th:inline="javascript">
-/*<![CDATA[*/
-	 //슬라이드 - 상품 포토/영상 리뷰 썸네일리스트 영역 
-    var photoReviewListSwiper = new Swiper('.pd_photoreviewdetail_pop .swiper-container.thumblist', {
-        slidesPerView: 'auto',
-        spaceBetween: 8,
-        freeMode: true,
-        grabCursor: true,
-        watchSlidesVisibility: true,
-        watchSlidesProgress: true,
-        scrollbar: {el: '.pd_photoreviewdetail_pop .swiper-container.thumblist .swiper-scrollbar'},
-    }); 
-
-    //슬라이드 - 상품 포토/영상 리뷰 자세히보기 영역 
-    var photoReviewDetailSwiper = new Swiper('.pd_photoreviewdetail_pop .swiper-container.detail', {
-        effect :'fade',
-        slidesPerView: 1,
-        spaceBetween: 0,
-        simulateTouch:false,
-        navigation: {
-            nextEl: '.pd_photoreviewdetail_pop .swiper-button-next',
-            prevEl: '.pd_photoreviewdetail_pop .swiper-button-prev',
-        },
-        thumbs: {
-            swiper: photoReviewListSwiper
-        }
-    });
-/*]]>*/
-</script>	
- </html>

+ 59 - 79
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewPhotoFormWeb.html

@@ -22,7 +22,7 @@
 		<div class="modal-body">
 			<div class="pop_cont">
 				<div class="photo_list">
-					<ul>
+					<ul id="ulGoodsReviewPhoto">
 						<li>
 							<a href="">
 								<div class="pic">
@@ -30,100 +30,80 @@
 								</div>
 							</a>
 						</li>
-						<li>
-							<a href="">
-								<div class="pic">
-									<span class="thumb mov" style="background-image:url('/images/pc/thumb/tmp_pdLookbook2.jpg');"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
-								</div>
-							</a>
-						</li>
-						<li>
-							<a href="">
-								<div class="pic">
-									<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdDetail4.jpg');"></span>
-								</div>
-							</a>
-						</li>
-						<li>
-							<a href="">
-								<div class="pic">
-									<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdDetail4.jpg');"></span>
-								</div>
-							</a>
-						</li>
-						<li>
-							<a href="">
-								<div class="pic">
-									<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdDetail4.jpg');"></span>
-								</div>
-							</a>
-						</li>
-						<li>
-							<a href="">
-								<div class="pic">
-									<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdDetail4.jpg');"></span>
-								</div>
-							</a>
-						</li>
-						<li>
-							<a href="">
-								<div class="pic">
-									<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdDetail4.jpg');"></span>
-								</div>
-							</a>
-						</li>
-						<li>
-							<a href="">
-								<div class="pic">
-									<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdDetail4.jpg');"></span>
-								</div>
-							</a>
-						</li>
-						<li>
-							<a href="">
-								<div class="pic">
-									<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdDetail4.jpg');"></span>
-								</div>
-							</a>
-						</li>
-						<li>
-							<a href="">
-								<div class="pic">
-									<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdDetail4.jpg');"></span>
-								</div>
-							</a>
-						</li>
 					</ul>
 				</div>
 				<div class="ui_row">
-					<ul class="pageNav">
-						<li class="disabled"><a href="#">«</a></li>
-						<li class="prev disabled"><a href="#">‹</a></li>
-						<li><a href="#">1</a></li>
-						<li class="active"><a href="#">2</a></li>
-						<li><a href="#">3</a></li>
-						<li><a href="#">4</a></li>
-						<li><a href="#">5</a></li>
-						<li><a href="#">6</a></li>
-						<li><a href="#">7</a></li>
-						<li><a href="#">8</a></li>
-						<li><a href="#">9</a></li>
-						<li><a href="#">10</a></li>
-						<li class="next"><a href="#">›</a></li>
-						<li><a href="#">»</a></li>
+					<ul class="pageNav"  id="reviewPhtoPageNav">
 					</ul>
 				</div>
 			</div>
 		</div>
 	<!-- 포토영상 리뷰 자세히보기 팝업 내용 -->
 	</div>
+	<form id="goodsReviewPhotoForm" name="goodsReviewPhotoForm" action="#" th:action="@{'/goods/review/list'}">
+		<input type="hidden" name="pageNo" value ="1"/>
+		<input type="hidden" name="pageSize" value ="1"/>
+		<input type="hidden" name="photoYn" value ="Y"/>
+		<input type="hidden" name="goodsCd" th:value ="${params.goodsCd}"/>
+	</form>
 </div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_review_photo')" class="close-modal">Close</a>
 <script th:inline="javascript">
 /*<![CDATA[*/
 	
+	var fnReviewPhotoGetList = function() {
+
+	// Initialize a pagination
+		gagaPaging.init('goodsReviewPhotoForm', fnReviewPhotoGetListCallback, 'reviewPhtoPageNav', 1);
+
+		// Load data
+		gagaPaging.load(1);
+	}
+	
+	var fnReviewPhotoGetListCallback = function(result) {
+		$('#ulGoodsReviewPhoto').html('');
+	
+		// 목록
+		if (result.dataList != null && result.dataList.length > 0) {
+			
+			$.each(result.dataList, function(idx, item) {
+				let tag = '';
+				if (item.reviewAttachList != null && item.reviewAttachList.length > 0){
+					var fileGbClass = '';
+					$.each(item.reviewAttachList, function(aIdx, reviewAttach){
+						fileGbClass = '';
+						if (reviewAttach == "M") fileGbClass = "mov";
+				tag += '				<li>\n';
+				tag += '					<a href="javascript:void();" onclick="fnGoodsReviewDetail(\''+item.reviewSq+'\');">\n';
+				tag += '						<div class="pic">\n';
+				tag += '							<span class="thumb '+ fileGbClass +'" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');"></span>\n'; //<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+				tag += '						</div>\n';
+				tag += '					</a>\n';
+				tag += '				</li>\n';		
+					});	
+				}
+				
+				$('#ulGoodsReviewPhoto').append(tag);
+			});
+		
+		}
+
+		// Create pagination
+		gagaPaging.createPagination(result.paging.pageable);
+	}
+	
+	// 상세보기
+	var fnGoodsReviewDetail = function(reviewSq){
+		cfGoodsReviewDetail([[${params.goodsCd}]],'', 'Y', reviewSq);
+		cfCloseLayer('layer_review_photo');
+	}
 	
+	$(document).ready( function() {
+		
+		fnReviewPhotoGetList();
+		
+	});
 /*]]>*/
 </script>	
  </html>

+ 607 - 0
src/main/webapp/WEB-INF/views/web/mypage/MypageCancelFormWeb.html

@@ -0,0 +1,607 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="web/common/layout/MypageLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : MypageCancelFormWeb.html
+ * @desc    : 마이페이지 > 취소신청 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.19   card007     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+	<div class="cont">
+		<div class="sec_head">
+			<h3 class="subH1">주문취소</h3>
+			<span class="order_number">주문번호&nbsp;:&nbsp;<em th:text="${cancelList.oneData.ordNo}"></em></span>
+		</div>
+		<div class="sec_body">
+			<div class="part_goods">
+				<div class="goods_head">
+					<p>주문일 <span th:text="${cancelList.oneData.ordDt}"></span></p>
+				</div>
+				<div class="goods_cont">
+					<th:block th:if="${cancelList.cancelList}" th:each="cancel, status : ${cancelList.cancelList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+					<!-- 주문상품 -->
+					<div class="goods_info">
+						<div class="order_desc">
+							<div class="goods_box">
+								<div class="gd_item">
+									<a href="javascript:void(0)" th:attr="goodsCd=${cancel.goodsCd}" onclick="fnGoToGoodsDetail(this)">
+										<span class="thumb">
+											<img th:src="${imageUrl + '/' + cancel.sysImgNm}" width="100%" alt="">
+										</span>
+										<p>
+											<span class="brand" th:text="${cancel.brandNm}"></span>
+											<span class="tag primary" th:if="${cancel.shotDelvYn == 'Y'}">총알배송</span>
+											<span class="tag" th:if="${cancel.shotDelvYn == 'N' and cancel.selfGoodsYn == 'Y'}">STYLE24 일반배송</span>
+											<span class="tag" th:if="${cancel.selfGoodsYn == 'N'}">업체직배송</span>
+										</p>
+										<p>
+											<span class="name" th:text="${cancel.goodsNm}"></span>
+										</p>
+									</a>
+								</div>
+								<div class="gd_opt">
+									<div class="option_wrap">
+										<span class="title sr-only">주문 옵션</span>
+										<span class="option" th:text="|${cancel.optCd1} / ${cancel.optCd2}|"></span>
+									</div>
+								</div>
+								<div class="gd_calc">
+									<p>
+										<span class="count"><em th:text="${cancel.ordQty}"></em>개</span>
+									</p>
+									<p>
+										<span class="price_org"><em th:text="${#numbers.formatInteger(cancel.listPrice * cancel.ordQty, 1, 'COMMA')}"></em>원</span>
+										<span class="price_sale"><em th:text="${#numbers.formatInteger(cancel.ordAmt, 1, 'COMMA')}"></em>원</span>
+									</p>
+								</div>
+							</div>
+							<div class="button_box">
+								<div class="count_modify">
+									<span class="txt">수량</span>
+									<form class="form_wrap">
+										<div class="form_field">
+											<div class="select_custom select_count">
+												<div class="combo">
+													<input type="hidden" name="chgQty" value="0" th:attr="ordDtlNo=${cancel.ordDtlNo}, ordCanChgQty=${cancel.ordCanChgQty}"/>
+													<div class="select">선택</div>
+													<ul class="list">
+														<li class="selected" value="0">선택</li>
+														<li th:if="${cancel.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,cancel.ordCanChgQty)}" th:value="${num}" th:text="${num}" onclick="fnChangeCancelQty(this);"></li>
+													</ul>
+												</div>
+											</div>
+										</div>
+									</form>
+								</div>
+							</div>
+						</div>
+						<div class="order_text">
+							<p>취소하실 수량을 선택하신 후 주문 취소를 하실 수 있습니다.</p>
+						</div>
+					</div>
+					<!-- //주문상품 -->
+					</th:block>
+				</div>
+			</div>
+			<h4 class="subH3">환불정보</h4>
+			<div class="tbl type6">
+				<table>
+					<colgroup>
+						<col width="50%">
+						<col width="50%">
+					</colgroup>
+					<tr>
+						<td>
+							<dl>
+								<div>
+									<dt>환불 예정 금액</dt>
+									<dd>
+										<div class="price">
+											<span class="return_total_price"><em id="returnAmt">0</em>원</span>
+										</div>
+									</dd>
+								</div>
+								<div class="include_item"> <!-- 할인항목 표기 class명 include_item -->
+									<dt>상품 취소 금액</dt>
+									<dd><em id="goodsCancelAmt">0</em>원</dd>
+								</div>
+								<div class="include_item">
+									<dt>배송비</dt>
+									<dd><em id="deliveryFee">0</em>원</dd>
+								</div>
+								<div class="include_item">
+									<dt>할인 금액 차감</dt>
+									<dd><em id="deductDcAmt">0</em>원</dd>
+								</div>
+							</dl>
+						</td>
+						<td>
+							<dl>
+								<div>
+									<dt>환불 수단</dt>
+									<dd th:text="${paymentInfo.payMeansNm}"></dd>
+								</div>
+								<div>
+									<dt>결제 금액 환불</dt>
+									<dd>
+										<em id="refundPayAmt">0</em>원
+									</dd>
+								</div>
+								<div>
+									<dt>포인트 환불</dt>
+									<dd>
+										<em id="refundPoint">0</em>P
+									</dd>
+								</div>
+								<div>
+									<dt>상품권 환불</dt>
+									<dd>
+										<em id="refundGiftCard">0</em>원
+									</dd>
+								</div>
+							</dl>
+						</td>
+					</tr>
+				</table>
+			</div>
+			<div class="txt_info">
+				<ul>
+					<li>
+						카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.
+					</li>
+				</ul>
+			</div>
+			<div class="btn_footer_area">
+				<button type="button" class="btn btn_default btn_md"><span>취소</span></button>
+				<button type="button" id="btn_refund_pop" class="btn btn_dark btn_md"><span>주문 취소</span></button>
+			</div>
+		</div>
+	</div>
+	<!-- // CONT-BODY -->
+
+	<!--<div class="my_cont">
+		<div class="sec_head">
+			<h3>반품 신청</h3>
+			<div class="od_detail">
+				(주문번호 : <span class="num" th:text="${ordNo}"></span>)
+			</div>
+		</div>
+		<div class="sec_body mypage_body">
+			<form class="form_wrap" role="form">
+				<div class="order_list">
+					<section class="order_row">
+						<div class="part_deliver">
+							<div class="tbl_tit">
+								&lt;!&ndash; 주문일/선물일 설정 &ndash;&gt;
+								<span class="start_t" th:unless="${returnList.oneData.giftPackYn == 'Y'}">주문일</span>
+								<span class="gift_t" th:if="${returnList.oneData.giftPackYn == 'Y'}">선물일</span>
+								&lt;!&ndash; //주문일/선물일 설정 &ndash;&gt;
+
+								<span class="order_date" th:text="${returnList.oneData.ordDt}"></span>
+
+								&lt;!&ndash; 배송구분 설정 &ndash;&gt;
+								<span class="order_label02" th:if="${returnList.shotDelv}">총알배송</span>
+								<span class="order_label01" th:if="${returnList.selfMall}">STYLE24 일반배송</span>
+								<span class="order_label01" th:if="${returnList.supplyMall}">업체직배송</span>
+								&lt;!&ndash; //배송구분 설정 &ndash;&gt;
+								<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${returnList.oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>
+							</div>
+							<div class="tbl type2">
+								<table id="returnList">
+									<colgroup>
+										<col width="1020">
+										<col width="180">
+									</colgroup>
+									<tbody>
+									<th:block th:if="${returnList.returnList}" th:each="return, status : ${returnList.returnList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+										<tr>
+											<td>
+												<div class="info_item">
+													<div class="thumb_box">
+														<a href="">
+															<img th:src="${imageUrl + '/' + return.sysImgNm}" width="100%" alt="">
+														</a>
+													</div>
+													<div class="info_box">
+														<p class="od_name">
+															<a href="">
+																<span class="brand" th:text="${return.brandNm}"></span>
+																<span class="name" th:text="${return.goodsNm}"></span>
+															</a>
+														</p>
+														<p class="od_opt">
+															<span class="option"><em th:text="${return.optCd1}"></em><em th:text="${return.optCd2}"></em></span>
+															<span class="count">수량 <em th:text="${return.ordQty}"></em>개</span>
+														</p>
+													</div>
+													<div class="info_calc">
+														<p class="price">
+															<span class="selling_price" th:text="|${#numbers.formatInteger(return.ordAmt, 1, 'COMMA')}원|"></span>
+														</p>
+														<p class="point"><span th:text="${#numbers.formatInteger(return.savePntAmt, 1, 'COMMA')}"></span>p</p>
+													</div>
+												</div>
+											</td>
+											<td class="cnt_sel">
+												<span class="cnt_t">수량</span>
+												<div class="form_field">
+													<div class="select_custom type1">
+														<div class="combo">
+															<input type="hidden" name="chgQty" value="0" th:attr="ordDtlNo=${return.ordDtlNo}, ordCanChgQty=${return.ordCanChgQty}"/>
+															<div class="select">선택</div>
+															<ul class="list" style="width:100px; margin:0 auto">
+																<li class="selected" value="0">선택</li>
+																<li th:if="${return.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordCanChgQty)}" th:value="${num}" th:text="${num}" onclick="fnChangeQty(this);"></li>
+															</ul>
+														</div>
+													</div>
+												</div>
+&lt;!&ndash;												<select class="select_dress" name="chgQty" onchange="fnChangeQty();">&ndash;&gt;
+&lt;!&ndash;													<option value="">선택</option>&ndash;&gt;
+&lt;!&ndash;													<option th:if="${return.ordQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordQty)}" th:value="${num}" th:text="${num}"></option>&ndash;&gt;
+&lt;!&ndash;												</select>&ndash;&gt;
+											</td>
+										</tr>
+									</th:block>
+									</tbody>
+								</table>
+							</div>
+							<div class="order_confirm">
+								<p class="cf_txt cf_desc c_primary">반품하실 상품의 수량을 선택하신 후 반품 신청을 하실 수 있습니다.</p>
+							</div>
+						</div>
+					</section>
+					<section class="order_row">
+						<div class="tbl_tit">
+							<h3 class="subH3">반품 사유</h3>
+						</div>
+						<div class="tbl type1">
+							<table>
+								<colgroup>
+									<col width="*">
+								</colgroup>
+								<tbody>
+								<tr>
+									<td>
+										<div class="form_field">
+											<div class="select_custom type1">
+												<div class="combo">
+													<input type="hidden" name="chgReason"/>
+													<div class="select">반품 사유를 선택하세요</div>
+													<ul class="list" style="width:400px">
+														<li class="selected" value="">반품 사유를 선택하세요</li>
+														<li th:if="${returnReason}" th:each="oneData, status : ${returnReason}" th:value="${oneData.cd}" th:text="${oneData.cdNm}" onclick="fnChangeReason(this);"></li>
+													</ul>
+												</div>
+											</div>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<td>
+										<textarea class="doc_exchange" name="chgMemo" id="chgMemo" placeholder="자세한 사유를 입력해주세요." onkeyup="cfnGetTextLength(this, 200, $('#return_cnt'));"></textarea>
+										<p class="txt_cnt"><span id="return_cnt" class="c_primary">0</span>/200</p>
+									</td>
+								</tr>
+								</tbody>
+							</table>
+						</div>
+					</section>
+					<section class="order_row" id="wdGb">
+						<div class="order_tit">
+							<h3 class="subH3">반품 방식 선택</h3>
+						</div>
+						<div class="tbl type1">
+							<table>
+								<colgroup>
+									<col width="*">
+								</colgroup>
+								<tbody>
+								<tr>
+									<td>
+										<div class="form_field radio_field">
+											<div class="">
+												<input type="radio" name="wdGb" id="withdraw" value="W" checked>
+												<label for="withdraw"><span>방문회수 <b class="c_primary">택배사에서 방문하여 회수</b></span></label>
+											</div>
+											<div class="">
+												<input type="radio" name="wdGb" id="direct" value="D">
+												<label for="direct"><span>직접반송 <b class="c_primary">고객이 직접 반송처리</b></span></label>
+											</div>
+										</div>
+									</td>
+								</tr>
+								</tbody>
+							</table>
+						</div>
+					</section>
+					<section class="order_row" id="chgerLocation">
+						<div class="order_tit">
+							<h3 class="subH3">상품 회수지</h3>
+							<span class="del_t">택배사에서 반품 상품을 직접 회수할 장소 선택</span>
+							<button type="button" class="btn_popup" onclick="fnChangeDeliveryAddr('chger');"><span>회수지 선택</span></button>
+						</div>
+						<div class="tbl type1">
+							<table>
+								<colgroup>
+									<col width="200">
+									<col width="*">
+								</colgroup>
+								<tbody>
+								<tr>
+									<th>성명</th>
+									<td id="chgerNm" th:text="${deliveryAddrInfo.recipNm}"></td>
+									<input type="hidden" name="chgerNm" th:value="${deliveryAddrInfo.recipNm}">
+								</tr>
+								<tr>
+									<th>연락처</th>
+									<td id="chgerPhnno" th:text="${deliveryAddrInfo.recipPhnno}"></td>
+									<input type="hidden" name="chgerPhnno" th:value="${deliveryAddrInfo.recipPhnno}">
+								</tr>
+								<tr>
+									<th>주소</th>
+									<td id="chgerAddr" th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"></td>
+									<input type="hidden" name="chgerBaseAddr" th:value="${deliveryAddrInfo.recipBaseAddr}">
+									<input type="hidden" name="chgerDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
+								</tr>
+								</tbody>
+							</table>
+						</div>
+					</section>
+					<section class="order_row" id="returnLocation" style="display:none">
+						<div class="order_tit">
+							<h3 class="subH3">반품하실 배송지</h3>
+						</div>
+						<div class="tbl type1">
+							<table>
+								<colgroup>
+									<col width="200">
+									<col width="*">
+								</colgroup>
+								<tbody>
+								<tr>
+									<th>성명</th>
+									<td th:text="${deliveryAddrInfo.rtnLocNm}"></td>
+									<input type="hidden" name="rtnLocNm" th:value="${deliveryAddrInfo.rtnLocNm}">
+								</tr>
+								<tr>
+									<th>연락처</th>
+									<td th:text="${deliveryAddrInfo.rtnLocTelno}"></td>
+									<input type="hidden" name="rtnLocTelno" th:value="${deliveryAddrInfo.rtnLocTelno}">
+								</tr>
+								<tr>
+									<th>주소</th>
+									<td th:text="|${deliveryAddrInfo.rtnLocBaseAddr} ${deliveryAddrInfo.rtnLocDtlAddr}|"></td>
+									<input type="hidden" name="rtnLocBaseAddr" th:value="${deliveryAddrInfo.rtnLocBaseAddr}">
+									<input type="hidden" name="rtnLocDtlAddr" th:value="${deliveryAddrInfo.rtnLocDtlAddr}">
+								</tr>
+								</tbody>
+							</table>
+						</div>
+					</section>
+					<section class="order_row">
+						<div class="order_tit">
+							<h3 class="subH3">환불 정보</h3>
+							<button type="button" class="btn_popup"><span>취소 전표 보기</span></button>
+						</div>
+						<div class="tbl type1 re_info_tbl">
+							<div class="r_left">
+								<dl>
+									<dt>환불(예정) 금액</dt>
+									<dd>
+										<span class="big_t"><strong id="returnAmt">0</strong>원</span>
+									</dd>
+								</dl>
+								<dl>
+									<dt>상품취소 금액</dt>
+									<dd>
+										<span id="goodsCancelAmt">0</span>원
+									</dd>
+								</dl>
+								<dl>
+									<dt>배송비</dt>
+									<dd>
+										<span id="deliveryFee">0</span>원
+									</dd>
+								</dl>
+								<dl>
+									<dt>할인금액 차감</dt>
+									<dd>
+										<span id="deductDcAmt">0</span>원
+									</dd>
+								</dl>
+							</div>
+							<div class="r_right">
+								<dl>
+									<dt>환불수단</dt>
+									<dd>
+										<span th:text="${paymentInfo.payMeansNm}"></span>
+									</dd>
+								</dl>
+								<dl>
+									<dt>결제금액 환불</dt>
+									<dd>
+										<span id="refundPayAmt">0</span>원
+									</dd>
+								</dl>
+								<dl>
+									<dt>포인트 환불</dt>
+									<dd>
+										<span id="refundPoint">0</span>P
+									</dd>
+								</dl>
+								<dl>
+									<dt>상품권 환불</dt>
+									<dd>
+										<span id="refundGiftCard">0</span>원
+									</dd>
+								</dl>
+							</div>
+						</div>
+						<p class="alert_t">※ 카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.</p>
+					</section>
+					<section class="order_row" id="addDeliveryFee" style="display:none">
+						<div class="ship_fee">
+							<p><span class="c_primary" id="addPayCost">2,500원</span> 배송비 추가 결제가 필요합니다.</p>
+							<input type="hidden" name="addPayCost"/>
+						</div>
+					</section>
+					<div class="btn_wrap">
+						<button type="button" class="btn btn_default cancle_btn" onclick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST)"><span>반품 취소</span></button>
+						<button tyep="submit" class="btn btn_primary submit_btn" onclick="fnReturn()"><span id="returnButton">반품 신청</span></button>
+					</div>
+				</div>
+			</form>
+		</div>
+	</div>-->
+<script src="/ux/plugins/gaga/gaga.paging.js"></script>
+<script th:inline="javascript">
+	let cancelList = [[${cancelList}]];
+	let usedGiftCardInfo = [[${usedGiftCardInfo}]];
+	let usedPointInfo = [[${usedPointInfo}]];
+
+	$(document).ready(function() {
+		// 마이페이지 LNB 설정
+		fnSetMypageLnbList(2);
+		
+		// 마이페이지 location 설정
+		fnSetMypageLocation('취소/반품/환불내역', '_PAGE_MYPAGE_CRS_LIST', '취소 신청');
+		
+		// 셀렉트박스 활성화
+		var goods_count_selecter = new sCombo('.myOrderView .part_goods .select_custom.select_count');
+	});
+	
+	// 취소 처리
+	var fnCancel = function() {
+		// TODO
+		// 취소신청 처리
+	}
+	
+	// 취소 수량 변경 이벤트 처리
+	var fnChangeCancelQty = function(param) {
+		let url = '/mypage/cancel/refund/amt/calculate';
+
+		if (param != null) {
+			$(param).parent().parent().find('input[name=chgQty]').val($(param).val());
+		}
+
+		let cancelRequestList = [];
+
+		// 취소 수량 설정
+		let chgQtyArr = [];
+		let ordDtlNoArr = [];
+		let ordCanChgQtyArr = [];
+		let chgQtyChk = 0;
+		$.each($('input[name=chgQty]'), function(idx, item) {
+			let chgQty = $(item).val();
+			let ordDtlNo = $(item).attr('ordDtlNo');
+			let ordCanChgQty = $(item).attr('ordCanChgQty');
+
+			chgQtyArr.push(Number(chgQty));
+			ordDtlNoArr.push(Number(ordDtlNo));
+			ordCanChgQtyArr.push(Number(ordCanChgQty));
+			
+			chgQtyChk += Number(chgQty);
+		});
+
+		if (chgQtyChk > 0) {
+			// 환불포인트, 환불상품권 금액 계산
+			let refundPoint = fnCalculatePoint(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr);
+			let refundGiftCard = fnCalculateGiftCard(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr);
+			
+			$.each(cancelList, function (idx, item) {
+				let index = ordDtlNoArr.indexOf(item.ordDtlNo);
+				item.ordCanChgQty = chgQtyArr[index];
+				
+				cancelRequestList.push(item);
+			})
+			
+			let jsonData = JSON.stringify(cancelRequestList);
+			
+			gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
+				let spanCnclRtnAmt = Number(result.spanCnclRtnAmt);
+				let sumDeliveryFee = Number(result.sumDeliveryFee);
+				let spanTotDeliveryFee = Number(result.spanTotDeliveryFee);
+				let spanCpnDcAmt = Number(result.spanCpnDcAmt);
+				let spanTmtbDcAmt = Number(result.spanTmtbDcAmt);
+				let spanPrePntDcAmt = Number(result.spanPrePntDcAmt);
+				let spanRefundAmt = Number(result.spanRefundAmt);
+				
+				let goodsCancelAmt = spanCnclRtnAmt;										// 상품취소금액
+				let deliveryFee = sumDeliveryFee - spanTotDeliveryFee;						// 배송비
+				let deductDcAmt = 0 - spanCpnDcAmt - spanTmtbDcAmt - spanPrePntDcAmt;		// 할인금액 차감(쿠폰+다다익선+선포인트)
+				let refundPayAmt = spanRefundAmt;											// 결제금액 환불
+				let returnAmt = refundPayAmt + refundPoint + refundGiftCard;				// 환불예정금액
+				
+				// 금액 설정
+				$('#returnAmt').text(returnAmt.addComma());
+				$('#goodsCancelAmt').text(goodsCancelAmt.addComma());
+				$('#deliveryFee').text(deliveryFee.addComma());
+				$('#deductDcAmt').text(deductDcAmt.addComma());
+				$('#refundPayAmt').text(refundPayAmt.addComma());
+				$('#refundPoint').text(refundPoint.addComma());
+				$('#refundGiftCard').text(refundGiftCard.addComma());
+				console.log(result);
+			});
+		}
+	}
+
+	// 환불 포인트 계산
+	var fnCalculatePoint = function(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr) {
+		let refundPoint = 0;
+
+		$.each(usedPointInfo, function(idx, item) {
+			let index = ordDtlNoArr.indexOf(item.ordDtlNo);
+			let chgQty = chgQtyArr[index];
+			let ordCanChgQty = ordCanChgQtyArr[index];
+			
+			if (chgQty > 0) {
+				if (chgQty == ordCanChgQty) {
+					refundPoint += item.pntAmt;
+				} else {
+					refundPoint += item.pntAmt * (chgQty / ordCanChgQty);
+				}
+			}
+		});
+		
+		return refundPoint;
+	}
+	
+	// 환불 상품권 계산
+	var fnCalculateGiftCard = function(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr) {
+		let refundGiftCard = 0;
+		
+		$.each(usedGiftCardInfo, function(idx, item) {
+			let index = ordDtlNoArr.indexOf(item.ordDtlNo);
+			let chgQty = chgQtyArr[index];
+			let ordCanChgQty = ordCanChgQtyArr[index];
+			
+			if (chgQty > 0) {
+				if (chgQty == ordCanChgQty) {
+					refundGiftCard += item.gfcdAmt;
+				} else {
+					refundGiftCard += item.pntAmt * (chgQty / ordCanChgQty);
+				}
+			}
+		});
+		
+		return refundGiftCard;
+	}
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 47 - 52
src/main/webapp/WEB-INF/views/web/mypage/MypageCouponDetailPopWeb.html

@@ -18,55 +18,50 @@
  -->
 <!-- 쿠폰 상세보기 팝업 -->
 <div class="modal-dialog" role="document">
-	<div class="modal-content">
-		<div class="modal-header">
-			<h5 class="modal-title" th:text="${couponDetailInfo.cpnNm}"></h5>
-		</div>
-		<div class="modal-body">
-			<section class="order_row">
-				<div class="coupon_condition">
-					<dl class="clear">
-						<dt>사용조건</dt>
-						<dd th:if="${couponDetailInfo.buyLimitAmt < 1}">제한없음</dd>
-						<dd th:unless="${couponDetailInfo.buyLimitAmt < 1}">
-							<span th:text="${#numbers.formatInteger(couponDetailInfo.buyLimitAmt,0,'COMMA')}"></span>원 구매 시 최대 <span th:text="${#numbers.formatInteger(couponDetailInfo.maxDcAmt,0,'COMMA')}"></span>원 할인
-						</dd>
-					</dl>
-					<dl class="clear">
-						<dt>발급수량</dt>
-						<dd th:if="${couponDetailInfo.custPubLimitQty < 1}">제한없음</dd>
-						<dd th:unless="${couponDetailInfo.custPubLimitQty < 1}" th:text="'1인 최대 '+${#numbers.formatInteger(couponDetailInfo.custPubLimitQty,0,'COMMA')} + ' 매'"></dd>
-					</dl>
-					<dl class="clear">
-						<dt>유효기간</dt>
-						<dd th:text="${couponDetailInfo.availStdt} + ' ~ ' +${couponDetailInfo.availEddt}"></dd>
-					</dl>
-					<dl class="clear">
-						<dt>적용 브랜드</dt>
-						<th:block th:each="BrandData, BrandStat : ${cpnDtlRefvalBrandList}">
-						<dd th:text="${BrandData.brandEnm}"></dd>
-						</th:block>
-					</dl>
-					<dl class="clear">
-						<dt>적용 카테고리</dt>
-						<th:block th:each="CateData, CateStat : ${cpnDtlRefvalCateList}">
-						<dd th:text="${CateData.cateNm}"></dd>
-						</th:block>
-					</dl>
-					<dl class="clear">
-						<dt>적용 상품</dt>
-						<th:block th:each="GoodsData, GoodsStat : ${cpnDtlRefvalApplyGoodsList}">
-						<dd th:text="'- '+${GoodsData.goodsNm}"></dd><br>
-						</th:block>
-					</dl>
-					<dl class="clear">
-						<dt>제외 상품</dt>
-						<th:block th:each="ExceptData, ExceptStat : ${cpnDtlRefvalExceptGoodsList}">
-						<dd th:text="'- '+${ExceptData.goodsNm}"></dd><br>
-						</th:block>
-					</dl>
-				</div>
-			</section>
-		</div>
-	</div>
-</div>
+    <div class="modal-content">
+        <div class="modal-header">
+            <h5 class="modal-title" th:text="${couponDetailInfo.cpnNm}"></h5>
+        </div>
+        <div class="modal-body">
+            <div class="pop_cont">
+                <p th:if="${couponDetailInfo.buyLimitAmt < 1}"><strong>사용조건</strong>제한없음</p>
+                <p th:unless="${couponDetailInfo.buyLimitAmt < 1}"><strong>사용조건</strong>[[${#numbers.formatInteger(couponDetailInfo.buyLimitAmt,0,'COMMA')}]]원 이상 구매 시 최대 [[${#numbers.formatInteger(couponDetailInfo.maxDcAmt,0,'COMMA')}]]원 할인 </p>
+                <p th:if="${couponDetailInfo.custPubLimitQty < 1}"><strong>발급수량</strong>제한없음</p>
+                <p th:unless="${couponDetailInfo.custPubLimitQty < 1}"><strong>발급수량</strong>1인 최대 [[${#numbers.formatInteger(couponDetailInfo.custPubLimitQty,0,'COMMA')}]] 매</p>
+                <p><strong>유효기간</strong>[[${couponDetailInfo.availStdt}]] ~ [[${couponDetailInfo.availEddt}]]</p>
+             
+                <p><strong>브랜드</strong>
+                   <th:block th:each="BrandData, BrandStat : ${cpnDtlRefvalBrandList}">
+                		[[${BrandData.brandEnm}]],
+               		</th:block>
+                </p>
+                
+                
+                <p><strong>카테고리</strong>
+                	<th:block th:each="CateData, CateStat : ${cpnDtlRefvalCateList}">
+                		[[${CateData.cateNm}]],
+                	</th:block>
+                </p>
+                
+                
+                <p><strong>상품</strong>
+                	<th:block th:each="GoodsData, GoodsStat : ${cpnDtlRefvalApplyGoodsList}">
+                		[[${GoodsData.goodsNm}]],
+                	</th:block>
+                </p>
+                
+                
+                <p><strong>제외상품</strong>
+                	<th:block th:each="ExceptData, ExceptStat : ${cpnDtlRefvalExceptGoodsList}">
+                		[[${ExceptData.goodsNm}]],
+               		</th:block>
+                </p>
+                
+            </div>
+        </div>
+        <div class="modal-footer">
+            <p>본 쿠폰은 특정 상품&#47;행사에 적용되는 쿠폰이며,적용가능여부는 상품별 상이할 수 있습니다.</p>
+            <p>본 이벤트는 당사 사정에 따라 사전고지 없이 변경 또는 조기종료 될 수 있습니다.</p>
+        </div>
+    </div>
+</div>

+ 127 - 62
src/main/webapp/WEB-INF/views/web/mypage/MypageCouponFormWeb.html

@@ -1,6 +1,5 @@
 <!DOCTYPE html>
-<html lang="ko"
-	xmlns:th="http://www.thymeleaf.org"
+<html lang="ko" xmlns:th="http://www.thymeleaf.org"
 	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
 	layout:decorator="web/common/layout/MypageLayoutWeb">
 <!--
@@ -17,68 +16,119 @@
  *******************************************************************************
  -->
 <body>
-
-<th:block layout:fragment="content">
-<!--  container -->
-	<div class="my_cont">
-		<div class="sec_head">
-			<h3>나의 쿠폰</h3>
-		</div>
-		<div class="sec_body">
-			<div class="save_area mypage_coupon">
-				<p>내가 보유한 할인 쿠폰<strong th:text="${#numbers.formatInteger(couponInfo.allCouponCnt,0,'COMMA')}"></strong>장</p>
-				<ul>
-					<li>사용 가능 할인 쿠폰 <span th:text="${#numbers.formatInteger(couponInfo.useCouponCnt,0,'COMMA')} + '장'"></span></li>
-					<li>7일 이내 마감 쿠폰 <span th:text="${#numbers.formatInteger(couponInfo.expireCouponCnt,0,'COMMA')} + '장'"></span></li>
-				</ul>
-			</div>
-			<div class="coupon_list">
-				<ul class="clear">
-					<th:block th:each="CouponData, CouponStat : ${couponList}">
-					<li th:class="${CouponData.userYn == 'Y' ? '' : 'off'}">
-						<div class="cp_top">
-							<div class="cp_detail">
-								<p class="tit" th:text="${CouponData.cpnNm}"></p>
-								<th:block th:if="${CouponData.dcWay == '할인율'}">
-								<strong class="sale_t won_t"><span th:text="${CouponData.dcPval}"></span>%</strong>
-								</th:block>
-								<th:block th:unless="${CouponData.dcWay == '할인율'}">
-								<strong class="sale_t won_t"><span th:text="${#numbers.formatInteger(CouponData.dcPval,0,'COMMA')}"></span>원</strong>
-								</th:block>
-								
-								<p class="cp_cont"><span th:text="${#numbers.formatInteger(CouponData.buyLimitAmt,0,'COMMA')}"></span>원 이상 구매시 최대 <span th:text="${#numbers.formatInteger(CouponData.maxDcAmt,0,'COMMA')}"></span>원 할인</p>
-								<span class="cp_cnt"><span th:text="${CouponData.cnt}"></span>장 보유</span>
+	<th:block layout:fragment="content">
+		<!--  container -->
+		<!-- CONT-BODY -->
+		<div class="content myCoupon">
+			<!-- 페이지특정 클래스 = myCoupon -->
+			<div class="cont_body">
+				<div class="lnb">
+					<!-- 마이페이지 lnb 영역 -->
+				</div>
+				<div class="cont my_cont">
+					<div class="sec_head">
+						<h3 class="subH1">쿠폰</h3>
+					</div>
+					<div class="sec_body">
+						<div class="highlight_area">
+							<div class="have_amount">
+								<div class="total_amount">
+									나의 보유 쿠폰&nbsp;<span><em
+										th:text="${#numbers.formatInteger(couponInfo.allCouponCnt,0,'COMMA')}"></em>장</span>
+								</div>
+								<dl>
+									<div>
+										<dt>
+											<span class="tag primary_line">D-<em>7</em></span>7일 이내 소멸 예정
+										</dt>
+										<dd>
+											<em
+												th:text="${#numbers.formatInteger(couponInfo.expireCouponCnt,0,'COMMA')}"></em>장
+										</dd>
+									</div>
+								</dl>
 							</div>
-							<span class="cp_shape"></span>
 						</div>
-					
-						<th:block th:if="${CouponData.userYn == 'Y'}">
-						<div class="cp_date">
-							<span th:text="${CouponData.availStdt}"></span> ~ <span th:text="${CouponData.availEddt}"></span>
-						</div>
-						</th:block>
-						
-						<th:block th:unless="${CouponData.userYn == 'Y'}">
-						<div class="cp_date">
-							<span class="cp_off">사용완료</span>
-						</div>
-						</th:block>
-						
-						<div class="cp_info">
-							<button type="button" th:onclick="useInfoCoupon([[${CouponData.cpnId}]])" class="coupon_pop_btn"><span>사용안내</span></button>
+						<div class="content_area">
+							<!-- 데이터 있을 시 -->
+							<div class="list_box">
+								<div class="coupon_list">
+									<ul>
+										<th:block th:if="${couponList != null and !couponList.empty}"
+											th:each="CouponData, CouponStat : ${couponList}">
+											<li>
+												<!-- 쿠폰사용 기한 -->
+												<div
+													th:class="${CouponData.userYn == 'coupon' ? '' : 'coupon disabled'}">
+													<div>
+														<p class="cp_name" th:text="${CouponData.cpnNm}"></p>
+														<p class="cp_cont">
+															<th:block th:if="${CouponData.dcWay == '할인율'}">
+																<span><em th:text="${CouponData.dcPval}"></em>%</span>
+															</th:block>
+															<th:block th:unless="${CouponData.dcWay == '할인율'}">
+																<span><em
+																	th:text="${#numbers.formatInteger(CouponData.dcPval,0,'COMMA')}"></em>원</span>
+															</th:block>
+
+														</p>
+														<p class="cp_condition">
+															[[${#numbers.formatInteger(CouponData.buyLimitAmt,0,'COMMA')}]]원
+															이상 구매 시 최대
+															[[${#numbers.formatInteger(CouponData.maxDcAmt,0,'COMMA')}]]원
+															할인 <span><em class="tag primary_line"
+																th:text="${CouponData.cnt}+' 장 보유'"></em></span>
+														</p>
+													</div>
+													<th:block th:if="${CouponData.userYn == 'Y'}">
+														<p class="cp_date">
+															<span th:text="${CouponData.availStdt}"></span>&nbsp;~&nbsp;<span
+																th:text="${CouponData.availEddt}"></span>
+														</p>
+													</th:block>
+													<th:block th:unless="${CouponData.userYn == 'Y'}">
+														<p class="cp_date">사용완료</p>
+													</th:block>
+
+												</div> <!-- 쿠폰사용 기한-->
+												<button type="button" id="btn_couponInfo_pop" class="btn_underline"	th:onclick="useInfoCoupon([[${CouponData.cpnId}]])">
+													<span>사용안내</span>
+												</button>
+											</li>
+									</ul>
+								</div>
+							</div>
+							<!-- //데이터 있을 시 -->
+							<!-- 데이터 없을 시 -->
+							<div class="nodata" style="display: none;">
+								<div class="txt_box">
+									<p>
+										현재 노출 할 수 있는 쿠폰이 없습니다.<br>
+									</p>
+								</div>
+								<!-- 버튼 필요시 -->
+								<!-- <div class="btn_box">
+										<button class="btn btn_default"><span>행동하기</span></button>
+									</div> -->
+								<!-- //버튼 필요시 -->
+							</div>
+							<!-- 데이터 없을 시 -->
 						</div>
-					</li>
-					</th:block>
-				</ul>
+					</div>
+				</div>
 			</div>
 		</div>
-	</div>
-	
-	<!-- 쿠폰 사용 내역 팝업 -->
-	<div class="modal coupon_popup" tabindex="-1" role="dialog" aria-labelledby="PopupBasicLabel" aria-hidden="true" id="couponDetailPop"></div>
+		<!-- // CONT-BODY -->
+
+		<!-- 쿠폰 사용 내역 팝업 -->
+		<div class="modal fade dp_coupon_pop"  id="coupon_modal_02" tabindex="-1" role="dialog"	aria-labelledby="PopupBasicLabel" aria-hidden="true"></div>
 
-	<!-- // container -->	
-<script th:inline="javascript">
+		<!-- // container -->
+		<script th:inline="javascript">
+
+let couponList = ([[${couponList}]]);	
+
+console.log(couponList);
 // 사용안내 모달
 var useInfoCoupon = function (id) {
 	 $.ajax( {
@@ -87,8 +137,8 @@ var useInfoCoupon = function (id) {
 		dataType 	: 'html',
 		success 	: function(result) {
 			if (result != null) {
-				$("#couponDetailPop").html(result);
-				$("#couponDetailPop").modal("show");
+				$("#coupon_modal_02").html(result);
+				$("#coupon_modal_02").modal("show");
 			}
 		}
 	});
@@ -96,8 +146,23 @@ var useInfoCoupon = function (id) {
 	return false; 
 }
 
-$(document).ready(function() {
+if(couponList.length>0){
+	$(".nodata").hide();
+}else{
+	$(".nodata").show();
+}
+
 
+
+
+$(document).ready(function() {
+	
+	if(couponList.length>0){
+		$(".nodata").hide();
+	}else{
+		$(".nodata").show();
+	}
+	
 	// 마이페이지 LNB 설정
 	fnSetMypageLnbList(4);
 	
@@ -107,7 +172,7 @@ $(document).ready(function() {
 
 });
 </script>
-</th:block>
+	</th:block>
 
 </body>
 </html>

+ 335 - 260
src/main/webapp/WEB-INF/views/web/mypage/MypageGiftcardFormWeb.html

@@ -1,6 +1,5 @@
 <!DOCTYPE html>
-<html lang="ko"
-	xmlns:th="http://www.thymeleaf.org"
+<html lang="ko" xmlns:th="http://www.thymeleaf.org"
 	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
 	layout:decorator="web/common/layout/MypageLayoutWeb">
 <!--
@@ -18,283 +17,359 @@
  -->
 <body>
 
-<th:block layout:fragment="content">
-<!--  container -->
-	<div class="my_cont">
-		<div class="sec_head">
-			<h3>STYLE24 상품권</h3>
-		</div>
-		<div class="sec_body">
-			<div class="save_area mypage_coupon">
-				<p>사용 가능한 보유 금액<strong th:text="${#numbers.formatInteger(giftcardInfo.useGift,0,'COMMA')}"></strong>원</p>
-				<ul>
-					<li>보유 상품권 <span th:text="${#numbers.formatInteger(giftcardInfo.totalCount,0,'COMMA')} + '장'"></span></li>
-					<li>한달 이내 소멸 예정 <span th:text="${#numbers.formatInteger(giftcardInfo.expireCount,0,'COMMA')} + '장'"></span></li>
-				</ul>
-			</div>
-			<div class="gift_search">
-				<div class="gift_sea_wrap clear">
-					<label for="gift_input">상품권 등록</label>
-					<input type="text" id="gift_input" placeholder="상품권 번호를 입력해주세요.">
-					<button type="button" class="btn btn_dark" onclick="giftcardSave()">등록</button>
-				</div>
-			</div>
-			<div class="com_info_txt">
-				<p class="tit">상품권 등록 안내</p>
-				<ul>
-					<li>상품권은 상품 구매시 현금과 동일하게 사용됩니다.</li>
-					<li>상품권은 등록한 해당 몰에서만 사용이 가능합니다.</li>
-					<li>사용 후 남은 잔액은 상품권 잔액으로 환불되며,유효기간 내에 사용 가능합니다.</li>
-					<li>유효기간이 지난 상품권의 잔액은 자동 소멸됩니다.</li>
-					<li>상품권은 현금성 결제 수단에 포함되어 주문시 포인트 적립이 가능합니다.</li>
-					<li>상품권으로 결제한 금액은 마이페이지>주문상세페이지에서 현금영수증을 발급 받으실 수 있습니다.</li>
-				</ul>
-			</div>
-			<div class="my_tab coupon_tab">
-				<ul>
-					<li><a href="javascript:void(0);" id="SearchUseGiftcard">사용내역</a></li>
-					<li><a href="javascript:void(0);" id="SearchOwnGiftcard">보유 상품권</a></li>
-				</ul>
-				<!-- <div class="form_field" id="dateField">
-					<select id="searchDt" onchange="fnChangeDate(this)">
-						
-					</select> 
-				</div> -->
-					<div class="form_field" id="dateField">
-						<div class="select_custom type1">
-							<div class="combo">
-								<div class="select"></div> <!-- 셀렉박스 -->
-									<ul id="searchDt" class="list" style="width:200px; margin:0 auto">
+	<th:block layout:fragment="content">
+		<!--  container -->
+		<div class="content myVoucher">
+			<!-- 페이지특정 클래스 = myVoucher -->
+			<div class="cont_body">
+			<div class="lnb">
+						<!-- 마이페이지 lnb 영역 -->
+					</div>
+				<div class="cont">
+					<div class="sec_head">
+						<h3 class="subH1">상품권</h3>
+					</div>
+					<div class="sec_body">
+						<div class="highlight_area">
+							<div class="have_amount">
+								<div class="total_amount">
+									나의 보유 금액&nbsp;<span><em
+										th:text="${#numbers.formatInteger(giftcardInfo.useGift,0,'COMMA')}"></em>원</span>
+								</div>
+								<dl>
+									<div>
+										<dt>보유 상품권</dt>
+										<dd>
+											<em
+												th:text="${#numbers.formatInteger(giftcardInfo.totalCount,0,'COMMA')}"></em>장
+										</dd>
+									</div>
+									<div>
+										<dt>
+											<span class="tag primary_line">D-<em>30</em></span>한 달 이내 소멸
+											예정
+										</dt>
+										<dd>
+											<em
+												th:text="${#numbers.formatInteger(giftcardInfo.expireCount,0,'COMMA')}"></em>원
+										</dd>
+									</div>
+								</dl>
+							</div>
+						</div>
+						<div class="input_area">
+							<form class="form_wrap">
+								<div class="form_field">
+									<label class="input_label"><span>상품권 등록</span></label>
+									<div class="input_wrap">
+										<input type="text" class="form_control" id="gift_input"
+											placeholder="상품권 번호를 입력해주세요">
+									</div>
+									<button type="button" class="btn btn_dark"
+										onclick="giftcardSave()">
+										<span>등록</span>
+									</button>
+								</div>
+							</form>
+						</div>
+						<div class="com_info_txt">
+							<p class="tit">상품권 등록 안내</p>
+							<ul>
+								<li>상품권은 상품 구매시 현금과 동일하게 사용됩니다.</li>
+								<li>상품권은 등록한 해당 몰에서만 사용이 가능합니다.(YES24와 중복 사용불가)</li>
+								<li>사용 후 남은 잔액은 상품권 잔액으로 환불되며, 유효기간 내에 사용 가능합니다.</li>
+								<li>유효기간이 지난 상품권의 잔액은 자동 소멸됩니다.</li>
+								<li>상품권은 현금성 결제 수단에 포함되어 주문시 포인트 적립이 가능합니다.</li>
+								<li>상품권으로 결제한 금액은 마이페이지 > 주문상세페이지에서 현금영수증을 발급 받으실 수 있습니다.</li>
+							</ul>
+						</div>
+						<div class="content_area">
+							<div class="taps">
+								<div>
+									<ul>
+										<li id="SearchUseGiftcard"><a href="javascript:void(0);" >사용내역</a></li>
+										<li id="SearchOwnGiftcard"><a href="javascript:void(0);" >보유
+												상품권</a></li>
 									</ul>
+								</div>
+							</div>
+							<div class="select_box" id="dateField">
+								<div class="form_field">
+									<div class="select_custom month">
+										<div class="combo">
+											<div class="select"></div>
+											<ul class="list" id="searchDt">
+											</ul>
+										</div>
+									</div>
+								</div>
 							</div>
+							<!-- 데이터 있을 시 -->
+							<div class="list_box" id="giftcardList"></div>
+							<!-- //데이터 있을 시 -->
 						</div>
 					</div>
 				</div>
 			</div>
-			<div id="giftcardList">
-			</div>
 		</div>
-	</div>
-<!-- // CONT-BODY -->					
+		<!-- // CONT-BODY -->
 <script th:inline="javascript">
-var date = new Date();
-var year = date.getFullYear();
-var month = date.getMonth()+1;
-
-//동적으로 날짜 년도 append
-function appendYear(){
- 
-    for(var i=year; i<=year; i++){
-       	for (var j= 1; j <=month; j++) {
-       		$("#searchDt").prepend("<li onclick='fnChangeDate(this.value)' value='"+year+""+j+"'>"+i+"년"+j +"월 </li>");
-		}
-    }
-    $(".select").append("<li class='selected' value='"+year+""+month+"'>"+year+"년"+ month +"월 </li>"); // 현재년도 선택 */
-}
- 
-appendYear($("#searchDt"));
-
-// 사용내역 조회
-$("#SearchUseGiftcard").click(function(){
-	// class제거 추가
-	$("#SearchOwnGiftcard").removeClass("on");
-	$("#SearchUseGiftcard").addClass("on");
-	$("#giftcardList").attr("class","order_list");
-	
-	// 날짜 필드 
-	$("#dateField").css("display","block");
-	
-	let data = {searchDt : year+""+month,
-				month : month};
-
-	var jsonData = JSON.stringify(data);
-	
-	$.ajax(
-			{
-				type 	 : "POST",
-				data	 : jsonData,
-				url 	 : '/mypage/gift/use/list',
-				contentType: 'application/json',
-					dataType : 'json',
-				success  : function(result){
-					useGiftcard(result);
-				}
+	var date = new Date();
+	var year = date.getFullYear();
+	var month = date.getMonth() + 1;
+
+	//동적으로 날짜 년도 append
+	function appendYear() {
+
+		for (var i = year; i <= year; i++) {
+			for (var j = 1; j <= month; j++) {
+				$("#searchDt").prepend(
+						"<li onclick='fnChangeDate(this.value)' value='"
+								+ year + "" + j + "'>" + i
+								+ "년" + j + "월 </li>");
 			}
-	)
-});
-
-function useGiftcard(result) {
-	
-	let giftcardUseList = result.giftcardUseList;
-	
-	let tmtbHtml = "";
-	
-	tmtbHtml += '<section class="order_row mt30">';
-	tmtbHtml += '<div class="tbl track_tbl type2">';
-	tmtbHtml += '<table>';
-	tmtbHtml += '<colgroup>';
-	tmtbHtml += '<col width="750px">';
-	tmtbHtml += '<col width="150px">';
-	tmtbHtml += '<col width="*">';
-	tmtbHtml += '</colgroup>';
-	tmtbHtml += '<thead>';
-	tmtbHtml += '<tr>';
-	tmtbHtml +=	'<th>내용</th>';
-	tmtbHtml += '<th>증감/차감</th>';
-	tmtbHtml += '<th>일자</th>';
-	tmtbHtml += '</tr>';
-	tmtbHtml += '</thead>';
-	tmtbHtml += '<tbody>';
-	
-	
-	for(let i=0; i<giftcardUseList.length; i++){
-		let useGiftcard = giftcardUseList[i];
-		tmtbHtml +='<tr>';
-		if(useGiftcard.goodsNm != null){
-			tmtbHtml +='<td class="t_l pl40">'+ useGiftcard.goodsNm + '</td>';	
-		}else{
-			tmtbHtml +='<td class="t_l pl40">'+ useGiftcard.balanceName + '</td>';	
 		}
-		tmtbHtml += '<td class="c_primary">'+ useGiftcard.balance + ' ' + useGiftcard.gfcdAmt.addComma() + '</td>';
-		tmtbHtml += '<td>'+ useGiftcard.regDt + '</td>';
+		$(".select").append(
+				"<li class='selected' value='"+year+""+month+"'>"
+						+ year + "년" + month + "월 </li>"); // 현재년도 선택 */
+	}
+
+	appendYear($("#searchDt"));
+
+	// 사용내역 조회
+	$("#SearchUseGiftcard").click(function() {
+		// class제거 추가
+		$("#SearchOwnGiftcard").removeClass("active");
+		$("#SearchUseGiftcard").addClass("active");
+		$("#giftcardList").attr("class", "order_list");
+
+		// 날짜 필드 
+		$("#dateField").css("display", "block");
+
+		let data = {
+			searchDt : year + "" + month,
+			month : month
+		};
+
+		var jsonData = JSON.stringify(data);
+
+		$.ajax({
+			type : "POST",
+			data : jsonData,
+			url : '/mypage/gift/use/list',
+			contentType : 'application/json',
+			dataType : 'json',
+			success : function(result) {
+				useGiftcard(result);
+			}
+		})
+	});
+
+	function useGiftcard(result) {
+
+		let giftcardUseList = result.giftcardUseList;
+
+		let tmtbHtml = "";
+		tmtbHtml += '<div class="tbl type5">';
+		tmtbHtml += '<table>';
+		tmtbHtml += '<colgroup>';
+		tmtbHtml += '<col width="10%">';
+		tmtbHtml += '<col width="*">';
+		tmtbHtml += '<col width="18%">';
+		tmtbHtml += '<col width="18%">';
+		tmtbHtml += '</colgroup>';
+		tmtbHtml += '<thead>';
+		tmtbHtml += '<tr>';
+		tmtbHtml += '<th scope="col"><span class="sr-only">차감</span></th>';
+		tmtbHtml += '<th scope="col">내용</th>';
+		tmtbHtml += '<th scope="col">사용금액</th>';
+		tmtbHtml += '<th scope="col">일자</th>';
 		tmtbHtml += '</tr>';
+		tmtbHtml += '</thead>';
+
+		if (giftcardUseList.length <= 0) {
+			tmtbHtml += '<tbody>';
+			tmtbHtml += '</tbody>';
+			tmtbHtml += '</table>';
+			tmtbHtml += '</div>';
+			tmtbHtml += '<div class="nodata">';
+			tmtbHtml += '<div class="txt_box">';
+			tmtbHtml += '<p>현재 노출 할 수 있는 이용내역이 없습니다.<br></p>';
+			tmtbHtml += '</div>';
+			tmtbHtml += '</div>';
+
+		} else {
+			tmtbHtml += '<tbody>';
+
+			for (let i = 0; i < giftcardUseList.length; i++) {
+				let useGiftcard = giftcardUseList[i];
+				tmtbHtml += '<tr>';
+				tmtbHtml += '<td><span class="tag deepgray">차감</span></td>';
+				tmtbHtml += '<td>';
+				tmtbHtml += '<div class="txt_content">'	+ useGiftcard.goodsNm + '</div>';
+				tmtbHtml += '</td>';
+				tmtbHtml += '<td><span class="amount_minus"> <em>'
+						+ '-'
+						+ ' '
+						+ useGiftcard.gfcdAmt.addComma()
+						+ '</em>원';
+				tmtbHtml += '</span></td>';
+				tmtbHtml += '<td>' + useGiftcard.regDt
+						+ '</td>';
+				tmtbHtml += '</tr>';
+			}
+			tmtbHtml += '</tbody>';
+			tmtbHtml += '</table>';
+			tmtbHtml += '</div>';
+
+		}
+
+		$("#giftcardList").html(tmtbHtml);
 	}
-	
-	tmtbHtml += '</tbody>';
-	tmtbHtml += '</table>';
-	tmtbHtml += '</div>';
-	tmtbHtml += '</section>';
-	
-	$("#giftcardList").html(tmtbHtml);
-}
-
-// 보유상품권 조회
-$("#SearchOwnGiftcard").click(function(){
-	$("#SearchUseGiftcard").removeClass("on");
-	$("#SearchOwnGiftcard").addClass("on");
-	$("#giftcardList").attr("class","gift_list");
-	
-	// 날짜 필드 
-	$("#dateField").css("display","none");
-	let data = {};
-	
-	var jsonData = JSON.stringify(data);
-	
-	$.ajax(
-			{
-				type 	 : "POST",
-				data	 : jsonData,
-				url 	 : '/mypage/gift/own/list',
-				contentType: 'application/json',
-					dataType : 'json',
-				success  : function(result){
-					ownGiftcard(result);
+
+	// 보유상품권 조회
+	$("#SearchOwnGiftcard").click(function() {
+		$("#SearchUseGiftcard").removeClass("active");
+		$("#SearchOwnGiftcard").addClass("active");
+		$("#giftcardList").attr("class", "gift_list");
+
+		// 날짜 필드 
+		$("#dateField").css("display", "none");
+		let data = {};
+
+		var jsonData = JSON.stringify(data);
+
+		$.ajax({
+			type : "POST",
+			data : jsonData,
+			url : '/mypage/gift/own/list',
+			contentType : 'application/json',
+			dataType : 'json',
+			success : function(result) {
+				ownGiftcard(result);
+			}
+		})
+	});
+
+	function ownGiftcard(result) {
+
+		let giftcardOwnList = result.giftcardOwnList;
+
+		let tmtbHtml2 = "";
+
+		if (giftcardOwnList == null) {
+			tmtbHtml2 += '<div class="nodata">';
+			tmtbHtml2 += '<div class="txt_box">';
+			tmtbHtml2 += '<p>현재 노출 할 수 있는 상품권이 없습니다.<br></p>';
+			tmtbHtml2 += '</div>';
+			tmtbHtml2 += '</div>';
+		} else {
+
+			tmtbHtml2 += '<div class="voucher_list">';
+			tmtbHtml2 += '<ul>';
+				for (let i = 0; i < giftcardOwnList.length; i++) {
+				let ownGiftcard = giftcardOwnList[i];
+
+				tmtbHtml2 += '<li>';
+				if (ownGiftcard.rmGfcdAmt == 0) {
+					tmtbHtml2 += '<div class="voucher disable">';
+				} else {
+					tmtbHtml2 += '<div class="voucher">';
 				}
+
+				tmtbHtml2 += '<div>';
+				tmtbHtml2 += '<p class="vch_name">'	+ ownGiftcard.gfcdNm + '</p>';
+				tmtbHtml2 += '<p class="vch_price"><span class="tag primary_line"><em>'	+ ownGiftcard.chgGfcdAmt.addComma()	+ '</em>원권</span></p>';
+				if (ownGiftcard.rmGfcdAmt > 0) {
+					tmtbHtml2 += '<p class="vch_remain">'+ ownGiftcard.rmGfcdAmt.addComma()+ '원</p>';
+				} else {
+					tmtbHtml2 += '<p class="vch_remain">전액소진</p>';
+				}
+
+				tmtbHtml2 += '<p class="vch_code">'	+ ownGiftcard.gfcdNo + '</p>';
+				tmtbHtml2 += '</div>';
+				tmtbHtml2 += '<div class="vch_date">~&nbsp;<span>'	+ ownGiftcard.useExpDate	+ '</span></div>';
+				tmtbHtml2 += '</div>';
+				tmtbHtml2 += '</li>';
 			}
-	)
-});
-
-function ownGiftcard(result) {
-	
-	let giftcardOwnList = result.giftcardOwnList;
-	
-	let tmtbHtml2 = "";
-	
-
-	tmtbHtml2 += '<ul class="clear">';
-
-	for(let i=0; i<giftcardOwnList.length; i++){
-		let ownGiftcard = giftcardOwnList[i];
-
-		if(ownGiftcard.rmGfcdAmt > 0){
-			tmtbHtml2 += '<li>';
-		}else{
-			tmtbHtml2 += '<li class="off">';
-		}	
-		tmtbHtml2 += '<div class="gift_shape">';
-		tmtbHtml2 += '<strong>' + ownGiftcard.gfcdNm + '</strong>';
-		tmtbHtml2 += '<div class="gift_price01">' +ownGiftcard.chgGfcdAmt.addComma() + ' 원권' +'</div>';
-		tmtbHtml2 += '<div class="gift_price02">';
-		tmtbHtml2 += '<span class="pr_t">잔액</span><span class="pr_num">'+ownGiftcard.rmGfcdAmt.addComma()+'</span>원'
-		tmtbHtml2 += '<div>';
-		tmtbHtml2 += '<div class="gift_price03">' +ownGiftcard.gfcdNo + '</div>';
-		tmtbHtml2 += '</div>';
-		tmtbHtml2 += '<div class="gift_date">';
-		tmtbHtml2 += '~ <span>' +ownGiftcard.useExpDate + '</span>';
-		tmtbHtml2 += '</div>';
-		tmtbHtml2 += '</li>';
+			tmtbHtml2 += '</ul>';
+			tmtbHtml2 += '</div>';
+
+		}
+
+		$("#giftcardList").html(tmtbHtml2);
+
 	}
-	
-	tmtbHtml2 += '</ul>';		
-		
-	$("#giftcardList").html(tmtbHtml2);
-
-}
-
-function fnChangeDate(obj) {
-
-	var seletedDate = obj.toString();
-	var splitMonth = seletedDate.substr(4);
-	
-	data = {month : splitMonth,
-			searchDt : seletedDate};
-
- 	var jsonData = JSON.stringify(data);
-	
-	$.ajax(
-			{
-				type 	 : "POST",
-				data	 : jsonData,
-				url 	 : '/mypage/gift/use/list',
-				contentType: 'application/json',
-					dataType : 'json',
-				success  : function(result){
-					useGiftcard(result);
-				}
+
+	function fnChangeDate(obj) {
+
+		var seletedDate = obj.toString();
+		var splitMonth = seletedDate.substr(4);
+
+		data = {
+			month : splitMonth,
+			searchDt : seletedDate
+		};
+
+		var jsonData = JSON.stringify(data);
+
+		$.ajax({
+			type : "POST",
+			data : jsonData,
+			url : '/mypage/gift/use/list',
+			contentType : 'application/json',
+			dataType : 'json',
+			success : function(result) {
+				useGiftcard(result);
 			}
-		)  
-}
-
-// 상품권 등록 버튼 누를 시 
-function giftcardSave() {
-	if($("#gift_input").val() == "" || $("#gift_input").val() == null){
-		mcxDialog.alert("상품권 번호를 입력해주세요.");
-		return;
+		})
 	}
-	
- 	data = {gfcdNo : $("#gift_input").val()};
-
- 	var jsonData = JSON.stringify(data);
- 	
- 	mcxDialog.confirm("상품권을 등록 하시겠습니까?", {
-		cancelBtnText: "취소",
-		sureBtnText: "확인",
-		sureBtnClick: function() {
-			
-			gagajf.ajaxJsonSubmit('/mypage/gift/use/confirm', jsonData, function() {
-				cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);
-			});
+
+	// 상품권 등록 버튼 누를 시 
+	function giftcardSave() {
+		if ($("#gift_input").val() == ""
+				|| $("#gift_input").val() == null) {
+			mcxDialog.alert("상품권 번호를 입력해주세요.");
+			return;
 		}
+
+		data = {
+			gfcdNo : $("#gift_input").val()
+		};
+
+		var jsonData = JSON.stringify(data);
+
+		mcxDialog.confirm("상품권을 등록 하시겠습니까?", {
+			cancelBtnText : "취소",
+			sureBtnText : "확인",
+			sureBtnClick : function() {
+
+				gagajf.ajaxJsonSubmit(
+						'/mypage/gift/use/confirm', jsonData,
+						function() {
+							cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);
+						});
+			}
+		});
+
+	}
+
+	$(document).ready(function() {
+
+		// 마이페이지 LNB 설정
+		fnSetMypageLnbList(6);
+
+		// 마이페이지 location 설정
+		fnSetMypageLocation('상품권', '_PAGE_MYPAGE_GIFTCARD');
+
+		// 전체내역 표시
+		$("#SearchUseGiftcard").trigger('click');
+
+		// 셀렉트박스 활성화
+		$('.select_custom.month').each(function(index) {
+			var selecter01 = new sCombo($(this));
+		});
 	});
-	
-}
-
-$(document).ready(function() {
-
-	// 마이페이지 LNB 설정
-	fnSetMypageLnbList(6);
-	
-	// 마이페이지 location 설정
-	fnSetMypageLocation('상품권', '_PAGE_MYPAGE_GIFTCARD');
-	
-	// 전체내역 표시
-	$("#SearchUseGiftcard").trigger('click');
-
-	// 셀렉트박스 활성화
-	$('.select_custom.type1').each(function(index) {
-		var selecter01 = new sCombo($(this));
-	});
-});
 </script>
 </th:block>
 

+ 290 - 175
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html

@@ -129,13 +129,13 @@
 						<div class="form_field">
 							<label class="input_label sr-only">선택기간 시작</label>
 							<div class="input_wrap">
-								<input type="text" class="form_control period_datepicker hasDatepicker" name="stDate" value="" id="stDate" onchange="fnCheckPeriod(this);">
+								<input type="text" class="form_control period_datepicker hasDatepicker" value="" id="stDate" onchange="fnCheckPeriod(this);">
 							</div>
 						</div>
 						<div class="form_field">
 							<label class="input_label sr-only">선택기간 끝</label>
 							<div class="input_wrap">
-								<input type="text" class="form_control period_datepicker hasDatepicker" name="edDate" value="" id="edDate" onchange="fnCheckPeriod(this);">
+								<input type="text" class="form_control n_input period_datepicker hasDatepicker" value="" id="edDate" onchange="fnCheckPeriod(this);">
 							</div>
 						</div>
 						<button type="button" class="btn btn_dark btn_sm" onclick="fnSearchOrderList();"><span>조회</span></button>
@@ -146,20 +146,10 @@
 						<div class="form_field">
 							<div class="select_custom order_status">
 								<div class="combo">
-									<input type="hidden" name="ordDtlStat" value=""/>
 									<div class="select">전체상태</div>
 									<ul class="list">
-										<li class="selected" value="" onclick="fnChangeOrdDtlStat(this);">전체상태</li>
-										<li th:if="${ordDtlStatList}" th:each="oneData, status : ${ordDtlStatList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}" onclick="fnChangeOrdDtlStat(this);"></li>
-										<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
-										<!--<li class="selected">전체상태</li>
-										<li>주문접수</li>
-										<li>결제완료</li>
-										<li>상품준비중</li>
-										<li>배송준비중</li>
-										<li>배송중</li>
-										<li>배송완료</li>
-										<li>구매확정</li>-->
+										<li class="selected" code="">전체상태</li>
+										<li th:if="${ordDtlStatList}" th:each="oneData, status : ${ordDtlStatList}" th:attr="code=${oneData.cd}" th:text="${oneData.cdNm}"></li>
 									</ul>
 								</div>
 							</div>
@@ -168,7 +158,13 @@
 				</div>
 			</div>
 			<!-- //주문조회 검색 -->
-			<th:block th:id="orderList"></th:block>
+			<div class="area_list" id="orderList"></div>
+			<div class="sec_foot">
+				<div class="ui_row">
+					<ul class="pageNav" id="paging">
+					</ul>
+				</div>
+			</div>
 		</div>
 		<!--<div class="sec_body mypage_body">
 			&lt;!&ndash; 주문 경로 &ndash;&gt;
@@ -231,30 +227,39 @@
 			</div>
 		</div>-->
 		<form id="searchForm" name="searchForm" th:action="@{'/mypage/order/list'}" th:method="post">
-			<input type="hidden" name="pageNo" value ="1"/>
-			<input type="hidden" name="pageSize" value ="5"/>
-			<input type="hidden" name="pageUnit" value ="10"/>
-			<input type="hidden" name="stDate" value =""/>
-			<input type="hidden" name="edDate" value =""/>
+			<input type="hidden" name="pageNo" value=1 />
+			<input type="hidden" name="pageSize" value=5 />
+			<input type="hidden" name="pageUnit" value=10 />
+			<input type="hidden" name="ordDtlStat" value="" />
+			<input type="hidden" name="stDate" value="" />
+			<input type="hidden" name="edDate" value="" />
 			<input type="hidden" name="custNo" th:value ="${customerInfo.custNo}"/>
 		</form>
 		<form id="exchangeForm" name="exchangeForm" action="#" th:action="@{'/mypage/exchange/form'}" th:method="post">
 			<input type="hidden" name="ordNo"/>
-			<input type="hidden" name="ordDtlNoArr"/>
+			<input type="hidden" name="ordDtlNo"/>
+			<input type="hidden" name="supplyCompCd"/>
+		</form>
+		<form id="returnForm" name="returnForm" action="#" th:action="@{'/mypage/return/form'}" th:method="post">
+			<input type="hidden" name="ordNo"/>
+			<input type="hidden" name="ordDtlNo"/>
+			<input type="hidden" name="supplyCompCd"/>
 		</form>
 		<form id="cancelForm" name="cancelForm" th:action="@{'/mypage/cancel/form'}" th:method="post">
 			<input type="hidden" name="ordNo"/>
-			<input type="hidden" name="ordDtlNoArr"/>
+			<input type="hidden" name="ordDtlNo"/>
 		</form>
 		<form id="reviewForm" name="reviewForm" th:action="@{'/mypage/review/form'}" th:method="post">
 			<input type="hidden" name="ordNo"/>
-			<input type="hidden" name="ordDtlNoArr"/>
+			<input type="hidden" name="ordDtlNo"/>
 		</form>
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 	let ordNo = [[${ordNo}]];
 	let customerInfo = [[${customerInfo}]];
+	let totalCount = 0;
+	let pageSize = 0;
 /*<![CDATA[*/
 	$(document).ready(function() {
 		// 마이페이지 LNB 설정
@@ -264,25 +269,21 @@
 		fnSetMypageLocation('주문확인/배송조회');
 		
 		// datepicker 설정
-		$(".my_datepicker").datepicker();
+		$('.period_datepicker').datepicker();
 
 		// 셀렉트박스 활성화
 		$('.select_custom.order_status').each(function(index) {
 			var selecter01 = new sCombo($(this));
 		});
-		
+
 		// 주문 검색 기간 설정
 		$('#rdi-month2').click();
-		//fnSetSearchPeriod(3);
 
 		// Initialize a pagination
-		//gagaPaging.init('searchForm', fnSearchOrderList, 'paging', 5);
+		gagaPaging.init('searchForm', fnSearchCallback, 'paging', 5, 10);
 		
 		// Load data
-		//gagaPaging.load(1);
-		
-		// 주문 리스트 조회
-		fnSearchOrderList(1);
+		gagaPaging.load(1);
 	});
 	
 	// 검색기간 버튼 클릭 이벤트 처리
@@ -297,67 +298,20 @@
 		$('#stDate').val(stDate);
 		$('#searchForm input[name=stDate]').val(stDate);
 	}
-	
+
 	// 주문 목록 조회
-	var fnSearchOrderList = function(pageNo) {
-		if (pageNo == null) {
-			pageNo = $('#searchForm input[name=pageNo]').val();
-		} else {
-			pageNo = 0;
-		}
-		let stDate = $('#stDate').val();
-		let edDate = $('#edDate').val();
-		//let ordDtlStat = $('#ordDtlStat').val();
+	var fnSearchOrderList = function() {
+		gagaPaging.load(1);
+	}
 
-		let data = {};
-		data.pageNo = pageNo;
-		data.pageSize = 5;
-		data.pageUnit = 10;
-		data.stDate = stDate;
-		data.edDate = edDate;
-		data.custNo = customerInfo.custNo;
-		//data.ordDtlStat = ordDtlStat;
-		
-		let jsonData = JSON.stringify(data)
-		
-		$.ajax( {
-			type		: "POST",
-			url 		: '/mypage/order/list',
-			data		: jsonData,
-			dataType 	: 'html',
-			beforeSend : function(xhr, settings) {
-				xhr.setRequestHeader("AJAX", "true");
-				xhr.setRequestHeader('Accept', 'application/json');
-				xhr.setRequestHeader('Content-Type', 'application/json');
-				gagajf.showProgressbar(true);
-			},
-			success 	: function(result) {
-				$('#orderList').html(result);
+	// 주문 목록 조회 콜백
+	var fnSearchCallback = function(result) {
+		$('#orderList').html(fnCreateOrderList(result));
 
-				//let paging = {};
-				//paging.pageNo = $('#searchForm input[name=pageNo]').val();
-				//paging.pageSize = $('#searchForm input[name=pageSize]').val();
-				//paging.pageUnit = $('#searchForm input[name=pageUnit]').val();
-				//
-				//console.log(result);
-				//// Create pagination
-				//gagaPaging.createPagination(paging);
-			}
-		});
+		// Create pagination
+		gagaPaging.createPagination(result.orderInfo.pageable);
 	}
-	
-	// rowspan 처리
-	//var fnMergeRow = function() {
-	//	$(".merge_row").each(function() {
-	//		var txt = $(this).text();
-	//		var rows = $(this).parents("table").find(".merge_row:contains('" + txt + "')");
-	//		if (rows.length > 1) {
-	//			rows.eq(0).attr("rowspan", rows.length);
-	//			rows.not(":eq(0)").remove();
-	//		}
-	//	});
-	//}
-	
+
 	// 검색기간 설정 체크
 	var fnCheckPeriod = function(param) {
 		let stDate = $('#stDate').val();
@@ -372,10 +326,16 @@
 			mcxDialog.alert('조회기간은 최대 1년을 넘을 수 없습니다.');
 			if (id == 'stDate') {
 				sdt.setFullYear(sdt.getFullYear() + 1);
-				$('#edDate').val(sdt.getFullYear() + '-' + ('0' + (sdt.getMonth() + 1)).slice(-2) + '-' + ('0' + (sdt.getDate())).slice(-2));
+				let chgEdDate = sdt.getFullYear() + '-' + ('0' + (sdt.getMonth() + 1)).slice(-2) + '-' + ('0' + (sdt.getDate())).slice(-2);
+
+				$('#edDate').val(chgEdDate);
+				$('#searchForm input[name=edDate]').val(chgEdDate);
 			} else {
 				edt.setFullYear(edt.getFullYear() - 1);
-				$('#stDate').val(edt.getFullYear() + '-' + ('0' + (edt.getMonth() + 1)).slice(-2) + '-' + ('0' + (edt.getDate())).slice(-2));
+				let chgStDate = edt.getFullYear() + '-' + ('0' + (edt.getMonth() + 1)).slice(-2) + '-' + ('0' + (edt.getDate())).slice(-2);
+
+				$('#stDate').val(chgStDate);
+				$('#searchForm input[name=stDate]').val(chgStDate);
 			}
 		}
 	}
@@ -436,11 +396,9 @@
 	}
 
 	// 주문상세상태코드 셀렉트박스 변경 이벤트
-	var fnChangeOrdDtlStat = function(param) {
-		console.log('before >>> ' + $('input[name=ordDtlStat]').val())
-		$(param).parent().parent().find('input[name=ordDtlStat]').val($(param).val());
-		console.log('after >>> ' + $('input[name=ordDtlStat]').val())
-	}
+	$('.select_custom.order_status').find('li').on('click', function() {
+		$('#searchForm input[name=ordDtlStat]').val($(this).attr('code'));
+	});
 
 	// 배송조회 버튼 클릭 이벤트
 	var fnGoToDelivery = function(param) {
@@ -448,92 +406,249 @@
 		// 배송조회 페이지 이동
 	}
 
-	// 페이징 처리
-	var fnPaging = function(pageNo, totalPageNo) {
-		let startNo = ((pageNo / 10) * 10) + 1;
-		let tag = '';
-		
-		if ((pageNo / 10) > 0 && pageNo != 10) {
-			tag += '<li className="disabled"><a href="#">«</a></li>';
-		}
-		
-		if ((pageNo > 1)) {
-			tag += '<li className="prev disabled"><a href="#">‹</a></li>';
-		}
-		
-		/*<li><a href="#">1</a></li>
-		<li className="active"><a href="#">2</a></li>
-		<li><a href="#">3</a></li>
-		<li><a href="#">4</a></li>
-		<li><a href="#">5</a></li>
-		<li><a href="#">6</a></li>
-		<li><a href="#">7</a></li>
-		<li><a href="#">8</a></li>
-		<li><a href="#">9</a></li>
-		<li><a href="#">10</a></li>
-		<li className="next"><a href="#">›</a></li>
-		<li><a href="#">»</a></li>*/
-	}
-	
 	// 주문내역 리스트 처리
 	var fnCreateOrderList = function(param) {
 		let tag = '';
 		let imageUrl = [[${@environment.getProperty('upload.goods.view')}]];
-		$.each(param.orderList, function(idx, order) {
-			tag += '<div class="part_goods">';
-			tag += '	<div class="goods_head">';
-			if (order.giftPackYn == 'Y') {
-				tag += '		<p>주문일 <span>' + order.ordDt + '</span></p>';
-			} else {
-				tag += '		<p>선물일 <span>' + order.ordDt + '</span></p>';
-			}
-			tag += '		<a href="javascript:void(0)" class="btn_detail_view" attr="ordNo=' + order.ordNo + '" onclick="fnGoToOrderDetail(this)">주문상세보기</a>';
-			tag += '	</div>';
-			tag += '	<div class="goods_cont">';
-			$.each(item.ordDtlList, function(index, ordDtl) {
-				tag += '		<div class="goods_info">';
-				tag += '			<div class="order_desc">';
-				tag += '				<div class="goods_box">';
-				tag += '					<div class="gd_item">';
-				tag += '						<a href="">';
-				tag += '							<span class="thumb">';
-				tag += '								<img src="' + imageUrl + '/' + ordDtl.sysImgNm + '" width="100%" alt="">';
-				tag += '							</span>';
-				tag += '							<p>';
-				tag += '								<span class="brand">' + ordDtl.brandNm + '</span>';
-				if (ordDtl.shotDelvYn == 'Y') {
-					tag += '<span class="tag primary">총알배송</span>';
-				} else if (ordDtl.selfGoodsYn == 'Y') {
-					tag += '';
+
+		if (param.orderList != null && param.orderList.length > 0) {
+			$.each(param.orderList, function (idx, order) {
+				tag += '<div class="part_goods">\n';
+				tag += '	<div class="goods_head">\n';
+				if (order.giftPackYn == 'Y') {
+					tag += '		<p>선물일 <span>' + order.ordDt + '</span></p>\n';
+				} else {
+					tag += '		<p>주문일 <span>' + order.ordDt + '</span></p>\n';
 				}
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
-				tag += '';
+				tag += '		<a href="javascript:void(0)" class="btn_detail_view" ordNo="' + order.ordNo + '" onclick="fnGoToOrderDetail(this)">주문상세보기</a>\n';
+				tag += '	</div>\n';
+				tag += '	<div class="goods_cont">\n';
+				$.each(order.ordDtlList, function (index, ordDtl) {
+					tag += '		<div class="goods_info">\n';
+					tag += '			<div class="order_desc">\n';
+					tag += '				<div class="goods_box">\n';
+					tag += '					<div class="gd_item">\n';
+					tag += '						<a href="javascript:void(0)" goodsCd="' + ordDtl.goodsCd + '" onclick="fnGoToGoodsDetail(this)">\n';
+					tag += '							<span class="thumb">\n';
+					tag += '								<img src="' + imageUrl + '/' + ordDtl.sysImgNm + '" width="100%" alt="">\n';
+					tag += '							</span>\n';
+					tag += '							<p>\n';
+					tag += '								<span class="brand">' + ordDtl.brandNm + '</span>\n';
+					// 배송 아이콘 처리
+					if (ordDtl.shotDelvYn == 'Y') {
+						tag += '								<span class="tag primary">총알배송</span>\n';
+					} else if (ordDtl.selfGoodsYn == 'Y') {
+						tag += '								<span class="tag">STYLE24 일반배송</span>\n';
+					} else {
+						tag += '								<span class="tag">업체직배송</span>\n';
+					}
+					tag += '							</p>\n';
+					tag += '							<p>\n';
+					tag += '								<span class="name">' + ordDtl.goodsNm + '</span>\n';
+					tag += '							</p>\n';
+					tag += '						</a>\n';
+					tag += '					</div>\n';
+					tag += '					<div class="gd_opt">\n';
+					tag += '						<div class="option_wrap">\n';
+					tag += '							<span class="title sr-only">주문 옵션</span>\n';
+					tag += '							<span class="option">' + ordDtl.optCd1 + ' / ' + ordDtl.optCd2 + '</span>\n';
+					tag += '						</div>\n';
+					tag += '					</div>\n';
+					tag += '					<div class="gd_calc">\n';
+					tag += '						<p>\n';
+					tag += '							<span class="count"><em>' + ordDtl.ordQty + '</em>개</span>\n';
+					tag += '						</p>\n';
+					tag += '						<p>\n';
+					tag += '							<span class="price_org"><em>' + (ordDtl.listPrice * ordDtl.ordQty).addComma() + '</em>원</span>\n';
+					tag += '							<span class="price_sale"><em>' + ordDtl.ordAmt.addComma() + '</em>원</span>\n';
+					tag += '						</p>\n';
+					tag += '					</div>\n';
+					tag += '				</div>\n';
+					tag += '				<div class="status_box">\n';
+					// 상태값 처리
+					if (ordDtl.giftPackYn == 'Y') {
+						if (gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.giftLimitDay >= 0) {
+							tag += '					<p>주소 입력 대기중</p>\n';
+						} else if (!gagajf.isNull(ordDtl.recipBaseAddr)) {
+							tag += '					<p>선물 완료</p>\n';
+						} else if (ordDtl.ordDtlStat == 'G013_98' || ordDtl.ordDtlStat == 'G013_99' || ordDtl.giftLimitDay < 0) {
+							tag += '					<p>선물 취소</p>\n';
+						}
+					} else {
+						tag += '					<p>' + ordDtl.ordDtlStatNm + '</p>\n';
+					}
+					tag += '				</div>\n';
+					tag += '				<div class="button_box">\n';
+					// 버튼 처리
+					if (ordDtl.giftPackYn == 'Y') {
+						// SMS 재발송 버튼
+						if (gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.giftLimitDay >= 0) {
+							tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" onClick="fnReSendSms(this);"><span>SMS 재발송</span></button></p>\n';
+						}
+
+						// 리뷰 쓰기 버튼
+						if (!gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.ordDtlStat != 'G013_98' && ordDtl.ordDtlStat != 'G013_99' && ordDtl.reviewableYn == 'Y' && ordDtl.reviewSq == null) {
+							tag += '					<p><button type="button" class="btn btn_primary_line btn_sm" ordNo="' + ordDtl.ordNo + '" onClick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>\n';
+						}
+					} else {
+						// 주문취소 버튼(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중)
+						if (ordDtl.ordDtlStat == 'G013_10' || ordDtl.ordDtlStat == 'G013_20' || ordDtl.ordDtlStat == 'G013_30' || ordDtl.ordDtlStat == 'G013_35' || ordDtl.ordDtlStat == 'G013_40') {
+							tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" onclick="fnCreateChange(this, \'cancel\');"><span>주문 취소</span></button></p>\n';
+						}
+
+						// 교환신청 버튼(배송중, 출고완료, 배송완료)
+						if (ordDtl.ordDtlStat == 'G013_50' || ordDtl.ordDtlStat == 'G013_55' || ordDtl.ordDtlStat == 'G013_60') {
+							// 교환/반품 가능한 상품
+							if (ordDtl.changeableYn == 'Y' && ordDtl.returnableYn == 'Y') {
+								tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" supplyCompCd="' + ordDtl.supplyCompCd + '" onclick="fnCreateChange(this, \'exchange\');"><span>교환 신청</span></button></p>\n';
+								tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" supplyCompCd="' + ordDtl.supplyCompCd + '" onclick="fnCreateChange(this, \'return\');"><span>반품 신청</span></button></p>\n';
+							}
+							// 교환 신청 불가 상품
+							else if (ordDtl.changeableYn == 'N' && ordDtl.returnableYn == 'Y') {
+								tag += '					<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>\n';
+								tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" supplyCompCd="' + ordDtl.supplyCompCd + '" onclick="fnCreateChange(this, \'return\');"><span>반품 신청</span></button></p>\n';
+							}
+							// 반품 신청 불가 상품
+							else if (ordDtl.changeableYn == 'Y' && ordDtl.returnableYn == 'N') {
+								tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" supplyCompCd="' + ordDtl.supplyCompCd + '" onclick="fnCreateChange(this, \'exchange\');"><span>교환 신청</span></button></p>\n';
+								tag += '					<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>\n';
+							}
+							// 교환/반품 신청 불가 상품
+							else {
+								tag += '					<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>\n';
+							}
+						}
+
+						// 배송조회 버튼(배송중)
+						if (ordDtl.ordDtlStat == 'G013_50' || ordDtl.ordDtlStat == 'G013_55') {
+							tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" onclick="fnGoToDelivery(this);"><span>배송 조회</span></button></p>\n';
+						}
+
+						// 구매확정 버튼(배송완료)
+						if (ordDtl.ordDtlStat == 'G013_60') {
+							tag += '					<p><button type="button" class="btn btn_primary_line btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" onclick="fnDecideOrder(this);"><span>구매 확정</span></button></p>\n';
+						}
+
+						// 리뷰작성 버튼(구매확정)
+						if (ordDtl.ordDtlStat == 'G013_70' && ordDtl.reviewableYn == 'Y' && ordDtl.reviewSq == null) {
+							tag += '					<p><button type="button" class="btn btn_primary_line btn_sm" ordNo="' + ordDtl.ordNo + '" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>\n';
+						}
+
+						// 쇼핑백담기 버튼(구매확정)
+						if (ordDtl.ordDtlStat == 'G013_70') {
+							tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" onclick="fnCreateCart(this);"><span>쇼핑백 담기</span></button></p>\n';
+						}
+
+						// 1:1문의 버튼(구매확정)
+						if (ordDtl.ordDtlStat == 'G013_70' && (ordDtl.reviewableYn == 'N' || ordDtl.reviewSq > 0)) {
+							tag += '					<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>\n';
+						}
+					}
+					tag += '				</div>\n';
+					tag += '			</div>\n';
+					// 하단 상태값 배너 처리
+					if (ordDtl.giftPackYn == 'Y') {
+						// 주소 입력 대기중
+						if (gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.giftLimitDay >= 0) {
+							tag += '			<div class="order_text"><p>' + ordDtl.recipNm + '님이 주소를 입력하기 전입니다. (입력기한 ' + ordDtl.giftLimitDt + ')</p></div>\n';
+						}
+						
+						// 선물 완료
+						if (!gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.ordDtlStat != 'G013_98' && ordDtl.ordDtlStat != 'G013_99') {
+							tag += '			<div class="order_text"><p>' + ordDtl.recipNm + '님께 선물이 발송되었습니다.</p></div>\n';
+						}
+						
+						// 선물 취소
+						if (ordDtl.ordDtlStat == 'G013_98' && ordDtl.ordDtlStat == 'G013_99') {
+							tag += '			<div class="order_text"><p>주소 입력 기한이 경과되어 선물이 취소 되었습니다.</p></div>\n';
+						}
+					} else {
+						// 주문 접수
+						if (ordDtl.ordDtlStat == 'G013_10') {
+							tag += '			<div class="order_text"><p>주문이 완료되어 결제를 기다리고 있습니다.</p></div>\n';
+						}
+						
+						// 상품준비중
+						if (ordDtl.ordDtlStat == 'G013_30' || ordDtl.ordDtlStat == 'G013_40') {
+							// 예약 상품 준비중
+							if (!gagajf.isNull(ordDtl.delvResDt)) {
+								tag += '			<div class="order_text"><p>예약판매 상품으로' + ordDtl.delvResDt + ' 출고 예정입니다.</p></div>\n';
+							}
+							// 상품 준비중
+							else {
+								tag += '			<div class="order_text"><p>상품 준비가 완료되어 곧 배송될 예정입니다.</p></div>\n';
+							}
+						}
+						
+						// 배송중, 배송완료
+						if ((ordDtl.ordDtlStat == 'G013_50' || ordDtl.ordDtlStat == 'G013_55' || ordDtl.ordDtlStat == 'G013_60')) {
+							// 교환/반품 신청 불가 상품 처리
+							if (ordDtl.changeableYn == 'N' || ordDtl.returnableYn == 'N') {
+								// 교환신청 불가 상품
+								tag += '			<div class="order_text">\n';
+								if (ordDtl.changeableYn == 'N' && ordDtl.returnableYn == 'Y') {
+									tag += '				<p>해당 상품은 교환이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>\n';
+								}
+								// 반품신청 불가 상품
+								else if (ordDtl.changeableYn == 'Y' && ordDtl.returnableYn == 'N') {
+									tag += '				<p>해당 상품은 반품이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>\n';
+								}
+								// 교환/반품신청 불가 상품
+								else if (ordDtl.changeableYn == 'N' && ordDtl.returnableYn == 'N') {
+									tag += '				<p>해당 상품은 교환/반품이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>\n';
+								}
+								
+								// 배송완료
+								if (ordDtl.ordDtlStat == 'G013_60') {
+									tag += '				<p>15일 후 자동으로 구매확정됩니다.</p>\n';
+								}
+								
+								tag += '			</div>';
+							} else {
+								tag += '			<div class="order_text"><p>15일 후 자동으로 구매확정됩니다.</p></div>\n';
+							}
+						}
+
+						// 구매확정
+						if (ordDtl.ordDtlStat == 'G013_70' && ordDtl.reviewableYn == 'Y' && ordDtl.reviewSq == null) {
+							tag += '			<div class="order_text"><p>리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</p></div>\n';
+						}
+					}
+					tag += '		</div>';
+				});
+				tag += '	</div>';
+				//사은품 처리
+				if (order.freeGiftList != null && order.freeGiftList.length > 0) {
+					tag += '	<div className="goods_foot">';
+					tag += '		<div className="order_gift">';
+					tag += '			<span className="title">사은품</span>';
+					tag += '			<ul>';
+					$.each(order.freeGiftList, function(index, freeGift) {
+						tag += '				<li>' + freeGift.goodsNm + ' ' + '<span>(-' + freeGift.usePoint.addComma() + 'P)</span></li>';
+					});
+					tag += '			</ul>';
+					tag += '		</div>';
+					tag += '	</div>';
+				}
+				tag += '</div>';
 			});
-		});
+		} else {
+			// 데이터 없음 표시
+			tag += '<div class="nodata">';
+			tag += '	<div class="txt_box">';
+			tag += '		<p>';
+			tag += '			현재 노출 할 수 있는 데이터가 없습니다.<br>';
+			tag += '		</p>';
+			tag += '	</div>';
+			//tag += '	<!-- 버튼 필요시 -->';
+			//tag += '	<div class="btn_box">';
+			//tag += '		<button class="btn btn_default"><span>행동하기</span></button>';
+			//tag += '	</div>';
+			//tag += '	<!-- //버튼 필요시 -->';
+			tag += '</div>';
+		}
+
+		return tag;
 	}
 /*]]>*/
 </script>

+ 1 - 15
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListWeb.html

@@ -81,7 +81,7 @@
 						<!-- 주문 -->
 						<th:block th:unless="${ordDtl.giftPackYn == 'Y'}">
 							<!-- 주문취소 버튼(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
-							<th:block th:if="${ordDtl.ordDtlStat == 'G013_10' or ordDtl.ordDtlStat == 'G013_20' or ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35'} or ordDtl.ordDtlStat == 'G013_40'">
+							<th:block th:if="${ordDtl.ordDtlStat == 'G013_10' or ordDtl.ordDtlStat == 'G013_20' or ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35' or ordDtl.ordDtlStat == 'G013_40'}">
 								<p><button type="button" class="btn btn_default btn_sm"  th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateChange(this, 'cancel');"><span>주문 취소</span></button></p>
 							</th:block>
 							<!-- 교환신청 버튼(배송중, 출고완료, 배송완료)  -->
@@ -156,20 +156,6 @@
 			</th:block>
 		</div>
 	</div>
-	<div class="sec_foot">
-		<div class="ui_row">
-			<ul class="pageNav" id="paging">
-			</ul>
-		</div>
-	</div>
-	<form id="searchForm" name="searchForm" th:action="@{'/mypage/order/list'}" th:method="post">
-		<input type="hidden" name="pageNo" value ="1"/>
-		<input type="hidden" name="pageSize" value ="5"/>
-		<input type="hidden" name="pageUnit" value ="10"/>
-		<input type="hidden" name="stDate" value =""/>
-		<input type="hidden" name="edDate" value =""/>
-		<input type="hidden" name="custNo" th:value ="${customerInfo.custNo}"/>
-	</form>
 </th:block>
 
 <!-- 주문 없을 때 -->

+ 1 - 1
src/main/webapp/WEB-INF/views/web/pg/kcpOrderWeb.html

@@ -38,7 +38,7 @@
 	<input type="hidden" name="quotaopt"		th:value="${payment.quotaopt}"/>	<!-- 최대 할부 개월 수(0 ~ 18까지 설정 가능) -->
 
 	<!-- 무통장입금 정보 -->
-	<!-- <input type="hidden" name="vcnt_expire_term"	th:value="${payment.vcntExpireTerm}"/> -->	<!-- 무통장입금 유효기간 설정 (3 = 3일) -->
+	<input type="hidden" name="vcnt_expire_term"	th:value="${payment.vcntExpireTerm}"/>	<!-- 무통장입금 유효기간 설정 (3 = 3일) -->
 
 	<!-- 2012년 8월 18일 전자상거래법 개정 관련 설정 부분 -->
 	<!-- 제공 기간 설정 0:일회성 1:기간설정(ex 1:2012010120120131)  -->

+ 62 - 59
src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html

@@ -18,7 +18,7 @@
  -->
 <body>
 <th:block layout:fragment="content">
-	<!--  container -->
+<!--  container -->
 	<div id="container" class="container dp">
 		<div class="breadcrumb"> 
 			<ul>
@@ -37,85 +37,76 @@
                     </div>
 				</div>
 				<div class="cont_body">
-                    <div class="best_nav">
-                        <ul>
-                            <li><button th:class="${cateNo == null ? 'active' : ''}" onclick="cfnGoToPage(_PAGE_PLANNING_MAIN);">전체</button></li>
-                             <th:block th:each="CategoryData, CategoryStat : ${categoryList}">
-                             <li><button th:class="${CategoryData.cate1No == cateNo ? 'active' : '' }" th:onclick="|cfnGoToPage(_PAGE_PLANNING_MAIN+'?cateNo=*{CategoryData.cate1No}');|">[[${CategoryData.cate1Nm}]]</button></li>
-						    </th:block>
-						    	
-                        </ul>
+                    <div class="taps">
+                        <div>
+                            <ul>
+                                 <li th:class="${cateNo == null ? 'active' : ''}"><a href="javascript:;" onclick="cfnGoToPage(_PAGE_PLANNING_MAIN);">전체</a></li>
+                            	 <th:block th:each="CategoryData, CategoryStat : ${categoryList}">
+                            	 <li th:class="${CategoryData.cate1No == cateNo ? 'active' : '' }" ><a href="javascript:;" th:onclick="|cfnGoToPage(_PAGE_PLANNING_MAIN+'?cateNo=*{CategoryData.cate1No}');|">[[${CategoryData.cate1Nm}]]</a></li>
+						    	</th:block>
+                            </ul>
+                        </div>
                     </div>
                     <div class="ui_row">
                         <div class="ui_col_12">
                             <div class="form_count">
-                                <p><span>[[${planCount}]]</span>개의 기획전</p>
+                                <p><span th:text="${planCount}"></span>개의 기획전</p>
                             </div>
                         </div>
-                    </div>
-                    <!-- 기획전 0개 -->
-                  	<th:block th:if="${planCount == 0}">
-                   	 <div class="list_content nodata"> <!-- 데이터 없을시 클래스 nodata 추가 -->
-                    </th:block>
-                     <!-- 기획전 1개 이상 -->
-                  	<th:block th:if="${planCount != 0}">
-                   	 <div class="list_content"> <!-- 데이터 없을시 클래스 nodata 추가 -->
-                    </th:block>
-                        <div class="list_defult">
-                            <div>
-                                <img src="/images/pc/ico_content_find.png" alt="">
-                                <p>등록된 기획전이 없습니다.</p>
-                            </div>
-                            <div class="ui_row">
-                                <button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_MAIN);"><span>홈으로 가기</span></button>
-                            </div>
+                    </div> 
+                    <div class="exhi_list"> <!-- 데이터 없을시 클래스 nodata 추가 -->
+                    	<th:block th:if="${planCount < 1}">
+                    	 <div class="list_content nodata">
+	                     	 <div class="list_defult">
+	                            <div>
+	                                <img src="/images/pc/ico_content_find.png" alt="">
+	                                <p>등록된 기획전이 없습니다.</p>
+	                            </div>
+	                            <div class="ui_row">
+	                                <button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_PLANNING_MAIN);"><span>홈으로 가기</span></button>
+	                            </div>
+	                        </div>
                         </div>
-                        
-                        
-                        <div class="itemsGrp">
-                        <th:block th:each="PlanData, PlanStat : ${planList}">
+                       </th:block>
+                        <div class="itemsGrp" id="planListDiv">
+                       	  <th:block th:each="PlanData, PlanStat : ${planList}">
                             <div class="exhi_item">
-                             
                                 <div class="exhi_item_img">
-                                    <a href="javascript:void(0);" th:onclick="cfnGoToPage(_PAGE_PLANNING_DETAIL + '?planSq=' + [[${PlanData.planSq}]]);">
-                                    	<th:block th:if="${PlanData.newPlan != null}">
-                                        <div class="shape ranker"><span>NEW</span></div>
-                                        </th:block>
-                                        <img th:src="${@environment.getProperty('domain.image')+'/planning/'+PlanData.mainPimg}" style="width: 100%;" alt=""> <!-- 430x430 사이즈 최적 -->
+                                    <a th:onclick="planDetailSearch([[${PlanData.planSq}]])">
+                                        <div class="shape ranker" th:if="${PlanData.newPlan != null}"><span>NEW</span></div>
+                                        <img th:src="${@environment.getProperty('domain.image')+'/planning/'+PlanData.mainPimg}"  alt=""> <!-- 430x430 사이즈 최적 -->
                                         <div class="exhi_detail">
-                                        	<th:block th:if="${PlanData.cnt > 1}">
-                                            <p class="brand">[[${PlanData.brand}]] 외</p>
-                                            </th:block>
-                                            <th:block th:if="${PlanData.cnt <= 1}">
-                                            <p class="brand">[[${PlanData.brand}]]</p>
-                                            </th:block>
-                                            <h3 class="tit">[[${PlanData.planNm}]]</h3>
-                                            <p class="sale">[[${PlanData.dtlTitle1}]]</p>
+                                            <p class="brand" th:if="${PlanData.cnt > 1}" th:text="${PlanData.brand}+' 외'"></p>
+                                            <p class="brand" th:unless="${PlanData.cnt > 1}" th:text="${PlanData.brand}"></p>
+                                            <h3 class="tit" th:text="${PlanData.planNm}"></h3>
+                                            <p class="sale" th:text="${PlanData.dtlTitle1}"></p>
                                         </div>
                                     </a>
                                 </div>
-                             	
                                 <div class="exhi_item_pr">
                                     <ul class="prod_list clear">
-                                    <th:block th:each="goodsList, k : ${goodsList}">
-										<th:block th:if="${PlanData.planSq} == ${goodsList.planSq} and ${goodsList.goodsCd} != null">
+                                     <th:block th:each="goodsList, k : ${goodsList}">
+                                      <th:block th:if="${PlanData.planSq} == ${goodsList.planSq} and ${goodsList.goodsCd} != null">
                                         <li>
-                                            <a href="">
-                                                <div class="img">
-                                                   <img th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsList.sysImgNm}"  style="width: 100%;" alt="">
+                                            <div class="item_prod">
+                                                <div class="item_state">
+                                                    <a href="#none" class="itemLink">
+                                                        <div class="itemPic">
+                                                            <img alt="" class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsList.sysImgNm}">
+                                                        </div>
+                                                        <div class="itemName" th:text="${goodsList.goodsNm}"></div>
+                                                        <p class="itemPrice" th:text="${#numbers.formatInteger(goodsList.currPrice, 0,'COMMA')} + '원'"></p>
+                                                    </a>
                                                 </div>
-                                                <div class="txt">
-                                                    <p class="pr_tit">[[${goodsList.goodsNm}]]</p>
-                                                    <p class="price"><span th:text="${#numbers.formatInteger(goodsList.currPrice, 0,'COMMA')}"></span>원</p>
-                                                </div>
-                                            </a>
+                                            </div>
                                         </li>
+                                       </th:block>
+                                     </th:block>
+                                   
                                     </ul>
                                 </div>
                             </div>
                             </th:block>
-             		
-             				
                         </div>
                     </div>
                 </div>
@@ -123,9 +114,21 @@
         </div>
     </div>
 	<!-- // container -->	
-
 <script th:inline="javascript">
+function planDetailSearch(obj) {
+	console.log("gkgk");
+	var planSq = obj;
+	let data = {planSq : planSq};
+	var jsonData = JSON.stringify(data);
+
+	
+	gagajf.ajaxJsonSubmit(
+			'/planning/detail/form', jsonData,
+			function() {
+				cfnGoToPage(_PAGE_PLANNING_DETAIL);
+			});
 
+}
 </script>
 
 </th:block>

+ 17 - 21
src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

@@ -27,12 +27,7 @@
 			</ul> 
 		</div>
 		<div class="wrap">
-			<div class="content dp_hotdeal"> <!-- 페이지특정 클래스 = dp_hotdeal -->
-				<div class="cont_head">
-					<div>
-                        <h3>[[${socialInfo.socialNm}]]</h3>
-                    </div>
-				</div>
+			<div class="content wide dp_hotdeal"> <!-- 페이지특정 클래스 = dp_hotdeal -->
 				<div class="cont_body">
                     <div class="hotdeal">
                         <div id="countdown">
@@ -44,42 +39,43 @@
                     <div class="list_content">
                         <div class="itemsGrp rowtype"> <!-- itemsGrp rank hot deal --> <!-- rowtype 추가시 가로형태로 출력 -->
                         <th:block th:each="SocialData, SocialStat : ${socialGoods}">
-                            <div th:class="${SocialData.stockQtySum == 0 ? 'item_prod sold_out' : 'item_prod'}" > 
+                            <div class="item_prod" th:class="${SocialData.stockQtySum == 0 ? 'item_prod sold_out' : 'item_prod'}" > 
                                 <div class="item_state"> <!-- item_state AD soldout -->
+                                    <button type="button" th:class="${SocialData.wishYn == 'Y'}? 'itemLike active' : 'itemLike'" onclick="cfnPutWishList(this);" th:attr="goodsCd=${SocialData.goodsCd}, ithrCd='', contentsLoc='', planDtlSq=''">관심상품 추가</button>
                                     <a href="#none" class="itemLink">
                                         <div class="itemPic">
-                                            <div class="shape ranker"><span>특가</span></div>
                                             <img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + SocialData.sysImgNm}">
-                                            <button type="button" class="itemLike active">관심상품 추가</button>
                                         </div>
+                                        <div class="itemSpecialPrice"><span>특가</span></div>
                                         <p class="itemBrand" th:text="${SocialData.brandKnm}"></p>
-                                        <div class="itemName" th:text="${SocialData.goodsNm}" style="font-size: 18px;"></div>
-                                        <p class="itemPrice" >
-                                         [[${#numbers.formatInteger(SocialData.currAprice,0,'COMMA')} + 원]]
-                                            <!-- [[${SocialData.currAprice}]]원 -->
+                                        <div class="itemName" th:text="${SocialData.goodsNm}"></div>
+                                        <!-- <div class="itemComment">#주문 폭주 상품</div> -->
+                                        <p class="itemPrice">
+                                             [[${#numbers.formatInteger(SocialData.currAprice,0,'COMMA')} + 원]]
                                             <span class="itemPrice_original" th:text="${#numbers.formatInteger(SocialData.listPrice,0,'COMMA')} + '원'"></span>
 											<span class=" itemPercent" th:text="${#numbers.formatDecimal(SocialData.dcArate,1,0)} + '%'"></span>
                                         </p>
-                                        <p class="itemBadge">
-                                            <span class="badge13">베스트 </span>
-                                        </p>
-                                        <!-- <div class="itemcolorchip">
+                                       <!--  <div class="itemcolorchip">
                                             <span class="chip_color35" value="ABM">BEIGE</span>
                                             <span class="chip_color54" value="BDS">BLACK</span>
                                             <span class="chip_color40" value="YBR">WHITE</span>
-                                        </div> -->
-                                        <div class="itemComment" th:text="${SocialData.goodsTnm}"></div>
+                                        </div>
+                                         -->
+                                        <div class="shopBagBtn">
+                                            <button class="btn btn_defalt">
+                                                <span>쇼핑백 담기</span>
+                                            </button>
+                                        </div>
                                     </a>
                                 </div>
                             </div>
-                              </th:block>
+                            </th:block>
                         </div>
                     </div>
                 </div>
 		    </div>
         </div>
     </div>   
-
 <script th:inline="javascript">
 var socialInfo = [[${socialInfo}]];
 

BIN
src/main/webapp/images/pc/thumb/hotdeal_bg2.jpg


+ 5 - 0
src/main/webapp/ux/pc/css/common.css

@@ -806,6 +806,7 @@ content: "〉";font-size: 12px;padding-left: 8px;
 .itemPrice_original {position: relative;margin-left: 5px;line-height: 16px;font-size: 14px;font-weight: 300;color: rgb(204, 204, 204);}
 .itemPrice_original::after{content: '';display: inline-block;width: 100%;height: 1px;background: rgb(204, 204, 204);position: absolute;top: 50%;left: 0;bottom:auto;right:auto;transform: translateY(-50%);}
 .itemPercent {position: absolute;top: 0px;right: 0px;bottom: auto;left: auto;margin-left: 15px;line-height: 16px;font-size: 16px;font-weight: 300;color: #fd4802;}
+.itemViewCount {display:inline-block; height:30px; margin-top:20px; padding:7px 14px; border:2px solid #fd4802; color:#fd4802; font-size:14px; font-weight:300; line-height:1; border-radius:15px;}
 
 /* items Ellipsis */
 .itemBrand {position: relative;overflow: hidden;white-space: normal;overflow-wrap: break-word;display: block; max-width:95%;}
@@ -1171,6 +1172,10 @@ input[type="file"] {
   color: #bbb;
   background-color: #f5f5f5 !important;
 } 
+.select_custom[disabled] .combo .select > div {
+  position:relative;
+  z-index:1;
+}
 .select_custom .combo .list>li[aria-disabled="true"] {
 	text-decoration: line-through;
   /*background: #f5f5f5;*/

Diferenças do arquivo suprimidas por serem muito extensas
+ 431 - 533
src/main/webapp/ux/pc/css/layout.css


+ 246 - 70
src/main/webapp/ux/pc/js/common-ui.js

@@ -31,20 +31,30 @@
 * * * * * * * * * * * * * * * * * * * * * */
 $(document).ready(function(){
 
+
+	// history back
+	$(".back").on("click", function () {
+		history.back()
+	});
+
 	// header minify
 	$(function(){
 		$(window).scroll(function(){
 			//var scroll = $(this).scrollTop();
-			var headerH =  $('#header').outerHeight();
+			var headerH =  $('#header .hd_top_banner').outerHeight() + $('#header .area').outerHeight();
+			var miniGnbH = $('#header.minify .gnb').outerHeight();
 			if ($(window).scrollTop() > headerH){
 				//header minify
 				$("#header").addClass("minify");
 				$("#header .hd_top_banner,#header .common_header > .area").hide();
+				$("#container").css("padding-top",headerH + miniGnbH);
+				
 			}
 			else {
 				//header minify
 				$("#header").removeClass("minify");
 				$("#header .hd_top_banner,#header .common_header > .area").show();
+				$("#container").css("padding-top","0px");
 			}
 		});
 	});
@@ -57,65 +67,25 @@ $(document).ready(function(){
 			if ($(window).scrollTop() > brheaderH){
 				//header minify
 				$("#br_header").addClass("minify");
-				$("#br_header .hd_top_banner,#br_header .common_header.br_header .util_group").hide();
+				$("#br_header .hd_top_banner,#br_header .common_header.br_header .area").hide();
+				$(".common_header.br_header .gnb .nav #brd_nav .home").show();
 			}
 			else {
 				//header minify
 				$("#br_header").removeClass("minify");
-				$("#br_header .hd_top_banner,#br_header .common_header.br_header .util_group").show();
+				$("#br_header .hd_top_banner,#br_header .common_header.br_header .area").show();
+				$(".common_header.br_header .gnb .nav #brd_nav .home").hide();
 			}
 		});
 	});
 
-	// history back
-	$(".back").on("click", function () {
-		history.back()
-	});
-
-	//통합검색 - 레이어 열고닫기
-	$(document).on('click','.common_header .search .promotion_search, .common_header .search .btn_open_search',function(e){
-		$('body').addClass('lock');
-		$("#header .common_search").addClass('active'); 
-		return false;
-	}).on('click','.common_search .btn_close_search',function(e){
-		$("#header .common_search").removeClass('active'); 
-		$('body').removeClass('lock');
-		return false;
-	});		
-
-	//브랜드 통합검색 - 레이어 열고닫기
-	$(document).on('click','.common_header.br_header .search .promotion_search, .common_header.br_header .search .btn_open_search',function(e){
-		$('body').addClass('lock');
-		$("#br_header .common_search.schBrand").addClass('active'); 
-		return false;
-	}).on('click','.common_search .btn_close_search',function(e){
-		$("#br_header .common_search.schBrand").removeClass('active'); 
-		$('body').removeClass('lock');
-		return false;
+	// items like on/off
+	$(function(){ 
+		$(".itemLike").click(function () {
+		  $(this).toggleClass("likeit");
+		});
 	});
 
-	//통합검색 - 검색어 입력 시 
-	$(document).on('keyup','.common_search .area_input input',function(e){
-		var searchValue = $(this).val();
-		if(searchValue.length > 0) {
-			$('.common_search .area_result .default_box').hide();	
-			$('.common_search .area_result .searching_box').show();	
-		} else if (searchValue.length == 0) {
-			$('.common_search .area_result .searching_box').hide();	
-			$('.common_search .area_result .default_box').show();	
-		}
-	});
-
-	//통합검색 - 슬라이드 컨트롤러 > 지금 고객님들이 많이 보고 있어요 
-	$(document).on('click','.common_search .realtime_slider .btn_pause',function(e){
-		realtimeItemSwiper.autoplay.stop();
-		$(this).hide();
-		$('.common_search .realtime_slider .btn_play').show();
-	}).on('click','.common_search .realtime_slider .btn_play',function(e){
-		realtimeItemSwiper.autoplay.start();
-		$(this).hide();
-		$('.common_search .realtime_slider .btn_pause').show();
-	});
 
 });
 /* * * * * * * * * * * * * * * * * * * * * * * 
@@ -302,7 +272,6 @@ function sCombo(selector){
 };
 
 
-
 // selectBrand on/off
 $( document ).ready( function() {
 	$("#selectBrand .brandbox input").on("click", function() {
@@ -312,7 +281,12 @@ $( document ).ready( function() {
 });
 
 
-
+// dropDownMenu
+$(document).on('click','.tgl_dropdown',function(e){
+	$(this).next('.dropdown_menu').slideToggle(300);
+	$(this).toggleClass('on');
+	return false;
+});
 
 
 /* alert */
@@ -353,6 +327,57 @@ $.datepicker.setDefaults($.datepicker.regional['kr']);
 
 $(document).ready( function() {
 
+	$(function(){
+		if($(".content").hasClass("dp_hotdeal") || $(".content").hasClass("dp_Bulletship")){
+			$('.container').closest('div').addClass('omitt');
+		}
+	});
+
+	//통합검색 - 레이어 열고닫기
+	$(document).on('click','.common_header .search .promotion_search, .common_header .search .btn_open_search',function(e){
+		$('body').addClass('lock');
+		$("#header .common_search").addClass('active'); 
+		return false;
+	}).on('click','.common_search .btn_close_search',function(e){
+		$("#header .common_search").removeClass('active'); 
+		$('body').removeClass('lock');
+		return false;
+	});		
+
+	//브랜드 통합검색 - 레이어 열고닫기
+	$(document).on('click','.common_header.br_header .search .promotion_search, .common_header.br_header .search .btn_open_search',function(e){
+		$('body').addClass('lock');
+		$("#br_header .common_search.schBrand").addClass('active'); 
+		return false;
+	}).on('click','.common_search .btn_close_search',function(e){
+		$("#br_header .common_search.schBrand").removeClass('active'); 
+		$('body').removeClass('lock');
+		return false;
+	});
+
+	//통합검색 - 검색어 입력 시 
+	$(document).on('keyup','.common_search .area_input input',function(e){
+		var searchValue = $(this).val();
+		if(searchValue.length > 0) {
+			$('.common_search .area_result .default_box').hide();	
+			$('.common_search .area_result .searching_box').show();	
+		} else if (searchValue.length == 0) {
+			$('.common_search .area_result .searching_box').hide();	
+			$('.common_search .area_result .default_box').show();	
+		}
+	});
+
+	//통합검색 - 슬라이드 컨트롤러 > 지금 고객님들이 많이 보고 있어요 
+	$(document).on('click','.common_search .realtime_slider .btn_pause',function(e){
+		realtimeItemSwiper.autoplay.stop();
+		$(this).hide();
+		$('.common_search .realtime_slider .btn_play').show();
+	}).on('click','.common_search .realtime_slider .btn_play',function(e){
+		realtimeItemSwiper.autoplay.start();
+		$(this).hide();
+		$('.common_search .realtime_slider .btn_pause').show();
+	});
+
 	/* 고객센터_accordion */
 	$(document).on('click','.cs .foldGroup .fold_head',function(e){
 		$(this).parents('.foldGroup li').find('.fold_cont').slideToggle(100);
@@ -369,17 +394,6 @@ $(document).ready( function() {
 		$("#rdi-paymethod-quick").trigger("click");
 		return false;
 	});
-
-	/* 상품상세 > 상품문의 _accordion */
-	$(document).on('click','.pd_qnalist .foldGroup .fold_head',function(e){
-		if($(this).parent().hasClass('secret_qna')){
-			alert('비밀글은 열람하실 수 없습니다.');
-		}else {
-			$(this).parents('.foldGroup li').find('.fold_cont').slideToggle(100);
-			$(this).toggleClass('on');
-		}
-	});
-	
 	
 	/* 아이디/비밀번호 찾기_accordion:open */
 	$(document).on('click','.mb .foldGroup.checkcase .fold_head',function(e){	
@@ -405,13 +419,6 @@ $(document).ready( function() {
 		return false;
 	});
 
-	/* dropDownMenu */
-	$(document).on('click','.tgl_dropdown',function(e){
-		$(this).next('.dropdown_menu').slideToggle(300);
-		$(this).toggleClass('on');
-		return false;
-	});
-
 	/* 전시 팝업 샘플팝업1 : 수정예정 */
 	$(document).on('click','#coupon_pop',function(e){
 		$("#coupon_modal_01").modal("show");
@@ -424,6 +431,7 @@ $(document).ready( function() {
 		return false;
 	});
 
+
 	/* 같은 데이터 노출시 동일 영역끼리 병합 */
 	$(".merge_row").each(function() {
 		var txtcont = $(this).text();
@@ -455,9 +463,177 @@ $(document).ready( function() {
 	$("body").mouseup(function(e){down = false;});
 	/* //드래그 스크롤 : 수정 예정 */
 	
+	//상품 리스트_필터
+	$('.filter_list ul li').click(function(){ 
+		$(".filter_list ul li").removeClass('on');
+		$(".dp_list .sort, .sch_result .sort").removeClass('on');
+		$(this).addClass('on');
+		$("."+$(this).data('id')).addClass('on');
+		$('.sort ul li').removeClass('on');
+		$('.sort ul li div').hide();
+		$('.container .dp_list .fillter, .container .sch_result .fillter').show();
+	});
+
+	// 카테고리
+	$('.tap_close').click(function(){ 
+		$(this).parent().removeClass('on');
+		$('.filter_content .sort ul li div').hide();
+		$('.filter_content .sort ul li, .container .filter_list ul li').removeClass('on');
+		$('.container .dp_list .sort, .container .sch_result .sort').removeClass('on');
+	});
 });
 
 
+/* * * * * * * * * * * * * * * * * * * * * * * 
+
+6. Content (상품상세)
+
+* * * * * * * * * * * * * * * * * * * * * */
+$(document).ready( function() {
+
+	//팝업 - 상품썸네일 크게보기
+	$(document).on('click','.pd_detail .area_pic .thumb_list_wrap ul li',function(e){
+		$('body').addClass('lock');
+		$("#pdItemThumbPop .full_pop_container").empty();
+		var thumbIndex = $(this).index() + 1;
+		var thumbImglength = $('.pd_detail .area_pic .thumb_list_wrap ul li').length;
+		var popThumbImgHtml = "";
+		for (i = 1; i <= thumbImglength; i++) {
+			//var thumbImg = $(this).find('img');
+			var thumbContentHtml = $('.pd_detail .area_pic .thumb_list_wrap ul li:nth-child('+i+') a .thumb').html();
+			popThumbImgHtml += "<div id=popThumb"+i+" class='scaleview'>" + thumbContentHtml + "</div>";
+		}
+		$("#pdItemThumbPop .full_pop_container").append(popThumbImgHtml);
+		$("#pdItemThumbPop").show(); 
+	
+		var scrollThumbPop = $('#popThumb'+thumbIndex).offset().top;
+		var currentTop = $(window).scrollTop();
+		$('#pdItemThumbPop').animate({scrollTop : scrollThumbPop - currentTop}, 1000);
+		return false;
+	}).on('click','#btn_close_itemThumbPop, .pd_itemthumb_pop .scaleview img',function(e){
+		$("#pdItemThumbPop").scrollTop(0);
+		$("#pdItemThumbPop").hide(); 
+		$('body').removeClass('lock');
+		return false;
+	});			                
+
+	// 상품 대표설명 > 좌측 상품썸네일 navi, 우측 상품정보 고정 
+	$(window).scroll(function(){
+		var scrollTop= $(window).scrollTop();
+		var headerH =  $('#header .hd_top_banner').outerHeight() + $('#header .area').outerHeight();
+		var miniGnbH = $('#header.minify .gnb').outerHeight();
+		var firstFixed =  headerH + miniGnbH;
+		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 pdDetail_t = firstFixed + $('.pd_detail').outerHeight() + 100;
+		var pdDescWrap_t = pdDetail_t + $('.pd_desc_wrap').outerHeight();
+		var optionFixed_right =  pdDetail_t + $('.pd_desc_wrap').outerHeight() - $('.area_option .opt_wrap').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');
+		}
+
+		/* 딜 - 상세정보 탭 고정 */
+		if (scrollTop > pdDetail_t && scrollTop < pdDescWrap_t){
+			$('.tab_detail_nav').addClass('fix');
+		} else {
+			$('.tab_detail_nav').removeClass('fix');
+		}
+
+		/* 딜 - 우측옵션 고정 */
+		if (scrollTop > pdDetail_t){
+			$('.area_option .opt_wrap').removeClass('absbottom').addClass('fixtop');
+		} else if (scrollTop < pdDetail_t) {
+			$('.area_option .opt_wrap').removeClass('fixtop');
+		}		
+		if (scrollTop > optionFixed_right){
+			$('.area_option .opt_wrap').removeClass('fixtop').addClass('absbottom');
+		}
+
+	});
+
+	//슬라이드 - 상품 대표설명 > 좌측 상품썸네일 navi
+	var thumbNavSwiper = new Swiper('.pd_detail .area_pic .thumb_nav_wrap .swiper-container', {
+		direction: 'vertical',
+		allowTouchMove: false,
+		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 = $('.pd_detail .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 = $('.pd_detail .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;
+	});
+
+
+	/* 상품상세 > 상품문의 _accordion */
+	$(document).on('click','.pd_qnalist .foldGroup .fold_head',function(e){
+		if($(this).parent().hasClass('secret_qna')){
+			alert('비밀글은 열람하실 수 없습니다.');
+		}else {
+			$(this).parents('.foldGroup li').find('.fold_cont').slideToggle(100);
+			$(this).toggleClass('on');
+		}
+	});
+	
+
+
+});
+
 /////////////////////////////////////////////////////// 
 // 이하  미사용 스크립트 정리예정
 //$( document ).ready(function() {

+ 46 - 101
src/main/webapp/ux/pc/js/mypage.js

@@ -4,6 +4,12 @@ var fnGoToOrderDetail = function(param) {
 	cfnGoToPage(_PAGE_MYPAGE_ORDER_DETAIL + ordNo);
 }
 
+// 상품상세 페이지 이동 처리
+var fnGoToGoodsDetail = function(param) {
+	let goodsCd = $(param).attr('goodsCd');
+	cfnGoToPage(_PAGE_GOODS_DETAIL + goodsCd);
+}
+
 // 배송조회 버튼 클릭 이벤트
 var fnGetDeliveryInfo = function(param) {
 	let invoiceNo = $(param).attr('invoiceNo');
@@ -15,21 +21,17 @@ var fnGetDeliveryInfo = function(param) {
 
 // 구매확정 버튼 클릭 이벤트
 var fnDecideOrder = function(param) {
-	let ordDtlNoArr = $(param).parent().parent().find('input[name=ordDtlNo]');
-	let ordDtlStatArr = $(param).parent().parent().find('input[name=ordDtlStat]');
-	
 	let orderDecisionArr = [];
-	$.each(ordDtlNoArr, function(idx, item) {
-		if (ordDtlStatArr[idx].value == 'G013_60') {
-			orderDecisionArr.push(item.value);
-		}
-	});
-	
+	let ordNo = $(param).attr('ordNo');
+	let ordDtlNo = $(param).attr('ordDtlNo');
+
+	orderDecisionArr.push(ordDtlNo);
+
 	if (orderDecisionArr.length == 0) {
 		mcxDialog.alert('구매확정 가능한 상품이 없습니다.');
 		return false;
 	}
-	
+
 	mcxDialog.confirm('구매확정 처리를 하시겠습니까?', {
 		cancelBtnText: "취소",
 		sureBtnText: "확인",
@@ -54,78 +56,29 @@ var fnDecideOrder = function(param) {
 }
 
 // 리뷰작성 버튼 클릭 이벤트
-var fnCreateReview = function(param, bannerYn) {
-	let ordDtlNoArr;
-	let ordDtlStatArr;
-	let reviewSqArr;
-
-	if (bannerYn == 'Y') {
-		ordDtlNoArr = $(param).parent().parent().find('input[name=ordDtlNo]');
-		ordDtlStatArr = $(param).parent().parent().find('input[name=ordDtlStat]');
-		reviewSqArr = $(param).parent().parent().find('input[name=reviewSq]');
-	} else {
-		ordDtlNoArr = $(param).parent().parent().parent().parent().find('input[name=ordDtlNo]');
-		ordDtlStatArr = $(param).parent().parent().parent().parent().find('input[name=ordDtlStat]');
-		reviewSqArr = $(param).parent().parent().parent().parent().find('input[name=reviewSq]');
-	}
-	
-	let canReviewSqArr = [];
-	$.each(ordDtlNoArr, function(idx, item) {
-		if (ordDtlStatArr[idx].value == 'G013_70' && reviewSqArr[idx].value == 0) {
-			canReviewSqArr.push(item.value);
-		}
-	});
-	
-	if (canReviewSqArr.length == 0) {
-		mcxDialog.alert('리뷰작성 가능한 상품이 없습니다.');
-		return false;
-	}
-	
+var fnCreateReview = function(param) {
+	let ordNo = $(param).attr('ordNo');
+	let ordDtlNo = $(param).attr('ordDtlNo');
+
 	// TODO
 	// 리뷰 작성페이지 이동
 	let data = {};
-	
+
 	data.ordNo = ordNo;
-	data.ordDtlNoArr = canReviewSqArr;
-	
+	data.ordDtlNo = ordDtlNo;
+
 	var jsonData = JSON.stringify(data);
 	
-	//gagajf.ajaxJsonSubmit('/mypage/order/decision'
-	//	, jsonData
-	//	, function() {
-	//		cfnGoToPage(_PAGE_MYPAGE_ORDER_DETAIL + ordNo);
-	//	});
-	
 }
 
 // 장바구니 담기 버튼 클릭 이벤트
-var fnCreateCart = function(param, bannerYn) {
-	let ordDtlNoArr = '';
-	let ordDtlStatArr = '';
-	let reviewSqArr = '';
-
-	if (bannerYn == 'Y') {
-		ordDtlNoArr = $(param).parent().parent().find('input[name=ordDtlNo]');
-		ordDtlStatArr = $(param).parent().parent().find('input[name=ordDtlStat]');
-		reviewSqArr = $(param).parent().parent().find('input[name=reviewSq]');
-	} else {
-		ordDtlNoArr = $(param).parent().parent().parent().parent().parent().find('input[name=ordDtlNo]');
-		ordDtlStatArr = $(param).parent().parent().parent().parent().parent().find('input[name=ordDtlStat]');
-		reviewSqArr = $(param).parent().parent().parent().parent().parent().find('input[name=reviewSq]');
-	}
-	
+var fnCreateCart = function(param) {
 	let cartArr = [];
-	$.each(ordDtlNoArr, function(idx, item) {
-		if (bannerYn != 'Y' || (bannerYn == 'Y' && ordDtlStatArr[idx].value == 'G013_70' && reviewSqArr[idx].value > 0)) {
-			cartArr.push(item.value);
-		}
-	});
-	
-	if (cartArr.length == 0) {
-		mcxDialog.alert('장바구니에 담을 상품이 없습니다.');
-		return false;
-	}
-	
+	let ordNo = $(param).attr('ordNo');
+	let ordDtlNo = $(param).attr('ordDtlNo');
+
+	cartArr.push(ordDtlNo);
+
 	// TODO
 	// 장바구니 담기 처리
 	let data = {};
@@ -135,11 +88,6 @@ var fnCreateCart = function(param, bannerYn) {
 	
 	var jsonData = JSON.stringify(data);
 	
-	//gagajf.ajaxJsonSubmit('/mypage/order/decision'
-	//	, jsonData
-	//	, function() {
-	//		cfnGoToPage(_PAGE_MYPAGE_ORDER_DETAIL + ordNo);
-	//	});
 }
 
 // 선물하기 SMS 재전송 버튼 클릭 이벤트
@@ -152,25 +100,24 @@ var fnReSendSms = function(param) {
 
 // 반품/취소/교환 버튼 클릭 이벤트
 var fnCreateChange = function(param, gubun) {
-	if (ordNo == null) {
-		ordNo = $(param).attr('ordNo');
-	}
-	
-	let ordDtlNoArr = $(param).parent().parent().parent().parent().find('input[name=ordDtlNo]');
-	
-	let changeArr = [];
-	$.each(ordDtlNoArr, function(idx, item) {
-		changeArr.push(item.value);
-	})
-	
+	let ordNo = $(param).attr('ordNo');
+	let ordDtlNo = $(param).attr('ordDtlNo');
+
 	$('#' + gubun + 'Form input[name=ordNo]').val(ordNo);
-	$('#' + gubun + 'Form input[name=ordDtlNoArr]').val(changeArr);
+	$('#' + gubun + 'Form input[name=ordDtlNo]').val(ordDtlNo);
+	mcxDialog.alertC(gubun,  {
+		sureBtnText: "확인",
+		sureBtnClick: function() {
+			if (gubun == 'cancel') {
+				document.cancelForm.submit();
+			} else if (gubun == 'return') {
+				document.returnForm.submit();
+			} else if (gubun == 'exchange') {
+				document.exchangeForm.submit();
+			}
+		}
+	});
 	
-	if (gubun == 'cancel') {
-		document.cancelForm.submit();
-	} else {
-		document.exchangeForm.submit();
-	}
 }
 
 // 주문 내역 삭제 처리
@@ -180,15 +127,13 @@ var fnDeleteOrder = function() {
 		sureBtnText: "확인",
 		sureBtnClick: function(){
 			let data = {};
-			
+
 			data.ordNo = ordNo;
-			
+
 			var jsonData = JSON.stringify(data);
-			gagajf.ajaxJsonSubmit('/mypage/order/delete'
-				, jsonData
-				, function() {
-					cfnGoToPage(_PAGE_MYPAGE);
-				});
+			gagajf.ajaxJsonSubmit('/mypage/order/delete', jsonData, function() {
+				cfnGoToPage(_PAGE_MYPAGE);
+			});
 		}
 	});
 };

+ 6 - 2
src/main/webapp/ux/plugins/gaga/gaga.paging.js

@@ -181,7 +181,11 @@ var gagaPaging = {
 			}
 
 			if (getPageGroup() == 1) {
-				pageTag += '<li class="prev disabled"><a href="#" alt="이전페이지">‹</a></li>\n';
+				if (pageNo == 1) {
+					pageTag += '<li class="prev disabled"><a href="#" alt="이전페이지">‹</a></li>\n';
+				} else {
+					pageTag += '<li class="prev"><a href="#" alt="이전페이지">‹</a></li>\n';
+				}
 			} else {
 				pageTag += '<li class="prev"><a href="#pageNo=' + (getPageGroup()-1) * pageUnit + '" alt="이전페이지">‹</a></li>\n';
 			}
@@ -198,7 +202,7 @@ var gagaPaging = {
 				if (getTotalPage() > loopCount) {
 					pageTag += '<li class="next"><a href="#pageNo=' + (getPageGroup() * pageUnit + 1) + '" alt="다음페이지">›</a></li>\n';
 				} else {
-					pageTag += '<li class="next"><a href="#pageNo=' + getTotalPage + '" alt="다음페이지">›</a></li>\n';
+					pageTag += '<li class="next"><a href="#pageNo=' + getTotalPage() + '" alt="다음페이지">›</a></li>\n';
 				}
 				pageTag += '<li><a href="#pageNo=' + getTotalPage() + '" alt="맨마지막">»</a></li>\n';
 			}

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
src/main/webapp/ux/sha512.min.js


+ 21 - 30
src/main/webapp/ux/style24_link.js

@@ -20,8 +20,9 @@ const _PAGE_CUSTOMER_PWD_CHANGE_FIND = _frontUrl + "/customer/password/change/fo
 const _PAGE_CUSTOMER_PWD_CHANGE_TEMP = _frontUrl + "/customer/password/change/form?pageGb=temp";	// 고객 > 임시비밀번호 로그인 > 비밀번호 변경 화면
 const _PAGE_CUSTOMER_DORMANT = _frontUrl + "/customer/dormant/certify/form";						// 고객 > 휴면회원
 const _PAGE_CUSTOMER_DORMANT_COMPLETE = _frontUrl + "/customer/dormant/certify/complete/form";		// 고객 > 휴면회원 > 완료페이지
-const _PAGE_CUSTOMER_CERTIFICATION = "/customer/certification/form"									// 고객 > 본인인증화면
-
+const _PAGE_CUSTOMER_CERTIFICATION = _frontUrl + "/customer/certification/form"						// 고객 > 본인인증화면
+const _PAGE_USE_TERMS = _frontUrl + "/customer/use/terms/form";										// Footer > 이용약관
+const _PAGE_PRIVACY_POLICY = _frontUrl + "/customer/privacy/policy/form";							// Footer > 개인정보취급방침
 
 //== 상품상세 ==/
 const _PAGE_GOODS_DETAIL = _frontUrl + "/goods/detail/form?goodsCd=";								// 상품 상세
@@ -34,12 +35,12 @@ const _PAGE_GOODS_QNA_LAYER = _frontUrl + "/goods/qna/layer/";										// 상
 const _PAGE_GOODS_QNA_CREATE_LAYER = _frontUrl + "/goods/qna/create/layer/";						// 상품문의레이어
 const _PAGE_GOODS_DELIVERY_LAYER = _frontUrl + "/goods/delivery/layer/";							// 배송/교환/반품 레이어
 const _PAGE_GOODS_REVIEW_LAYER = _frontUrl + "/goods/review/layer/";								// 상품평 레이어
-const _PAGE_GOODS_REVIEW_BEST_LAYER = _frontUrl + "/goods/review/best/layer/";						// 상품평- 베스트 리뷰 (list)
-const _PAGE_GOODS_REVIEW_PHOTO_LAYER = _frontUrl + "/goods/review/photo/layer/";					// 상품평- 포토/영상 리뷰 (list)
-const _PAGE_GOODS_REVIEW_PHOTO_DETAIL_LAYER = _frontUrl + "/goods/review/photo/detail/layer/";		// 상품평- 포토/영상 리뷰 (detail)
+const _PAGE_GOODS_REVIEW_DETAIL_LAYER = _frontUrl + "/goods/review/detail/layer";					// 상품평- 상세(베스트, 포토)
+const _PAGE_GOODS_REVIEW_PHTO_LIST_LAYER = _frontUrl + "/goods/review/photo/layer/";				// 상품평- 포토/영상 리뷰 (list)
 const _PAGE_GOODS_CPN_DOWNLOAD = "/goods/coupon/download";											// 상품쿠폰다운로드
 
 //== 장바구니 ==/
+const _PAGE_CART = _frontUrl + "/cart/list/form";								// 장바구니
 
 //== 주문 ==/
 
@@ -228,6 +229,8 @@ function cfnAddCart(cartList) {
 						location.href='/cart/list/form'; 	//내 쇼핑백 이동url
 					}
 				});
+			}else{
+				location.href='/cart/list/form'; 
 			}
 		}
 	});
@@ -325,12 +328,13 @@ var cfnLoginYes24 = function (requestGb, chkRememberMe) {
  * @since  : 2021/03/02
  * @author : eskim
  */
-var cfnGoToGoodsDetail = function (goodsCd, colorCd, ithrCd, contentsLoc, planDtlSq) {
+var cfnGoToGoodsDetail = function (goodsCd, colorCd, ithrCd, contentsLoc, planDtlSq, rccode ) {
 	var params = goodsCd;
 	params += "&colorCd=" + colorCd;
 	if (typeof (ithrCd) != 'undefined') params += "&ithrCd=" + ithrCd;
 	if (typeof (contentsLoc) != 'undefined' && contentsLoc != "") params += "&contentsLoc=" + contentsLoc;
 	if (typeof (planDtlSq) != 'undefined') params += "&planDtlSq=" + planDtlSq;
+	if (typeof (rccode) != 'undefined') params += "&rccode=pc_detail";	// 추천솔루션 제공 상품클릭시
 	cfnGoToPage(_PAGE_GOODS_DETAIL + params);
 }
 
@@ -505,17 +509,22 @@ function cfGoodsInstockAlarmInfo(goodsCd, colorCd) {
 * @access : public
 * @desc   : 상품평- 베스트 리뷰 보기
 * <pre>
-*		cfGoodsBestReviewInfo(goodsCd);
+*		cfGoodsReviewDetail(goodsCd, bestYn, photoYn, reviewSq);
 * </pre>
 */
-function cfGoodsBestReview(goodsCd) {
-	var str = '<div class="modal fade pd_pop pd_bestreviewdetail_pop" id="layer_review_best" tabindex="-1" role="dialog" aria-labelledby="pdBestReviewLabel" aria-hidden="true"></div>';
+function cfGoodsReviewDetail(goodsCd, bestYn, photoYn, reviewSq) {
+	var str = '<div class="modal fade pd_pop pd_photoreviewdetail_pop" id="layer_review_best" tabindex="-1" role="dialog" aria-labelledby="pdBestReviewLabel" aria-hidden="true"></div>';
 
 	if ($('#layer_review_best').length == 0) {
 		$('body').append(str);
 	}
-
-	cfOpenLayer(_PAGE_GOODS_REVIEW_BEST_LAYER+goodsCd, 'layer_review_best');
+	
+	var params = new Object();
+	params.goodsCd = goodsCd;
+	params.bestYn = bestYn;
+	params.photoYn = photoYn;
+	params.reviewSq = reviewSq;
+	cfOpenLayer(_PAGE_GOODS_REVIEW_DETAIL_LAYER, 'layer_review_best' ,params );
 }
 
 /**
@@ -533,25 +542,7 @@ function cfGoodsReviewPhoto(goodsCd) {
 		$('body').append(str);
 	}
 
-	cfOpenLayer(_PAGE_GOODS_REVIEW_PHOTO_LAYER+goodsCd, 'layer_review_photo');
-}
-
-/**
-* @type   : function
-* @access : public
-* @desc   : 상품평- 포토/영상 리뷰 상세 보기
-* <pre>
-*		cfGoodsPhotoReviewDetail(goodsCd);
-* </pre>
-*/
-function cfGoodsReviewPhotoDetail(goodsCd) {
-	var str = '<div class="modal fade pd_pop pd_photoreviewdetail_pop" id="layer_review_photo_detail" tabindex="-1" role="dialog" aria-labelledby="pdPhotoReviewDetailLabel" aria-hidden="true"></div>';
-
-	if ($('#layer_review_photo_detail').length == 0) {
-		$('body').append(str);
-	}
-
-	cfOpenLayer(_PAGE_GOODS_REVIEW_PHOTO_DETAIL_LAYER+goodsCd, 'layer_review_photo_detail');
+	cfOpenLayer(_PAGE_GOODS_REVIEW_PHTO_LIST_LAYER+goodsCd, 'layer_review_photo');
 }
 
 /**

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff