Просмотр исходного кода

나이스 인증 세션 Tsf으로 변경

jsshin 5 лет назад
Родитель
Сommit
559564d4bf
86 измененных файлов с 6905 добавлено и 781 удалено
  1. 84 3
      src/main/java/com/style24/front/biz/dao/TsfCartDao.java
  2. 49 0
      src/main/java/com/style24/front/biz/dao/TsfOrderChangeDao.java
  3. 8 1
      src/main/java/com/style24/front/biz/dao/TsfPointDao.java
  4. 184 9
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  5. 4 3
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  6. 101 0
      src/main/java/com/style24/front/biz/service/TsfOrderChangeService.java
  7. 10 1
      src/main/java/com/style24/front/biz/service/TsfPointService.java
  8. 34 2
      src/main/java/com/style24/front/biz/web/TsfCartController.java
  9. 60 12
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  10. 29 5
      src/main/java/com/style24/persistence/domain/Cart.java
  11. 7 7
      src/main/java/com/style24/persistence/domain/Cate4Srch.java
  12. 0 44
      src/main/java/com/style24/persistence/domain/Coupon.java
  13. 5 5
      src/main/java/com/style24/persistence/domain/Goods.java
  14. 5 5
      src/main/java/com/style24/persistence/domain/GoodsStock.java
  15. 37 0
      src/main/java/com/style24/persistence/domain/Search.java
  16. 476 266
      src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml
  17. 217 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml
  18. 38 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfPoint.xml
  19. 15 7
      src/main/resources/config/application-locd.yml
  20. 56 0
      src/main/resources/config/application-tsit.yml
  21. 25 0
      src/main/resources/log/logback-tsit.xml
  22. BIN
      src/main/webapp/WEB-INF/lib/ConnectionKCP.jar
  23. BIN
      src/main/webapp/WEB-INF/lib/jPpcliE.jar
  24. 246 0
      src/main/webapp/WEB-INF/views/web/cart/cartChangeOptionPopupWeb.html
  25. 80 34
      src/main/webapp/WEB-INF/views/web/cart/cartListAjaxFormWeb.html
  26. 22 143
      src/main/webapp/WEB-INF/views/web/cart/cartListFormWeb.html
  27. 3543 0
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  28. 76 0
      src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html
  29. 51 10
      src/main/webapp/WEB-INF/views/web/mypage/MypagePointFormWeb.html
  30. 195 78
      src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html
  31. 300 67
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html
  32. 106 0
      src/main/webapp/WEB-INF/views/web/pg/kcpOrder.html
  33. BIN
      src/main/webapp/images/pc/btn_count.png
  34. BIN
      src/main/webapp/images/pc/btn_deal_item_more.png
  35. BIN
      src/main/webapp/images/pc/btn_delete_item.png
  36. BIN
      src/main/webapp/images/pc/btn_itemLike.png
  37. BIN
      src/main/webapp/images/pc/btn_itemShare.png
  38. BIN
      src/main/webapp/images/pc/ico_arr_lg02.png
  39. BIN
      src/main/webapp/images/pc/ico_bell.png
  40. BIN
      src/main/webapp/images/pc/ico_besttag.png
  41. BIN
      src/main/webapp/images/pc/ico_count_bg.png
  42. BIN
      src/main/webapp/images/pc/ico_filter02.png
  43. BIN
      src/main/webapp/images/pc/ico_ic_btn.png
  44. BIN
      src/main/webapp/images/pc/ico_play.png
  45. BIN
      src/main/webapp/images/pc/ico_plus_white.png
  46. BIN
      src/main/webapp/images/pc/ico_point3.png
  47. BIN
      src/main/webapp/images/pc/ico_point4.png
  48. BIN
      src/main/webapp/images/pc/ico_qk_cart.png
  49. BIN
      src/main/webapp/images/pc/ico_qk_cate.png
  50. BIN
      src/main/webapp/images/pc/ico_qk_coupon.png
  51. BIN
      src/main/webapp/images/pc/ico_qk_history.png
  52. BIN
      src/main/webapp/images/pc/ico_qk_like.png
  53. BIN
      src/main/webapp/images/pc/ico_qk_top.png
  54. BIN
      src/main/webapp/images/pc/ico_quick_cate.png
  55. BIN
      src/main/webapp/images/pc/ico_quick_cate_on.png
  56. BIN
      src/main/webapp/images/pc/ico_quick_close.png
  57. BIN
      src/main/webapp/images/pc/ico_sch.png
  58. BIN
      src/main/webapp/images/pc/ico_secret.png
  59. BIN
      src/main/webapp/images/pc/ico_thumblist.png
  60. BIN
      src/main/webapp/images/pc/ico_time_dot.png
  61. BIN
      src/main/webapp/images/pc/info_size_bag.jpg
  62. BIN
      src/main/webapp/images/pc/info_size_pants.jpg
  63. BIN
      src/main/webapp/images/pc/info_size_shoe.jpg
  64. BIN
      src/main/webapp/images/pc/info_size_top.jpg
  65. BIN
      src/main/webapp/images/pc/info_size_underwear.jpg
  66. BIN
      src/main/webapp/images/pc/logo_andew.png
  67. BIN
      src/main/webapp/images/pc/logo_buckaroo.png
  68. BIN
      src/main/webapp/images/pc/logo_converse.png
  69. BIN
      src/main/webapp/images/pc/logo_curlysue.png
  70. BIN
      src/main/webapp/images/pc/logo_frj.png
  71. BIN
      src/main/webapp/images/pc/logo_hurley.png
  72. BIN
      src/main/webapp/images/pc/logo_jordan.png
  73. BIN
      src/main/webapp/images/pc/logo_levis.png
  74. BIN
      src/main/webapp/images/pc/logo_lpga.png
  75. BIN
      src/main/webapp/images/pc/logo_moi.png
  76. BIN
      src/main/webapp/images/pc/logo_nba.png
  77. BIN
      src/main/webapp/images/pc/logo_nbakid.png
  78. BIN
      src/main/webapp/images/pc/logo_nike.png
  79. BIN
      src/main/webapp/images/pc/logo_pga.png
  80. BIN
      src/main/webapp/images/pc/logo_tbj.png
  81. BIN
      src/main/webapp/images/pc/star_empty.png
  82. BIN
      src/main/webapp/images/pc/star_empty_big.png
  83. BIN
      src/main/webapp/images/pc/star_empty_big_only.png
  84. 9 0
      src/main/webapp/ux/pc/css/common.css
  85. 804 78
      src/main/webapp/ux/pc/css/layout.css
  86. 29 1
      src/main/webapp/ux/style24_link.js

+ 84 - 3
src/main/java/com/style24/front/biz/dao/TsfCartDao.java

@@ -5,6 +5,7 @@ import java.util.List;
 
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.Cart;
 import com.style24.persistence.domain.Cart;
+import com.style24.persistence.domain.GoodsImg;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Order;
 
 
 /**
 /**
@@ -32,7 +33,7 @@ public interface TsfCartDao {
 	 * @author xodud1202
 	 * @author xodud1202
 	 * @since 2021. 02. 01
 	 * @since 2021. 02. 01
 	 */
 	 */
-	Collection<Integer> selectHasSetItemCartList(Cart param);
+	Collection<Cart> selectHasSetItemCartList(Cart param);
 
 
 	/**
 	/**
 	 * 장바구니 등록 상품 확인
 	 * 장바구니 등록 상품 확인
@@ -62,7 +63,7 @@ public interface TsfCartDao {
 	void insertCartDetailInfo(Cart param);
 	void insertCartDetailInfo(Cart param);
 
 
 	/**
 	/**
-	 * 장바구니 상세 신규 등록
+	 * 장바구니 수정
 	 * @param Cart
 	 * @param Cart
 	 * @return void
 	 * @return void
 	 * @author xodud1202
 	 * @author xodud1202
@@ -70,9 +71,27 @@ public interface TsfCartDao {
 	 */
 	 */
 	void updateCartInfo(Cart param);
 	void updateCartInfo(Cart param);
 
 
+	/**
+	 * 장바구니 수정
+	 * @param param
+	 * @return void
+	 * @author xodud1202
+	 * @since 2021. 03. 01
+	 */
+	void updateCart(Cart param);
+
+	/**
+	 * 장바구니 상세 수정
+	 * @param param
+	 * @return void
+	 * @author xodud1202
+	 * @since 2021. 03. 01
+	 */
+	void updateCartDetail(Cart param);
+
 	/**
 	/**
 	 * 장바구니 이력 정보 저장
 	 * 장바구니 이력 정보 저장
-	 * @param Cart
+	 * @param param
 	 * @return void
 	 * @return void
 	 * @author xodud1202
 	 * @author xodud1202
 	 * @since 2021. 02. 02
 	 * @since 2021. 02. 02
@@ -190,4 +209,66 @@ public interface TsfCartDao {
 	 * @date 2021. 2. 24
 	 * @date 2021. 2. 24
 	 */
 	 */
 	void deleteCart(Cart param);
 	void deleteCart(Cart param);
+
+	/**
+	 * 장바구니 삭제
+	 * @param param - 장바구니 정보
+	 * @author xodud1202
+	 * @date 2021. 03. 01
+	 */
+	void deleteCartDetail(Cart param);
+
+	/**
+	 * 장바구니 상품 마스터 정보 조회
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @date 2021. 2. 25
+	 */
+	Cart selectCartGoodsInfo(Cart param);
+
+	/**
+	 * 장바구니 세트 구성 상품 정보 조회
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @date 2021. 2. 25
+	 */
+	Collection<Cart> selectCartSetGoodsInfo(Cart param);
+
+	/**
+	 * 장바구니 상품 컬러 옵션 정보 조회
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @date 2021. 2. 26
+	 */
+	Collection<Cart> selectCartGoodsColorList(Cart param);
+
+	/**
+	 * 장바구니 상품 사이즈 옵션 정보 조회
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @date 2021. 2. 26
+	 */
+	Collection<Cart> selectCartGoodsSizeList(Cart param);
+
+	/**
+	 * 장바구니 자사 상품 이미지 리스트 조회
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @date 2021. 2. 25
+	 */
+	Collection<GoodsImg> selectCartSelfGoodsOptionImgList(Cart param);
+
+	/**
+	 * 장바구니 입점업체 상품 이미지 리스트 조회
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @date 2021. 2. 25
+	 */
+	Collection<GoodsImg> selectCartDelvGoodsOptionImgList(Cart param);
 }
 }

+ 49 - 0
src/main/java/com/style24/front/biz/dao/TsfOrderChangeDao.java

@@ -0,0 +1,49 @@
+package com.style24.front.biz.dao;
+
+import java.util.Collection;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.GiftCard;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.Point;
+
+/**
+ * 주문 변경 Dao
+ * 
+ * @author card007
+ * @since 2021. 02. 26
+ */
+@ShopDs
+public interface TsfOrderChangeDao {
+
+	/**
+	 * 마이페이지 취소/반품 목록 조회
+	 *
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author card007
+	 * @since 2021. 02. 26
+	 */
+	Collection<Order> getCancelListForMypage(Order order);
+
+	/**
+	 * 사용 상품권 정보 조회
+	 *
+	 * @param Order
+	 * @return Collection<GiftCard>
+	 * @author card007
+	 * @since 2021. 03. 02
+	 */
+	Collection<GiftCard> getUsedGiftcardInfo(Order order);
+
+	/**
+	 * 사용 포인트 정보 조회
+	 *
+	 * @param Order
+	 * @return Collection<Point>
+	 * @author card007
+	 * @since 2021. 03. 02
+	 */
+	Collection<Point> getUsedPointInfo(Order order);
+
+}

+ 8 - 1
src/main/java/com/style24/front/biz/dao/TsfPointDao.java

@@ -25,9 +25,16 @@ public interface TsfPointDao {
 	Point getExpectedPointInfo(Point point);
 	Point getExpectedPointInfo(Point point);
 	Point getExtinctPointInfo(Point point);
 	Point getExtinctPointInfo(Point point);
 	
 	
-	
+	/**
+	 * 포인트정보 내역조회
+	 *
+	 * @param Point
+	 * @author csh9191
+	 * @since 2021. 03. 03
+	 */	
 	Collection<Point> getAccumulatePointList(Point point);
 	Collection<Point> getAccumulatePointList(Point point);
 	Collection<Point> getUsePointList(Point point);
 	Collection<Point> getUsePointList(Point point);
+	Collection<Point> getAllPointList(Point point);
 	
 	
 	
 	
 
 

+ 184 - 9
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -8,6 +8,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -15,6 +16,7 @@ import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.session.TscSession;
 import com.style24.core.support.session.TscSession;
 import com.style24.front.biz.dao.TsfCartDao;
 import com.style24.front.biz.dao.TsfCartDao;
+import com.style24.front.support.env.TsfConstants;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Cart;
 import com.style24.persistence.domain.Cart;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Goods;
@@ -45,11 +47,14 @@ public class TsfCartService {
 	@Autowired
 	@Autowired
 	private TscOrderService coreOrderService;
 	private TscOrderService coreOrderService;
 
 
+	@Autowired
+	private Environment env;
+
 	/**
 	/**
 	 * 장바구니 저장
 	 * 장바구니 저장
 	 * 단품 : goodsCd, optCd, optCd1, optCd2
 	 * 단품 : goodsCd, optCd, optCd1, optCd2
 	 * 세트 : goodsCd,
 	 * 세트 : goodsCd,
-	 * @param cart
+	 * @param params
 	 */
 	 */
 	public void saveCartInfo(Collection<Cart> params) {
 	public void saveCartInfo(Collection<Cart> params) {
 		Cart cart = new Cart();
 		Cart cart = new Cart();
@@ -72,7 +77,10 @@ public class TsfCartService {
 			// 상품 마스터 정보 확인
 			// 상품 마스터 정보 확인
 			Goods goods = new Goods();
 			Goods goods = new Goods();
 			goods.setGoodsCd(param.getGoodsCd());
 			goods.setGoodsCd(param.getGoodsCd());
+			goods.setFrontGb(TsfSession.getFrontGb());
+
 			goods = goodsService.getGoodsInfo(goods);
 			goods = goodsService.getGoodsInfo(goods);
+
 			if (goods == null) {
 			if (goods == null) {
 				throw new IllegalArgumentException("상품 정보가 존재하지 않습니다.");
 				throw new IllegalArgumentException("상품 정보가 존재하지 않습니다.");
 			}
 			}
@@ -94,6 +102,8 @@ public class TsfCartService {
 			}
 			}
 
 
 			cart.setGoodsCd(param.getGoodsCd());
 			cart.setGoodsCd(param.getGoodsCd());
+
+			// 장바구니에 있는 같은 상품(옵션이 상이해도 같은 상품이므로 상품 전체 조회)
 			int goodsCartCnt = cartDao.getHasGoodsCartCnt(param);
 			int goodsCartCnt = cartDao.getHasGoodsCartCnt(param);
 			if (param.getGoodsQty() + goodsCartCnt > goods.getDayMaxOrdQty()) {
 			if (param.getGoodsQty() + goodsCartCnt > goods.getDayMaxOrdQty()) {
 				throw new IllegalArgumentException("1일 구매한도 수량이 초과되었습니다.");
 				throw new IllegalArgumentException("1일 구매한도 수량이 초과되었습니다.");
@@ -171,13 +181,13 @@ public class TsfCartService {
 		}
 		}
 
 
 		// 같은 장바구니 상품 확인
 		// 같은 장바구니 상품 확인
-		Collection<Integer> cartSqList = cartDao.selectHasSetItemCartList(cart);
+		Collection<Cart> cartSqList = cartDao.selectHasSetItemCartList(cart);
 
 
 		if (cartSqList != null && cartSqList.size() > 0) {		// 장바구니 기존재
 		if (cartSqList != null && cartSqList.size() > 0) {		// 장바구니 기존재
-			if (cartSqList.size() > 1) {							// 장바구니 조회 결과 이상시 insert or select 수정 필요
+			if (cartSqList.size() > 1) {						// 장바구니 조회 결과 이상시 insert or select 수정 필요
 				throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
 				throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
 			} else {
 			} else {
-				cart.setCartSq(cartSqList.iterator().next());
+				cart.setCartSq(cartSqList.iterator().next().getCartSq());
 				cartDao.updateCartInfo(cart);               // 장바구니 정보 수정
 				cartDao.updateCartInfo(cart);               // 장바구니 정보 수정
 				cartDao.insertCartHst(cart);                // 장바구니 수정 이력 저장
 				cartDao.insertCartHst(cart);                // 장바구니 수정 이력 저장
 			}
 			}
@@ -310,7 +320,7 @@ public class TsfCartService {
 
 
 	/**
 	/**
 	 * 다다익선 할인 금액 조회
 	 * 다다익선 할인 금액 조회
-	 * @param Order
+	 * @param param
 	 * param.cartSqArr[] : 필수
 	 * param.cartSqArr[] : 필수
 	 * @return String
 	 * @return String
 	 * @author xodud1202
 	 * @author xodud1202
@@ -326,8 +336,6 @@ public class TsfCartService {
 
 
 		// 장바구니 등록 다다익선 일련번호 지정
 		// 장바구니 등록 다다익선 일련번호 지정
 		List<Integer> applySq 		= new ArrayList<Integer>();
 		List<Integer> applySq 		= new ArrayList<Integer>();
-		List<Integer> qtyApplySq	= new ArrayList<Integer>();
-		List<Integer> amtApplySq 	= new ArrayList<Integer>();
 		
 		
 		for(Order tmtbApply : tmtbApplyList) {
 		for(Order tmtbApply : tmtbApplyList) {
 			if(TscConstants.GoodsGb.BASE.value().equals(tmtbApply.getQtyGoodsGb()) || TscConstants.GoodsGb.BASE.value().equals(tmtbApply.getAmtGoodsGb())) {
 			if(TscConstants.GoodsGb.BASE.value().equals(tmtbApply.getQtyGoodsGb()) || TscConstants.GoodsGb.BASE.value().equals(tmtbApply.getAmtGoodsGb())) {
@@ -503,7 +511,7 @@ public class TsfCartService {
 	/**
 	/**
 	 * 장바구니 배송단위별 상품 정보 조회
 	 * 장바구니 배송단위별 상품 정보 조회
 	 *
 	 *
-	 * @param Order
+	 * @param cartGoodsList
 	 * @author jsh77b
 	 * @author jsh77b
 	 * @since 2021. 02. 02
 	 * @since 2021. 02. 02
 	 */
 	 */
@@ -563,7 +571,7 @@ public class TsfCartService {
 				if (param.getDelvFeeCd().equals(delv.getDelvFeeCd())) {
 				if (param.getDelvFeeCd().equals(delv.getDelvFeeCd())) {
 					compCnt++;
 					compCnt++;
 					if("N".equals(param.getSoldoutYn())) {
 					if("N".equals(param.getSoldoutYn())) {
-						delv.setCompSumPrice(delv.getCompSumPrice() + param.getCurrPrice());
+						delv.setCompSumPrice(delv.getCompSumPrice() + param.getTmtbDcAmt());
 					}
 					}
 
 
 					if (compCnt == 1) {
 					if (compCnt == 1) {
@@ -645,6 +653,7 @@ public class TsfCartService {
 	public void deleteCart(Cart param) {
 	public void deleteCart(Cart param) {
 		cartDao.deleteCart(param);
 		cartDao.deleteCart(param);
 	}
 	}
+
 	/**
 	/**
 	 * 로그인 후 장바구니 Update
 	 * 로그인 후 장바구니 Update
 	 * 		회원 로그인 후 호출됨으로 세션 정보 있음
 	 * 		회원 로그인 후 호출됨으로 세션 정보 있음
@@ -688,4 +697,170 @@ public class TsfCartService {
 		}
 		}
 	}
 	}
 
 
+	public Cart getCartGoodsInfo(Cart param) {
+		// Collection<Cart> result = new ArrayList<Cart>();
+		/* cart.add(cartDao.selectCartGoodsInfo(param)); */
+
+		// 장바구니 상품 마스터 정보 조회
+		Cart cart = cartDao.selectCartGoodsInfo(param);
+
+		// 세트 상품일 경우
+		if(TscConstants.GoodsType.SET.value().equals(cart.getGoodsType())) {
+			cart.setCartCompsList(cartDao.selectCartSetGoodsInfo(cart));
+			for(Cart comp : cart.getCartCompsList()) {
+				comp.setCartSq(cart.getCartSq());
+				comp.setCartColorList(cartDao.selectCartGoodsColorList(comp));
+				for(Cart color : comp.getCartColorList()) {
+					color.setCartSq(comp.getCartSq());
+					color.setCartSizeList(cartDao.selectCartGoodsSizeList(color));
+				}
+			}
+			cart.setCartImgList(cartDao.selectCartDelvGoodsOptionImgList(cart));		// TB_GOODS.MAIN_COLOR_CD의 이미지를 가져옴.
+		} else {	// 일반, DEAL 상품일 경우
+			cart.setCartCompsList(new ArrayList<Cart>());
+			cart.getCartCompsList().add(new Cart());
+
+			for(Cart comp : cart.getCartCompsList()) {
+				if("Y".equals(cart.getSelfGoodsYn())) {
+					comp.setCartColorList(cartDao.selectCartGoodsColorList(cart));
+
+					if("Y".equals(cart.getSelfGoodsYn())) {		// 자사 상품은 TB_GOODS_IMG.COLOR_CD = TB_OPTION.OPT_CD1
+						for(Cart color : comp.getCartColorList()) {
+							color.setCartSq(cart.getCartSq());
+							color.setCartImgList(cartDao.selectCartSelfGoodsOptionImgList(color));
+							color.setCartSizeList(cartDao.selectCartGoodsSizeList(color));
+						}
+					}
+				} else {
+					comp.setCartColorList(cartDao.selectCartGoodsSizeList(cart));
+				}
+			}
+
+			if(!"Y".equals(cart.getSelfGoodsYn())) {			// 입점 상품은 TB_GOODS_IMG.COLOR_CD = TB_GOODS.MAIN_COLOR_CD
+				cart.setCartImgList(cartDao.selectCartDelvGoodsOptionImgList(cart));
+			}
+		}
+
+		cart.setImgPath(env.getProperty("upload.goods.view"));
+
+		return cart;
+	}
+
+	@Transactional("shopTxnManager")
+	public void updateCartOption(Cart param) {
+		param.setJsessionId(TsfSession.getSessionId());
+		param.setFrontGb(TsfSession.getFrontGb());
+
+		if(TsfSession.isLogin()) {
+			param.setCustNo(TsfSession.getInfo().getCustNo());
+			param.setRegNo(param.getCustNo());
+			param.setUpdNo(param.getCustNo());
+		} else {
+			param.setCustNo(0);
+			param.setRegNo(0);
+			param.setUpdNo(0);
+		}
+
+		// 재고 체크
+		Goods goods = new Goods();
+		goods.setGoodsCd(param.getGoodsCd());
+		goods.setFrontGb(TsfSession.getFrontGb());
+
+		goods = goodsService.getGoodsInfo(goods);
+
+		if (goods == null) {
+			throw new IllegalArgumentException("상품 정보가 존재하지 않습니다.");
+		}
+		if (TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat())) {
+			throw new IllegalArgumentException("품절입니다.");
+		}
+		
+		// 현재 장바구니 수량
+		int goodsCartCnt = cartDao.getHasGoodsCartCnt(param);
+
+		if (param.getGoodsQty() + goodsCartCnt > goods.getDayMaxOrdQty()) {
+			throw new IllegalArgumentException("1일 구매한도 수량이 초과되었습니다.");
+		}
+
+		// 구성 상품 재고 확인
+		for(int i = 0 ; i < param.getCartDtlSqArr().length ; i++) {
+			// 상품 재고 확인
+			GoodsStock checkParam = new GoodsStock();
+			checkParam.setGoodsCd(param.getGoodsCd());
+			checkParam.setItemCd(param.getItemCds()[i]);
+			checkParam.setOptCd(param.getOptCds()[i]);
+			checkParam.setGoodsQty(param.getGoodsQty());
+			checkParam.setGoodsType(param.getGoodsType());
+			String stockResult = goodsService.getCheckStock(checkParam);
+
+			if (!"SUCCESS".equals(stockResult)) {
+				throw new IllegalArgumentException(stockResult);
+			}
+		}
+
+		StringBuilder sb = new StringBuilder();
+		if(TscConstants.GoodsType.SET.value().equals(param.getGoodsType())) {
+			// 장바구니 보유 CART_SQ 쿼리
+			for(int i = 0 ; i < param.getCartDtlSqArr().length ; i++) {
+				sb.append("SELECT CD.CART_SQ \n FROM TB_CART C \n INNER JOIN TB_CART_DETAIL CD \n ON C.CART_SQ = CD.CART_SQ \n WHERE C.CUST_NO = ");
+				// TODO 로그인 정보 확인
+				if (param.getCustNo() == 0) {
+					sb.append(param.getCustNo()).append("\n AND JSESSION_ID = '").append(param.getJsessionId()).append("'");
+				} else {
+					sb.append(param.getCustNo());
+				}
+				sb.append("\n AND CD.ITEM_CD = '").append(param.getItemCds()[i]).append("' \n AND CD.OPT_CD = '").append(param.getOptCds()[i]).append("'");
+				if (i < param.getCartDtlSqArr().length - 1) {
+					sb.append("\n UNION ALL \n");
+				}
+			}
+
+			param.setItemCdSql(sb.toString());
+			param.setCartGb(TscConstants.CartGb.CART.value());
+
+			// 장바구니내 같은 상품 확인
+			param.setNotCartSq(param.getCartSq());				// 수정 장바구니 번호 제외
+			Collection<Cart> cartList = cartDao.selectHasSetItemCartList(param);
+
+			// 동일 상품 존재시
+			if (cartList != null && cartList.size() > 0) {		// 장바구니 기존재
+				if (cartList.size() > 1) {						// 장바구니 조회 결과 이상시 insert or select 수정 필요
+					throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
+				} else {
+					// 기존 존재 장바구니 UPDATE
+					Cart cart = new Cart();
+					cart.setCartSq(cartList.iterator().next().getCartSq());
+					cart.setGoodsQty(param.getGoodsQty());
+					cart.setAfLinkCd(param.getAfLinkCd());
+					cart.setIthrCd(param.getIthrCd());
+					cart.setContentsLoc(param.getContentsLoc());
+					cart.setPlanDtlSq(param.getPlanDtlSq());
+					cart.setUpdNo(param.getUpdNo());
+					cart.setGoodsCd(param.getGoodsCd());
+					cart.setCustNo(param.getCustNo());
+					cart.setRegNo(param.getRegNo());
+
+					cartDao.updateCartInfo(cart);               // 장바구니 정보 수정
+					cartDao.insertCartHst(cart);                // 장바구니 수정 이력 저장
+
+					// 장바구니 삭제
+					int[] cartSqArr = {param.getCartSq()};
+					param.setCartSqArr(cartSqArr);
+					cartDao.deleteCart(param);
+					cartDao.deleteCartDetail(param);
+				}
+			} else {		// 동일 상품 없을 시 UPDATE
+				cartDao.updateCart(param);						// 장바구니 마스터 정보 저장
+				cartDao.insertCartHst(param);                   // 장바구니 이력 정보 저장
+				for(int i = 0 ; i < param.getCartDtlSqArr().length ; i++) {
+					param.setItemCd(param.getItemCds()[i]);
+					param.setCartDtlSq(param.getCartDtlSqArr()[i]);
+					param.setOptCd(param.getOptCds()[i]);
+
+					cartDao.updateCartDetail(param);		// 장바구니 상세 저장
+					cartDao.insertCartDetailHst(param);         // 장바구니 상세 이력 저장
+				}
+			}
+		}
+	}
 }
 }

+ 4 - 3
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -182,6 +182,7 @@ public class TsfGoodsService {
 	 * @since 2021. 2. 9
 	 * @since 2021. 2. 9
 	 */
 	 */
 	public Collection<GoodsImg> getGoodsImgList(String goodsCd) {
 	public Collection<GoodsImg> getGoodsImgList(String goodsCd) {
+		log.info("aa\\ {}  ", goodsDao.getGoodsImgList(goodsCd));
 		return goodsDao.getGoodsImgList(goodsCd);
 		return goodsDao.getGoodsImgList(goodsCd);
 	}
 	}
 
 
@@ -221,7 +222,7 @@ public class TsfGoodsService {
 
 
 	/**
 	/**
 	 * 상품 재고 체크
 	 * 상품 재고 체크
-	 * @param goodsStock
+	 * @param param
 	 * goodsCd   (원상품코드) 필수
 	 * goodsCd   (원상품코드) 필수
 	 * goodsType (상품타입) 필수
 	 * goodsType (상품타입) 필수
 	 * optCd     (옵션코드) 필수
 	 * optCd     (옵션코드) 필수
@@ -242,7 +243,7 @@ public class TsfGoodsService {
 		}
 		}
 
 
 		if(param.getGoodsType().equals(TscConstants.GoodsType.SET.value())) {		// 세트상품이면 구성 상품코드로 조회
 		if(param.getGoodsType().equals(TscConstants.GoodsType.SET.value())) {		// 세트상품이면 구성 상품코드로 조회
-			GoodsStock stockCheck = new GoodsStock();		// 재고 조회 결과
+			GoodsStock stockCheck = new GoodsStock();								// 재고 조회 결과
 			stockCheck.setGoodsCd(param.getItemCd());
 			stockCheck.setGoodsCd(param.getItemCd());
 			stockCheck.setOptCd(param.getOptCd());
 			stockCheck.setOptCd(param.getOptCd());
 
 
@@ -260,7 +261,7 @@ public class TsfGoodsService {
 				return param.getItemCd() + "의 재고가 충분하지 않습니다.";
 				return param.getItemCd() + "의 재고가 충분하지 않습니다.";
 			}
 			}
 		} else {
 		} else {
-			GoodsStock stockCheck = new GoodsStock();		// 재고 조회 결과
+			GoodsStock stockCheck = new GoodsStock();								// 재고 조회 결과
 			stockCheck.setGoodsCd(param.getGoodsCd());
 			stockCheck.setGoodsCd(param.getGoodsCd());
 			stockCheck.setOptCd(param.getOptCd());
 			stockCheck.setOptCd(param.getOptCd());
 
 

+ 101 - 0
src/main/java/com/style24/front/biz/service/TsfOrderChangeService.java

@@ -0,0 +1,101 @@
+package com.style24.front.biz.service;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.core.support.env.TscConstants;
+import com.style24.front.biz.dao.TsfOrderChangeDao;
+import com.style24.front.biz.dao.TsfOrderDao;
+import com.style24.persistence.domain.GiftCard;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.Point;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 주문 변경 Service
+ *
+ * @author card007
+ * @since 2021. 02. 26
+ */
+@Service
+@Slf4j
+public class TsfOrderChangeService {
+
+	@Autowired
+	private TsfOrderChangeDao orderChangeDao;
+
+	/**
+	 * 마이페이지 취소/반품 목록 조회
+	 *
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author card007
+	 * @since 2021. 02. 26
+	 */
+	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());
+		map.set("returnList", result);
+		return map;
+	}
+
+	/**
+	 * 사용 상품권 정보 조회
+	 *
+	 * @param Order
+	 * @return Collection<GiftCard>
+	 * @author card007
+	 * @since 2021. 03. 02
+	 */
+	public Collection<GiftCard> getUsedGiftcardInfo(Order order) {
+		return orderChangeDao.getUsedGiftcardInfo(order);
+	}
+
+	/**
+	 * 사용 포인트 정보 조회
+	 *
+	 * @param Order
+	 * @return Collection<Point>
+	 * @author card007
+	 * @since 2021. 03. 02
+	 */
+	public Collection<Point> getUsedPointInfo(Order order) {
+		return orderChangeDao.getUsedPointInfo(order);
+	}
+
+}

+ 10 - 1
src/main/java/com/style24/front/biz/service/TsfPointService.java

@@ -42,7 +42,13 @@ public class TsfPointService {
 		return pointDao.getExtinctPointInfo(point);
 		return pointDao.getExtinctPointInfo(point);
 	}
 	}
 	
 	
-	
+	/**
+	 * 포인트정보 내역조회
+	 *
+	 * @param Point
+	 * @author csh9191
+	 * @since 2021. 03. 03
+	 */	
 	public Collection<Point> getAccumulatePointList(Point point) {
 	public Collection<Point> getAccumulatePointList(Point point) {
 		return pointDao.getAccumulatePointList(point);
 		return pointDao.getAccumulatePointList(point);
 	}
 	}
@@ -50,5 +56,8 @@ public class TsfPointService {
 	public Collection<Point> getUsePointList(Point point) {
 	public Collection<Point> getUsePointList(Point point) {
 		return pointDao.getUsePointList(point);
 		return pointDao.getUsePointList(point);
 	}
 	}
+	public Collection<Point> getAllPointList(Point point) {
+		return pointDao.getAllPointList(point);
+	}
 
 
 }
 }

+ 34 - 2
src/main/java/com/style24/front/biz/web/TsfCartController.java

@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat;
 import java.util.Collection;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Date;
 
 
+import com.gagaframework.web.rest.server.GagaResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
@@ -17,6 +18,7 @@ import org.springframework.web.servlet.ModelAndView;
 
 
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.parameter.GagaMap;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.biz.service.TscOrderService;
+import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCartService;
 import com.style24.front.biz.service.TsfCartService;
 import com.style24.front.biz.service.TsfCouponService;
 import com.style24.front.biz.service.TsfCouponService;
@@ -161,8 +163,6 @@ public class TsfCartController extends TsfBaseController {
 	/**
 	/**
 	 * 장바구니 삭제
 	 * 장바구니 삭제
 	 * @param param
 	 * @param param
-	 * rdCpnNm : 시리얼쿠폰명
-	 * cartSqArr[] : 장바구니 번호 배열
 	 * @return GagaMap
 	 * @return GagaMap
 	 * @author xodud1202
 	 * @author xodud1202
 	 * @since 2021. 02. 23
 	 * @since 2021. 02. 23
@@ -173,4 +173,36 @@ public class TsfCartController extends TsfBaseController {
 		cartService.deleteCart(param);
 		cartService.deleteCart(param);
 		return new GagaMap();
 		return new GagaMap();
 	}
 	}
+
+	/**
+	 * 장바구니 삭제
+	 * @param param
+	 * @return String
+	 * @author xodud1202
+	 * @since 2021. 02. 23
+	 */
+	// @ResponseBody
+	@PostMapping("/goods/info")
+	public String getCartGoodsInfo(Cart param, Model model) {
+		Cart cart = cartService.getCartGoodsInfo(param);
+
+		model.addAttribute("cart", cart);
+		model.addAttribute("setType", TscConstants.GoodsType.SET.value());
+		return super.getDeviceViewName("cart/cartChangeOptionPopup");
+	}
+
+	/**
+	 * 장바구니 옵션 변경
+	 * @param param
+	 * @return GagaMap
+	 * @author xodud1202
+	 * @since 2021. 02. 23
+	 */
+	@ResponseBody
+	@PostMapping("/change/option")
+	public GagaResponse updateCartOption(@RequestBody Cart param) {
+		log.info("CHECK INFO >> {} / {} / {} / {}", param.getCartSq(), param.getCartDtlSqArr().toString(), param.getOptCds().toString(), param.getGoodsQty());
+		cartService.updateCartOption(param);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
 }
 }

+ 60 - 12
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -20,12 +20,15 @@ import org.springframework.web.servlet.ModelAndView;
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.biz.service.TscCustomerService;
+import com.style24.core.biz.service.TscOrderChangeService;
+import com.style24.core.biz.service.TscOrderRefundService;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCouponService;
 import com.style24.front.biz.service.TsfCouponService;
 import com.style24.front.biz.service.TsfCustomerService;
 import com.style24.front.biz.service.TsfCustomerService;
 import com.style24.front.biz.service.TsfGiftcardService;
 import com.style24.front.biz.service.TsfGiftcardService;
+import com.style24.front.biz.service.TsfOrderChangeService;
 import com.style24.front.biz.service.TsfOrderService;
 import com.style24.front.biz.service.TsfOrderService;
 import com.style24.front.biz.service.TsfPointService;
 import com.style24.front.biz.service.TsfPointService;
 import com.style24.front.biz.service.TsfRendererService;
 import com.style24.front.biz.service.TsfRendererService;
@@ -57,15 +60,24 @@ public class TsfMypageController extends TsfBaseController {
 
 
 	@Autowired
 	@Autowired
 	private TsfCustomerService customerService;
 	private TsfCustomerService customerService;
-	
+
 	@Autowired
 	@Autowired
 	private TscCustomerService coreCustomerService;
 	private TscCustomerService coreCustomerService;
 
 
 	@Autowired
 	@Autowired
 	private TsfOrderService orderService;
 	private TsfOrderService orderService;
-	
+
 	@Autowired
 	@Autowired
 	private TscOrderService coreOrderService;
 	private TscOrderService coreOrderService;
+	
+	@Autowired
+	private TsfOrderChangeService orderChangeService;
+
+	@Autowired
+	private TscOrderChangeService coreOrderChangeService;
+
+	@Autowired
+	private TscOrderRefundService coreOrderRefundService;
 
 
 	@Autowired
 	@Autowired
 	private TsfReviewService reviewService;
 	private TsfReviewService reviewService;
@@ -81,7 +93,7 @@ public class TsfMypageController extends TsfBaseController {
 
 
 	@Autowired
 	@Autowired
 	private TsfCouponService couponService;
 	private TsfCouponService couponService;
-	
+
 	@Autowired
 	@Autowired
 	private TsfRendererService rendererService;
 	private TsfRendererService rendererService;
 
 
@@ -451,15 +463,14 @@ public class TsfMypageController extends TsfBaseController {
 		mav.addObject("customerInfo", customer);
 		mav.addObject("customerInfo", customer);
 
 
 
 
-		// 주문목록 조회
-		Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
+		// 반품 가능 리스트 조회
+		mav.addObject("returnList", orderChangeService.getCancelListForMypage(order));
 
 
-		if (orderList.size() == 0) {
-			mav.setViewName("redirect:/mypage/order/list/form");
-			return mav;
-		}
+		// 사용 상품권 정보 조회
+		mav.addObject("usedGiftCardInfo", orderChangeService.getUsedGiftcardInfo(order));
 
 
-		mav.addObject("orderList", orderList);
+		// 사용 포인트 정보 조회
+		mav.addObject("usedPointInfo", orderChangeService.getUsedPointInfo(order));
 
 
 		// 주문 결제정보 조회
 		// 주문 결제정보 조회
 		mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
 		mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
@@ -467,8 +478,8 @@ public class TsfMypageController extends TsfBaseController {
 		// 주문 배송지 정보 조회
 		// 주문 배송지 정보 조회
 		mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
 		mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
 
 
-		// 교환 사유 목록 조회
-		mav.addObject("exchangeReason", rendererService.getCommonCodeList("G688", "Y"));
+		// 반품 사유 목록 조회
+		mav.addObject("returnReason", rendererService.getCommonCodeList("G688", "Y"));
 
 
 		mav.setViewName(super.getDeviceViewName("/mypage/MypageReturnForm"));
 		mav.setViewName(super.getDeviceViewName("/mypage/MypageReturnForm"));
 
 
@@ -545,5 +556,42 @@ public class TsfMypageController extends TsfBaseController {
 		
 		
 		return result;
 		return result;
 	}
 	}
+	
+	/**
+	 * 마이페이지 STYLE24 전체내역
+	 *
+	 * @param param
+	 * @return GagaMap
+	 * @author csh9191
+	 * @since 2021. 03. 02
+	 */
+	@PostMapping("/allpoint/list")
+	@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));
+		
+		log.info("result {}", result);
+		
+		return result;
+	}
+
+	/**
+	 * 마이페이지 반품신청 환불금액 계산
+	 *
+	 * @param Order
+	 * @return GagaMap
+	 * @author card007
+	 * @since 2021. 02. 26
+	 */
+	@PostMapping("/cancel/refund/amt/calculate")
+	@ResponseBody
+	public GagaMap calculateRefundAmt(@RequestBody List<Order> orderList) {
+		return coreOrderRefundService.cnclRtnRefundAmt(orderList);
+	}
 
 
 }
 }

+ 29 - 5
src/main/java/com/style24/persistence/domain/Cart.java

@@ -1,5 +1,7 @@
 package com.style24.persistence.domain;
 package com.style24.persistence.domain;
 
 
+import java.util.Collection;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 import com.style24.persistence.TscBaseDomain;
 
 
@@ -15,7 +17,10 @@ import lombok.Data;
 @Data
 @Data
 public class Cart extends TscBaseDomain {
 public class Cart extends TscBaseDomain {
 	// 장바구니 정보
 	// 장바구니 정보
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private int[] cartSqArr;		// 장바구니 일련번호 배열 (일시품절제외 조회)
 	private int cartSq;				// 장바구니 번호
 	private int cartSq;				// 장바구니 번호
+	private int notCartSq;			// 제외 장바구니 번호
 	private int cartDtlSq;			// 장바구니 상세 번호
 	private int cartDtlSq;			// 장바구니 상세 번호
 	private int custNo;				// 고객번호
 	private int custNo;				// 고객번호
 	private int planDtlSq;			// 기획전상세번호
 	private int planDtlSq;			// 기획전상세번호
@@ -30,8 +35,17 @@ public class Cart extends TscBaseDomain {
 	private String ithrCd;			// 유입경로(공통코드 G027)
 	private String ithrCd;			// 유입경로(공통코드 G027)
 	private String contentsLoc;		// 컨텐츠위치(공통코드G028)
 	private String contentsLoc;		// 컨텐츠위치(공통코드G028)
 	private String dealGoodsCd;		// 딜상품코드
 	private String dealGoodsCd;		// 딜상품코드
+	private String cartOptCd1;		// 장바구니 컬러 옵션
+	private String cartOptCd;		// 장바구니 옵션
+	private String cartColorNm;		// 장바구니 컬러명
 
 
 	// 장바구니 상세 정보
 	// 장바구니 상세 정보
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private int[] cartDtlSqArr;		// 장바구니 일련번호 배열 (일시품절제외 조회)
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] optCds;		// 옵션코드
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] itemCds;		// 장바구니 단품코드
 	private String itemCd;			// 단품코드(상품). 일반상품과 딜상품은 상품코드와 동일
 	private String itemCd;			// 단품코드(상품). 일반상품과 딜상품은 상품코드와 동일
 	private String optCd;			// 옵션코드
 	private String optCd;			// 옵션코드
 	private String optCd1;			// 옵션코드1
 	private String optCd1;			// 옵션코드1
@@ -45,14 +59,24 @@ public class Cart extends TscBaseDomain {
 	private String goodsType;		// 상품 타입
 	private String goodsType;		// 상품 타입
 	private String compsGoodsCd;	// 세트 구성상품 코드
 	private String compsGoodsCd;	// 세트 구성상품 코드
 	private String itemCdSql;		// 상품 조회 쿼리문
 	private String itemCdSql;		// 상품 조회 쿼리문
+	private String selfGoodsYn;		// 자사상품여부
+	private String mainColorCd;		// 상품 메인 컬러
+	private String brandEnm;		// 브랜드 영문명
+	private String brandKnm;		// 브랜드 국문명
+	private String goodsNm;			// 상품명
+	private String sysImgNm;		// 이미지명
+	private String colorNm;			// 컬러명
+	private String imgPath;			// 상품 이미지 경로
+	private String soldoutYn;		// 옵션
+	private String frontGb;			// 접속 디바이스 정보
 
 
-	// 다다익선 정보
-
-	// 즉시할인쿠폰 정보
+	// 장바구니 상품 정보 리스트
+	Collection<Cart> cartCompsList;		// 장바구니 상품 구성 상품리스트
+	Collection<Cart> cartColorList;		// 장바구니 상품 컬러리스트
+	Collection<Cart> cartSizeList;		// 장바구니 상품 사이즈리스트
+	Collection<GoodsImg> cartImgList;	// 장바구니 상품 이미지 리스트
 
 
 	// 시리얼쿠폰 정보
 	// 시리얼쿠폰 정보
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private int[] cartSqArr;		// 장바구니 일련번호 배열 (일시품절제외 조회)
 	private String cpnNm;
 	private String cpnNm;
 	private String rdCpnNm;
 	private String rdCpnNm;
 	private String usedDt;
 	private String usedDt;

+ 7 - 7
src/main/java/com/style24/persistence/domain/Cate4Srch.java

@@ -16,18 +16,18 @@ public class Cate4Srch extends TscBaseDomain {
 
 
 	private String siteCd;
 	private String siteCd;
 	private String cateGb;
 	private String cateGb;
-	private int cateNo;
-	private int leafCateNo;
+	private Integer cateNo;
+	private Integer leafCateNo;
 	private String cateType;
 	private String cateType;
-	private int cate1No;
+	private Integer cate1No;
 	private String cate1Nm;
 	private String cate1Nm;
-	private int cate2No;
+	private Integer cate2No;
 	private String cate2Nm;
 	private String cate2Nm;
-	private int cate3No;
+	private Integer cate3No;
 	private String cate3Nm;
 	private String cate3Nm;
-	private int cate4No;
+	private Integer cate4No;
 	private String cate4Nm;
 	private String cate4Nm;
-	private int cate5No;
+	private Integer cate5No;
 	private String cate5Nm;
 	private String cate5Nm;
 	private String fullCateCd;
 	private String fullCateCd;
 	private String fullCateNm;
 	private String fullCateNm;

+ 0 - 44
src/main/java/com/style24/persistence/domain/Coupon.java

@@ -1,44 +0,0 @@
-package com.style24.persistence.domain;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.style24.persistence.TscBaseDomain;
-
-import lombok.Data;
-
-/**
- * 장바구니
- *
- * @author xodud1202
- * @since 2021.01.22
- */
-@SuppressWarnings("serial")
-@Data
-public class Coupon extends TscBaseDomain {
-	// 쿠폰 정보
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private int[] cartSqArr;		// 장바구니 일련번호 배열
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private int[] currPrices;		// 상품가격 배열
-	private int cpnId;				// 쿠폰번호
-	private int custNo;				// 회원번호
-	private String custGb;			// 회원구분
-	private String custGrade;		// 회원등급
-	private int availDays;			// 쿠폰 다운로드 후 유효기간일
-	private int rdCpnId;			// 랜덤쿠폰번호
-	private int dcAmt;				// 할인적용금액
-	private int dcVal;				// 할인금액/율
-	private String useYn;			// 쿠폰 사용 여부
-	private String cpnNm;			// 쿠폰명
-	private String rdCpnNm;			// 시리얼쿠폰 키
-	private String usedDt;			// 쿠폰 사용완료 일자
-	private String result;			// 결과
-	private String pdGb;			// 기간/일수 구분 (P : 기간, D : 일수)
-	private String availStdt;		// 쿠폰 유효일
-	private String availEddt;		// 쿠폰 유효일
-	private String endAlimYn;		// 쿠폰 종료 알림 여부
-	private String frontGb;			// 화면 구분
-	private String availYn;			// 지급 받은 쿠폰 사용 가능 유무
-	private String dcWay;			// 할인금액/율 구분
-	private String cpnDesc;			// 쿠폰설명
-	private int downloadCnt;		// 다운로드수
-}

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

@@ -73,7 +73,7 @@ public class Goods extends TscBaseDomain {
 	private String colorCd;		//색상코드
 	private String colorCd;		//색상코드
 	private String colorNM;		//색상코드명
 	private String colorNM;		//색상코드명
 	private String brandnm;		//브랜드명
 	private String brandnm;		//브랜드명
-	private int brandGroupNo;	//브랜드그룹번호
+	private Integer brandGroupNo;	//브랜드그룹번호
 	private String brandGroupNm;	//브랜드그룹명
 	private String brandGroupNm;	//브랜드그룹명
 	private String frontGb;		//프론트구분
 	private String frontGb;		//프론트구분
 	private String isApp;		//앱구분
 	private String isApp;		//앱구분
@@ -82,7 +82,7 @@ public class Goods extends TscBaseDomain {
 	private String afLinkCd;	//제휴링크코드
 	private String afLinkCd;	//제휴링크코드
 	private String ithrCd;		//위치코드
 	private String ithrCd;		//위치코드
 	private String contentsLoc;	//컨텐츠위치
 	private String contentsLoc;	//컨텐츠위치
-	private int pntRate;		//적립율
+	private float pntRate;		//적립율
 	private String prePntUsableYn;	//적립율즉시사용여부
 	private String prePntUsableYn;	//적립율즉시사용여부
 	private String niClsfCd;	//고시분류코드
 	private String niClsfCd;	//고시분류코드
 	private String brandTcateNo;	//브랜드카테1번호
 	private String brandTcateNo;	//브랜드카테1번호
@@ -91,7 +91,7 @@ public class Goods extends TscBaseDomain {
 	private String viewDt;		//미리보기일시
 	private String viewDt;		//미리보기일시
 	private String custGb;		//고객구분
 	private String custGb;		//고객구분
 	private String custGrade;	//고객등급
 	private String custGrade;	//고객등급
-	private int custNo;		//고객번호
+	private Integer custNo;		//고객번호
 	private String soldoutGoodsDisplayYn = "N";	//품절노추여부
 	private String soldoutGoodsDisplayYn = "N";	//품절노추여부
 	private int pointUnit = 10;	//포인트단위
 	private int pointUnit = 10;	//포인트단위
 	private String goodsNmFull;	//상품타이틀+ 상품명
 	private String goodsNmFull;	//상품타이틀+ 상품명
@@ -102,7 +102,7 @@ public class Goods extends TscBaseDomain {
 	private String wishYn;		//위시리스트여부
 	private String wishYn;		//위시리스트여부
 	private String goodsComposeSearchYn;	//구성상품 조회여부
 	private String goodsComposeSearchYn;	//구성상품 조회여부
 	private String goodsCdIncludeYn;	//상품코드포함 여부
 	private String goodsCdIncludeYn;	//상품코드포함 여부
-	private String socialSq;	//소셜번호
+	private Integer socialSq;	//소셜번호
 //	private String socialTypeNm;	//소셜타입명
 //	private String socialTypeNm;	//소셜타입명
 	private String socialType;	//소셜타입
 	private String socialType;	//소셜타입
 	private String socialTnm;	//소셜명
 	private String socialTnm;	//소셜명
@@ -110,7 +110,7 @@ public class Goods extends TscBaseDomain {
 	private String socialEddt;	//소셜종료일
 	private String socialEddt;	//소셜종료일
 	private String planDtlSq;	//기획전상세번호
 	private String planDtlSq;	//기획전상세번호
 
 
-	private int floorUnit; // 절사단위(10:일원단위절사, 100:십원단위절사, 1000:백원단위절사)
+	private int floorUnit; // 절사단위(1:일원단위절사, 10:십원단위절사, 100:백원단위절사)
 
 
 	private String skuModelNo;		// SKUModelNo(WMS)
 	private String skuModelNo;		// SKUModelNo(WMS)
 	private String compsGoodsCd;	// 세트 구성품 상품번호
 	private String compsGoodsCd;	// 세트 구성품 상품번호

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

@@ -14,22 +14,22 @@ import lombok.Data;
 @Data
 @Data
 public class GoodsStock extends TscBaseDomain {
 public class GoodsStock extends TscBaseDomain {
 	// 재고 정보
 	// 재고 정보
+	private Integer productNo;		// ProductNo(WMS)
 	private String goodsCd;			// 상품번호
 	private String goodsCd;			// 상품번호
 	private String optCd;			// 옵션코드
 	private String optCd;			// 옵션코드
 	private String optCd1;			// 옵션코드1(자사 : 컬러, 입점 : 옵션명1)
 	private String optCd1;			// 옵션코드1(자사 : 컬러, 입점 : 옵션명1)
 	private String optCd2;			// 옵션코드1(자사 : 사이즈, 입점 : 옵션명2)
 	private String optCd2;			// 옵션코드1(자사 : 사이즈, 입점 : 옵션명2)
-	private Integer skuModelNo;		// SKUModelNo(WMS)
-	private Integer productNo;		// ProductNo(WMS)
-	private Integer productCode;	// ProductCode(WMS)
+	private String skuModelNo;		// SKUModelNo(WMS)
+	private String productCode;		// ProductCode(WMS)
+	private String soldoutYn;		// 품절여부
 	private int currStockQty;		// 가용재고
 	private int currStockQty;		// 가용재고
 	private int addPrice;			// 추가금액
 	private int addPrice;			// 추가금액
-	private String soldoutYn;		// 품절여부
 	private int dispOrd;			// 표시순서
 	private int dispOrd;			// 표시순서
 
 
 	private String itemCd;			// 구성상품코드
 	private String itemCd;			// 구성상품코드
 	private String goodsType;		// 상품구분
 	private String goodsType;		// 상품구분
+	private String sysImgNm;		// 상품이미지 명
 	private int goodsQty;			// 안전재고
 	private int goodsQty;			// 안전재고
-	private String sysImgNm;		// 상품이미지
 	private int stockQty;			// 상품 재고
 	private int stockQty;			// 상품 재고
 
 
 }
 }

+ 37 - 0
src/main/java/com/style24/persistence/domain/Search.java

@@ -0,0 +1,37 @@
+package com.style24.persistence.domain;
+
+import java.util.Collection;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 검색 Domain
+ *
+ * @author gagamel
+ * @since 2021. 3. 2
+ */
+@SuppressWarnings("serial")
+@Data
+public class Search extends TscBaseDomain {
+
+	// 최근검색어 목록
+	private Collection<String> recentlyList;
+
+	// 카테고리 목록
+	private Collection<Cate4Srch> cateList;
+
+	// 브랜드 목록
+	private Collection<Brand> brandList;
+
+	// 상품 목록
+	private Collection<Goods> goodsList;
+
+	@Data
+	public class Brand {
+		private Integer brandGroupNo;
+		private String brandGroupNm;
+	}
+
+}

+ 476 - 266
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -10,7 +10,7 @@
 
 
 	<!-- 페이징을 위한 select절 하단 -->
 	<!-- 페이징을 위한 select절 하단 -->
 	<sql id="selectForPagingFooter">
 	<sql id="selectForPagingFooter">
-		       ) ORIGINAL
+			   ) ORIGINAL
 		WHERE  NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
 		WHERE  NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
 	</sql>
 	</sql>
 	
 	
@@ -31,28 +31,35 @@
 		   AND C.CUST_NO = #{custNo}
 		   AND C.CUST_NO = #{custNo}
 			</otherwise>
 			</otherwise>
 		</choose>
 		</choose>
+		<if test="cartSq != null and cartSq != 0">
+			AND C.CART_SQ <![CDATA[ <> ]]> #{cartSq}
+		</if>
 	</select>
 	</select>
 
 
 	<!-- 장바구니 등록 세트 상품 확인 -->
 	<!-- 장바구니 등록 세트 상품 확인 -->
-	<select id="selectHasSetItemCartList" parameterType="Cart" resultType="int">
+	<select id="selectHasSetItemCartList" parameterType="Cart" resultType="Cart">
 		/* TsfCart.selectHasSetItemCartList : 장바구니 등록 세트 상품 확인 */
 		/* TsfCart.selectHasSetItemCartList : 장바구니 등록 세트 상품 확인 */
 		SELECT CART_SQ
 		SELECT CART_SQ
-		  FROM (SELECT COUNT(1) AS CNT
+		FROM   (SELECT COUNT(1) AS CNT
 					 , CART_SQ
 					 , CART_SQ
 					 , #{goodsCd} AS GOODS_CD
 					 , #{goodsCd} AS GOODS_CD
-				  FROM (
-					  ${itemCdSql}
-				       ) A
-				 WHERE 1=1
-				 GROUP BY CART_SQ ) AS A
-		  INNER JOIN (SELECT GC.GOODS_CD
+				FROM   (
+						${itemCdSql}
+					   ) A
+				WHERE  1=1
+				GROUP  BY CART_SQ ) AS A
+		INNER  JOIN ( SELECT GC.GOODS_CD
 						   , COUNT(1) AS CNT
 						   , COUNT(1) AS CNT
-						FROM TB_GOODS_COMPOSE GC
-					   WHERE GC.GOODS_CD = #{goodsCd}
-						 AND GC.USE_YN = 'Y'
-					   GROUP BY GC.GOODS_CD ) B
-			 ON A.GOODS_CD = B.GOODS_CD
-			AND A.CNT = B.CNT
+					  FROM   TB_GOODS_COMPOSE GC
+					  WHERE  GC.GOODS_CD = #{goodsCd}
+					  AND    GC.USE_YN = 'Y'
+					  GROUP  BY GC.GOODS_CD ) B
+		ON     A.GOODS_CD = B.GOODS_CD
+		AND    A.CNT = B.CNT
+		WHERE  1=1
+		<if test="notCartSq != null and notCartSq > 0">
+		AND    A.CART_SQ <![CDATA[ <> ]]> #{notCartSq}
+		</if>
 	</select>
 	</select>
 
 
 	<!-- 장바구니 등록 일반 or 딜 상품 확인 -->
 	<!-- 장바구니 등록 일반 or 딜 상품 확인 -->
@@ -70,24 +77,24 @@
 	<insert id="insertCartInfo" parameterType="Cart" keyProperty="cartSq">
 	<insert id="insertCartInfo" parameterType="Cart" keyProperty="cartSq">
 		/* TsfCart.insertCartInfo : 장바구니 신규 등록 */
 		/* TsfCart.insertCartInfo : 장바구니 신규 등록 */
 		INSERT INTO TB_CART (
 		INSERT INTO TB_CART (
-		          CART_GB
-		        , GOODS_CD
-		        , GOODS_QTY
-		        , DEAL_GOODS_CD
-		        , JSESSION_ID
-		        , CUST_NO
-		        , AF_LINK_CD
-		        , ITHR_CD
-		        , CONTENTS_LOC
-		        , PLAN_DTL_SQ
-		        , REG_NO
-		        , REG_DT
-		        , UPD_NO
-		        , UPD_DT)
+				  CART_GB
+				, GOODS_CD
+				, GOODS_QTY
+				, DEAL_GOODS_CD
+				, JSESSION_ID
+				, CUST_NO
+				, AF_LINK_CD
+				, ITHR_CD
+				, CONTENTS_LOC
+				, PLAN_DTL_SQ
+				, REG_NO
+				, REG_DT
+				, UPD_NO
+				, UPD_DT)
 		SELECT #{cartGb}
 		SELECT #{cartGb}
 			 , GOODS_CD
 			 , GOODS_CD
-		     , #{goodsQty}
-		     , #{dealGoodsCd}
+			 , #{goodsQty}
+			 , #{dealGoodsCd}
 			 , #{jsessionId}
 			 , #{jsessionId}
 			 , #{custNo}
 			 , #{custNo}
 			 , #{afLinkCd}
 			 , #{afLinkCd}
@@ -95,7 +102,7 @@
 			 , #{contentsLoc}
 			 , #{contentsLoc}
 			 , #{planDtlSq}
 			 , #{planDtlSq}
 			 , #{regNo}
 			 , #{regNo}
-		     , CURRENT_TIMESTAMP
+			 , CURRENT_TIMESTAMP
 			 , #{updNo}
 			 , #{updNo}
 			 , CURRENT_TIMESTAMP
 			 , CURRENT_TIMESTAMP
 		  FROM TB_GOODS
 		  FROM TB_GOODS
@@ -106,30 +113,30 @@
 	<insert id="insertCartDetailInfo" parameterType="Cart" keyProperty="cartDtlSq">
 	<insert id="insertCartDetailInfo" parameterType="Cart" keyProperty="cartDtlSq">
 		/* TsfCart.insertCartDetailInfo : 장바구니 상세 신규 등록 */
 		/* TsfCart.insertCartDetailInfo : 장바구니 상세 신규 등록 */
 		INSERT INTO TB_CART_DETAIL (
 		INSERT INTO TB_CART_DETAIL (
-		          CART_SQ
-		        , ITEM_CD
-		        , OPT_CD
-		        , OPT_CD1
-		        , OPT_CD2
-		        , SKU_MODEL_NO
-		        , PRODUCT_NO
-		        , PRODUCT_CODE
-		        , ITEM_QTY
-		        , DISP_ORD
-		        , REG_NO
-		        , REG_DT
-		        , UPD_NO
-		        , UPD_DT
+				  CART_SQ
+				, ITEM_CD
+				, OPT_CD
+				, OPT_CD1
+				, OPT_CD2
+				, SKU_MODEL_NO
+				, PRODUCT_NO
+				, PRODUCT_CODE
+				, ITEM_QTY
+				, DISP_ORD
+				, REG_NO
+				, REG_DT
+				, UPD_NO
+				, UPD_DT
 		)
 		)
 		SELECT #{cartSq}
 		SELECT #{cartSq}
 			 , IFNULL(GC.COMPS_GOODS_CD, G.GOODS_CD)		 <!-- 세트 상품이 아니면 원상품코드 -->
 			 , IFNULL(GC.COMPS_GOODS_CD, G.GOODS_CD)		 <!-- 세트 상품이 아니면 원상품코드 -->
-		     , O.OPT_CD
-		     , O.OPT_CD1
-		     , O.OPT_CD2
-		     , O.SKU_MODEL_NO
-		     , O.PRODUCT_NO
-		     , O.PRODUCT_CODE
-		     , IFNULL(GC.QTY, 1)
+			 , O.OPT_CD
+			 , O.OPT_CD1
+			 , O.OPT_CD2
+			 , O.SKU_MODEL_NO
+			 , O.PRODUCT_NO
+			 , O.PRODUCT_CODE
+			 , IFNULL(GC.QTY, 1)
 			 , IFNULL(GC.DISP_ORD, 1)						<!-- TB_GOODS_COMPOSE DISP_ORD 따라 CART_DETAIL도 동일하게 진행 -->
 			 , IFNULL(GC.DISP_ORD, 1)						<!-- TB_GOODS_COMPOSE DISP_ORD 따라 CART_DETAIL도 동일하게 진행 -->
 			 , #{regNo}
 			 , #{regNo}
 			 , CURRENT_TIMESTAMP
 			 , CURRENT_TIMESTAMP
@@ -137,9 +144,9 @@
 			 , CURRENT_TIMESTAMP
 			 , CURRENT_TIMESTAMP
 		  FROM TB_GOODS G
 		  FROM TB_GOODS G
 		 INNER JOIN TB_OPTION O
 		 INNER JOIN TB_OPTION O
-		    ON G.GOODS_CD = O.GOODS_CD
+			ON G.GOODS_CD = O.GOODS_CD
 		  LEFT OUTER JOIN TB_GOODS_COMPOSE GC		<!-- 일반 상품 제외 확인 필요하여 join -->
 		  LEFT OUTER JOIN TB_GOODS_COMPOSE GC		<!-- 일반 상품 제외 확인 필요하여 join -->
-		    ON GC.COMPS_GOODS_CD = G.GOODS_CD
+			ON GC.COMPS_GOODS_CD = G.GOODS_CD
 		   AND GC.GOODS_CD = #{goodsCd}
 		   AND GC.GOODS_CD = #{goodsCd}
 		   AND GC.COMPS_GOODS_CD = #{itemCd}
 		   AND GC.COMPS_GOODS_CD = #{itemCd}
 		   AND GC.GOODS_TYPE = 'G056_S'				<!-- 세트 상품만 구성 상품 코드로 올림. deal 상품은 원상품코드로 올려야함 -->
 		   AND GC.GOODS_TYPE = 'G056_S'				<!-- 세트 상품만 구성 상품 코드로 올림. deal 상품은 원상품코드로 올려야함 -->
@@ -156,21 +163,54 @@
 		 ORDER BY GC.DISP_ORD
 		 ORDER BY GC.DISP_ORD
 	</insert>
 	</insert>
 
 
-	<!-- 장바구니 상세 UPDATE -->
+	<!-- 장바구니 UPDATE -->
 	<update id="updateCartInfo" parameterType="Cart">
 	<update id="updateCartInfo" parameterType="Cart">
-		/* TsfCart.updateCartInfo : 장바구니 상세 UPDATE */
+		/* TsfCart.updateCartInfo : 장바구니 UPDATE */
 		UPDATE TB_CART SET
 		UPDATE TB_CART SET
 			  GOODS_QTY = GOODS_QTY + #{goodsQty}
 			  GOODS_QTY = GOODS_QTY + #{goodsQty}
-		    , DEAL_GOODS_CD = #{dealGoodsCd}
-		    , AF_LINK_CD = #{afLinkCd}
-		    , ITHR_CD = #{ithrCd}
-		    , CONTENTS_LOC = #{contentsLoc}
-		    , PLAN_DTL_SQ = #{planDtlSq}
+			, DEAL_GOODS_CD = #{dealGoodsCd}
+			, AF_LINK_CD = #{afLinkCd}
+			, ITHR_CD = #{ithrCd}
+			, CONTENTS_LOC = #{contentsLoc}
+			, PLAN_DTL_SQ = #{planDtlSq}
+			, UPD_NO = #{updNo}
+			, UPD_DT = CURRENT_TIMESTAMP
+		WHERE CART_SQ = #{cartSq}
+		AND   GOODS_CD = #{goodsCd}
+		AND   CUST_NO = #{custNo}
+	</update>
+
+	<!-- 장바구니 UPDATE -->
+	<update id="updateCart" parameterType="Cart">
+		/* TsfCart.updateCart : 장바구니 UPDATE */
+		UPDATE TB_CART SET
+			  GOODS_QTY = #{goodsQty}
+			, DEAL_GOODS_CD = #{dealGoodsCd}
+			, AF_LINK_CD = #{afLinkCd}
+			, ITHR_CD = #{ithrCd}
+			, CONTENTS_LOC = #{contentsLoc}
+			, PLAN_DTL_SQ = #{planDtlSq}
 			, UPD_NO = #{updNo}
 			, UPD_NO = #{updNo}
 			, UPD_DT = CURRENT_TIMESTAMP
 			, UPD_DT = CURRENT_TIMESTAMP
 		WHERE CART_SQ = #{cartSq}
 		WHERE CART_SQ = #{cartSq}
-		  AND GOODS_CD = #{goodsCd}
-		  AND CUST_NO = #{custNo}
+		AND   GOODS_CD = #{goodsCd}
+		AND   CUST_NO = #{custNo}
+	</update>
+
+	<!-- 장바구니 상세 UPDATE -->
+	<update id="updateCartDetail" parameterType="Cart">
+		/* TsfCart.updateCartDetail : 장바구니 상세 UPDATE */
+		UPDATE TB_CART_DETAIL A, (SELECT GOODS_CD, OPT_CD1, OPT_CD2, SKU_MODEL_NO, PRODUCT_NO, PRODUCT_CODE FROM TB_OPTION WHERE GOODS_CD = #{itemCd} AND OPT_CD = #{optCd}) B SET
+			  A.OPT_CD = #{optCd}
+			, A.OPT_CD1 = B.OPT_CD1
+			, A.OPT_CD2 = B.OPT_CD2
+			, A.SKU_MODEL_NO = B.SKU_MODEL_NO
+			, A.PRODUCT_NO = B.PRODUCT_NO
+			, A.PRODUCT_CODE = B.PRODUCT_CODE
+			, A.UPD_NO = #{updNo}
+			, A.UPD_DT = CURRENT_TIMESTAMP
+		WHERE A.CART_DTL_SQ = #{cartDtlSq}
+		  AND A.ITEM_CD = B.GOODS_CD
 	</update>
 	</update>
 
 
 	<!-- 장바구니 이력 정보 저장 -->
 	<!-- 장바구니 이력 정보 저장 -->
@@ -193,7 +233,7 @@
 		SELECT C.CART_SQ
 		SELECT C.CART_SQ
 			 , C.CART_GB
 			 , C.CART_GB
 			 , C.GOODS_CD
 			 , C.GOODS_CD
-		     , C.GOODS_QTY
+			 , C.GOODS_QTY
 			 , C.DEAL_GOODS_CD
 			 , C.DEAL_GOODS_CD
 			 , IFNULL(#{ordNo}, 0) AS ORD_NO
 			 , IFNULL(#{ordNo}, 0) AS ORD_NO
 			 , C.CUST_NO
 			 , C.CUST_NO
@@ -283,82 +323,82 @@
 								  , COUNT(1) AS TMTB_CNT
 								  , COUNT(1) AS TMTB_CNT
 							 FROM   TB_TMTB_APPLY_GOODS TAG
 							 FROM   TB_TMTB_APPLY_GOODS TAG
 							 INNER  JOIN TB_CART C
 							 INNER  JOIN TB_CART C
-							 ON     TAG.GOODS_CD = C.GOODS_CD
+							 ON	 TAG.GOODS_CD = C.GOODS_CD
 							 WHERE  TAG.DEL_YN = 'N'
 							 WHERE  TAG.DEL_YN = 'N'
 							<if test="cartSqArr != null and cartSqArr.length > 0">
 							<if test="cartSqArr != null and cartSqArr.length > 0">
-							 AND    C.CART_SQ IN
+							 AND	C.CART_SQ IN
 								<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 								<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 										#{item}
 										#{item}
 								</foreach>
 								</foreach>
 							</if>
 							</if>
 							 GROUP  BY TAG.TMTB_SQ) AS TAG2
 							 GROUP  BY TAG.TMTB_SQ) AS TAG2
-				ON     TAG.TMTB_SQ = TAG2.TMTB_SQ
+				ON	 TAG.TMTB_SQ = TAG2.TMTB_SQ
 				INNER  JOIN TB_TMTB T
 				INNER  JOIN TB_TMTB T
 				ON	   T.TMTB_SQ = TAG.TMTB_SQ
 				ON	   T.TMTB_SQ = TAG.TMTB_SQ
 				AND	   T.TMTB_STAT = 'G232_11' /*진행*/
 				AND	   T.TMTB_STAT = 'G232_11' /*진행*/
 				INNER  JOIN TB_GOODS G
 				INNER  JOIN TB_GOODS G
 				ON	   C.GOODS_CD = G.GOODS_CD
 				ON	   C.GOODS_CD = G.GOODS_CD
 				INNER  JOIN TB_CART_DETAIL CD
 				INNER  JOIN TB_CART_DETAIL CD
-				ON     C.CART_SQ = CD.CART_SQ
+				ON	 C.CART_SQ = CD.CART_SQ
 				INNER  JOIN (SELECT TAG.TMTB_SQ
 				INNER  JOIN (SELECT TAG.TMTB_SQ
 								  , SUM((FN_GET_APPLY_CPN1_PRICE(C.GOODS_CD, #{frontGb}) + IFNULL(OP.ADD_PRICE, 0)) * C.GOODS_QTY) AS TMTB_SUM_AMT
 								  , SUM((FN_GET_APPLY_CPN1_PRICE(C.GOODS_CD, #{frontGb}) + IFNULL(OP.ADD_PRICE, 0)) * C.GOODS_QTY) AS TMTB_SUM_AMT
 								  , SUM(C.GOODS_QTY) AS TMTB_SUM_QTY
 								  , SUM(C.GOODS_QTY) AS TMTB_SUM_QTY
 							 FROM   TB_TMTB_APPLY_GOODS TAG
 							 FROM   TB_TMTB_APPLY_GOODS TAG
 							 INNER  JOIN TB_CART C
 							 INNER  JOIN TB_CART C
-							 ON     TAG.GOODS_CD = C.GOODS_CD
+							 ON	 TAG.GOODS_CD = C.GOODS_CD
 							 INNER  JOIN TB_GOODS G
 							 INNER  JOIN TB_GOODS G
-							 ON     C.GOODS_CD = G.GOODS_CD
+							 ON	 C.GOODS_CD = G.GOODS_CD
 							 INNER  JOIN TB_TMTB T
 							 INNER  JOIN TB_TMTB T
-							 ON     TAG.TMTB_SQ = T.TMTB_SQ
+							 ON	 TAG.TMTB_SQ = T.TMTB_SQ
 							 LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
 							 LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
-							 ON     TAG.GOODS_CD = NOT_APPLY.GOODS_CD
-							 AND    TAG.TMTB_SQ = NOT_APPLY.TMTB_SQ
-							 AND    NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
+							 ON	 TAG.GOODS_CD = NOT_APPLY.GOODS_CD
+							 AND	TAG.TMTB_SQ = NOT_APPLY.TMTB_SQ
+							 AND	NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
 							 LEFT   OUTER JOIN (SELECT OP.ADD_PRICE
 							 LEFT   OUTER JOIN (SELECT OP.ADD_PRICE
 							 						 , C.CART_SQ
 							 						 , C.CART_SQ
 							 					FROM   TB_CART C
 							 					FROM   TB_CART C
 							 					INNER  JOIN TB_CART_DETAIL CD
 							 					INNER  JOIN TB_CART_DETAIL CD
-							 					ON     C.CART_SQ = CD.CART_SQ
+							 					ON	 C.CART_SQ = CD.CART_SQ
 												 INNER  JOIN TB_OPTION OP
 												 INNER  JOIN TB_OPTION OP
-												 ON     C.GOODS_CD = OP.GOODS_CD
-												 AND    CD.OPT_CD = OP.OPT_CD
+												 ON	 C.GOODS_CD = OP.GOODS_CD
+												 AND	CD.OPT_CD = OP.OPT_CD
 												 WHERE  1=1) OP
 												 WHERE  1=1) OP
-							 ON     C.CART_SQ = OP.CART_SQ
+							 ON	 C.CART_SQ = OP.CART_SQ
 							 WHERE  1=1
 							 WHERE  1=1
-							 AND    NOT_APPLY.TMTB_SQ IS NULL
-							 AND    T.DEL_YN = 'N'
-							 AND    TAG.DEL_YN = 'N'
-							 AND    C.CART_GB = 'G026_BC'
-							 AND    G.GOODS_STAT = 'G008_90'
-							 AND    G.SELF_MALL_YN = 'Y'
+							 AND	NOT_APPLY.TMTB_SQ IS NULL
+							 AND	T.DEL_YN = 'N'
+							 AND	TAG.DEL_YN = 'N'
+							 AND	C.CART_GB = 'G026_BC'
+							 AND	G.GOODS_STAT = 'G008_90'
+							 AND	G.SELF_MALL_YN = 'Y'
 							 <if test="cartSqArr != null and cartSqArr.length > 0">
 							 <if test="cartSqArr != null and cartSqArr.length > 0">
-							 	AND    C.CART_SQ IN
+							 	AND	C.CART_SQ IN
 							 	<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 							 	<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 							 		#{item}
 							 		#{item}
 							 	</foreach>
 							 	</foreach>
 							 </if>
 							 </if>
 							 GROUP BY TAG.TMTB_SQ
 							 GROUP BY TAG.TMTB_SQ
 					   ) SUM_DATA
 					   ) SUM_DATA
-				ON     T.TMTB_SQ = SUM_DATA.TMTB_SQ
+				ON	 T.TMTB_SQ = SUM_DATA.TMTB_SQ
 				LEFT   JOIN TB_OPTION OP
 				LEFT   JOIN TB_OPTION OP
-				ON     CD.ITEM_CD = OP.GOODS_CD
-				AND    CD.OPT_CD1 = OP.OPT_CD1
-				AND    CD.OPT_CD2 = OP.OPT_CD2
+				ON	 CD.ITEM_CD = OP.GOODS_CD
+				AND	CD.OPT_CD1 = OP.OPT_CD1
+				AND	CD.OPT_CD2 = OP.OPT_CD2
 				LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
 				LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
-				ON     T.TMTB_SQ = NOT_APPLY.TMTB_SQ
-				AND    C.GOODS_CD = NOT_APPLY.GOODS_CD
-				AND    NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
-				AND    NOT_APPLY.DEL_YN = 'N'
+				ON	 T.TMTB_SQ = NOT_APPLY.TMTB_SQ
+				AND	C.GOODS_CD = NOT_APPLY.GOODS_CD
+				AND	NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
+				AND	NOT_APPLY.DEL_YN = 'N'
 				WHERE  1=1
 				WHERE  1=1
-				AND    NOT_APPLY.TMTB_SQ IS NULL
-				AND    T.DEL_YN = 'N'
-				AND    T.TMTB_ST_DT <![CDATA[<=]]> NOW()
-				AND    T.TMTB_ED_DT >= NOW()
-				AND    C.CART_GB = 'G026_BC'
-				AND    G.GOODS_STAT = 'G008_90'
-				AND    G.SELF_MALL_YN = 'Y'
+				AND	NOT_APPLY.TMTB_SQ IS NULL
+				AND	T.DEL_YN = 'N'
+				AND	T.TMTB_ST_DT <![CDATA[<=]]> NOW()
+				AND	T.TMTB_ED_DT >= NOW()
+				AND	C.CART_GB = 'G026_BC'
+				AND	G.GOODS_STAT = 'G008_90'
+				AND	G.SELF_MALL_YN = 'Y'
 				<if test="cartSqArr != null and cartSqArr.length > 0">
 				<if test="cartSqArr != null and cartSqArr.length > 0">
-				AND    C.CART_SQ IN
+				AND	C.CART_SQ IN
 					<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 					<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 						#{item}
 						#{item}
 					</foreach>
 					</foreach>
@@ -381,41 +421,41 @@
 			 , SUM(C.GOODS_QTY) AS TMTB_SUM_QTY
 			 , SUM(C.GOODS_QTY) AS TMTB_SUM_QTY
 		FROM   TB_TMTB_APPLY_GOODS TAG
 		FROM   TB_TMTB_APPLY_GOODS TAG
 		INNER  JOIN TB_CART C
 		INNER  JOIN TB_CART C
-		ON     TAG.GOODS_CD = C.GOODS_CD
+		ON	 TAG.GOODS_CD = C.GOODS_CD
 		INNER  JOIN TB_GOODS G
 		INNER  JOIN TB_GOODS G
-		ON     C.GOODS_CD = G.GOODS_CD
+		ON	 C.GOODS_CD = G.GOODS_CD
 		INNER  JOIN TB_TMTB T
 		INNER  JOIN TB_TMTB T
-		ON     TAG.TMTB_SQ = T.TMTB_SQ
+		ON	 TAG.TMTB_SQ = T.TMTB_SQ
 		LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
 		LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
-		ON     TAG.GOODS_CD = NOT_APPLY.GOODS_CD
-		AND    TAG.TMTB_SQ = NOT_APPLY.TMTB_SQ
-		AND    NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
+		ON	 TAG.GOODS_CD = NOT_APPLY.GOODS_CD
+		AND	TAG.TMTB_SQ = NOT_APPLY.TMTB_SQ
+		AND	NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
 		LEFT   OUTER JOIN (SELECT OP.ADD_PRICE
 		LEFT   OUTER JOIN (SELECT OP.ADD_PRICE
 								, C.CART_SQ
 								, C.CART_SQ
-		                   FROM   TB_CART C
+						   FROM   TB_CART C
 						   INNER  JOIN TB_CART_DETAIL CD
 						   INNER  JOIN TB_CART_DETAIL CD
-		                   ON     C.CART_SQ = CD.CART_SQ
+						   ON	 C.CART_SQ = CD.CART_SQ
 						   INNER  JOIN TB_OPTION OP
 						   INNER  JOIN TB_OPTION OP
-						   ON     C.GOODS_CD = OP.GOODS_CD
-						   AND    CD.OPT_CD = OP.OPT_CD
-		                   WHERE  1=1
-		       ) OP
-		ON     C.CART_SQ = OP.CART_SQ
+						   ON	 C.GOODS_CD = OP.GOODS_CD
+						   AND	CD.OPT_CD = OP.OPT_CD
+						   WHERE  1=1
+			   ) OP
+		ON	 C.CART_SQ = OP.CART_SQ
 		WHERE  1=1
 		WHERE  1=1
-		AND    NOT_APPLY.TMTB_SQ IS NULL
-		AND    T.DEL_YN = 'N'
-		AND    TAG.DEL_YN = 'N'
-		AND    C.CART_GB = 'G026_BC'
-		AND    G.GOODS_STAT = 'G008_90'
-		AND    G.SELF_MALL_YN = 'Y'
+		AND	NOT_APPLY.TMTB_SQ IS NULL
+		AND	T.DEL_YN = 'N'
+		AND	TAG.DEL_YN = 'N'
+		AND	C.CART_GB = 'G026_BC'
+		AND	G.GOODS_STAT = 'G008_90'
+		AND	G.SELF_MALL_YN = 'Y'
 		<if test="tmtbSqs != null and tmtbSqs.length > 0">
 		<if test="tmtbSqs != null and tmtbSqs.length > 0">
-		AND    TAG.TMTB_SQ IN
+		AND	TAG.TMTB_SQ IN
 			<foreach collection="tmtbSqs" item="item" index="index"  open="(" close=")" separator=",">
 			<foreach collection="tmtbSqs" item="item" index="index"  open="(" close=")" separator=",">
 				#{item}
 				#{item}
 			</foreach>
 			</foreach>
 		</if>
 		</if>
 		<if test="cartSqArr != null and cartSqArr.length > 0">
 		<if test="cartSqArr != null and cartSqArr.length > 0">
-		AND    C.CART_SQ IN
+		AND	C.CART_SQ IN
 			<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 			<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 				#{item}
 				#{item}
 			</foreach>
 			</foreach>
@@ -433,12 +473,12 @@
 			 , TV.DC_VAL
 			 , TV.DC_VAL
 		FROM   TB_TMTB_SECTION TC
 		FROM   TB_TMTB_SECTION TC
 		INNER  JOIN TB_TMTB_VAL TV
 		INNER  JOIN TB_TMTB_VAL TV
-		ON     TC.TMTB_SECTION_SQ = TV.TMTB_SECTION_SQ
+		ON	 TC.TMTB_SECTION_SQ = TV.TMTB_SECTION_SQ
 		WHERE  1=1
 		WHERE  1=1
-		AND    TC.DEL_YN = 'N'
-		AND    TV.DEL_YN = 'N'
+		AND	TC.DEL_YN = 'N'
+		AND	TV.DEL_YN = 'N'
 		<if test="list != null and list.size() > 0">
 		<if test="list != null and list.size() > 0">
-		AND    TC.TMTB_SQ IN
+		AND	TC.TMTB_SQ IN
 			<foreach collection="list" item="item" index="index"  open="(" close=")" separator=",">
 			<foreach collection="list" item="item" index="index"  open="(" close=")" separator=",">
 				#{item}
 				#{item}
 			</foreach>
 			</foreach>
@@ -459,104 +499,118 @@
 			 , Z.CART_SQ
 			 , Z.CART_SQ
 			 , Z.GOODS_CD
 			 , Z.GOODS_CD
 			 , Z.GOODS_NM
 			 , Z.GOODS_NM
-		     , Z.BRAND_NM
-		     , Z.SUPPLY_COMP_NM
+			 , Z.BRAND_ENM
+		     , Z.BRAND_KNM
+			 , Z.SUPPLY_COMP_NM
 			 , Z.GOODS_QTY
 			 , Z.GOODS_QTY
 			 , Z.GOODS_TYPE
 			 , Z.GOODS_TYPE
 			 , Z.SUPPLY_COMP_CD
 			 , Z.SUPPLY_COMP_CD
 			 , Z.DELV_FEE_CD
 			 , Z.DELV_FEE_CD
-		     , (Z.CURR_PRICE + Z.OPT_ADD_PRICE) * Z.GOODS_QTY AS CURR_PRICE
-		     , Z.SOLDOUT_YN
+			 , (Z.CURR_PRICE + Z.OPT_ADD_PRICE) * Z.GOODS_QTY AS CURR_PRICE
+			 , Z.SOLDOUT_YN
 			 , CASE WHEN #{frontGb} = 'P' THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_PRATE/100)
 			 , CASE WHEN #{frontGb} = 'P' THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_PRATE/100)
 					ELSE (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_MRATE/100) END AS SAVE_PNT_AMT
 					ELSE (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_MRATE/100) END AS SAVE_PNT_AMT
-			 , GI.SYS_IMG_NM
+			 , SYS_IMG_NM
 		FROM   (SELECT C.CART_SQ
 		FROM   (SELECT C.CART_SQ
 					 , C.GOODS_CD
 					 , C.GOODS_CD
 					 , C.GOODS_QTY
 					 , C.GOODS_QTY
 					 , CD.ITEM_CD
 					 , CD.ITEM_CD
 					 , CD.OPT_CD
 					 , CD.OPT_CD
-		             , CD.ITEM_QTY
-		             , CD.CART_DTL_SQ
-		             , O.OPT_CD1
-		             , O.OPT_CD2
+					 , CD.ITEM_QTY
+					 , CD.CART_DTL_SQ
+					 , O.OPT_CD1
+					 , O.OPT_CD2
 					 , G.GOODS_TYPE
 					 , G.GOODS_TYPE
 					 , G.SUPPLY_COMP_CD
 					 , G.SUPPLY_COMP_CD
-		             , G.GOODS_NM
-		             , G.BRAND_CD
-		             , G.PNT_PRATE
+					 , G.GOODS_NM
+					 , G.BRAND_CD
+					 , G.PNT_PRATE
 					 , G.PNT_MRATE
 					 , G.PNT_MRATE
-		             , STOCK.SOLDOUT_YN
-		             , FN_GET_APPLY_CPN1_PRICE(C.GOODS_CD, #{frontGb}) AS CURR_PRICE
-		             , IFNULL(O.ADD_PRICE, 0) AS OPT_ADD_PRICE
-		             , (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = G.BRAND_CD) AS BRAND_NM
-		             , (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = G.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
+					 , STOCK.SOLDOUT_YN
+					 , FN_GET_APPLY_CPN1_PRICE(C.GOODS_CD, #{frontGb}) AS CURR_PRICE
+					 , IFNULL(O.ADD_PRICE, 0) AS OPT_ADD_PRICE
+					 , BR.BRAND_ENM
+		             , BR.BRAND_KNM
+		             , CT.CUST_GRADE
+					 , CASE WHEN GOG.CUST_GRADE IS NOT NULL AND GOG.CUST_GRADE = IFNULL(CT.CUST_GRADE, '') THEN GOG.CUST_GRADE
+							WHEN GOG.CUST_GRADE IS NOT NULL THEN 'NO'
+							ELSE CT.CUST_GRADE END AS ORDER_GRADE
+					 , (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = G.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
 					 , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CD.ITEM_CD) AS ITEM_NM
 					 , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CD.ITEM_CD) AS ITEM_NM
 					 , CASE WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
 					 , CASE WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
 							ELSE DFP.DELV_FEE_CD END AS DELV_FEE_CD
 							ELSE DFP.DELV_FEE_CD END AS DELV_FEE_CD
+					 , CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = CD.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' LIMIT 1)
+							ELSE (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) END AS SYS_IMG_NM
 				FROM   TB_CART C
 				FROM   TB_CART C
 				INNER  JOIN TB_CART_DETAIL CD
 				INNER  JOIN TB_CART_DETAIL CD
-				ON     C.CART_SQ = CD.CART_SQ
+				ON	 C.CART_SQ = CD.CART_SQ
 				INNER  JOIN TB_GOODS G
 				INNER  JOIN TB_GOODS G
-				ON     C.GOODS_CD = G.GOODS_CD
+				ON	 C.GOODS_CD = G.GOODS_CD
+				INNER  JOIN TB_BRAND BR 
+				ON	 G.BRAND_CD = BR.BRAND_CD
 				INNER  JOIN TB_DELV_FEE_POLICY DFP
 				INNER  JOIN TB_DELV_FEE_POLICY DFP
-				ON     G.DELV_FEE_CD = DFP.DELV_FEE_CD
+				ON	 G.DELV_FEE_CD = DFP.DELV_FEE_CD
 				INNER  JOIN TB_OPTION O
 				INNER  JOIN TB_OPTION O
-				ON     CD.ITEM_CD = O.GOODS_CD
-				AND    CD.OPT_CD = O.OPT_CD
+				ON	 CD.ITEM_CD = O.GOODS_CD
+				AND	CD.OPT_CD = O.OPT_CD
 				INNER  JOIN (   SELECT A.CART_SQ
 				INNER  JOIN (   SELECT A.CART_SQ
 									 , MIN(A.SOLDOUT_YN) AS SOLDOUT_YN
 									 , MIN(A.SOLDOUT_YN) AS SOLDOUT_YN
 								FROM   (SELECT C.CART_SQ
 								FROM   (SELECT C.CART_SQ
-											 , CASE WHEN VS.SOLDOUT_YN = 'N' AND VS.CURR_STOCK_QTY > C.GOODS_QTY * GC.QTY THEN 'N'
+											 , CASE WHEN VS.SOLDOUT_YN = 'N' AND VS.CURR_STOCK_QTY >= C.GOODS_QTY * GC.QTY THEN 'N'
 													ELSE 'Y' END AS SOLDOUT_YN
 													ELSE 'Y' END AS SOLDOUT_YN
 										FROM   TB_CART C
 										FROM   TB_CART C
 										INNER  JOIN TB_CART_DETAIL CD
 										INNER  JOIN TB_CART_DETAIL CD
-										ON     C.CART_SQ = CD.CART_SQ
+										ON	 C.CART_SQ = CD.CART_SQ
 										INNER  JOIN TB_GOODS G
 										INNER  JOIN TB_GOODS G
-										ON     C.GOODS_CD = G.GOODS_CD
+										ON	 C.GOODS_CD = G.GOODS_CD
 										INNER  JOIN TB_GOODS_COMPOSE GC
 										INNER  JOIN TB_GOODS_COMPOSE GC
-										ON     C.GOODS_CD = GC.GOODS_CD
-										AND    CD.ITEM_CD = GC.COMPS_GOODS_CD
+										ON	 C.GOODS_CD = GC.GOODS_CD
+										AND	CD.ITEM_CD = GC.COMPS_GOODS_CD
 										INNER  JOIN VW_STOCK VS
 										INNER  JOIN VW_STOCK VS
-										ON     CD.ITEM_CD = VS.GOODS_CD
-										AND    CD.OPT_CD = VS.OPT_CD
+										ON	 CD.ITEM_CD = VS.GOODS_CD
+										AND	CD.OPT_CD = VS.OPT_CD
 										WHERE  1=1
 										WHERE  1=1
-										AND    C.CART_GB = 'G026_BC'
-										AND    G.GOODS_STAT = 'G008_90'
-										AND    G.SELF_MALL_YN = 'Y'
+										AND	C.CART_GB = 'G026_BC'
+										AND	G.GOODS_STAT = 'G008_90'
+										AND	G.SELF_MALL_YN = 'Y'
 										<if test="custNo == 0">
 										<if test="custNo == 0">
-											AND    C.CUST_NO = 0
-											AND    C.JSESSION_ID = #{jsessionId}
+											AND	C.CUST_NO = 0
+											AND	C.JSESSION_ID = #{jsessionId}
 										</if>
 										</if>
 										<if test="custNo != 0">
 										<if test="custNo != 0">
-											AND    C.CUST_NO = #{custNo}
+											AND	C.CUST_NO = #{custNo}
 										</if>
 										</if>
 										UNION ALL
 										UNION ALL
 										SELECT C.CART_SQ
 										SELECT C.CART_SQ
-											 , CASE WHEN VS.SOLDOUT_YN = 'N' AND VS.CURR_STOCK_QTY > C.GOODS_QTY THEN 'N'
+											 , CASE WHEN VS.SOLDOUT_YN = 'N' AND VS.CURR_STOCK_QTY >= C.GOODS_QTY THEN 'N'
 													ELSE 'Y' END AS SOLDOUT_YN
 													ELSE 'Y' END AS SOLDOUT_YN
 										FROM   TB_CART C
 										FROM   TB_CART C
 										INNER  JOIN TB_CART_DETAIL CD
 										INNER  JOIN TB_CART_DETAIL CD
-										ON     C.CART_SQ = CD.CART_SQ
+										ON	 C.CART_SQ = CD.CART_SQ
 										INNER  JOIN TB_GOODS G
 										INNER  JOIN TB_GOODS G
-										ON     C.GOODS_CD = G.GOODS_CD
+										ON	 C.GOODS_CD = G.GOODS_CD
 										INNER  JOIN VW_STOCK VS
 										INNER  JOIN VW_STOCK VS
-										ON     C.GOODS_CD = VS.GOODS_CD
-										AND    CD.OPT_CD = VS.OPT_CD
+										ON	 C.GOODS_CD = VS.GOODS_CD
+										AND	CD.OPT_CD = VS.OPT_CD
 										WHERE  1=1
 										WHERE  1=1
-										AND    C.CART_GB = 'G026_BC'
-										AND    G.GOODS_STAT = 'G008_90'
-										AND    G.SELF_MALL_YN = 'Y'
+										AND	C.CART_GB = 'G026_BC'
+										AND	G.GOODS_STAT = 'G008_90'
+										AND	G.SELF_MALL_YN = 'Y'
 										<if test="custNo == 0">
 										<if test="custNo == 0">
-											AND    C.CUST_NO = 0
-											AND    C.JSESSION_ID = #{jsessionId}
+											AND	C.CUST_NO = 0
+											AND	C.JSESSION_ID = #{jsessionId}
 										</if>
 										</if>
 										<if test="custNo != 0">
 										<if test="custNo != 0">
-											AND    C.CUST_NO = #{custNo}
+											AND	C.CUST_NO = #{custNo}
 										</if>
 										</if>
-								       ) A
+									   ) A
 								GROUP  BY  A.CART_SQ
 								GROUP  BY  A.CART_SQ
 					   ) STOCK
 					   ) STOCK
-				ON     C.CART_SQ = STOCK.CART_SQ
+				ON	   C.CART_SQ = STOCK.CART_SQ
+				LEFT   OUTER JOIN TB_CUSTOMER CT
+				ON     C.CUST_NO = CT.CUST_NO
+				LEFT   OUTER JOIN TB_GOODS_ORDER_GRADE GOG
+				ON     G.GOODS_CD = GOG.GOODS_CD
 				WHERE  G.SELF_MALL_YN = 'Y'
 				WHERE  G.SELF_MALL_YN = 'Y'
 				AND    G.GOODS_STAT = 'G008_90'
 				AND    G.GOODS_STAT = 'G008_90'
 				<if test="custNo == 0">
 				<if test="custNo == 0">
@@ -564,35 +618,39 @@
 				AND    C.JSESSION_ID = #{jsessionId}
 				AND    C.JSESSION_ID = #{jsessionId}
 				</if>
 				</if>
 				<if test="custNo != 0">
 				<if test="custNo != 0">
-				AND    C.CUST_NO = #{custNo}
+				AND	C.CUST_NO = #{custNo}
 				</if>
 				</if>
 				<if test="cartSqArr != null and cartSqArr.length > 0">
 				<if test="cartSqArr != null and cartSqArr.length > 0">
-				AND    C.CART_SQ IN
+				AND	C.CART_SQ IN
 					<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 					<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 						#{item}
 						#{item}
 					</foreach>
 					</foreach>
 				</if>
 				</if>
 				ORDER BY G.SUPPLY_COMP_CD ) Z
 				ORDER BY G.SUPPLY_COMP_CD ) Z
-		LEFT   OUTER JOIN TB_GOODS_IMG GI
-		ON	   Z.GOODS_CD = GI.GOODS_CD
-		AND	   Z.OPT_CD1 = GI.COLOR_CD
-		AND    GI.DEFAULT_IMG_YN = 'Y'
+		WHERE  1=1
+		<if test="custNo != 0">
+		AND    Z.ORDER_GRADE = Z.CUST_GRADE
+		</if>
+		<if test="custNo == 0">
+		AND    Z.ORDER_GRADE IS NULL
+		</if>
 		GROUP  BY Z.CART_SQ
 		GROUP  BY Z.CART_SQ
 			 , Z.GOODS_CD
 			 , Z.GOODS_CD
 			 , Z.GOODS_QTY
 			 , Z.GOODS_QTY
 			 , Z.GOODS_TYPE
 			 , Z.GOODS_TYPE
 			 , Z.SUPPLY_COMP_CD
 			 , Z.SUPPLY_COMP_CD
 			 , Z.GOODS_NM
 			 , Z.GOODS_NM
-		     , Z.BRAND_NM
+			 , Z.BRAND_ENM
+			 , Z.BRAND_KNM
 			 , Z.SUPPLY_COMP_NM
 			 , Z.SUPPLY_COMP_NM
 			 , Z.DELV_FEE_CD
 			 , Z.DELV_FEE_CD
-		     , Z.CURR_PRICE
-		     , Z.PNT_PRATE
+			 , Z.CURR_PRICE
+			 , Z.PNT_PRATE
 			 , Z.PNT_MRATE
 			 , Z.PNT_MRATE
-		     , Z.OPT_ADD_PRICE
-			 , GI.SYS_IMG_NM
+			 , Z.OPT_ADD_PRICE
+			 , SYS_IMG_NM
 		ORDER  BY Z.DELV_FEE_CD
 		ORDER  BY Z.DELV_FEE_CD
-			 , Z.CART_SQ
+			 , Z.CART_SQ DESC
 	</select>
 	</select>
 
 
 	<!-- 장바구니 업체별 배송비 -->
 	<!-- 장바구니 업체별 배송비 -->
@@ -601,17 +659,17 @@
 		SELECT DFP.MIN_ORD_AMT
 		SELECT DFP.MIN_ORD_AMT
 			 , DFP.DELV_FEE
 			 , DFP.DELV_FEE
 			 , DFP.DELV_FEE_CRITE
 			 , DFP.DELV_FEE_CRITE
-		     , DFP.DELV_FEE_CD
+			 , DFP.DELV_FEE_CD
 			 , COUNT(G.SUPPLY_COMP_CD) AS COMP_CNT
 			 , COUNT(G.SUPPLY_COMP_CD) AS COMP_CNT
 		FROM   TB_CART C
 		FROM   TB_CART C
 		INNER  JOIN TB_GOODS G
 		INNER  JOIN TB_GOODS G
-		ON     C.GOODS_CD = G.GOODS_CD
+		ON	 C.GOODS_CD = G.GOODS_CD
 		INNER  JOIN TB_DELV_FEE_POLICY DFP
 		INNER  JOIN TB_DELV_FEE_POLICY DFP
-		ON     G.DELV_FEE_CD = DFP.DELV_FEE_CD
-		AND    DFP.USE_YN = 'Y'
+		ON	 G.DELV_FEE_CD = DFP.DELV_FEE_CD
+		AND	DFP.USE_YN = 'Y'
 		WHERE  1=1
 		WHERE  1=1
-		AND    G.SELF_MALL_YN = 'Y'
-		AND    C.CART_SQ IN
+		AND	G.SELF_MALL_YN = 'Y'
+		AND	C.CART_SQ IN
 		<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 		<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
 			#{item}
 			#{item}
 		</foreach>
 		</foreach>
@@ -630,14 +688,24 @@
 			#{item}
 			#{item}
 		</foreach>
 		</foreach>
 	</delete>
 	</delete>
+
+	<!-- 장바구니 삭제 -->
+	<delete id="deleteCartDetail" parameterType="Cart">
+		<!-- TsfCart.deleteCartDetail : 장바구니 삭제 -->
+		DELETE FROM TB_CART_DETAIL
+		WHERE  CART_SQ IN
+		<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
+			#{item}
+		</foreach>
+	</delete>
 	
 	
 	<!-- 장바구니담긴상품 고객번호 Update -->
 	<!-- 장바구니담긴상품 고객번호 Update -->
 	<update id="updateCartOfCustNo" parameterType="Cart">
 	<update id="updateCartOfCustNo" parameterType="Cart">
 		/* TsfCart.updateCartOfCustNo */
 		/* TsfCart.updateCartOfCustNo */
 		UPDATE TB_CART
 		UPDATE TB_CART
-		SET    CUST_NO = #{custNo}
-		     , UPD_NO = #{updNo}
-		     , UPD_DT = NOW()
+		SET	CUST_NO = #{custNo}
+			 , UPD_NO = #{updNo}
+			 , UPD_DT = NOW()
 		WHERE  JSESSION_ID = #{jsessionId}
 		WHERE  JSESSION_ID = #{jsessionId}
 	</update>
 	</update>
 	
 	
@@ -645,57 +713,57 @@
 	<select id="getCartListAfterLogin" parameterType="Cart" resultType="Cart">
 	<select id="getCartListAfterLogin" parameterType="Cart" resultType="Cart">
 		/* TsfCart.getCartListAfterLogin */
 		/* TsfCart.getCartListAfterLogin */
 		SELECT A.CART_GB
 		SELECT A.CART_GB
-		     , A.GOODS_CD
-		     , A.ITEM_OPTS
-		     , IFNULL(B.CART_SQ,A.CART_SQ) AS UPD_CART_SQ /*업데이트할 장바구니번호*/
-		     , CASE WHEN B.CART_SQ IS NOT NULL THEN
-		                A.CART_SQ
-		            ELSE
-		                0
-		       END                         AS DEL_CART_SQ /*삭제할 장바구니번호(0이면 삭제할 장바구니번호 없음)*/
+			 , A.GOODS_CD
+			 , A.ITEM_OPTS
+			 , IFNULL(B.CART_SQ,A.CART_SQ) AS UPD_CART_SQ /*업데이트할 장바구니번호*/
+			 , CASE WHEN B.CART_SQ IS NOT NULL THEN
+						A.CART_SQ
+					ELSE
+						0
+			   END						 AS DEL_CART_SQ /*삭제할 장바구니번호(0이면 삭제할 장바구니번호 없음)*/
 		FROM   (
 		FROM   (
-		        /*장바구니에 담을 상품 목록*/
-		        SELECT C.CART_SQ
-		             , C.CART_GB
-		             , C.GOODS_CD
-		             , GROUP_CONCAT(CONCAT(CD.ITEM_CD,':',CD.OPT_CD1,':',CD.OPT_CD2) ORDER BY CD.ITEM_CD, CD.OPT_CD1, CD.OPT_CD2 SEPARATOR ';') AS ITEM_OPTS
-		        FROM   TB_CART C
-		             , TB_CART_DETAIL CD
-		        WHERE  C.CART_SQ = CD.CART_SQ
-		        AND    C.CUST_NO = #{custNo}
-		        AND    C.JSESSION_ID = #{jsessionId}
-		        GROUP  BY C.CART_SQ, C.CART_GB, C.GOODS_CD
-		       ) A
+				/*장바구니에 담을 상품 목록*/
+				SELECT C.CART_SQ
+					 , C.CART_GB
+					 , C.GOODS_CD
+					 , GROUP_CONCAT(CONCAT(CD.ITEM_CD,':',CD.OPT_CD1,':',CD.OPT_CD2) ORDER BY CD.ITEM_CD, CD.OPT_CD1, CD.OPT_CD2 SEPARATOR ';') AS ITEM_OPTS
+				FROM   TB_CART C
+					 , TB_CART_DETAIL CD
+				WHERE  C.CART_SQ = CD.CART_SQ
+				AND	C.CUST_NO = #{custNo}
+				AND	C.JSESSION_ID = #{jsessionId}
+				GROUP  BY C.CART_SQ, C.CART_GB, C.GOODS_CD
+			   ) A
 		LEFT OUTER JOIN (
 		LEFT OUTER JOIN (
-		        /*장바구니에 담긴 기존 상품 목록*/
-		        SELECT C.CART_SQ
-		             , C.CART_GB
-		             , C.GOODS_CD
-		             , GROUP_CONCAT(CONCAT(CD.ITEM_CD,':',CD.OPT_CD1,':',CD.OPT_CD2) ORDER BY CD.ITEM_CD, CD.OPT_CD1, CD.OPT_CD2 SEPARATOR ';') AS ITEM_OPTS
-		        FROM   TB_CART C
-		             , TB_CART_DETAIL CD
-		        WHERE  C.CART_SQ = CD.CART_SQ
-		        AND    C.CUST_NO = #{custNo}
-		        AND    C.JSESSION_ID <![CDATA[<>]]> #{jsessionId}
-		        GROUP  BY C.CART_SQ, C.CART_GB, C.GOODS_CD
-		       ) B
-		ON     A.CART_GB = B.CART_GB
-		AND    A.GOODS_CD = B.GOODS_CD
-		AND    A.ITEM_OPTS = B.ITEM_OPTS
+				/*장바구니에 담긴 기존 상품 목록*/
+				SELECT C.CART_SQ
+					 , C.CART_GB
+					 , C.GOODS_CD
+					 , GROUP_CONCAT(CONCAT(CD.ITEM_CD,':',CD.OPT_CD1,':',CD.OPT_CD2) ORDER BY CD.ITEM_CD, CD.OPT_CD1, CD.OPT_CD2 SEPARATOR ';') AS ITEM_OPTS
+				FROM   TB_CART C
+					 , TB_CART_DETAIL CD
+				WHERE  C.CART_SQ = CD.CART_SQ
+				AND	C.CUST_NO = #{custNo}
+				AND	C.JSESSION_ID <![CDATA[<>]]> #{jsessionId}
+				GROUP  BY C.CART_SQ, C.CART_GB, C.GOODS_CD
+			   ) B
+		ON	 A.CART_GB = B.CART_GB
+		AND	A.GOODS_CD = B.GOODS_CD
+		AND	A.ITEM_OPTS = B.ITEM_OPTS
 	</select>
 	</select>
 
 
 	<!-- 로그인 후 장바구니 수정 -->
 	<!-- 로그인 후 장바구니 수정 -->
 	<update id="updateCartAfterLogin" parameterType="Cart">
 	<update id="updateCartAfterLogin" parameterType="Cart">
 		/* TsfCart.updateCartAfterLogin */
 		/* TsfCart.updateCartAfterLogin */
 		UPDATE TB_CART
 		UPDATE TB_CART
-		SET    GOODS_QTY = GOODS_QTY + IFNULL((SELECT A.GOODS_QTY
-		    									 FROM ( SELECT GOODS_QTY
+		SET	GOODS_QTY = GOODS_QTY + IFNULL((SELECT A.GOODS_QTY
+												 FROM ( SELECT GOODS_QTY
 														  FROM TB_CART
 														  FROM TB_CART
 														 WHERE CART_SQ = #{delCartSq}
 														 WHERE CART_SQ = #{delCartSq}
 														   AND CUST_NO = #{custNo} ) A
 														   AND CUST_NO = #{custNo} ) A
-		                                        ),0)
+												),0)
 		WHERE  CART_SQ = #{updCartSq}
 		WHERE  CART_SQ = #{updCartSq}
-		AND    CUST_NO = #{custNo}
+		AND	CUST_NO = #{custNo}
 	</update>
 	</update>
 
 
 	<!-- 로그인 후 장바구니단품 삭제 -->
 	<!-- 로그인 후 장바구니단품 삭제 -->
@@ -703,10 +771,10 @@
 		/* TsfCart.deleteCartItemAfterLogin */
 		/* TsfCart.deleteCartItemAfterLogin */
 		DELETE FROM TB_CART_DETAIL
 		DELETE FROM TB_CART_DETAIL
 		WHERE  CART_SQ IN (SELECT CART_SQ
 		WHERE  CART_SQ IN (SELECT CART_SQ
-		                   FROM   TB_CART
-		                   WHERE  CART_SQ = #{delCartSq}
-		                   AND    CUST_NO = #{custNo}
-		                  )
+						   FROM   TB_CART
+						   WHERE  CART_SQ = #{delCartSq}
+						   AND	CUST_NO = #{custNo}
+						  )
 	</delete>
 	</delete>
 
 
 	<!-- 로그인 후 장바구니 삭제 -->
 	<!-- 로그인 후 장바구니 삭제 -->
@@ -714,42 +782,184 @@
 		/* TsfCart.deleteCartAfterLogin */
 		/* TsfCart.deleteCartAfterLogin */
 		DELETE FROM TB_CART
 		DELETE FROM TB_CART
 		WHERE  CART_SQ = #{delCartSq}
 		WHERE  CART_SQ = #{delCartSq}
-		AND    CUST_NO = #{custNo}
+		AND	CUST_NO = #{custNo}
 	</delete>
 	</delete>
 	
 	
 	<!-- 로그인 후 장바구니이력 생성 -->
 	<!-- 로그인 후 장바구니이력 생성 -->
 	<update id="createCartHistoryAfterLogin" parameterType="Cart">
 	<update id="createCartHistoryAfterLogin" parameterType="Cart">
 		/* TsfCart.createCartHistoryAfterLogin */
 		/* TsfCart.createCartHistoryAfterLogin */
 		INSERT INTO TB_CART_HST (
 		INSERT INTO TB_CART_HST (
-		       CART_SQ
-		     , CART_GB
-		     , GOODS_CD
-		     , GOODS_QTY
-		     , DEAL_GOODS_CD
-		     , ORD_NO
-		     , CUST_NO
-		     , AF_LINK_CD
-		     , ITHR_CD
-		     , CONTENTS_LOC
-		     , PLAN_DTL_SQ
-		     , REG_NO
-		     , REG_DT
+			   CART_SQ
+			 , CART_GB
+			 , GOODS_CD
+			 , GOODS_QTY
+			 , DEAL_GOODS_CD
+			 , ORD_NO
+			 , CUST_NO
+			 , AF_LINK_CD
+			 , ITHR_CD
+			 , CONTENTS_LOC
+			 , PLAN_DTL_SQ
+			 , REG_NO
+			 , REG_DT
 		)
 		)
 		SELECT CART_SQ
 		SELECT CART_SQ
-		     , CART_GB
-		     , GOODS_CD
-		     , GOODS_QTY
-		     , DEAL_GOODS_CD
-		     , 0
-		     , CUST_NO
-		     , AF_LINK_CD
-		     , ITHR_CD
-		     , CONTENTS_LOC
-		     , PLAN_DTL_SQ
-		     , #{regNo}
-		     , NOW()
+			 , CART_GB
+			 , GOODS_CD
+			 , GOODS_QTY
+			 , DEAL_GOODS_CD
+			 , 0
+			 , CUST_NO
+			 , AF_LINK_CD
+			 , ITHR_CD
+			 , CONTENTS_LOC
+			 , PLAN_DTL_SQ
+			 , #{regNo}
+			 , NOW()
 		FROM   TB_CART C
 		FROM   TB_CART C
 		WHERE  CART_SQ = #{updCartSq}
 		WHERE  CART_SQ = #{updCartSq}
 	</update>
 	</update>
-	
+
+	<!-- 장바구니 상품 정보 조회 -->
+	<select id="selectCartGoodsInfo" parameterType="Cart" resultType="Cart">
+		/* TsfCart.selectCartGoodsInfo : 장바구니 상품 마스터 정보 조회 */
+		SELECT G.GOODS_CD
+			 , G.GOODS_TYPE
+		     , G.GOODS_NM
+			 , BR.BRAND_ENM
+			 , BR.BRAND_KNM
+			 , CA.CART_SQ
+			 , CA.GOODS_QTY
+			 , G.SELF_GOODS_YN
+		FROM   TB_CART CA
+		INNER  JOIN TB_GOODS G
+		ON     CA.GOODS_CD = G.GOODS_CD
+		INNER  JOIN TB_BRAND BR
+		ON     G.BRAND_CD = BR.BRAND_CD
+		WHERE  CA.CART_SQ = #{cartSq}
+		AND    G.SELF_MALL_YN = 'Y'
+		AND    G.GOODS_STAT = 'G008_90'
+	</select>
+
+	<!-- 장바구니 세트 구성 상품 정보 조회 -->
+	<select id="selectCartSetGoodsInfo" parameterType="Cart" resultType="Cart">
+		/* TsfCart.selectCartSetGoodsInfo : 장바구니 세트 구성 상품 정보 조회 */
+		SELECT GC.COMPS_GOODS_CD AS GOODS_CD
+			 , GC.DISP_ORD
+			 , GC.QTY
+			 , CD.CART_DTL_SQ
+			 , CD.ITEM_CD
+			 , CD.OPT_CD
+			 , CD.OPT_CD1
+			 , CD.OPT_CD2
+			 , G.SELF_GOODS_YN
+			 , G.GOODS_NM
+		FROM   TB_CART CA
+		INNER  JOIN TB_CART_DETAIL CD
+		ON     CA.CART_SQ = CD.CART_SQ
+		INNER  JOIN TB_GOODS_COMPOSE GC
+		ON     CA.GOODS_CD = GC.GOODS_CD
+		AND    CD.ITEM_CD = GC.COMPS_GOODS_CD
+		INNER  JOIN TB_GOODS G
+		ON     GC.COMPS_GOODS_CD = G.GOODS_CD
+		WHERE  1=1
+		AND    G.SELF_MALL_YN = 'Y'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    GC.USE_YN = 'Y'
+		AND    GC.GOODS_CD = #{goodsCd}
+		AND    CA.CART_SQ = #{cartSq}
+		ORDER  BY CA.GOODS_CD, GC.COMPS_GOODS_CD, GC.DISP_ORD
+	</select>
+
+	<!-- 장바구니 상품 컬러 정보 조회 -->
+	<select id="selectCartGoodsColorList" parameterType="Cart" resultType="Cart">
+		/* TsfCart.selectCartGoodsColorList : 장바구니 상품 컬러 정보 조회 */
+		SELECT ST.GOODS_CD
+			 , CASE WHEN SELF_GOODS_YN = 'Y' THEN (SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = ST.OPT_CD1)
+					ELSE ST.OPT_CD1 END AS COLOR_NM
+			 , CASE WHEN SELF_GOODS_YN = 'Y' AND GOODS_TYPE != 'G056_S' THEN (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = ST.GOODS_CD AND COLOR_CD = ST.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' LIMIT 1)
+					ELSE (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) END AS SYS_IMG_NM
+			 , ST.OPT_CD1
+			 , G.MAIN_COLOR_CD
+			 , MAX(CD.CART_DTL_SQ) AS CART_DTL_SQ
+			 , MAX(ST.DISP_ORD) AS DISP_ORD
+			 , MAX(CD.OPT_CD1) AS CART_OPT_CD1
+			 , IFNULL(MAX( CASE WHEN SELF_GOODS_YN = 'Y' THEN (SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = CD.OPT_CD1)
+								ELSE CD.OPT_CD1 END), MAX(CD.OPT_CD1)) AS CART_COLOR_NM
+		FROM   TB_GOODS G
+		INNER  JOIN VW_STOCK ST
+		ON     G.GOODS_CD = ST.GOODS_CD
+		LEFT   OUTER JOIN TB_CART_DETAIL CD
+		ON     G.GOODS_CD = CD.ITEM_CD
+		AND    ST.OPT_CD = CD.OPT_CD
+		AND    CD.CART_SQ = #{cartSq}
+		WHERE  ST.DISP_YN = 'Y'
+		AND    G.SELF_MALL_YN = 'Y'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    G.GOODS_CD = #{goodsCd}
+		GROUP  BY ST.GOODS_CD
+			 , ST.OPT_CD1
+			 , G.MAIN_COLOR_CD
+		ORDER  BY DISP_ORD
+	</select>
+
+	<!-- 장바구니 상품 사이즈 정보 조회 -->
+	<select id="selectCartGoodsSizeList" parameterType="Cart" resultType="Cart">
+		/* TsfCart.selectCartGoodsSizeList : 장바구니 상품 사이즈 정보 조회 */
+		SELECT ST.GOODS_CD
+			 , ST.OPT_CD
+		     , ST.OPT_CD1
+			 , ST.OPT_CD2
+			 , ST.CURR_STOCK_QTY
+			 , ST.SOLDOUT_YN
+			 , CD.OPT_CD AS CART_OPT_CD
+		FROM   TB_GOODS G
+		INNER  JOIN VW_STOCK ST
+		ON     G.GOODS_CD = ST.GOODS_CD
+		LEFT   OUTER JOIN TB_CART_DETAIL CD
+		ON     G.GOODS_CD = CD.ITEM_CD
+		AND    ST.OPT_CD = CD.OPT_CD
+		AND    CD.CART_SQ = #{cartSq}
+		WHERE  1=1
+		AND    G.GOODS_CD = #{goodsCd}
+		<if test="optCd1 != null and optCd1 != ''">
+		AND    ST.OPT_CD1 = #{optCd1}
+		</if>
+		AND    ST.DISP_YN = 'Y'
+		AND    G.SELF_MALL_YN = 'Y'
+		AND    G.GOODS_STAT = 'G008_90'
+		ORDER  BY ST.DISP_ORD
+	</select>
+
+	<!-- 장바구니 자사 일반 및 딜 상품 이미지 리스트 조회 -->
+	<select id="selectCartSelfGoodsOptionImgList" parameterType="Cart" resultType="GoodsImg">
+		/* TsfCart.selectCartSelfGoodsOptionImgList : 장바구니 자사 상품 이미지 리스트 조회 */
+		SELECT GI.GOODS_CD
+			 , GI.COLOR_CD
+			 , GI.SYS_IMG_NM
+		FROM   TB_GOODS G
+		INNER  JOIN TB_GOODS_IMG GI
+		ON     G.GOODS_CD = GI.GOODS_CD
+		WHERE  G.SELF_MALL_YN = 'Y'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    GI.GOODS_CD = #{goodsCd}
+		AND    GI.COLOR_CD = #{optCd1}
+		ORDER  BY GI.DISP_ORD
+	</select>
+
+	<!-- 장바구니 세트 & 입점업체 상품 이미지 리스트 조회 -->
+	<select id="selectCartDelvGoodsOptionImgList" parameterType="Cart" resultType="GoodsImg">
+		/* TsfCart.selectCartDelvGoodsOptionImgList : 장바구니 입점업체 상품 이미지 리스트 조회 */
+		SELECT GI.GOODS_CD
+			 , GI.COLOR_CD
+			 , GI.SYS_IMG_NM
+		FROM   TB_GOODS G
+		INNER  JOIN TB_GOODS_IMG GI
+		ON     G.GOODS_CD = GI.GOODS_CD
+		AND    G.MAIN_COLOR_CD = GI.COLOR_CD
+		WHERE  G.SELF_MALL_YN = 'Y'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    GI.GOODS_CD = #{goodsCd}
+		ORDER  BY GI.DISP_ORD
+	</select>
 </mapper>
 </mapper>

+ 217 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml

@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!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.TsfOrderChangeDao">
+
+	<!-- 페이징을 위한 select절 상단 -->
+	<sql id="selectForPagingHeader">
+		SELECT *
+		FROM   (
+	</sql>
+
+	<!-- 페이징을 위한 select절 하단 -->
+	<sql id="selectForPagingFooter">
+		       ) ORIGINAL
+		WHERE  NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
+	</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
+		     , 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
+		     , DF.DELV_FEE
+		     , DF.DELV_FEE_CD
+		     , DFP.MIN_ORD_AMT
+		     , DFP.DELV_FEE										AS ORG_DELV_FEE
+		     , DFP.RTN_DELV_FEE
+		     , DFP.DELV_FEE + DFP.RTN_DELV_FEE					AS EXC_DELV_FEE
+		     , DL.RTN_LOC_NM
+		     , DL.RTN_LOC_ZIPCODE
+		     , DL.RTN_LOC_BASE_ADDR
+		     , DL.RTN_LOC_DTL_ADDR
+		     , DL.RTN_LOC_TELNO
+		     , DA.RECIP_NM
+		     , DA.RECIP_TELNO
+		     , DA.RECIP_PHNNO
+		     , DA.RECIP_ZIPCODE
+		     , DA.RECIP_BASE_ADDR
+		     , DA.RECIP_DTL_ADDR
+		  FROM TB_ORDER O
+		 INNER JOIN TB_ORDER_DETAIL OD
+		    ON O.ORD_NO = OD.ORD_NO
+		   AND OD.ORD_DTL_STAT NOT IN ('G013_11', 'G013_25', 'G013_97')
+		 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+		    ON OD.ORD_NO = ODI.ORD_NO
+		   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		   AND ODI.ORD_DTL_STAT NOT IN ('G013_11', 'G013_25', 'G013_97')
+		 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_DELIVERY_ADDR DA
+		    ON DA.DELV_ADDR_SQ = OD.DELV_ADDR_SQ
+		  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'
+		  LEFT OUTER JOIN (SELECT X.DELV_FEE_CD
+							  , SUM(X.DELV_FEE) AS DELV_FEE
+						   FROM TB_DELIVERY_FEE X
+						  WHERE X.ORD_NO = #{ordNo}
+							AND X.DELV_FEE_GB = 'G018_10'
+						  GROUP BY X.DELV_FEE_CD
+						) DF
+		    ON OD.DELV_FEE_CD = DF.DELV_FEE_CD
+		  LEFT OUTER JOIN TB_DELV_FEE_POLICY DFP
+		    ON DF.DELV_FEE_CD = DFP.DELV_FEE_CD
+		   AND DFP.USE_YN = 'Y'
+		  LEFT OUTER JOIN (SELECT TDL.DELV_LOC_CD
+								, TDL.RTN_LOC_NM
+								, TDL.RTN_LOC_TELNO
+								, TDL.RTN_LOC_ZIPCODE
+								, TDL.RTN_LOC_BASE_ADDR
+								, TDL.RTN_LOC_DTL_ADDR
+							 FROM TB_DELIVERY_LOC TDL
+							INNER JOIN TB_SUPPLY_COMPANY TSC
+							   ON TDL.SUPPLY_COMP_CD = TSC.SUPPLY_COMP_CD
+						  ) DL
+		    ON OD.DELV_LOC_CD = DL.DELV_LOC_CD
+		<where>
+			<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>
+			<if test="ordNo != null and ordNo != ''">
+		   AND O.ORD_NO = #{ordNo}
+			</if>
+			<if test="ordNoList != null">
+		   AND O.ORD_NO IN
+				<foreach collection="ordNoList" item="item" index="index"  open="(" close=")" separator=",">
+					#{item}
+				</foreach>
+			</if>
+			<if test="ordDtlNoArr != null">
+		   AND OD.ORD_DTL_NO IN
+				<foreach collection="ordDtlNoArr" item="item" index="index"  open="(" close=")" separator=",">
+					#{item}
+				</foreach>
+			</if>
+		   AND O.DISP_YN = 'Y'
+		</where>
+		 ORDER BY OD.ORD_DTL_NO
+	</select>
+	
+	<!-- 사용 상품권 정보 조회 -->
+	<select id="getUsedGiftcardInfo" parameterType="Order" resultType="GiftCard">
+		/* TscOrderChange.getUsedGiftcardInfo */
+		SELECT CGH.ORD_NO
+			 , CGH.ORD_DTL_NO
+			 , SUM(CGH.GFCD_AMT) AS GFCD_AMT
+		  FROM TB_CUST_GIFTCARD_HST CGH
+		 INNER JOIN TB_CUST_GIFTCARD CG
+		    ON CG.CUST_GFCD_SQ = CGH.CUST_GFCD_SQ
+		 WHERE CGH.CUST_NO = #{custNo}
+		   AND CGH.ORD_NO = #{ordNo}
+		<if test="ordDtlNoArr != null">
+		   AND CGH.ORD_DTL_NO IN
+			<foreach collection="ordDtlNoArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		   AND OCCUR_GB = 'G074_12'
+		   AND NOW() BETWEEN CG.USE_ST_DATE AND CG.USE_EXP_DATE
+		 GROUP BY CGH.ORD_NO, CGH.ORD_DTL_NO
+		 ORDER BY CGH.ORD_NO, CGH.ORD_DTL_NO
+	</select>
+	
+	<!-- 사용 포인트 정보 조회 -->
+	<select id="getUsedPointInfo" parameterType="Order" resultType="Point">
+		/* TscOrderChange.getUsedPointInfo */
+		SELECT CPH.ORD_NO
+			 , CPH.ORD_DTL_NO
+			 , SUM(CPH.PNT_AMT) AS PNT_AMT
+		  FROM TB_CUST_POINT_HST CPH
+		  INNER JOIN TB_CUST_POINT CP
+		  ON CP.CUST_PNT_SQ = CPH.CUST_PNT_SQ
+		 WHERE CPH.CUST_NO = #{custNo}
+		   AND CPH.ORD_NO = #{ordNo}
+		<if test="ordDtlNoArr != null">
+		   AND CPH.ORD_DTL_NO IN
+			<foreach collection="ordDtlNoArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		   AND CPH.OCCUR_GB = 'G069_10'
+		   AND CP.EXP_BE_DT <![CDATA[>]]> NOW()
+		   AND CP.EXP_CMP_DT IS NULL
+		 GROUP BY CPH.ORD_NO, CPH.ORD_DTL_NO
+		 ORDER BY CPH.ORD_NO, CPH.ORD_DTL_NO
+	</select>
+</mapper>

+ 38 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfPoint.xml

@@ -105,4 +105,42 @@
 		GROUP BY CD_NM, PNT_AMT, GOODS_NM, CD,OCCUR_DTL_DESC, TCHP.UPD_DT
 		GROUP BY CD_NM, PNT_AMT, GOODS_NM, CD,OCCUR_DTL_DESC, TCHP.UPD_DT
 		ORDER BY TCHP.UPD_DT DESC;
 		ORDER BY TCHP.UPD_DT DESC;
 	</select>
 	</select>
+	
+	<!-- 전체내역 조회-->
+	<select id="getAllPointList" parameterType="Point" resultType="Point">
+		/* TsfPoint.getAllPointList */
+		SELECT
+		CASE   TCC.CD_NM
+		WHEN   '포인트사용' THEN '구매 사용'
+		WHEN   '상품평승인취소' THEN '구매 취소'
+		WHEN   '기타' THEN '관리자'
+		WHEN   '포인트소멸' THEN '소멸'
+		WHEN   '예정포인트적립' THEN '상품 구매'
+		WHEN   '상품평승인' THEN '리뷰'
+		WHEN   '온라인이벤트' THEN '이벤트'
+		WHEN   '기타' THEN '관리자'
+		END AS OCCUR_GB ,	
+		CASE   TCC.CD  	
+		WHEN   'G069_10' THEN TG.GOODS_NM
+		WHEN   'G069_12' THEN TG.GOODS_NM 
+		WHEN   'G069_20' THEN TG.GOODS_NM 
+		WHEN   'G069_21' THEN TG.GOODS_NM
+		WHEN   'G069_30' THEN TCHP.OCCUR_DTL_DESC
+		WHEN   'G069_90' THEN TCHP.OCCUR_DTL_DESC
+		WHEN   'G069_99' THEN TCHP.OCCUR_DTL_DESC
+		END AS OCCUR_DTL_DESC
+			 , TCHP.PNT_AMT AS pntAmt
+			 , TCHP.UPD_DT  AS pntUploadDt
+		FROM TB_CUST_POINT_HST TCHP
+		INNER JOIN TB_COMMON_CODE TCC
+		ON TCC.CD = TCHP.OCCUR_GB
+		INNER JOIN TB_ORDER_DETAIL TOD
+		ON TOD.ORD_NO = TCHP.ORD_NO
+		INNER JOIN TB_GOODS TG 
+		ON TG.GOODS_CD = TOD.GOODS_CD 
+		WHERE TCHP.CUST_NO =  #{custNo}
+		AND TCHP.OCCUR_GB IN ('G069_10','G069_12','G069_20','G069_21','G069_30','G069_90','G069_99')
+		GROUP BY CD_NM, PNT_AMT, GOODS_NM, CD,OCCUR_DTL_DESC, TCHP.UPD_DT
+		ORDER BY TCHP.UPD_DT DESC;
+	</select>
 </mapper>
 </mapper>

+ 15 - 7
src/main/resources/config/application-locd.yml

@@ -35,7 +35,7 @@ upload:
         target.path: /WIDE/workspace/files/data/style24/Upload/ProductImage
         target.path: /WIDE/workspace/files/data/style24/Upload/ProductImage
         max.size: 10
         max.size: 10
         allow.extension: jpg|gif|jpeg
         allow.extension: jpg|gif|jpeg
-        view: //ldimage.style24.com/Upload/ProductImage
+        view: //image.istyle24.com/Upload/ProductImage
     image:
     image:
         target.path: /WIDE/workspace/files/data/style24
         target.path: /WIDE/workspace/files/data/style24
         max.size: 10
         max.size: 10
@@ -56,9 +56,17 @@ download.path: /WIDE/workspace/files/data
 
 
 # PG
 # PG
 pg:
 pg:
-    nicepay:
-        merchantId: nictest00m
-        merchantKey: 33F49GnCMS1mFYlGXisbUDzVf2ATWCl9k3R++d5hDd3Frmuos/XLx8XhXpe+LDYAbpGKZYSwtlyyLOtS/8aD7A==
-        log.path: /WIDE/workspace/logs/wivis
-        account.cert.url: https://webapi.nicepay.co.kr/api/checkBankAccountAPI.jsp
-        vbank.refund.url: https://webapi.nicepay.co.kr/v2/api/merchant/vbank_refund.jsp
+    kcp:
+        log.dir: D:\\WIDE\\workspace\\webapps\\style24\\STYLE24\\style24.front\\src\\main\\webapp\\logs
+        gw:
+            url: testpaygw.kcp.co.kr
+            port: 8090
+        js.url: https://testpay.kcp.co.kr/plugin/payplus_web.jsp
+        server: false
+        site:
+            cd: T0007
+            key: 4Ho4YsuOZlLXUZUdOxM1Q7X__
+            name: KCP TEST SHOP
+        log.level: 3
+        module.type: 01
+        tx.mode: 0

+ 56 - 0
src/main/resources/config/application-tsit.yml

@@ -0,0 +1,56 @@
+spring:
+    profiles:
+        active: tsit
+    cache.type: redis
+    redis:
+        lettuce:
+            pool:
+                max-active: 10
+                max-idle: 10
+                min-idle: 2
+        host: localhost
+        port: 6379
+        password:
+
+# SSL Server
+has-ssl: false
+
+logging:
+    config: classpath:log/logback-tsit.xml
+
+domain:
+    admin: //tdadmin.style24.com
+    front: //tdfront.style24.com
+    style24: //tdfront.style24.com
+    image: //tdimage.style24.com
+    cdnimage: //tdimage.style24.com
+    uximage: //tdimage.style24.com
+
+upload:
+    default:
+        target.path: /TSIT/servers/files/data
+        max.size: 10
+        allow.extension: jpg|gif|jpeg|png|bmp|txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
+        view: //tdimage.style24.com
+    goods:
+        target.path: /TSIT/servers/files/data/goods
+        max.size: 10
+        allow.extension: jpg|gif|jpeg|png
+        view: //tdimage.style24.com/Upload/ProductImage
+    image:
+        target.path: /TSIT/servers/files/data
+        max.size: 10
+        allow.extension: jpg|gif|jpeg|png
+        view: //tdimage.style24.com
+    excel:
+        target.path: /TSIT/servers/files/data/excel
+        max.size: 10
+        allow.extension: xls|xlsx
+        view: //tdimage.style24.com/excel
+    sample:
+        target.path: /WIDE/workspace/files/data
+        max.size: 10
+        allow.extension: txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
+        view: //tdimage.style24.com/sample
+
+download.path: /TSIT/servers/files/data

+ 25 - 0
src/main/resources/log/logback-tsit.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration scan="true">
+	<property name="LOG_HOME" value="/TSIT/servers/logs/style24/front"/>
+	<property name="LOG_LEVEL" value="INFO"/>
+	
+	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<charset>utf-8</charset>
+			<pattern>[%d] [%thread] %-5level %logger{32} : %msg%n</pattern>
+		</encoder>
+	</appender>
+	
+	<logger name="org.springframework" level="ERROR"/>
+
+	<!-- SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다. -->
+	<logger name="jdbc.sqltiming" level="INFO" additivity="false">
+		<appender-ref ref="CONSOLE"/>
+	</logger>
+
+	<root level="${LOG_LEVEL}">
+		<appender-ref ref="CONSOLE"/>
+	</root>
+
+</configuration>

BIN
src/main/webapp/WEB-INF/lib/ConnectionKCP.jar


BIN
src/main/webapp/WEB-INF/lib/jPpcliE.jar


+ 246 - 0
src/main/webapp/WEB-INF/views/web/cart/cartChangeOptionPopupWeb.html

@@ -0,0 +1,246 @@
+<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">
+												<option th:data="${comp.goodsCd}" value="aa">TEST</option>
+												<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: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 id="">
+												<th:block th:each="color, index : ${comp.cartColorList}">
+												<option 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">
+	$(document).ready(function() {
+
+	})
+
+	// 세트상품 컬러 변경시
+	$(".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") {
+			alert("자사 일반");
+		} else {
+			alert("입점업체");
+		}
+
+		$.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();
+			}
+		});
+	}
+
+	$(".closeCartOptionModal").on("click", function() {
+		$(".cartOptionModal").html("");
+	});
+</script>
+
+</div>
+<a href="#close-modal" rel="modal:close" class="close-modal closeCartOptionModal">Close</a>
+</html>

+ 80 - 34
src/main/webapp/WEB-INF/views/web/cart/cartListAjaxFormWeb.html

@@ -83,7 +83,7 @@
 										<div class="info_box">
 										<div class="info_box">
 											<p class="od_name">
 											<p class="od_name">
 												<a href="">
 												<a href="">
-													<span class="brand" th:text="${cart.brandNm}"></span>
+													<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 th:if="${!#strings.isEmpty(cart.delvResDt)}" class="reserv_date" th:text="|${cart.delvResDt} 배송예정|"></span>
 													<span class="name" th:text="${cart.goodsNm}"></span>
 													<span class="name" th:text="${cart.goodsNm}"></span>
 												</a>
 												</a>
@@ -96,7 +96,7 @@
 											</p>
 											</p>
 
 
 											<p class="od_modify">
 											<p class="od_modify">
-												<button type="button" class="btn_opt_pop"><span>옵션/수량변경</span></button>
+												<button type="button" class="btn_opt_pop" th:onclick="|changeCartOptCd(${cart.cartSq})|"><span>옵션/수량변경</span></button>
 											</p>
 											</p>
 											<!-- 다다익선 적용 -->
 											<!-- 다다익선 적용 -->
 											<div class="od_moresale applyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}">
 											<div class="od_moresale applyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}">
@@ -215,7 +215,7 @@
 										<div class="info_box">
 										<div class="info_box">
 											<p class="od_name">
 											<p class="od_name">
 												<a href="">
 												<a href="">
-													<span class="brand" th:text="${cart.brandNm}"></span>
+													<span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
 													<span class="name" th:text="${cart.goodsNm}"></span>
 													<span class="name" th:text="${cart.goodsNm}"></span>
 												</a>
 												</a>
 											</p>
 											</p>
@@ -226,7 +226,7 @@
 												<span class="count">수량:<em th:text="${cart.goodsQty}"></em>개</span>
 												<span class="count">수량:<em th:text="${cart.goodsQty}"></em>개</span>
 											</p>
 											</p>
 											<p class="od_modify">
 											<p class="od_modify">
-												<button type="button" class="btn_opt_pop"><span>옵션/수량변경</span></button>
+												<button type="button" class="btn_opt_pop" th:onclick="|changeCartOptCd(${cart.cartSq})|"><span>옵션/수량변경</span></button>
 											</p>
 											</p>
 											<!-- 다다익선 적용 -->
 											<!-- 다다익선 적용 -->
 											<div class="od_moresale applyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}">
 											<div class="od_moresale applyTmtb" th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}">
@@ -385,6 +385,15 @@
 	<!-- // CONT-BODY -->
 	<!-- // CONT-BODY -->
 </form>
 </form>
 
 
+<!-- 옵션변경 팝업 -->
+<div class="modal fade od_pop opt_modify_pop" id="optModifyPop" tabindex="-1" role="dialog" aria-labelledby="optModifyLabel" aria-hidden="true"></div>
+<!-- //옵션변경 팝업 -->
+
+
+<!-- KCP PG TEST -->
+<form name="order_info" method="post" action="pp_cli_hub.jsp" >
+</form>
+
 <script th:inline="javascript">
 <script th:inline="javascript">
 	let sumRealPayAmt = [[${order.sumRealPayAmt + order.totDelvFee}]];
 	let sumRealPayAmt = [[${order.sumRealPayAmt + order.totDelvFee}]];
 	let totDcAmt = [[${order.totDcAmt}]];
 	let totDcAmt = [[${order.totDcAmt}]];
@@ -410,6 +419,58 @@
 
 
 		// 다다익선 할인 대상(미적용) 리스트
 		// 다다익선 할인 대상(미적용) 리스트
 		notApplyTmtbAreaList();
 		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 = "C";
+		temp.afLinkCd = "afLinkCd";
+		temp.ithrCd = "G027_ZZZ";
+		temp.contentsLoc = "G028_YYY";
+		temp.planDtlSq = "123";
+		compsList.push(temp);
+
+		temp.goodsCd = "STYS00000042";
+		temp.itemCd = "14373769";
+		temp.optCd = "블루110";
+		temp.goodsQty = 1;
+		temp.goodsType = "G056_S";
+		temp.cartGb = "C";
+		temp.afLinkCd = "afLinkCd";
+		temp.ithrCd = "G027_ZZZ";
+		temp.contentsLoc = "G028_YYY";
+		temp.planDtlSq = "123";
+		compsList.push(temp);
+
+		temp.goodsCd = "STYS00000042";
+		temp.itemCd = "14373770";
+		temp.optCd = "아이보리110";
+		temp.goodsQty = 1;
+		temp.goodsType = "G056_S";
+		temp.cartGb = "C";
+		temp.afLinkCd = "afLinkCd";
+		temp.ithrCd = "G027_ZZZ";
+		temp.contentsLoc = "G028_YYY";
+		temp.planDtlSq = "123";
+		compsList.push(temp);
+
+		cfnAddCart(compsList); */
+
+
+		$.ajax( {
+			type: "POST",
+			url : '/kcp/test',
+			contentType: 'application/json',
+			dataType : 'json',
+			success : function(result) {
+				alert(result.message);
+			}
+		});
 	});
 	});
 
 
 	function notApplyTmtbAreaList() {
 	function notApplyTmtbAreaList() {
@@ -607,7 +668,7 @@
 				}
 				}
 			}
 			}
 		});
 		});
-	};
+	}
 
 
 	//다다익선 적용내역 보기
 	//다다익선 적용내역 보기
 	$(document).on('click','.shopping_bag .part_deliver .btn_moresale',function(e){
 	$(document).on('click','.shopping_bag .part_deliver .btn_moresale',function(e){
@@ -850,7 +911,7 @@
 				obj.tmtbNm = cart.qtyTmtbNm;
 				obj.tmtbNm = cart.qtyTmtbNm;
 				obj.currPrice = cart.currPrice;
 				obj.currPrice = cart.currPrice;
 				obj.goodsNm = cart.goodsNm;
 				obj.goodsNm = cart.goodsNm;
-				obj.brandNm = cart.brandNm;
+				obj.brandNm = cart.brandEnm + " " + cart.brandKnm;
 				obj.imgPath = order.imgPath1 + "/" + cart.sysImgNm;
 				obj.imgPath = order.imgPath1 + "/" + cart.sysImgNm;
 
 
 				notApplyQtyTmtbList.push(obj);
 				notApplyQtyTmtbList.push(obj);
@@ -882,33 +943,18 @@
 	}
 	}
 
 
 	//옵션변경 팝업열기
 	//옵션변경 팝업열기
-	$(document).on('click','.btn_opt_pop',function(e){
-		$("#optModifyPop").modal("show");
-		return false;
-	});
-
-	//상품옵션변경 팝업 > 수량조절
-	$(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 = $('.opt_modify_pop .opt_color ul li a.on img').attr('alt');
-		$('.opt_modify_pop .opt_color .opt_header .color').text(optColor);
-		return false;
-	});
+	function changeCartOptCd(cartSq) {
+		$.ajax( {
+			type: "POST",
+			url : '/cart/goods/info',
+			dataType : 'html',
+			data : {cartSq : cartSq},
+			success : function(result) {
+				//fnChangeCartListInfo(result);
+				$("#optModifyPop").html(result);
+				$("#optModifyPop").modal("show");
+			}
+		});
+	}
 </script>
 </script>
 </html>
 </html>

+ 22 - 143
src/main/webapp/WEB-INF/views/web/cart/cartListFormWeb.html

@@ -253,144 +253,6 @@
 </div>
 </div>
 <!-- // container -->
 <!-- // container -->
 
 
-<!-- 옵션변경 팝업 -->
-<div class="modal fade od_pop opt_modify_pop" id="optModifyPop" tabindex="-1" role="dialog" aria-labelledby="optModifyLabel" aria-hidden="true">
-    <div class="modal-dialog" role="document">
-        <div class="modal-content">
-            <div class="modal-header">
-                <h5 class="modal-title" id="optModifyLabel">옵션변경</h5>
-                <div class="prod_title">
-                    <span class="brand">버카루 BUCKROO</span>
-                    <span class="name">남성 제기장 스웨이드 자켓</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">
-                                    <li><span class="thumb"><img src="/images/pc/thumb/tmp_pdDetail1.jpg" alt=""></span></li>
-                                    <li><span class="thumb"><img src="/images/pc/thumb/tmp_pdDetail2.jpg" alt=""></span></li>
-                                    <li><span class="thumb"><img src="/images/pc/thumb/tmp_pdDetail3.jpg" alt=""></span></li>
-                                    <li><span class="thumb"><img src="/images/pc/thumb/tmp_pdDetail4.jpg" alt=""></span></li>
-                                    <li><span class="thumb"><img src="/images/pc/thumb/tmp_pdDetail5.jpg" alt=""></span></li>
-                                    <li><span class="thumb"><img src="/images/pc/thumb/tmp_pdDetail6.jpg" alt=""></span></li>
-                                </ul>
-                            </div>
-                            <div class="area_order">
-                                <div class="opt_color">
-                                    <div class="opt_header">
-                                        <span class="title">컬러</span>
-                                        <span class="color">그레이</span>
-                                    </div>
-                                    <ul>
-                                        <li>
-                                            <a href="" class="on">
-                                                <img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="그레이">
-                                            </a>
-                                        </li>
-                                        <li>
-                                            <a href="">
-                                                <img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="베이지">
-                                            </a>
-                                        </li>
-                                        <li>
-                                            <a href="">
-                                                <img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="그린">
-                                            </a>
-                                        </li>
-                                        <li>
-                                            <a href="">
-                                                <img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="핑크">
-                                            </a>
-                                        </li>
-                                        <li>
-                                            <a href="">
-                                                <img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="민트">
-                                            </a>
-                                        </li>
-                                        <li>
-                                            <a href="">
-                                                <img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="블랙">
-                                            </a>
-                                        </li>
-                                    </ul>
-                                </div>
-                                <div class="opt_size">
-                                    <div class="opt_header">
-                                        <span class="title">사이즈</span>
-                                    </div>
-                                    <div class="form_field">
-                                        <div>
-                                            <input type="radio" name="rdi-optsize" id="rdi-optsize1" value="" checked="">
-                                            <label for="rdi-optsize1"><span>90</span></label>
-                                        </div>
-                                        <div>
-                                            <input type="radio" name="rdi-optsize" id="rdi-optsize2" value="" disabled>
-                                            <label for="rdi-optsize2"><span>95</span></label>
-                                        </div>
-                                        <div>
-                                            <input type="radio" name="rdi-optsize" id="rdi-optsize3" value="">
-                                            <label for="rdi-optsize3"><span>100</span></label>
-                                        </div>
-                                        <div>
-                                            <input type="radio" name="rdi-optsize" id="rdi-optsize4" value="">
-                                            <label for="rdi-optsize4"><span>105</span></label>
-                                        </div>
-                                        <div>
-                                            <input type="radio" name="rdi-optsize" id="rdi-optsize5" value="">
-                                            <label for="rdi-optsize5"><span>110</span></label>
-                                        </div>
-                                        <div>
-                                            <input type="radio" name="rdi-optsize" id="rdi-optsize6" value="">
-                                            <label for="rdi-optsize6"><span>115</span></label>
-                                        </div>
-                                        <div>
-                                            <input type="radio" name="rdi-optsize" id="rdi-optsize7" value="">
-                                            <label for="rdi-optsize7"><span>free</span></label>
-                                        </div>
-                                    </div>
-                                </div>
-                                <div class="opt_select">
-                                    <div class="opt_header">
-                                        <span class="title">옵션선택</span>
-                                    </div>
-                                    <div class="form_field">
-                                        <select id="">
-                                            <option value="" rel="icon-temperature">카키/95</option>
-                                            <option value="">카키/100</option>
-                                            <option value="">카키/105</option>
-                                            <option value="">카키/110</option>
-                                            <option value="">옐로우/95</option>
-                                            <option value="">옐로우/100</option>
-                                            <option value="">옐로우/105</option>
-                                            <option value="">옐로우/110</option>
-                                        </select>
-                                    </div>
-                                </div>
-                                <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="" maxlength="3" style='ime-mode:disabled' value="1" />
-                                        <span class="plus"><span class="sr-only">추가</span></span>
-                                    </div>
-                                </div>
-                                <div class="btn_group_block">
-                                    <button class="btn btn_dark btn_block" id=""><span>옵션변경</span></button>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<!-- //옵션변경 팝업 -->
 <!-- 쿠폰사용안내 팝업 -->
 <!-- 쿠폰사용안내 팝업 -->
 <div class="modal fade od_pop cpinfo_pop" id="cpinfoPop" tabindex="-1" role="dialog" aria-labelledby="cpinfoLabel" aria-hidden="true">
 <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-dialog" role="document">
@@ -413,8 +275,6 @@
 <link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css" />
 <link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css" />
 
 
 <script type="text/javascript">
 <script type="text/javascript">
-    /* xodud1202 수정 */
-
     $(document).ready(function() {
     $(document).ready(function() {
         // 장바구니 상품 정보 select
         // 장바구니 상품 정보 select
         getCartList();
         getCartList();
@@ -434,10 +294,29 @@
         });
         });
     }
     }
 
 
-    /* // xodud1202 수정 */
-
-
+    //상품옵션변경 팝업 > 수량조절
+    $(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(){
     $(function(){
         //추천상품 슬라이드
         //추천상품 슬라이드

+ 3543 - 0
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -0,0 +1,3543 @@
+<!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  : GoodsDetailFormWeb.html
+ * @desc	: 상품상세 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE		 AUTHOR	  DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.02   eskim	   최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css" />
+<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.0/js/swiper.min.js"></script>
+<div id="container" class="container pd" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}">
+	<th:block th:include="~{web/goods/GoodsIncludeFormWeb :: goodsNaviForm}"></th:block>
+	
+	<div class="wrap">
+		<!-- 상품 대표설명 -->
+		<div class="content pd_detail">
+			<div class="cont_head">
+				<h3 class="sr-only">상품 대표설명</h3>
+			</div>
+			<div class="cont_body">
+				<!-- CONT-BODY -->
+				<div class="item_detail">
+					<div class="area_pic">
+						<div class="thumb_nav_wrap"  th:if="${goodsImgList != null and !goodsImgList.empty}" >
+							<div class="thumbnav">
+									<div class="swiper-container">
+										<div class="swiper-wrapper">
+										<th:block th:each="goodsImg, status : ${goodsImgList}">
+											<div class="swiper-slide" th:classappend="${status.first}? 'on' : ''"><a th:href="${'#navLocate'+ status.count}"><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt=""></span></a></div>
+										</th:block>	
+										</div>
+									</div>
+									<div class="swiper-button-next"></div>
+									<div class="swiper-button-prev"></div>
+								</div>
+						</div>
+						<div class="thumb_list_wrap"  th:if="${goodsImgList != null and !goodsImgList.empty}" >
+							<ul>
+								<th:block th:each="goodsImg, status : ${goodsImgList}">
+								<li th:id="${'navLocate'+ status.count}"  th:classappend="${status.first}? 'on' : ''"><a href=""><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt=""></span></a></li>
+								</th:block>
+							</ul>
+						</div>
+					</div>
+					<div class="area_desc">
+						<div class="desc_wrap">
+							<div class="timer_box">
+								<p>
+									<span class="tit">남은시간</span>
+									<span class="timer">
+										<em id="d-days">27</em>
+										<em id="d-hours">21</em>
+										<em id="d-minutes">21</em>
+										<em id="d-seconds">07</em>
+									</span>
+								</p>
+							</div>
+							<div class="descript_box">
+								<div class="desc_top">
+									<a href="" class="btn_brand">NBA 키즈</a>
+									<button type="button" class="itemShare">상품 공유하기</button>
+									<button type="button" class="itemLike">관심상품 추가</button>
+								</div>
+								<div class="desc_info">
+									<div class="title_blk">
+										<span class="codenumber">
+											N204TJ112P
+										</span>
+										<span class="comment">
+											#가을 느낌 물씬!
+										</span>
+										<span class="name">
+											유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업
+										</span>
+									</div>
+									<div class="price_blk">
+										<span class="sale_percent">
+											30%
+										</span>
+										<span class="sale_price">
+											<em>134,100</em>원
+										</span>
+										<del class="org_price">
+											149,000원
+										</del>
+										<span class="save_point">
+											스타일포인트 9,999P 적립예정
+										</span>
+										<button type="button" id="btn_saleCoupon_pop" class="btn btn_primary btn_sm btn_coupon"><span>쿠폰받기</span></button>
+									</div>
+								</div>
+								<div class="desc_status">
+									<p>예약판매 상품 -2020.12.30 출고예정</p>
+								</div>
+							</div>
+							<div class="benefit_box">
+								<dl>
+									<div class="bnf_shopping">
+										<dt>쇼핑혜택</dt>
+										<dd>
+											<span>최대 15% 쿠폰 할인</span> 
+											<span>99개 이상 구매 시 9,999,999원 할인</span>
+											<span>미니언즈 우산 증정</span>
+											<button type="button" id="btn_bnfShopping_pop" class="btn_popup"><span>자세히</span></button>
+										</dd>
+									</div>
+									<div class="bnf_card">
+										<dt>카드혜택</dt>
+										<dd>
+											<span>국민카드 5% 즉시할인</span>
+											<span>신용카드 무이자 혜택</span>
+											<button type="button" id="btn_bnfCard_pop" class="btn_popup"><span>자세히</span></button>
+										</dd>
+									</div>
+								</dl>
+							</div>
+							<div class="option_box">
+								<div class="opt_color">
+									<div class="opt_header">
+										<span class="title">컬러</span>
+										<span class="color">그레이</span>
+									</div>
+									<ul>
+										<li>
+											<a href="" class="on">  <!-- 해당 컬러 상품페이지로 이동 -->
+												<img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="그레이">
+											</a>
+										</li>
+										<li>
+											<a href="">
+												<img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="베이지">
+											</a>
+										</li>
+										<li>
+											<a href="">
+												<img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="그린">
+											</a>
+										</li>
+										<li>
+											<a href="">
+												<img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="핑크">
+											</a>
+										</li>
+										<li>
+											<a href="">
+												<img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="민트">
+											</a>
+										</li>
+										<li>
+											<a href="">
+												<img src="/images/pc/thumb/tmp_cartColor1.jpg" alt="블랙">
+											</a>
+										</li>
+									</ul>
+								</div>
+								<div class="opt_size">
+									<div class="opt_header">
+										<span class="title">사이즈</span>
+										<span class="size">
+											<em>95</em>
+											<em>(+1,000원)</em>
+										</span>
+										<button type="button" id="btn_infoSize_pop" class="btn_popup"><span>사이즈정보</span></button>
+									</div>
+									<div class="form_field">
+										<div>
+											<input type="radio" name="rdi-optsize" id="rdi-optsize1" value="" checked="">
+											<label for="rdi-optsize1"><span>90</span></label>
+										</div>
+										<div>
+											<input type="radio" name="rdi-optsize" id="rdi-optsize2" value="" disabled="">
+											<label for="rdi-optsize2"><span>95</span></label>
+										</div>
+										<div>
+											<input type="radio" name="rdi-optsize" id="rdi-optsize3" value="">
+											<label for="rdi-optsize3"><span>100</span></label>
+										</div>
+										<div>
+											<input type="radio" name="rdi-optsize" id="rdi-optsize4" value="">
+											<label for="rdi-optsize4"><span>105</span></label>
+										</div>
+										<div>
+											<input type="radio" name="rdi-optsize" id="rdi-optsize5" value="">
+											<label for="rdi-optsize5"><span>110</span></label>
+										</div>
+										<div>
+											<input type="radio" name="rdi-optsize" id="rdi-optsize6" value="">
+											<label for="rdi-optsize6"><span>115</span></label>
+										</div>
+										<div>
+											<input type="radio" name="rdi-optsize" id="rdi-optsize7" value="">
+											<label for="rdi-optsize7"><span>free</span></label>
+										</div>
+										<div>
+											<input type="radio" name="rdi-optsize" id="rdi-optsize8" value="">
+											<label for="rdi-optsize8"><span>size1</span></label>
+										</div>
+										<div>
+											<input type="radio" name="rdi-optsize" id="rdi-optsize9" value="">
+											<label for="rdi-optsize9"><span>size2</span></label>
+										</div>
+									</div>
+								</div>
+								<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>
+											</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>
+									</form>
+								</div>					  
+								<!-- 해당 상품 품절시 노출 -->
+								<div class="info_restock">
+									<a href="" id="btn_pushRestock_pop" class="btn_popup">재입고 시 알림을 받아보세요</a>
+								</div>
+								<!-- //해당 상품 품절시 노출 -->
+								<div class="opt_result">
+									<div class="result_item">
+										<div class="opt_header">
+											<span class="item_name">[상품1] 남성 테이퍼드핏 기모면 올밴딩 팬트</span>
+											<span class="item_option">다크그레이/XXL</span>
+										</div>
+										<div class="number_count">
+											<span class="minus"><em class="sr-only">감소</em></span>
+											<input type="text" name="" maxlength="3" style="ime-mode:disabled" value="1">
+											<span class="plus"><em class="sr-only">추가</em></span>
+										</div>
+										<div class="item_price">
+											<p><em>99,999,999</em>원</p>
+										</div>
+										<button type="button" class="btn_delete_item"><span>삭제</span></button>
+									</div>
+									<div class="result_item">
+										<div class="opt_header">
+											<span class="item_name">[상품1] 남성 테이퍼드핏 기모면 올밴딩 팬트</span>
+											<span class="item_option">블루그레이/S</span>
+										</div>
+										<div class="number_count">
+											<span class="minus"><em class="sr-only">감소</em></span>
+											<input type="text" name="" maxlength="3" style="ime-mode:disabled" value="1">
+											<span class="plus"><em class="sr-only">추가</em></span>
+										</div>
+										<div class="item_price">
+											<p><em>99,999,999</em>원</p>
+										</div>
+										<button type="button" class="btn_delete_item"><span>삭제</span></button>
+									</div>
+								</div>
+								<div class="opt_count">
+									<div class="opt_header">
+										<span class="title">수량</span>
+									</div>
+									<div class="number_count">
+										<span class="minus"><em class="sr-only">감소</em></span>
+										<input type="text" name="" maxlength="3" style="ime-mode:disabled" value="1">
+										<span class="plus"><em class="sr-only">추가</em></span>
+									</div>
+								</div>
+							</div>
+							<div class="price_box">
+								<p class="number">
+									총&nbsp;<span>99</span>개
+								</p>
+								<p class="price">
+									<span>
+										99,999,999<em>원</em>
+									</span>
+								</p>
+							</div>
+							<div class="btn_box">
+								<div class="btn_group_block ui_row">
+									<div class="ui_col_6">
+										<button id="btn_add_cart" class="btn btn_dark btn_block"><span>쇼핑백</span></button>
+									</div>
+									<div class="ui_col_6">
+										<button class="btn btn_primary btn_block" id=""><span>바로구매</span></button>
+									</div>
+								</div>
+								<div class="btn_group_block ui_row">
+									<div class="ui_col_12">
+										<button class="btn btn_dark btn_block" id="" disabled=""><span>SOLD OUT</span></button>
+									</div>
+								</div>
+							</div>
+							<div class="npay_box">
+								<a href="">네이버id로 간편구매~</a>
+							</div>
+							<div class="exinfo_box">
+								<ul>
+									<li>
+										<div class="ex_review">
+											<a href="" id="btn_pdReview_pop">	
+												<span class="tit">리뷰<em class="number">(9,999+)</em></span>
+												<div class="star_score">
+													<span class="star">
+														<em class="progbar" style="width:86%;"></em> <!-- 평점 style로 표기 -->
+													</span>
+													<span class="score">4.3점</span>
+												</div>
+											</a>
+										</div>
+										<!-- 베스트 리뷰 등록시 노출 -->
+										<div class="best_review">
+											<a href="" id="btn_pdBestReview_pop">
+												<div class="pic">
+													<span class="thumb mov" style="background-image:url('/images/pc/thumb/tmp_pdLookbook3.jpg');"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+												</div>
+												<div class="star_score">
+													<span class="star">
+														<em class="progbar" style="width:70%;"></em> <!-- 평점 style로 표기 -->
+													</span>
+													<em class="ico ico_besttag"></em>
+												</div>
+												<div class="txt_best_review">
+													<p>
+														옷이 부들부들 촉감이 너무 좋습니다~ 보는 것 보다 실제 입으니깐 더 멋스러운 것 같아요! 차분한 그레이 라서 지금 가을가을한 계절에 잘 어울리는 같아요. 옷이 부들부들 촉감이 너무 좋습니다~ 보는 것 보다 실제 입으니깐 더 멋스러운 것 같아요! 차분한 그레이 라서 지금 가을가을한 계절에 잘 어울리는 같아요.
+													</p>
+												</div>
+											</a>
+										</div>
+										<!-- //베스트 리뷰 등록시 노출 -->
+									</li>
+									<li>
+										<div class="ex_qna">
+											<a href="" id="btn_pdQnaList_pop">
+												<span class="tit">문의<em class="number">(9,999+)</em></span>
+											</a>
+										</div>
+									</li>
+									<li>
+										<div class="ex_shipping">
+											<a href="" id="btn_pdDeliveryPop">
+												<span class="tit">배송/교환/반품</span>
+												<!-- 해당 배송정보 선택노출 -->
+												<span class="txt_shippingfee">배송비 2,500원</span>
+												<span class="txt_shippingfee">배송비 2,500원 (4,000원 이상 무료배송)</span>
+												<span class="txt_shippingfee">무료배송</span>
+												<span class="txt_shippingfee">총알배송(오전 10시까지 주문 시)</span>
+												<!-- //해당 배송정보 선택노출 -->
+											</a>
+										</div>
+									</li>
+								</ul>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+		<!-- 상품 대표설명 -->
+		<!-- 함께하면 할인되는 다다익선 상품 -->
+		<div class="content wide pd_together">
+			<div class="cont_head">
+				<h3 class="subH1 t_c mb40">함께하면 할인되는 다다익선 상품</h3>
+			</div>
+			<div class="cont_body">
+				<!-- CONT-BODY -->
+				<div class="area_slider">
+					<div class="swiper-container">
+						<div class="swiper-wrapper">
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
+												<button type="button" class="itemLike">관심상품 추가</button>
+											</div>
+											<p class="itemBrand">BRAND NAME1</p>
+											<div class="itemName">남성 로고 자카드 방풍 패딩</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class="itemPercent">10%</span>
+											</p>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
+												<button type="button" class="itemLike">관심상품 추가</button>
+											</div>
+											<p class="itemBrand">BRAND NAME1</p>
+											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class="itemPercent">10%</span>
+											</p>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
+												<button type="button" class="itemLike">관심상품 추가</button>
+											</div>
+											<p class="itemBrand">BRAND NAME1</p>
+											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class="itemPercent">10%</span>
+											</p>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
+												<button type="button" class="itemLike">관심상품 추가</button>
+											</div>
+											<p class="itemBrand">BRAND NAME1</p>
+											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class="itemPercent">10%</span>
+											</p>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
+												<button type="button" class="itemLike">관심상품 추가</button>
+											</div>
+											<p class="itemBrand">BRAND NAME1</p>
+											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class="itemPercent">10%</span>
+											</p>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
+												<button type="button" class="itemLike">관심상품 추가</button>
+											</div>
+											<p class="itemBrand">BRAND NAME1</p>
+											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class="itemPercent">10%</span>
+											</p>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
+												<button type="button" class="itemLike">관심상품 추가</button>
+											</div>
+											<p class="itemBrand">BRAND NAME1</p>
+											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class="itemPercent">10%</span>
+											</p>
+										</a>
+									</div>
+								</div>
+							</div>
+							<div class="swiper-slide">
+								<div class="item_prod">
+									<div class="item_state">
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
+												<button type="button" class="itemLike">관심상품 추가</button>
+											</div>
+											<p class="itemBrand">BRAND NAME1</p>
+											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+											<p class="itemPrice">80,100
+												<span class="itemPrice_original">89,000</span>
+												<span class="itemPercent">10%</span>
+											</p>
+										</a>
+									</div>
+								</div>
+							</div>
+						</div>
+						<!-- Add Scrollbar -->
+						<div class="swiper-scrollbar"></div> 
+					</div>
+				</div>
+				<!-- // CONT-BODY -->
+			</div>
+		</div>
+		<!-- // 함께하면 할인되는 다다익선 상품 -->
+		<!-- 상품상세정보 -->
+		<div class="content pd_descrp">
+			<div class="cont_head">
+				<h3 class="sr-only">상품상세정보</h3>
+			</div>
+			<div class="cont_body">
+				<!-- 상품설명 노출 -->
+				<div class="descrp_box">
+					<div class="desc_simple"> <!-- 상품 간략설명-->
+						<span class="tit_desc">사이드 밴딩으로 편안한 만능 슬랙스!</span>
+						<p class="ptxt01">
+							슬림핏에 사이드 밴딩으로 편안함을 더해준 슬랙스입니다. 슬림핏에 사이드 밴딩으로 편안함을 더해준 슬랙스입니다. 슬림핏에 사이드 밴딩으로 편안함을 더해준 슬랙스입니다. 슬림핏에 사이드 밴딩으로 편안함을 더해준 슬랙스입니다. 슬림핏에 사이드 밴딩으로 편안함을 더해준 슬랙스입니다. 슬림핏에 사이드 밴딩으로 편안함을 더해준 슬랙스입니다.
+						</p>
+					</div>
+					<div class="desc_character"> <!-- 상품특징 -->
+						<span class="tit_desc">상품특징</span>
+						<p class="ptxt01">
+							- 5가지(IV/BE/PK/BL/BK)의 파스텔톤의 따뜻한 컬러감<br>
+							- 안감 폴라폴리스 소재를 사용하여 따뜻하고 부드러운 착용감<br>
+							- 배색소재의 가슴패치 포켓으로 포인트를 줌<br>
+							- 소매에 발열 안감을 사용하여 보온성을 높여주고, 착용 시 부드러운 촉감으로 편안함을 제공<br>
+							- 디테일한 봉제 기법인 가이루빠 스티치 포인트 디자인<br>
+							- 지퍼플러 장식을 더해 완성도를 높여줌
+						</p>
+					</div>
+				</div>
+				<!-- //상품설명 노출 -->
+				<!-- 관리자 에디터입력 내용 노출 -->
+				<div class="mdhtml_box">
+					<!-- html 작성내용 -->
+					<a href="#" target="_blank"><img src="/images/pc/thumb/tmp_desc_bnr.jpg" width="1200" alt=""></a>
+					<div style="height:100px"></div><!-- 여백용 html -->
+					<div class="movblock">
+						<iframe src="https://www.youtube.com/embed/uEc8Q800a7w" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
+					</div>
+					<div style="height:100px"></div><!-- 여백용 html -->
+					<iframe width="560" height="315" src="https://www.youtube.com/embed/uEc8Q800a7w" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
+					<div style="height:100px"></div><!-- 여백용 html -->
+					<img src="/images/pc/thumb/tmp_desc_mds.jpg" alt="">
+					<!-- //html 작성내용 -->
+				</div>
+				<!-- //관리자 에디터입력 내용 노출 -->
+				<!-- 착용컷 노출 -->
+				<div class="view_outfit_box">
+					<span class="tit_view">OUTFIT VIEW</span>
+					<span class="model_info">(모델정보 : 185cm / 78kg / XL 착용)</span>
+					<div class="view">
+						<img src="/images/pc/thumb/tmp_outfit_desc1.jpg" alt="">
+						<img src="/images/pc/thumb/tmp_outfit_desc2.jpg" alt="">
+						<img src="/images/pc/thumb/tmp_outfit_desc3.jpg" alt="">
+					</div>
+				</div>
+				<!-- //착용컷 노출 -->
+				<!-- 상품컷 노출 -->
+				<div class="view_detail_box">
+					<span class="tit_view">PRODUCT VIEW</span>
+					<div class="view">
+						<img src="/images/pc/thumb/tmp_detail_desc1.jpg" alt="">
+						<img src="/images/pc/thumb/tmp_detail_desc2.jpg" alt="">
+					</div>
+				</div>
+				<!-- //상품컷 노출 -->
+				<!-- 원단 노출 -->
+				<div class="view_fabric_box">
+					<span class="tit_view">FABRIC</span>
+					<div class="view">
+						<img src="/images/pc/thumb/tmp_fabric_desc1.jpg" alt="">
+					</div>
+				</div>
+				<!-- //원단 노출 -->
+				<!-- 라벨 노출 -->
+				<div class="view_label_box">
+					<span class="tit_view">LABEL INFO</span>
+					<div class="view">
+						<span>
+							<img src="/images/pc/thumb/tmp_label_desc1.jpg" alt="">
+							<img src="/images/pc/thumb/tmp_label_desc2.jpg" alt="">
+						</span>
+					</div>
+				</div>
+				<!-- //라벨 노출 -->					
+				<!-- 브랜드 노출 -->
+				<div class="brand_box">
+					<p class="name">TBJ 티비제이</p>
+					<a href="" class="btn btn_default"><span>브랜드 홈 바로가기</span></a>
+				</div>
+				<!-- //브랜드 노출 -->
+				<!-- 상품필수정보 노출 -->
+				<div class="required_box">
+					<div class="area_infotbl">
+						<span class="title">상품고시정보</span>
+						<div class="tbl type1 mt30">
+							<table>
+								<tbody>
+									<tr>
+										<th>품목</th>
+										<td>의류</td>
+									</tr>
+									<tr>
+										<th>스타일</th>
+										<td>F94U-MD01XA60F0</td>
+									</tr>
+									<tr>
+										<th>시즌</th>
+										<td>겨울</td>
+									</tr>
+									<tr>
+										<th>제품소재</th>
+										<td>[겉감1]폴리에스터100% [겉감2]폴리에스터100% [충전재1]솜털(거위)50% 깃털(거위)50% [충전재2]폴리에스터100%</td>
+									</tr>
+									<tr>
+										<th>색상</th>
+										<td>BR,NV,BK</td>
+									</tr>
+									<tr>
+										<th>치수</th>
+										<td>FREE(여성),95,100,105</td>
+									</tr>
+									<tr>
+										<th>제조자/수입자</th>
+										<td>㈜에프알제이</td>
+									</tr>
+									<tr>
+										<th>제조국</th>
+										<td>베트남</td>
+									</tr>
+									<tr>
+										<th>세탁방법 및 취급시 주의사항</th>
+										<td>본제품은 손세탁이 효과적입니다. (세탁라벨참고)</td>
+									</tr>
+									<tr>
+										<th>제조연월</th>
+										<td>2019-06</td>
+									</tr>
+									<tr>
+										<th>품질보증기준</th>
+										<td>관련법 및 소비자분쟁해결기준에 따름</td>
+									</tr>
+									<tr>
+										<th>A/S 책임자와 전화번호</th>
+										<td>(주)아이스타일24 1544-5336</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+					</div>
+					<div class="area_kcl">
+						<i class="ico ico_kcl"></i>
+						<p class="tit normal">
+							어린이제품 안전인증 / 한국건설생활시험연구원(KCL)
+						</p>
+						<p class="normal">
+							인증번호: CB123A123-1234
+							<a href="http://www.safetykorea.kr/search/searchPop?certNum=XX00000-0000" target="_blank" class="linktxt3">상세보기</a>
+						</p>
+						<p class="t_info dot_info">
+							해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.
+						</p>
+					</div>
+					<div class="area_infotbl">
+						<span class="title">상품기본정보</span>
+						<div class="tbl type1 mt30">
+							<table>
+								<tbody>
+									<tr>
+										<th>상품코드</th>
+										<td>14443216</td>
+									</tr>
+									<tr>
+										<th>상품구분</th>
+										<td>병행수입</td>
+									</tr>
+									<tr>
+										<th>브랜드</th>
+										<td>TBJ</td>
+									</tr>
+									<tr>
+										<th>상품명</th>
+										<td>남성 테이퍼드 핏 겨울 기모면 스판 올 밴딩 팬츠</td>
+									</tr>
+									<tr>
+										<th>제조자</th>
+										<td>한세엠케이(주)</td>
+									</tr>
+									<tr>
+										<th>제조국</th>
+										<td>베트남</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+						<p class="t_info dot_info mt20">
+							주문제작 상품의 경우 주문 후 제작되어 판매되는 상품으로 제작 시점부터 반품/교환이 어려울 수 있습니다.
+						</p>
+					</div>
+				</div>
+				<!-- //상품필수정보 노출 -->
+			</div>
+			<div class="btn_more_box covered">
+				<button type="button" class="btn btn_default btn_md">
+					<span>상세정보 더보기</span>
+				</button>
+			</div>
+		</div>
+		<!-- //상품상세정보 -->
+		<!-- 이 상품과 함께 본 상품 -->
+		<div class="content wide pd_clickother">
+			<div class="cont_head">
+				<h3 class="subH1 t_c mb40">이 상품과 함께 본 상품</h3>
+			</div>
+			<div class="cont_body">
+				<!-- CONT-BODY -->
+				<div class="area_slider">
+						<div class="swiper-container">
+							<div class="swiper-wrapper">
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+							</div>
+						</div>
+						<!-- Add Pagination -->
+						<div class="swiper-pagination"></div>
+						<!-- Add Arrows -->
+						<div class="swiper-button-next"></div>
+						<div class="swiper-button-prev"></div>
+					</div>
+				<!-- // CONT-BODY -->
+			</div>
+		</div>
+		<!-- // 이 상품과 함께 본 상품 -->
+		<!-- STYLE24의 스타일링 추천 -->
+		<div class="content wide pd_recommend">
+			<div class="cont_head">
+				<h3 class="subH1 t_c mb40">STYLE24의 스타일링 추천</h3>
+			</div>
+			<div class="cont_body">
+				<!-- CONT-BODY -->
+				<div class="area_slider">
+						<div class="swiper-container">
+							<div class="swiper-wrapper">
+								<div class="swiper-slide">
+									<div class="page">
+										<div class="pic">
+											<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook1.jpg');"></span>
+											<!-- 상품피커 -->
+											<div class="item_picker" style="left:10%; top:69%;">
+												<button type="button"><span class="ico ico_picker"></span></button>
+												<div class="pick_descr">
+													<a href="">
+														상품명11
+													</a>
+												</div>
+											</div>
+											<!-- //상품피커 -->
+											<!-- 상품피커 -->
+											<div class="item_picker" style="left:50%; top:40%;">
+												<button type="button"><span class="ico ico_picker"></span></button>
+												<div class="pick_descr">
+													<a href="">
+														상품명12
+													</a>
+												</div>
+											</div>
+											<!-- //상품피커 -->	   
+											<!-- 상품피커 -->
+											<div class="item_picker" style="left:57%; top:62%;">
+												<button type="button"><span class="ico ico_picker"></span></button>
+												<div class="pick_descr">
+													<a href="">
+														상품명13
+													</a>
+												</div>
+											</div>
+											<!-- //상품피커 -->								   
+										</div>
+										<div class="item_wrap">
+											<div class="item_area">
+												<h5>
+													룩북 속 상품
+													<span data-font="lato">(11)</span>
+												</h5>
+												<div class="li_item">
+													<ul>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+													</ul>
+												</div>
+												<button type="button" class="btn btn_block btn_md"><span>모두 쇼핑백 담기</span></button>
+											</div>
+										</div>
+									</div>									
+								</div>
+								<div class="swiper-slide">
+									<div class="page">
+										<div class="pic">
+											<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook2.jpg');"></span>
+											<!-- 상품피커 -->
+											<div class="item_picker" style="left:24%; top:69%;">
+												<button type="button"><span class="ico ico_picker"></span></button>
+												<div class="pick_descr">
+													<a href="">
+														상품명11
+													</a>
+												</div>
+											</div>
+											<!-- //상품피커 -->
+											<!-- 상품피커 -->
+											<div class="item_picker" style="left:50%; top:40%;">
+												<button type="button"><span class="ico ico_picker"></span></button>
+												<div class="pick_descr">
+													<a href="">
+														상품명12
+													</a>
+												</div>
+											</div>
+											<!-- //상품피커 -->	   
+											<!-- 상품피커 -->
+											<div class="item_picker" style="left:57%; top:62%;">
+												<button type="button"><span class="ico ico_picker"></span></button>
+												<div class="pick_descr">
+													<a href="">
+														상품명13
+													</a>
+												</div>
+											</div>
+											<!-- //상품피커 -->								   
+										</div>
+										<div class="item_wrap">
+											<div class="item_area">
+												<h5>
+													룩북 속 상품
+													<span data-font="lato">(11)</span>
+												</h5>
+												<div class="li_item">
+													<ul>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+													</ul>
+												</div>
+												<button type="button" class="btn btn_block btn_md"><span>모두 쇼핑백 담기</span></button>
+											</div>
+										</div>
+									</div>									
+								</div>
+								<div class="swiper-slide">
+									<div class="page">
+										<div class="pic">
+											<span class="thumb" style="background-image:url('/images/pc/thumb/tmp_pdLookbook3.jpg');"></span>
+											<!-- 상품피커 -->
+											<div class="item_picker" style="left:24%; top:69%;">
+												<button type="button"><span class="ico ico_picker"></span></button>
+												<div class="pick_descr">
+													<a href="">
+														상품명11
+													</a>
+												</div>
+											</div>
+											<!-- //상품피커 -->
+											<!-- 상품피커 -->
+											<div class="item_picker" style="left:50%; top:40%;">
+												<button type="button"><span class="ico ico_picker"></span></button>
+												<div class="pick_descr">
+													<a href="">
+														상품명12
+													</a>
+												</div>
+											</div>
+											<!-- //상품피커 -->	   
+											<!-- 상품피커 -->
+											<div class="item_picker" style="left:70%; top:62%;">
+												<button type="button"><span class="ico ico_picker"></span></button>
+												<div class="pick_descr">
+													<a href="">
+														상품명13
+													</a>
+												</div>
+											</div>
+											<!-- //상품피커 -->								   
+										</div>
+										<div class="item_wrap">
+											<div class="item_area">
+												<h5>
+													룩북 속 상품
+													<span data-font="lato">(11)</span>
+												</h5>
+												<div class="li_item">
+													<ul>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+														<li>
+															<div class="item_prod">
+																<div class="item_state">
+																	<a href="#none" class="itemLink">
+																		<div class="itemPic">
+																			<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdLookbook_item1.jpg">
+																		</div>
+																		<p class="itemBrand">CURLYSUE 컬리수</p>
+																		<div class="itemName">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
+																		<p class="itemPrice">
+																			700,000
+																			<span class="itemPrice_original">1,000,000</span>
+																			<span class="itemPercent">30%</span>
+																		</p>
+																	</a>
+																</div>
+															</div>
+														</li>
+													</ul>
+												</div>
+												<button type="button" class="btn btn_block btn_md"><span>모두 쇼핑백 담기</span></button>
+											</div>
+										</div>
+									</div>									
+								</div>
+							</div>
+						</div>
+						<!-- Add Pagination -->
+						<div class="swiper-pagination"></div>
+						<!-- Add Arrows -->
+						<div class="swiper-button-next"></div>
+						<div class="swiper-button-prev"></div>
+					</div>
+				<!-- // CONT-BODY -->
+			</div>
+		</div>
+		<!-- // STYLE24의 스타일링 추천 -->
+		<!-- 이 상품과 비슷한 상품 -->
+		<div class="content wide pd_relate">
+			<div class="cont_head">
+				<h3 class="subH1 t_c mb40">이 상품과 비슷한 상품</h3>
+			</div>
+			<div class="cont_body">
+				<!-- CONT-BODY -->
+				<div class="area_slider">
+						<div class="swiper-container">
+							<div class="swiper-wrapper">
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+								<div class="swiper-slide">
+									<div class="item_prod">
+										<div class="item_state">
+											<a href="#none" class="itemLink">
+												<div class="itemPic">
+													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
+													<button type="button" class="itemLike">관심상품 추가</button>
+												</div>
+												<p class="itemBrand">BRAND NAME1</p>
+												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+												<p class="itemPrice">80,100
+													<span class="itemPrice_original">89,000</span>
+													<span class="itemPercent">10%</span>
+												</p>
+											</a>
+										</div>
+									</div>
+								</div>
+							</div>
+						</div>
+						<!-- Add Pagination -->
+						<div class="swiper-pagination"></div>
+						<!-- Add Arrows -->
+						<div class="swiper-button-next"></div>
+						<div class="swiper-button-prev"></div>					
+					</div>
+				<!-- // CONT-BODY -->
+			</div>
+		</div>
+		<!-- // 이 상품과 비슷한 상품 -->
+	</div>
+</div>
+
+<!-- EP 제휴쿠폰 팝업 -->
+	<div class="modal fade pd_pop epcoupon_pop" id="epCouponPop" tabindex="-1" role="dialog" aria-labelledby="epCouponLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+		  <div class="modal-content">
+			<div class="modal-header">
+				<h5 class="modal-title" id="epCouponLabel">네이버 전용 할인쿠폰</h5>
+			</div>
+			<div class="modal-body">
+				<div class="pop_cont">
+					<div class="ep_coupon">
+						<div>
+							<p class="cp_title">
+								COUPON
+							</p>
+							<p class="cp_cont">
+								<!-- 할인금액 일때 -->
+								<span class="unit_won">
+									<em class="number">3,000</em><em class="unit">원</em>
+								</span>
+								<!-- //할인금액 일때 -->
+								<!-- 할인율 일때 -->
+								<span class="unit_percent">
+									최대<em class="number">30</em><em class="unit">%</em>
+								</span>
+								<!-- //할인율 일때 -->
+							</p>
+						</div>
+					</div>
+					<div class="info_txt">
+						<ul>
+							<li>일부 상품은 쿠폰 사용이 제한될 수 있습니다.</li>
+							<li>할인대상 및 금액은 상시 변경됩니다.</li>
+							<li>제휴 사이트와 정보연동 시간차이로 판매정보가 불일치할 수 있습니다.</li>
+							<li>본 쿠폰은 제휴 사이트를 통해 들어온 고객님만 발급 및 사용이 가능합니다.</li>
+						</ul>						
+					</div>
+				</div>
+			</div>
+			<div class="modal-footer">
+				<button type="button" id="" class="btn btn_primary btn_all_cpdown"><span>쿠폰 받기</span></button>
+			</div>
+		  </div>
+		</div>
+	</div>	
+	<!-- //EP 제휴쿠폰 팝업 -->	
+
+	<!-- 쿠폰사용안내 팝업 -->
+	<div class="modal fade pd_pop salecoupon_pop" id="saleCouponPop" tabindex="-1" role="dialog" aria-labelledby="saleCouponLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+		  <div class="modal-content">
+			<div class="modal-header">
+				<h5 class="modal-title" id="saleCouponLabel">할인쿠폰 받기</h5>
+			</div>
+			<div class="modal-body">
+				<div class="pop_cont">
+					<ul class="coupon_list">
+						<li>
+							<div class="coupon">
+								<div>
+									<p class="cp_name">
+										TBJ 시즌오프 20% 할인쿠폰
+									</p>
+									<p class="cp_cont">
+										<span><em>12,399,900</em>원</span>
+										<span><em>40%</em></span>
+									</p>
+									<p class="cp_condition">
+										500,000원 이상 구매 시 최대 50,000원 할인
+										<span>1인 최대 90장</span>
+									</p>
+								</div>
+								<button type="button" class="btn btn_dark btn_block btn_coupon_down"><span>쿠폰받기</span></button>
+							</div>
+						</li>
+						<li>
+							<div class="coupon">
+								<div>
+									<p class="cp_name">
+										신규가입 40% 할인쿠폰
+									</p>
+									<p class="cp_cont">
+										<span><em>12,399,900</em>원</span>
+										<span><em>40%</em></span>
+									</p>
+									<p class="cp_condition">
+										500,000원 이상 구매 시 최대 50,000원 할인
+										<span>1인 최대 90장</span>
+									</p>
+								</div>
+								<button type="button" class="btn btn_dark btn_block btn_coupon_done" disabled=""><span>받기완료</span></button>
+							</div>
+						</li>						
+					</ul>
+				</div>
+			</div>
+			<div class="modal-footer">
+				<button type="button" id="" class="btn btn_primary btn_all_cpdown"><span>쿠폰 모두 받기</span></button>
+			</div>
+		  </div>
+		</div>
+	</div>
+	<!-- //쿠폰사용안내 팝업 -->	
+
+	<!-- 쇼핑혜택 팝업 -->
+	<div class="modal fade pd_pop bnf_shopping_pop" id="bnfShoppingPop" tabindex="-1" role="dialog" aria-labelledby="bnfShoppingLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h5 class="modal-title" id="bnfShoppingLabel">쇼핑혜택</h5>
+				</div>
+				<div class="modal-body">
+					<div class="pop_cont">
+						<div class="benefit_blk">
+							<h6>할인혜택</h6>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="50%">
+										<col width="*">
+									</colgroup>
+									<tbody>
+										<tr>
+											<th>즉시 할인</th>
+											<td>50% 할인</td>
+										</tr>
+										<tr>
+											<th>쿠폰할인</th>
+											<td>최대 10% 할인</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>
+						<div class="benefit_blk">
+							<h6>다다익선</h6>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="50%">
+										<col width="*">
+									</colgroup>
+									<tbody>
+										<tr>
+											<th>9,999개 이상 구매 시</th>
+											<td>9,999,999원 할인</td>
+										</tr>
+										<tr>
+											<th>9,999개 이상 구매 시</th>
+											<td>20% 할인</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>	   
+						<div class="benefit_blk">
+							<h6>사은품</h6>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="50%">
+										<col width="*">
+									</colgroup>
+									<tbody>
+										<tr>
+											<th>99,999,999원 이상 구매 시</th>
+											<td>미니언즈 우산 99개 증정</td>
+										</tr>
+										<tr>
+											<th>99,999,999원 이상 구매 시</th>
+											<td>미니언즈 우산 99개 증정 외 택1</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>					 
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>	
+	<!-- //쇼핑혜택 팝업 -->
+
+	<!-- 카드혜택 팝업 -->
+	<div class="modal fade pd_pop bnf_card_pop" id="bnfCardPop" tabindex="-1" role="dialog" aria-labelledby="bnfCardLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h5 class="modal-title" id="bnfCardLabel">카드혜택</h5>
+				</div>
+				<div class="modal-body">
+					<div class="pop_cont">
+						<div class="benefit_blk">
+							<h6>할인혜택</h6>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="140">
+										<col width="290">
+										<col width="*">
+									</colgroup>
+									<tbody>
+										<tr>
+											<th>
+												KB국민카드
+											</th>
+											<td>
+												<div class="info_card">
+													<p>5% 즉시할인</p>
+													<p>7만원 이상 구매 시 최대 5만원 할인</p>
+												</div>
+											</td>
+											<td>
+												<a href="" target="_blank" class="btn_more">자세히보기</a>
+											</td>
+										</tr>
+										<tr>
+											<th>
+												삼성카드
+											</th>
+											<td>
+												<div class="info_card">
+													<p>5% 즉시할인</p>
+													<p>7만원 이상 구매 시 최대 5만원 할인</p>
+												</div>
+											</td>
+											<td>
+												&nbsp;
+											</td>
+										</tr>
+										<tr>
+											<th>
+												롯데카드
+											</th>
+											<td>
+												<div class="info_card">
+													<p>[제휴카드] YES24 MANIA 롯데카드</p>
+													<p>최대 12~24% 청구할인</p>
+													<p>1회 1만5천원이상 결제시, 바로발급가능</p>
+												</div>
+											</td>
+											<td>
+												<a href="" target="_blank" class="btn_more">자세히보기</a>
+											</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>
+						<div class="benefit_blk">
+							<h6>무이자 할부</h6>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="140">
+										<col width="*">
+									</colgroup>
+									<tbody>
+										<tr>
+											<th>
+												KB국민카드
+											</th>
+											<td>
+												<div class="info_card">
+													<p>2~6개월 무이자</p>
+													<p>5만원 이상 구매 시</p>
+												</div>
+											</td>
+										</tr>
+										<tr>
+											<th>
+												KB국민카드
+											</th>
+											<td>
+												<div class="info_card">
+													<p>2~6개월 무이자</p>
+													<p>5만원 이상 구매 시</p>
+												</div>
+											</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+							<div class="info_txt">
+								<ul>
+									<li>무이자할부는 행사기간 동안 실 결제금액 기준으로 가능</li>
+									<li>법인, 체크, 기프트 카드는 부분 무이자 할부 제외</li>
+								</ul>				   
+							</div>
+						</div>					
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>	
+	<!-- //카드혜택 팝업 -->
+
+	<!-- 사이즈정보 팝업 -->
+	<div class="modal fade pd_pop info_size_pop" id="infoSizePop" tabindex="-1" role="dialog" aria-labelledby="infoSizeLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h5 class="modal-title" id="infoSizeLabel">사이즈정보</h5>
+				</div>
+				<div class="modal-body">
+					<div class="pop_cont">
+						<div class="tab_nav">
+							<ul>
+								<li class="active"><a href="javascript:void(0)">실측 사이즈</a></li>
+								<li><a href="javascript:void(0)">표준 사이즈</a></li>
+								<li><a href="javascript:void(0)">측정 사이즈</a></li>
+							</ul>
+						</div>
+						<div class="tab_cont_wrap">
+							<div class="tab_cont">
+								<!-- 실측 사이즈 -->
+								<div class="size_head">
+									<span class="tit_sub">TBJ</span>
+									<span class="tit_header">남성 테이퍼드 핏 겨울 기모면 스판 올 밴딩 팬츠</span>
+								</div>
+								<div class="size_cont">
+									<div class="size_tbl_box">
+										<p class="size_unit">단위 : cm</p>
+										<div class="tbl type2">
+											<table>
+												<colgroup>
+													<col width="20%">
+													<col width="20%">
+													<col width="20%">
+													<col width="20%">
+													<col width="20%">
+												</colgroup>
+												<thead>
+													<tr>
+														<th scope="col">&nbsp;</th>
+														<th scope="col">M</th>
+														<th scope="col">L</th>
+														<th scope="col">XL</th>
+														<th scope="col">XXL</th>
+													</tr>
+												</thead>
+												<tbody>
+													<tr>
+														<th scope="col">가슴둘레</th>
+														<td>95</td>
+														<td>100</td>
+														<td>105</td>
+														<td>110</td>
+													</tr>
+													<tr>
+														<th scope="col">어깨너비</th>
+														<td>95</td>
+														<td>100</td>
+														<td>105</td>
+														<td>110</td>
+													</tr>
+													<tr>
+														<th scope="col">팔길이</th>
+														<td>95</td>
+														<td>100</td>
+														<td>105</td>
+														<td>110</td>
+													</tr>
+													<tr>
+														<th scope="col">총길이</th>
+														<td>95</td>
+														<td>100</td>
+														<td>105</td>
+														<td>110</td>
+													</tr>
+												</tbody>
+											</table>
+										</div>
+									</div>
+								</div>
+								<!-- //실측 사이즈 -->
+							</div>
+							<div class="tab_cont">
+								<!-- 표준 사이즈 카테고리 구분일때 -->
+								<div class="size_head">
+									<!-- 표준 사이즈 > 카테고리 선택 -->
+									<div class="sub_tab_nav">
+										<ul>
+											<li class="active"><a href="javascript:void(0)">여성</a></li>
+											<li><a href="javascript:void(0)">남성</a></li>
+											<li><a href="javascript:void(0)">캐주얼</a></li>
+											<li><a href="javascript:void(0)">유아동</a></li>
+											<li><a href="javascript:void(0)">신발</a></li>
+											<li><a href="javascript:void(0)">언더웨어</a></li>
+										</ul>
+									</div>
+									<!-- //표준 사이즈 > 카테고리 선택 -->
+								</div>
+								<div class="size_cont">
+									<div class="sub_tab_cont_wrap">
+										<!-- 표준 사이즈 > 카테고리 내용(여성) -->
+										<div class="sub_tab_cont">
+											<div class="size_tbl_box">
+												<h6>여성 상의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">XS/44/85</th>
+																<th scope="col">S/55/90</th>
+																<th scope="col">M/66/95</th>
+																<th scope="col">L/77/100</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">가슴둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr> 
+															<tr>
+																<th scope="col">신장</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>											   
+														</tbody>
+													</table>
+												</div>
+											</div>
+											<div class="size_tbl_box">
+												<h6>여성 하의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">27</th>
+																<th scope="col">28</th>
+																<th scope="col">29</th>
+																<th scope="col">30</th>
+																<th scope="col">32</th>
+																<th scope="col">34</th>
+																<th scope="col">36</th>
+																<th scope="col">38</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>69</td>
+																<td>71</td>
+																<td>74</td>
+																<td>76</td>
+																<td>81</td>
+																<td>86</td>
+																<td>91</td>
+																<td>97</td>
+															</tr>									
+														</tbody>
+													</table>
+												</div>
+											</div>
+										</div>	
+										<!-- //표준 사이즈 > 카테고리 내용(여성) --> 
+										<!-- 표준 사이즈 > 카테고리 내용(남성) -->
+										<div class="sub_tab_cont">
+											<div class="size_tbl_box">
+												<h6>남성 상의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">XS/44/85</th>
+																<th scope="col">S/55/90</th>
+																<th scope="col">M/66/95</th>
+																<th scope="col">L/77/100</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">가슴둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr> 
+															<tr>
+																<th scope="col">신장</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>											   
+														</tbody>
+													</table>
+												</div>
+											</div>
+											<div class="size_tbl_box">
+												<h6>남성 하의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">27</th>
+																<th scope="col">28</th>
+																<th scope="col">29</th>
+																<th scope="col">30</th>
+																<th scope="col">32</th>
+																<th scope="col">34</th>
+																<th scope="col">36</th>
+																<th scope="col">38</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>69</td>
+																<td>71</td>
+																<td>74</td>
+																<td>76</td>
+																<td>81</td>
+																<td>86</td>
+																<td>91</td>
+																<td>97</td>
+															</tr>									
+														</tbody>
+													</table>
+												</div>
+											</div>
+										</div>	
+										<!-- //표준 사이즈 > 카테고리 내용(남성) -->
+										<!-- 표준 사이즈 > 카테고리 내용(캐주얼) -->
+										<div class="sub_tab_cont">
+											<div class="size_tbl_box">
+												<h6>캐주얼 상의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">XS/44/85</th>
+																<th scope="col">S/55/90</th>
+																<th scope="col">M/66/95</th>
+																<th scope="col">L/77/100</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">가슴둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr> 
+															<tr>
+																<th scope="col">신장</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>											   
+														</tbody>
+													</table>
+												</div>
+											</div>
+											<div class="size_tbl_box">
+												<h6>캐주얼 하의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">27</th>
+																<th scope="col">28</th>
+																<th scope="col">29</th>
+																<th scope="col">30</th>
+																<th scope="col">32</th>
+																<th scope="col">34</th>
+																<th scope="col">36</th>
+																<th scope="col">38</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>69</td>
+																<td>71</td>
+																<td>74</td>
+																<td>76</td>
+																<td>81</td>
+																<td>86</td>
+																<td>91</td>
+																<td>97</td>
+															</tr>									
+														</tbody>
+													</table>
+												</div>
+											</div>
+										</div>	
+										<!-- //표준 사이즈 > 카테고리 내용(캐주얼) -->
+										<!-- 표준 사이즈 > 카테고리 내용(유아동) -->
+										<div class="sub_tab_cont">
+											<div class="size_tbl_box">
+												<h6>유아동 상의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">XS/44/85</th>
+																<th scope="col">S/55/90</th>
+																<th scope="col">M/66/95</th>
+																<th scope="col">L/77/100</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">가슴둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr> 
+															<tr>
+																<th scope="col">신장</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>											   
+														</tbody>
+													</table>
+												</div>
+											</div>
+											<div class="size_tbl_box">
+												<h6>유아동 하의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">27</th>
+																<th scope="col">28</th>
+																<th scope="col">29</th>
+																<th scope="col">30</th>
+																<th scope="col">32</th>
+																<th scope="col">34</th>
+																<th scope="col">36</th>
+																<th scope="col">38</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>69</td>
+																<td>71</td>
+																<td>74</td>
+																<td>76</td>
+																<td>81</td>
+																<td>86</td>
+																<td>91</td>
+																<td>97</td>
+															</tr>									
+														</tbody>
+													</table>
+												</div>
+											</div>
+										</div>	
+										<!-- //표준 사이즈 > 카테고리 내용(유아동) -->	 
+										<!-- 표준 사이즈 > 카테고리 내용(신발) -->
+										<div class="sub_tab_cont">
+											<div class="size_tbl_box">
+												<h6>신발 상의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">XS/44/85</th>
+																<th scope="col">S/55/90</th>
+																<th scope="col">M/66/95</th>
+																<th scope="col">L/77/100</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">가슴둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr> 
+															<tr>
+																<th scope="col">신장</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>											   
+														</tbody>
+													</table>
+												</div>
+											</div>
+											<div class="size_tbl_box">
+												<h6>신발 하의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">27</th>
+																<th scope="col">28</th>
+																<th scope="col">29</th>
+																<th scope="col">30</th>
+																<th scope="col">32</th>
+																<th scope="col">34</th>
+																<th scope="col">36</th>
+																<th scope="col">38</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>69</td>
+																<td>71</td>
+																<td>74</td>
+																<td>76</td>
+																<td>81</td>
+																<td>86</td>
+																<td>91</td>
+																<td>97</td>
+															</tr>									
+														</tbody>
+													</table>
+												</div>
+											</div>
+										</div>	
+										<!-- //표준 사이즈 > 카테고리 내용(신발) -->	  
+										<!-- 표준 사이즈 > 카테고리 내용(언더웨어) -->
+										<div class="sub_tab_cont">
+											<div class="size_tbl_box">
+												<h6>언더웨어 상의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+															<col width="20%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">XS/44/85</th>
+																<th scope="col">S/55/90</th>
+																<th scope="col">M/66/95</th>
+																<th scope="col">L/77/100</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">가슴둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr> 
+															<tr>
+																<th scope="col">신장</th>
+																<td>95</td>
+																<td>100</td>
+																<td>105</td>
+																<td>110</td>
+															</tr>											   
+														</tbody>
+													</table>
+												</div>
+											</div>
+											<div class="size_tbl_box">
+												<h6>언더웨어 하의</h6>
+												<p class="size_unit">단위 : cm</p>
+												<div class="tbl type2">
+													<table>
+														<colgroup>
+															<col width="20%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+															<col width="10%">
+														</colgroup>
+														<thead>
+															<tr>
+																<th scope="col">&nbsp;</th>
+																<th scope="col">27</th>
+																<th scope="col">28</th>
+																<th scope="col">29</th>
+																<th scope="col">30</th>
+																<th scope="col">32</th>
+																<th scope="col">34</th>
+																<th scope="col">36</th>
+																<th scope="col">38</th>
+															</tr>
+														</thead>
+														<tbody>
+															<tr>
+																<th scope="col">허리둘레</th>
+																<td>69</td>
+																<td>71</td>
+																<td>74</td>
+																<td>76</td>
+																<td>81</td>
+																<td>86</td>
+																<td>91</td>
+																<td>97</td>
+															</tr>									
+														</tbody>
+													</table>
+												</div>
+											</div>
+										</div>	
+										<!-- //표준 사이즈 > 카테고리 내용(언더웨어) -->
+									</div>															   
+								</div>
+								<div class="size_footer">
+									<div class="info_txt">
+										<ul>
+											<li>본 사이즈 조견표는 표준 가이드로, 각 제품마다 다소간의 차이는 있을 수 있습니다.</li>
+											<li>보다 자세한 사이즈는 각 상품 별 상품설명을 참조해주시기 바랍니다.</li>
+										</ul>
+									</div>
+								</div>
+								<!-- //표준 사이즈 카테고리별 구분일때 -->
+								<!-- 표준 사이즈 브랜드별 구분일때 -->
+								<div class="size_head">
+									<span class="tit_header">
+										페르지노몬티 FERGINO MONTI
+									</span>
+								</div>
+								<div class="size_cont">
+									<div class="size_tbl_box">
+										<h6>남성 상의</h6>
+										<p class="size_unit">단위 : cm</p>
+										<div class="tbl type2">
+											<table>
+												<colgroup>
+													<col width="20%">
+													<col width="20%">
+													<col width="20%">
+													<col width="20%">
+													<col width="20%">
+												</colgroup>
+												<thead>
+													<tr>
+														<th scope="col">&nbsp;</th>
+														<th scope="col">XS/44/85</th>
+														<th scope="col">S/55/90</th>
+														<th scope="col">M/66/95</th>
+														<th scope="col">L/77/100</th>
+													</tr>
+												</thead>
+												<tbody>
+													<tr>
+														<th scope="col">가슴둘레</th>
+														<td>95</td>
+														<td>100</td>
+														<td>105</td>
+														<td>110</td>
+													</tr>
+													<tr>
+														<th scope="col">허리둘레</th>
+														<td>95</td>
+														<td>100</td>
+														<td>105</td>
+														<td>110</td>
+													</tr> 
+													<tr>
+														<th scope="col">신장</th>
+														<td>95</td>
+														<td>100</td>
+														<td>105</td>
+														<td>110</td>
+													</tr>											   
+												</tbody>
+											</table>
+										</div>
+									</div>
+									<div class="size_tbl_box">
+										<h6>남성 하의</h6>
+										<p class="size_unit">단위 : cm</p>
+										<div class="tbl type2">
+											<table>
+												<colgroup>
+													<col width="20%">
+													<col width="10%">
+													<col width="10%">
+													<col width="10%">
+													<col width="10%">
+													<col width="10%">
+													<col width="10%">
+													<col width="10%">
+													<col width="10%">
+												</colgroup>
+												<thead>
+													<tr>
+														<th scope="col">&nbsp;</th>
+														<th scope="col">27</th>
+														<th scope="col">28</th>
+														<th scope="col">29</th>
+														<th scope="col">30</th>
+														<th scope="col">32</th>
+														<th scope="col">34</th>
+														<th scope="col">36</th>
+														<th scope="col">38</th>
+													</tr>
+												</thead>
+												<tbody>
+													<tr>
+														<th scope="col">허리둘레</th>
+														<td>69</td>
+														<td>71</td>
+														<td>74</td>
+														<td>76</td>
+														<td>81</td>
+														<td>86</td>
+														<td>91</td>
+														<td>97</td>
+													</tr>									
+												</tbody>
+											</table>
+										</div>
+									</div>													  
+								</div>
+								<div class="size_footer">
+									<div class="info_txt">
+										<ul>
+											<li>본 사이즈 조견표는 표준 가이드로, 각 제품마다 다소간의 차이는 있을 수 있습니다.</li>
+											<li>보다 자세한 사이즈는 각 상품 별 상품설명을 참조해주시기 바랍니다.</li>
+										</ul>
+									</div>
+								</div>
+								<!-- //표준 사이즈 브랜드 구분일때 -->							
+							</div>   
+							<div class="tab_cont">
+								<!-- 측정 사이즈 -->
+								<div class="size_head">
+									<!-- 측정 사이즈 > 카테고리 선택 -->
+									<div class="sub_tab_nav">
+										<ul>
+											<li class="active"><a href="javascript:void(0)">상의</a></li>
+											<li><a href="javascript:void(0)">하의</a></li>
+											<li><a href="javascript:void(0)">가방</a></li>
+											<li><a href="javascript:void(0)">신발</a></li>
+											<li><a href="javascript:void(0)">언더웨어</a></li>
+										</ul>
+									</div>
+									<!-- //측정 사이즈 > 카테고리 선택 -->
+								</div>
+								<div class="size_cont">
+									<div class="sub_tab_cont_wrap">
+										<!-- 측정 사이즈 > 카테고리 내용(상의) -->
+										<div class="sub_tab_cont">
+											<span class="img_sizeinfo">
+												<img src="/images/pc/info_size_top.jpg" alt="상의 측정 사이즈">
+											</span>
+											<dl>
+												<div>
+													<dt>가슴둘레</dt>
+													<dd>양쪽 겨드랑이 밑선 단면을 잰 길이x2</dd>
+												</div>
+												<div>
+													<dt>어깨너비</dt>
+													<dd>좌측어깨에서 우측어깨끝 봉제선 단면을 잰 길이 (어깨봉제선이 없을경우 어깨길이와 팔길이는 측정 안함)</dd>
+												</div>
+												<div>
+													<dt>팔길이</dt>
+													<dd>어깨 봉제선부터 소매 끝까지 잰 길</dd>
+												</div>
+												<div>
+													<dt>총길이</dt>
+													<dd>카라부분(혹은 후드)를 제외 한 지점부터 밑단 끝까지 잰 길이 (라운드티셔츠의 경우 목라인을 포함 해 네크라인부터 밑단 끝까지의 길이를 측정)</dd>
+												</div>
+											</dl>
+										</div>	
+										<!-- //측정 사이즈 > 카테고리 내용(상의) -->
+										<!-- 측정 사이즈 > 카테고리 내용(하의) -->
+										<div class="sub_tab_cont">
+											<span class="img_sizeinfo">
+												<img src="/images/pc/info_size_pants.jpg" alt="하의 측정 사이즈">
+											</span>
+											<dl>
+												<div>
+													<dt>허리둘레</dt>
+													<dd>허리선을 일자로 맞추고 한쪽의 허리끝단부터 반대편 끝까지 단면을 잰 길이x2</dd>
+												</div>
+												<div>
+													<dt>밑위</dt>
+													<dd>허리부터 가랑이 끝점까지 잰 길이</dd>
+												</div>
+												<div>
+													<dt>엉덩이둘레</dt>
+													<dd>밑위 중간부분 단면을 잰 길이x2</dd>
+												</div>
+												<div>
+													<dt>허벅지둘레</dt>
+													<dd>가랑이 부분부터 바깥쪽 허벅지 끝나는 지점까지의 단면을 잰 길이x2</dd>
+												</div>
+												<div>
+													<dt>총길이</dt>
+													<dd>허리끝선부터 바지밑단 끝선 까지 잰 길이</dd>
+												</div>
+											</dl>
+										</div>	
+										<!-- //측정 사이즈 > 카테고리 내용(하의) -->	  
+										<!-- 측정 사이즈 > 카테고리 내용(가방) -->
+										<div class="sub_tab_cont">
+											<span class="img_sizeinfo">
+												<img src="/images/pc/info_size_bag.jpg" alt="가방 측정 사이즈">
+											</span>
+											<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>
+												<div>
+													<dt>끈폭</dt>
+													<dd>가방 끈의 수평폭</dd>
+												</div>
+												<div>
+													<dt>폭</dt>
+													<dd>가방 옆 부분의 두께</dd>
+												</div>
+											</dl>
+										</div> 
+										<!-- //측정 사이즈 > 카테고리 내용(가방) -->
+										<!-- 측정 사이즈 > 카테고리 내용(신발) -->
+										<div class="sub_tab_cont">
+											<span class="img_sizeinfo">
+												<img src="/images/pc/info_size_shoe.jpg" alt="신발 측정 사이즈">
+											</span>
+											<dl>
+												<div>
+													<dt>굽높이</dt>
+													<dd>설명 필요</dd>
+												</div>
+												<div>
+													<dt>볼너비</dt>
+													<dd>설명 필요</dd>
+												</div>
+												<div>
+													<dt>총길이</dt>
+													<dd>설명 필요</dd>
+												</div>
+											</dl>
+											<!--<div class="info_txt">
+												<ul>
+													<li>
+														국내 브랜드는 브랜드, 스타일마다 사이즈가 다르게 전개될 수 있으니, 개별 상품 상세페이지에 기재된 상세 사이즈안내를 참조하세요.
+													</li>
+												</ul>
+											</div>-->
+										</div> 
+										<!-- //측정 사이즈 > 카테고리 내용(신발) --> 
+										<!-- 측정 사이즈 > 카테고리 내용(언더웨어) -->
+										<div class="sub_tab_cont">
+											<span class="img_sizeinfo">
+												<img src="/images/pc/info_size_underwear.jpg" alt="속옷 측정 사이즈">
+											</span>
+											<dl>
+												<div>
+													<dt>밑가슴둘레</dt>
+													<dd>유방의 바로 밑을 수평으로 잰 길이</dd>
+												</div>
+												<div>
+													<dt>컵</dt>
+													<dd>밑가슴둘레와 가슴둘레의 차이</dd>
+												</div>
+												<div>
+													<dt>가슴둘레</dt>
+													<dd>유방을중심으로 수평으로 잰길이</dd>
+												</div>
+											</dl>
+										</div> 
+										<!-- //측정 사이즈 > 카테고리 내용(언더웨어) -->																					
+									</div>															   
+								</div>							
+								<!-- //측정 사이즈 -->
+							</div>						 
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>	
+	<!-- //사이즈정보 팝업 -->
+	
+	<!-- 재입고 알림신청 팝업 -->
+	<div class="modal fade pd_pop push_restock_pop" id="pushRestockPop" tabindex="-1" role="dialog" aria-labelledby="pushRestockLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h5 class="modal-title" id="pushRestockLabel">재입고 알림 신청</h5>
+				</div>
+				<div class="modal-body">
+					<div class="pop_cont">
+						<div class="item_blk">
+							<div class="item_prod">
+								<div class="item_state">
+									<a href="#none" class="itemLink">
+										<div class="itemPic">
+											<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdDetail1.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>
+									</a>
+								</div>
+							</div>
+						</div>
+						<div class="select_blk">
+							<h6>사이즈 선택</h6>
+							<div class="opt_size">
+								<div class="form_field">
+									<div>
+										<input type="radio" name="rdi-optsize" id="rdi-optsize11" value="">
+										<label for="rdi-optsize11"><span>90</span></label>
+									</div>
+									<div>
+										<input type="radio" name="rdi-optsize" id="rdi-optsize12" value="">
+										<label for="rdi-optsize12"><span>95</span></label>
+									</div>
+									<div>
+										<input type="radio" name="rdi-optsize" id="rdi-optsize13" value="">
+										<label for="rdi-optsize13"><span>100</span></label>
+									</div>
+									<div>
+										<input type="radio" name="rdi-optsize" id="rdi-optsize14" value="">
+										<label for="rdi-optsize14"><span>105</span></label>
+									</div>
+									<div>
+										<input type="radio" name="rdi-optsize" id="rdi-optsize15" value="">
+										<label for="rdi-optsize15"><span>110</span></label>
+									</div>
+									<div>
+										<input type="radio" name="rdi-optsize" id="rdi-optsize16" value="">
+										<label for="rdi-optsize16"><span>115</span></label>
+									</div>
+									<div>
+										<input type="radio" name="rdi-optsize" id="rdi-optsize17" value="">
+										<label for="rdi-optsize17"><span>free</span></label>
+									</div>
+									<div>
+										<input type="radio" name="rdi-optsize" id="rdi-optsize18" value="">
+										<label for="rdi-optsize18"><span>size1</span></label>
+									</div>
+									<div>
+										<input type="radio" name="rdi-optsize" id="rdi-optsize19" value="">
+										<label for="rdi-optsize19"><span>size2</span></label>
+									</div>
+								</div>
+							</div>
+						</div>
+						<div class="select_blk">
+							<h6>옵션 선택</h6>
+							<div class="opt_select">
+								<form class="form_wrap">
+									<div class="form_field">
+										<div class="select_custom item_opt3">
+											<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>
+										</div>
+									</div>
+									<div class="form_field">
+										<div class="select_custom item_opt4" 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>
+								</form>
+							</div>   
+						</div>	  
+					</div>
+				</div>
+				<div class="modal-footer">
+					<button type="button" id="" class="btn btn_dark"><span>신청</span></button>
+				</div>
+			</div>
+		</div>		
+	</div>
+	<!-- //재입고 알림신청 팝업 -->  
+
+	<!-- 배송교환반품안내 팝업 -->
+	<div class="pd_pop full_pop pd_delivery_pop" id="pdDeliveryPop"> 
+		<div class="full_popup_wrap">
+			<h5 class="sr-only">배송교환반품 안내</h5>
+			<div class="btn_close">
+				<a href="" id="btn_close_deliveryPop">닫기버튼</a>
+			</div>
+			<div class="full_pop_header">
+				<!-- 해당 상품 -->
+				<div class="item_prod">
+					<div class="item_state">
+						<a href="#none" class="itemLink">
+							<div class="itemPic">
+								<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdDetail1.jpg">
+							</div>
+							<p class="itemBrand">NBA 키즈</p>
+							<div class="itemName">유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업</div>
+							<p class="itemPrice">134,100
+								<span class="itemPrice_original">149,000</span>
+								<span class="itemPercent">30%</span>
+							</p>
+						</a>
+					</div>
+				</div>
+				<!-- //해당 상품 -->
+			</div>
+			<div class="full_pop_container">
+				<!-- 배송교환반품안내 리스트 내용 -->
+			</div>
+		</div>		
+	</div>
+	<!-- //배송교환반품안내 팝업 -->
+
+
+	<!-- **************** 상품리뷰 팝업 **************** -->
+	<!-- 상품리뷰 리스트 팝업 -->
+	<div class="pd_pop full_pop pd_review_pop" id="pdReviewPop">
+		<div class="full_popup_wrap">
+			<h5 class="sr-only">상품리뷰</h5>
+			<div class="btn_close">
+				<a href="" id="btn_close_reviewPop">닫기버튼</a>
+			</div>
+			<div class="full_pop_header">
+				<!-- 해당 상품 -->
+				<div class="item_prod">
+					<div class="item_state">
+						<a href="#none" class="itemLink">
+							<div class="itemPic">
+								<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdDetail1.jpg">
+							</div>
+							<p class="itemBrand">NBA 키즈</p>
+							<div class="itemName">유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업</div>
+							<p class="itemPrice">134,100
+								<span class="itemPrice_original">149,000</span>
+								<span class="itemPercent">30%</span>
+							</p>
+						</a>
+					</div>
+				</div>
+				<!-- //해당 상품 -->
+			</div>
+			<div class="full_pop_container">
+				 <!-- 상품리뷰 리스트 내용 -->
+			</div>			
+		</div>
+	</div>
+	<!-- //상품리뷰 리스트 팝업 -->
+
+	<!-- 베스트 리뷰 자세히보기 팝업 -->
+	<div class="modal fade pd_pop pd_bestreviewdetail_pop" id="pdBestReviewPop" tabindex="-1" role="dialog" aria-labelledby="pdBestReviewLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<!-- 베스트리뷰 팝업 내용 -->
+			</div>
+		</div>		
+	</div>
+	<!-- //베스트 리뷰 자세히보기 팝업 -->   
+
+	<!-- 포토영상 리뷰 자세히보기 팝업 -->
+	<div class="modal fade pd_pop pd_photoreviewdetail_pop" id="pdPhotoReviewDetailPop" tabindex="-1" role="dialog" aria-labelledby="pdPhotoReviewDetailLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<!-- 포토영상 리뷰 자세히보기 팝업 내용 -->
+			</div>
+		</div>		
+	</div>
+	<!-- //포토영상 리뷰 자세히보기 팝업 -->	  
+
+	<!-- 포토영상 리뷰 리스트 팝업 -->
+	<div class="modal fade pd_pop pd_photoreviewlist_pop" id="pdPhotoReviewListPop" tabindex="-1" role="dialog" aria-labelledby="pdPhotoReviewListLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<!-- 포토영상 리뷰 리스트 팝업 내용 -->
+			</div>
+		</div>		
+		<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
+	</div>
+	<!-- //포토영상 리뷰 리스트 팝업 -->   
+	<!-- //**************** 상품리뷰 팝업 **************** -->  
+
+	<!-- **************** 상품문의 팝업 **************** -->
+	<!-- 상품문의 작성 팝업 -->
+	<div class="modal fade pd_pop pd_qnawrite_pop" id="pdQnaWritePop" tabindex="-1" role="dialog" aria-labelledby="pdQnaWriteLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h5 class="modal-title" id="pdQnaWriteLabel">상품 문의하기</h5>
+				</div>
+				<div class="modal-body">
+					<div class="pop_cont">
+						<div class="info_txt">
+							<ul>
+								<li>배송, 주문/결제, 취소/반품/교환/환불, 회원, 쿠폰/포인트, 이벤트 등의 자세한 문의사항은 고객센터 > 1:1문의를 이용하여 주시기 바랍니다.</li>
+								<li>상품문의에 부합하지 않는 광고, 이유없는 비방, 욕설 및 오해의 소지가 있는 문의건에 대해서는 사전 통보 없이 삭제 될 수 있습니다.</li>
+								<li>답변은 마이페이지 > 상품 문의에서 확인 하실 수 있습니다.</li>
+							</ul>
+						</div>
+						<div class="form_field">
+							<div class="input_box">
+								<textarea class="doc_itemqna" name="" id="" cols="30" rows="10" placeholder="문의내용 입력(500자 이내)" style="resize: none;"></textarea>
+								<p class="txt_cnt">
+									<span id="itemqna_cnt" class="itemqna_cnt">(<em class="c_primary">0</em>/500자)</span>
+								</p>			  
+								<div class="secret_box">
+									<input id="wr_secret" type="checkbox"><label for="wr_secret"><span>비밀글설정</span></label>
+								</div>
+							</div> 
+						</div>
+						<div class="push_box">
+							<dl>
+								<div>
+									<dt>알림톡 수신 여부</dt>
+									<dd>
+										<div class="form_field">
+											<div>
+												<input type="radio" name="rdi-push" id="rdi-push1" value="" checked="">
+												<label for="rdi-push1"><span>수신</span></label>
+											</div>
+											<div>
+												<input type="radio" name="rdi-push" id="rdi-push2" value="">
+												<label for="rdi-push2"><span>미수신</span></label>
+											</div>
+										</div>
+									</dd>
+								</div>
+							</dl>
+						</div>
+					</div>
+				</div>
+				<div class="modal-footer">
+					<button type="button" class="btn btn_dark"><span>등록</span></button>
+				</div>
+			</div>
+		</div>		
+	</div>
+	<!-- //상품문의 작성 팝업 -->
+
+	<!-- 상품문의 리스트 팝업 -->
+	<div class="pd_pop full_pop pd_qnalist_pop" id="pdQnaListPop">
+		<div class="full_popup_wrap">
+			<h5 class="sr-only">상품문의</h5>
+			<div class="btn_close">
+				<a href="" id="btn_close_qnaListPop">닫기버튼</a>
+			</div>
+			<div class="full_pop_header">
+				<!-- 해당 상품 -->
+				<div class="item_prod">
+					<div class="item_state">
+						<a href="#none" class="itemLink">
+							<div class="itemPic">
+								<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdDetail1.jpg">
+							</div>
+							<p class="itemBrand">NBA 키즈</p>
+							<div class="itemName">유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업</div>
+							<p class="itemPrice">134,100
+								<span class="itemPrice_original">149,000</span>
+								<span class="itemPercent">30%</span>
+							</p>
+						</a>
+					</div>
+				</div>
+				<!-- //해당 상품 -->
+			</div>
+			<div class="full_pop_container">
+				<!-- 상품문의 리스트 내용 -->
+			</div>
+		</div>
+	</div>
+	<!-- //상품문의 리스트 팝업 -->
+
+	<!-- 상품문의 이미지 팝업 -->
+	<div class="modal fade pd_pop qna_img_pop" id="qnaImgPop" tabindex="-1" role="dialog" aria-labelledby="qnaImgLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<div class="modal-header sr-only">
+					<h5 class="modal-title" id="qnaImgLabel">이미지 상세보기</h5>
+				</div>
+				<div class="modal-body">
+					<div class="pop_cont">
+						<div class="swiper-container">
+							<div class="swiper-wrapper">
+								<!-- 이미지 슬라이드 영역 -->
+							</div>
+						</div>
+						<div class="swiper-button-next"></div>
+						<div class="swiper-button-prev"></div>						
+						<div class="swiper-pagination"></div>
+					</div>
+				</div>
+			</div>
+		</div>		
+	</div>
+	<!-- //상품문의 이미지 팝업 -->
+	<!-- **************** 상품문의 팝업 **************** -->
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+
+	$(document).ready( function() {
+		// 상품 대표설명 > 좌측 상품썸네일 navi, 우측 상품정보 고정 
+		$(window).scroll(function(){
+			var scrollTop= $(window).scrollTop();
+			var firstFixed =  $('#header').outerHeight();
+			var thumbListWrap_h = $('.pd_detail .thumb_list_wrap').outerHeight();
+			var descWrap_h = $('.pd_detail .desc_wrap').outerHeight();
+			var secondFixed_left =  firstFixed + $('.pd_detail').outerHeight() - $('.pd_detail .thumb_nav_wrap').outerHeight();
+			var secondFixed_right =  firstFixed + $('.pd_detail .desc_wrap').outerHeight() - $(window).outerHeight();
+			var secondFixed_right2 =  firstFixed + $('.pd_detail').outerHeight() - $(window).outerHeight();
+
+			/* 좌측 상품썸네일 navi 고정 */
+			if (scrollTop > firstFixed){  
+				$('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixbottom').addClass('fixtop');
+			}
+			else if (scrollTop < firstFixed){
+				$('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop');
+			}
+			if (scrollTop > secondFixed_left){
+				$('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop').addClass('fixbottom');
+			} 
+			
+			/* 우측 상품정보 고정 */
+			if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right) {
+				$('.pd_detail .area_desc .desc_wrap').removeClass('absbottom').addClass('fixbottom');
+			}
+			else if (thumbListWrap_h > descWrap_h && scrollTop < secondFixed_right) {
+				$('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom');
+			}
+			if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right2) {
+				$('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom').addClass('absbottom');
+			}
+		});
+
+		//슬라이드 - 상품 대표설명 > 좌측 상품썸네일 navi
+		var thumbNavSwiper = new Swiper('.area_pic .thumb_nav_wrap .swiper-container', {
+			direction: 'vertical',
+			slidesPerView: 6,
+			slidesPerGroup : 6,
+			spaceBetween: 10,
+			navigation: {
+				nextEl: '.area_pic .thumb_nav_wrap .swiper-button-next',
+				prevEl: '.area_pic .thumb_nav_wrap .swiper-button-prev',
+			},
+		});
+
+		//상품 대표설명 > 상품썸네일 1개일때
+		var thumblist = $('.area_pic .thumb_list_wrap li');	
+		var thumblistLength = thumblist.length;
+		if (thumblistLength == 1) {
+			thumblist.parents('.area_pic').addClass('onlyitem');
+		} else {
+			thumblist.parents('.area_pic').removeClass('onlyitem');
+		}
+
+		//상품 대표설명 > 좌측 상품썸네일 6개 이하일때
+		var thumbnavSlide = $('.area_pic .thumb_nav_wrap .swiper-container .swiper-slide');	
+		var thumbnavLength = thumbnavSlide.length;
+		if (thumbnavLength < 7) {
+			thumbnavSlide.parents('.thumbnav').addClass('disabled');
+		} else {
+			thumbnavSlide.parents('.thumbnav').removeClass('disabled');
+		}
+
+		//상품 대표설명 > 좌측 상품썸네일 navi 선택시 해당 대표 썸네일 위치로 이동
+		$(document).on('click','.pd_detail .area_pic .thumbnav .swiper-slide a',function(e){
+			e.preventDefault();
+			var hdHeight = $('#header').outerHeight();
+			var targetThumb = $($(this).attr('href'));
+			var topThumb = targetThumb.offset().top - hdHeight;
+			$(this).parents('.thumbnav').find('.swiper-slide').removeClass('on');
+			$(this).parent('.swiper-slide').addClass('on');
+			targetThumb.siblings('li').removeClass('on');
+			targetThumb.addClass('on');
+			$('html,body').animate({scrollTop : topThumb}, 500);
+			return false;
+		});
+
+		//상품 대표설명 > 우측 상품정보 
+		/* 1차 옵션선택 후 2차 옵션 활성화 */
+		var opt_selecter01 = new sCombo('.opt_select .select_custom.item_opt1');
+		var opt_selecter01 = new sCombo('.opt_select .select_custom.item_opt2');
+		$('.opt_select .select_custom .combo .list > li').click(function(e) {
+			$(this).parents('.form_field').next('.form_field').find('.select_custom').attr('disabled', false);
+			return false;
+		});
+		
+		/* 행사 남은시간 */
+		function promotionTimer() {
+			var endTime = new Date('30 March 2021 9:56:00 GMT+0900'); // 남은시간 지정		
+				endTime = (Date.parse(endTime) / 1000);
+
+				var now = new Date();
+				now = (Date.parse(now) / 1000);
+
+				var timeLeft = endTime - now;
+
+				var days = Math.floor(timeLeft / 86400); 
+				var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
+				var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
+				var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
+
+				if (hours < '10') { hours = '0' + hours; }
+				if (minutes < '10') { minutes = '0' + minutes; }
+				if (seconds < '10') { seconds = '0' + seconds; }
+
+				$('#d-days').html(days);
+				$('#d-hours').html(hours);
+				$('#d-minutes').html(minutes);
+				$('#d-seconds').html(seconds);		
+		}
+		setInterval(function() { promotionTimer(); }, 1000);
+
+		/* 상품옵션변경 팝업 > 수량조절 */
+		$(document).on('click','.option_box .opt_count .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','.option_box .opt_count .number_count .plus',function(e){
+			var $input = $(this).parent().find('input');
+			$input.val(parseInt($input.val()) + 1);
+			$input.change();
+			return false;
+		});
+
+		//스타일링 추천 picker	
+		$(document).on('mouseenter','.pd_recommend .area_slider .item_picker button',function(e){
+			$(this).parents('.item_picker').find('.pick_descr').show();
+			return false;
+		}).on('mouseleave','.pd_recommend .area_slider .item_picker button', function(e){
+			$(this).parents('.item_picker').find('.pick_descr').hide();
+			return false;
+		});   
+
+		//상품상세정보 안내 호출
+		$(".pd_descrp").load("pd_descrp_pop.html");
+
+		//상품상세정보 더보기   
+		$(document).on('click','.pd_descrp .btn_more_box button',function(e){
+			$('.pd_descrp .cont_body').toggleClass('on'); 
+			$(this).toggleClass('active');
+			$(this).parent('.btn_more_box').toggleClass('covered');
+			var descrpToggle = $(this).find('span');
+			$(descrpToggle).text($(descrpToggle).text() == '상세정보 더보기' ? '상세정보 접기' : '상세정보 더보기');
+			return false;
+		}); 
+
+		//관심상품 등록
+		$(document).on('click','.pd .itemLike',function(e){
+			$(this).toggleClass('active');
+			return false;
+		});	
+
+		//슬라이드 - 함께하면 할인되는 다다익선 상품
+		var togetherItemSwiper = new Swiper('.pd .pd_together .area_slider .swiper-container', {
+			slidesPerView: 6,
+			spaceBetween: 20,
+			scrollbar: {
+				el: '.pd_together .swiper-scrollbar',
+				hide: true,
+			},
+		});  
+
+		//슬라이드 - 이 상품과 함께 본 상품 
+		var otherItemSwiper = new Swiper('.pd .pd_clickother .area_slider .swiper-container', {
+			slidesPerView: 5,
+			spaceBetween: 20,
+			navigation: {
+				nextEl: '.pd_clickother .swiper-button-next',
+				prevEl: '.pd_clickother .swiper-button-prev',
+			},
+			pagination: {
+				el: '.pd_clickother .swiper-pagination',
+				clickable: true,
+			},
+		});			
+
+		//슬라이드 - STYLE24의 스타일링 추천
+		var rcmdItemSwiper = new Swiper('.pd .pd_recommend .area_slider .swiper-container', {
+			slidesPerView: 1,
+			spaceBetween: 0,
+			navigation: {
+				nextEl: '.pd_recommend .swiper-button-next',
+				prevEl: '.pd_recommend .swiper-button-prev',
+			},
+			pagination: {
+				el: '.pd_recommend .swiper-pagination',
+				clickable: true,
+			},
+		});			
+
+		//슬라이드 - 이 상품과 비슷한 상품 
+		var relateItemSwiper = new Swiper('.pd .pd_relate .area_slider .swiper-container', {
+			slidesPerView: 5,
+			spaceBetween: 20,
+			navigation: {
+				nextEl: '.pd_relate .swiper-button-next',
+				prevEl: '.pd_relate .swiper-button-prev',
+			},
+			pagination: {
+				el: '.pd_relate .swiper-pagination',
+				clickable: true,
+			},
+		});	  
+		
+		//슬라이드 - 상품문의 이미지 팝업
+		var itemQnaPopSwiper = new Swiper('.qna_img_pop .swiper-container', {
+			navigation: {
+				nextEl: '.qna_img_pop .swiper-button-next',
+				prevEl: '.qna_img_pop .swiper-button-prev',
+			},
+			pagination: {
+				el: '.qna_img_pop .swiper-pagination',
+				clickable: true,
+			},
+			observer:true,
+			observeParents: true,
+		});	
+
+		//alert -쇼핑백담기
+		document.getElementById("btn_add_cart").onclick = function(){
+			mcxDialog.confirm("<div class="+"dialog-title"+">"+"상품이 쇼핑백에 추가되었습니다.</div><p>쇼핑백으로 이동하시겠습니까?</p>", {
+				cancelBtnText: "계속 쇼핑하기",
+				sureBtnText: "쇼핑백 가기",
+				sureBtnClick: function(){
+					location.href=''; 	//내 쇼핑백 이동url
+				}
+			});
+		};
+
+		//팝업 - 쿠폰받기
+		$(document).on('click','#btn_saleCoupon_pop',function(e){
+			$("#saleCouponPop").modal("show"); //할인쿠폰받기
+			//$("#epCouponPop").modal("show"); ep채널 쿠폰받기
+			return false;
+		});
+
+		//팝업 - 쇼핑혜택 > 자세히보기
+		$(document).on('click','#btn_bnfShopping_pop',function(e){
+			$("#bnfShoppingPop").modal("show");
+			return false;
+		});
+
+		//팝업 - 카드혜택 > 자세히보기
+		$(document).on('click','#btn_bnfCard_pop',function(e){
+			$("#bnfCardPop").modal("show");
+			return false;
+		});
+
+		//팝업 - 사이즈정보
+		$(document).on('click','#btn_infoSize_pop',function(e){
+			$("#infoSizePop").modal("show");
+			return false;
+		});			
+
+		//팝업 - 사이즈정보 > 탭
+		$(document).on('click','.info_size_pop .tab_nav ul li',function(e){
+			$(this).addClass('active').siblings().removeClass('active');
+			$('.info_size_pop .tab_cont_wrap .tab_cont').hide();		
+			$('.info_size_pop .tab_cont_wrap .tab_cont').eq($(this).index()).show();
+			return false;
+		});
+
+		//팝업 - 사이즈정보 > 서브탭
+		$(document).on('click','.info_size_pop .sub_tab_nav ul li',function(e){
+			$(this).addClass('active').siblings().removeClass('active');
+			$(this).parents('.tab_cont').find('.sub_tab_cont').hide();
+			$(this).parents('.tab_cont').find('.sub_tab_cont').eq($(this).index()).show();
+			return false;
+		});
+		
+		//팝업 - 재입고 알림 신청
+		$(document).on('click','#btn_pushRestock_pop',function(e){
+			//선택옵션 호출
+			var opt_selecter03 = new sCombo('.opt_select .select_custom.item_opt3');
+			var opt_selecter04 = new sCombo('.opt_select .select_custom.item_opt4');
+			
+			$("#pushRestockPop").modal("show");
+			return false;
+		});					 
+
+		//팝업 - 상품리뷰
+		$(document).on('click','#btn_pdReview_pop',function(e){
+			$('body').addClass('lock');
+			$("#pdReviewPop .full_pop_container").load("pd_review_pop.html");
+			$("#pdReviewPop").show(); 
+			return false;
+		}).on('click','#btn_close_reviewPop',function(e){
+			$("#pdReviewPop").hide(); 
+			$('body').removeClass('lock');
+			return false;
+		});
+		
+		//팝업 - 상품 베스트 리뷰 (detail)
+		$(document).on('click','#btn_pdBestReview_pop, .area_rv_best .best_review a',function(e){
+			$("#pdBestReviewPop .modal-content").load("pd_bestreviewdetail_pop.html");
+			$("#pdBestReviewPop").modal("show");
+			return false;
+		});	  
+
+		//팝업 - 포토/영상 리뷰 (detail)
+		$(document).on('click','.area_rv_photo .photo_list a, .area_rv_all .review_list .photo_list a, .pd_photoreviewlist_pop .photo_list ul li a',function(e){
+			$("#pdPhotoReviewDetailPop .modal-content").load("pd_photoreviewdetail_pop.html");
+			$("#pdPhotoReviewDetailPop").modal("show");
+			return false;
+		});				  
+		
+		//팝업 - 포토/영상 리뷰 (list)
+		$(document).on('click','#btn_more_photoreview, #btn_pdPhotoReviewList_pop',function(e){
+			$("#pdPhotoReviewListPop .modal-content").load("pd_photoreviewlist_pop.html");
+			$("#pdPhotoReviewListPop").modal("show");
+			return false;
+		});		
+		
+		//팝업 - 상품문의 작성
+		$(document).on('click','#btn_pdQnaWrite_pop',function(e){
+			$("#pdQnaWritePop").modal("show");
+
+			// 상품문의 작성 > 글자수 체크
+			$('.pd_qnawrite_pop .doc_itemqna').keyup(function (e){
+				var contentQna = $(this).val();
+				$('#itemqna_cnt').html("(<em class='c_primary'>"+contentQna.length+"</em>/500자)");  
+				if (contentQna.length > 500){
+					alert("최대 500자까지 입력 가능합니다.");
+					$(this).val(contentQna.substring(0, 500));
+					$('#itemqna_cnt').html("(<em class='c_primary'>500</em>/500자)");
+				}
+			});				
+
+			return false;
+		});
+
+		//팝업 - 상품문의 리스트
+		$(document).on('click','#btn_pdQnaList_pop',function(e){
+			$('body').addClass('lock');
+			$("#pdQnaListPop .full_pop_container").load("pd_qnalist_pop.html");
+			$("#pdQnaListPop").show(); 
+			return false;
+		}).on('click','#btn_close_qnaListPop',function(e){
+			$("#pdQnaListPop").hide(); 
+			$('body').removeClass('lock');
+			return false;
+		});			
+
+		//팝업 - 상품문의 이미지 슬라이드
+		$(document).on('click','.qna_list .img_group .thumb_pic',function(e){
+			$("#qnaImgPop .swiper-wrapper").empty();
+
+			var pdPopSlideIndex = $(this).index();
+			itemQnaPopSwiper.slideTo(pdPopSlideIndex);
+			itemQnaPopSwiper.update();
+
+			var itemQnaImglength = $('.qna_list .img_group .thumb_pic').length;
+			var itemPopImgHtml = "";
+			for (i = 1; i <= itemQnaImglength; i++) {
+				var itemQnaImg = $(this).find('img');
+				var itemQnaImgSrc = $('.img_group .thumb_pic:nth-child('+i+') img').attr('src');
+				itemPopImgHtml += "<div class='swiper-slide'><div class='pop_img' style='background-image:url("+ itemQnaImgSrc +")'></div></div>";
+			}
+
+			$("#qnaImgPop .swiper-wrapper").append(itemPopImgHtml);
+			$('#qnaImgPop').modal("show");
+			
+			return false;
+		});
+
+		//팝업 - 배송교환반품 안내
+		$(document).on('click','#btn_pdDeliveryPop',function(e){
+			$('body').addClass('lock');
+			$("#pdDeliveryPop .full_pop_container").load("pd_delivery_pop.html");
+			$("#pdDeliveryPop").show(); 
+			return false;
+		}).on('click','#btn_close_deliveryPop',function(e){
+			$("#pdDeliveryPop").hide(); 
+			$('body').removeClass('lock');
+			
+			return false;
+		});
+
+	});
+/*]]>*/
+</script>
+</th:block>
+</body>
+</html>

+ 76 - 0
src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html

@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : GoodsIncludeFormWeb.html
+ * @desc    : 상품상세 Include Page - 공용
+ *============================================================================
+ * Wivismall
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.02   eskim	   최초 작성
+ *******************************************************************************
+ -->
+ <!-- 상품상세 네비게이션  -->
+<th:block  th:fragment="goodsNaviForm">
+	<div class="breadcrumb"> 
+		<ul>
+			<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
+			<th:block th:if="${goodsNavigation != null}">
+				<th:block th:if="${goodsNavigation.formalGb == '20'}">
+			<li><a href="javascript:void(0);" onclick="cfnGoToOutletMain('300')" >아울렛</a></li>
+			<li th:if="${goodsNavigation.cate1No}">
+				<a href="javascript:void(0);" th:onclick="cfnGoToCategoryGoodsList('','',[[${goodsNavigation.formalGb}]],[[${goodsNavigation.cate1No}]])" th:text="${goodsNavigation.cate1Nm}">cate</a>
+			</li>
+				</th:block>
+				<th:block th:unless="${goodsNavigation.formalGb == '20'}">
+			<li th:if="${goodsNavigation.cate1No}">
+				<a href="javascript:void(0);" th:onclick="cfnGoToCategoryMain([[${goodsNavigation.cateGb}]],[[${goodsNavigation.cate1No}]])"
+					th:text="${goodsNavigation.cate1Nm}">cate</a>
+			</li>
+				</th:block>
+			<li th:if="${goodsNavigation.cate2No}">
+				<th:block th:if="${goodsNavigation.cate3No}">
+				<a href="javascript:void(0);" th:onclick="cfnGoToCategoryGoodsList('','',[[${goodsNavigation.formalGb}]],[[${goodsNavigation.cate1No}]], [[${goodsNavigation.cate2No}]])"
+				th:text="${goodsNavigation.cate2Nm}">cate</a>
+				</th:block>
+				<th:block th:unless="${goodsNavigation.cate3No}"><strong th:text="${goodsNavigation.cate2Nm}">cate</strong></th:block>
+			</li>
+			<li th:if="${goodsNavigation.cate3No }">
+				<th:block th:if="${goodsNavigation.cate4No}">
+				<a href="javascript:void(0);" th:onclick="cfnGoToCategoryGoodsList('','',[[${goodsNavigation.formalGb}]],[[${goodsNavigation.cate1No}]], [[${goodsNavigation.cate2No}]], [[${goodsNavigation.cate3No}]])"
+				th:text="${goodsNavigation.cate3Nm}">cate</a>
+				</th:block>
+				<th:block th:unless="${goodsNavigation.cate4No}"><strong th:text="${goodsNavigation.cate3Nm}">cate</strong></th:block>
+			</li>
+			<li th:if="${goodsNavigation.cate4No }">
+				<th:block th:if="${goodsNavigation.cate5No}">
+				<a href="javascript:void(0);" th:onclick="cfnGoToCategoryGoodsList('','',[[${goodsNavigation.formalGb}]],[[${goodsNavigation.cate1No}]], [[${goodsNavigation.cate2No}]], [[${goodsNavigation.cate3No}]], [[${goodsNavigation.cate4No}]])"
+				th:text="${goodsNavigation.cate4Nm}">cate</a>
+				</th:block>
+				<th:block th:unless="${goodsNavigation.cate5No}"><strong th:text="${goodsNavigation.cate4Nm}">cate</strong></th:block>
+			</li>
+			<li th:if="${goodsNavigation.cate5No}">
+				<th:block th:text="${goodsNavigation.cate5Nm}">cate</th:block>
+			</li>
+			</th:block>
+		</ul> 
+	</div>
+</th:block>
+
+<!-- 상품상세 SNS  -->
+<th:block  th:fragment="goodsSnsForm" >
+<div class="sns_list" th:with="pastelUrl=${@environment.getProperty('domain.pastel')}, goodsView=${@environment.getProperty('upload.goods.view')}">
+	<ul>
+		<li><a href="javascript:void(0);" th:attr="onclick=|sendSns('kakaostory', '${pastelUrl+'/goods/detail/form?goodsCd='+goodsInfo.goodsCd}', '${goodsInfo.goodsTnmFull}', '', '');|"></a></li>
+		<li><a href="javascript:void(0);" th:attr="onclick=|sendSns('facebook', '${pastelUrl+'/goods/detail/form?goodsCd='+goodsInfo.goodsCd}', '${goodsInfo.goodsTnmFull}', '', '');|"></a></li>
+		<li><a href="javascript:void(0);" th:attr="onclick=|sendSns('twitter', '${pastelUrl+'/goods/detail/form?goodsCd='+goodsInfo.goodsCd}', '${goodsInfo.goodsTnmFull+ '#파스텔몰'}', '', '');|"></a></li>
+		<li><a href="javascript:void(0);" th:attr="onclick=|sendSns('pinterest', '${pastelUrl+'/goods/detail/form?goodsCd='+goodsInfo.goodsCd}', '${goodsInfo.goodsTnmFull}', '${goodsInfo.imgType == 'A' ? goodsView + goodsInfo.imgPath1 : goodsInfo.imgPath1}', '${goodsInfo.goodsTnmFull}');|"></a></li>
+		<li><a href="javascript:void(0)" class="btn_copy"></a></li>
+	</ul>
+</div>
+</th:block>
+
+</html>

+ 51 - 10
src/main/webapp/WEB-INF/views/web/mypage/MypagePointFormWeb.html

@@ -64,7 +64,7 @@
 												<tr>
 												<tr>
 													<th>사유</th>
 													<th>사유</th>
 													<th>내용</th>
 													<th>내용</th>
-													<th>차감</th>
+													<th id="plusMinus"></th>
 													<th>일자</th>
 													<th>일자</th>
 												</tr>
 												</tr>
 											</thead>
 											</thead>
@@ -77,17 +77,55 @@
 						</div>
 						</div>
 					</div>
 					</div>
 <script th:inline="javascript">
 <script th:inline="javascript">
+
 	// 전체내역 조회
 	// 전체내역 조회
 	$("#fnSetSearchFullHistory").click(function(){
 	$("#fnSetSearchFullHistory").click(function(){
 		// Class제거 추가
 		// Class제거 추가
 		$("#fnSetSearchCollectHistory").removeClass("on");
 		$("#fnSetSearchCollectHistory").removeClass("on");
 		$("#fnSetSearchUsedHistory").removeClass("on");
 		$("#fnSetSearchUsedHistory").removeClass("on");
 		$("#fnSetSearchFullHistory").addClass("on");
 		$("#fnSetSearchFullHistory").addClass("on");
+		$("#plusMinus").text("증감/차감");
+		
+		let data = {};
+		
+		data.searchDt = $('select[name=searchDt]').val();
 		
 		
-		// 적립내역 + 사용내역(sum)으로 표시
+		var jsonData = JSON.stringify(data);
 		
 		
+		$.ajax(
+				{
+					type 	 : "POST",
+					data	 : jsonData,
+					url 	 : '/mypage/allpoint/list',
+					contentType: 'application/json',
+  					dataType : 'json',
+					success  : function(result){
+						fnPointAllListInfo(result);
+					}
+				}
+		)
 	});
 	});
 	
 	
+	function fnPointAllListInfo(result) {
+		
+		let allPointList = result.allPointList;
+		
+		let tmtbHtml = "";
+		for(let i=0; i<allPointList.length; i++){
+			let point = allPointList[i];
+			tmtbHtml +='<tr>';
+			tmtbHtml +='<td>'+ point.occurGb + '</td>';
+			tmtbHtml += '<td class="t_l pl40">'+ point.occurDtlDesc + '</td>';
+			if(point.pntAmt > 0){
+				tmtbHtml += '<td class="c_blue">'+ point.pntAmt + '</td>';
+			}else{
+				tmtbHtml += '<td class="c_primary">'+ point.pntAmt + '</td>';
+			}
+			tmtbHtml += '<td>'+ point.pntUploadDt + '</td>';
+			tmtbHtml += '</tr>';
+		}
+		$("#pointAjaxList").html(tmtbHtml);
+	}
 	
 	
 	// 적립내역 조회
 	// 적립내역 조회
 	$("#fnSetSearchCollectHistory").click(function(){
 	$("#fnSetSearchCollectHistory").click(function(){
@@ -99,6 +137,7 @@
 		// 적립내역 포인트 블루
 		// 적립내역 포인트 블루
 		$("#pntAmt").removeClass("c_primary");
 		$("#pntAmt").removeClass("c_primary");
 		$("#pntAmt").addClass("c_blue");
 		$("#pntAmt").addClass("c_blue");
+		$("#plusMinus").text("증감");
 		
 		
 		let data = {};
 		let data = {};
 		
 		
@@ -137,7 +176,6 @@
 		$("#pointAjaxList").html(tmtbHtml);
 		$("#pointAjaxList").html(tmtbHtml);
 	}
 	}
 	
 	
-	
 	// 사용내역 조회
 	// 사용내역 조회
 	$("#fnSetSearchUsedHistory").click(function(){
 	$("#fnSetSearchUsedHistory").click(function(){
 		// Class제거 추가
 		// Class제거 추가
@@ -148,6 +186,7 @@
 		// 사용내역 포인트 블루
 		// 사용내역 포인트 블루
 		$("#pntAmt").removeClass("c_blue");
 		$("#pntAmt").removeClass("c_blue");
 		$("#pntAmt").addClass("c_primary");
 		$("#pntAmt").addClass("c_primary");
+		$("#plusMinus").text("차감");
 		
 		
 		let data = {};
 		let data = {};
 		
 		
@@ -172,27 +211,29 @@
 	function fnUsePointListInfo(result) {
 	function fnUsePointListInfo(result) {
 		
 		
 		let usePointList = result.usePointList;
 		let usePointList = result.usePointList;
-		
+		console.log(usePointList);
 		let tmtbHtml = "";
 		let tmtbHtml = "";
 		for(let i=0; i<usePointList.length; i++){
 		for(let i=0; i<usePointList.length; i++){
-			let point = usePointList[i];
+			let usePoint = usePointList[i];
 			tmtbHtml +='<tr>';
 			tmtbHtml +='<tr>';
-			tmtbHtml +='<td>'+ usePointList.occurGb + '</td>';
-			tmtbHtml += '<td class="t_l pl40">'+ usePointList.occurDtlDesc + '</td>';
-			tmtbHtml += '<td class="c_primary">'+  usePointList.pntAmt + '</td>';
-			tmtbHtml += '<td>'+ usePointList.pntUploadDt + '</td>';
+			tmtbHtml +='<td>'+ usePoint.occurGb + '</td>';
+			tmtbHtml += '<td class="t_l pl40">'+ usePoint.occurDtlDesc + '</td>';
+			tmtbHtml += '<td class="c_primary">'+  usePoint.pntAmt + '</td>';
+			tmtbHtml += '<td>'+ usePoint.pntUploadDt + '</td>';
 			tmtbHtml += '</tr>';
 			tmtbHtml += '</tr>';
 		}
 		}
 		$("#pointAjaxList").html(tmtbHtml);
 		$("#pointAjaxList").html(tmtbHtml);
 	}
 	}
 
 
-	
 	$(document).ready(function() {
 	$(document).ready(function() {
 		// 마이페이지 LNB 설정
 		// 마이페이지 LNB 설정
 		fnSetMypageLnbList(5);
 		fnSetMypageLnbList(5);
 		
 		
 		// 마이페이지 location 설정
 		// 마이페이지 location 설정
 		fnSetMypageLocation('STYLE24 포인트', '_PAGE_MYPAGE_POINT');
 		fnSetMypageLocation('STYLE24 포인트', '_PAGE_MYPAGE_POINT');
+		
+		// 전체내역
+		$("#fnSetSearchFullHistory").trigger('click');
 
 
 	});
 	});
 
 

+ 195 - 78
src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html

@@ -30,81 +30,86 @@
 			<form class="form_wrap" role="form">
 			<form class="form_wrap" role="form">
 				<div class="order_list">
 				<div class="order_list">
 					<section class="order_row">
 					<section class="order_row">
-						<th:block th:if="${orderList}" th:each="oneData, status : ${orderList}">
-							<div class="part_deliver">
-								<div class="tbl_tit">
-									<!-- 주문일/선물일 설정 -->
-									<span class="start_t" th:unless="${oneData.giftPackYn == 'Y'}">주문일</span>
-									<span class="gift_t" th:if="${oneData.giftPackYn == 'Y'}">선물일</span>
-									<!-- //주문일/선물일 설정 -->
-	
-									<span class="order_date" th:text="${oneData.ordDt}"></span>
-	
-									<!-- 배송구분 설정 -->
-									<span class="order_label02" th:if="${oneData.shotDelv}">총알배송</span>
-									<span class="order_label01" th:if="${oneData.selfMall}">STYLE24 일반배송</span>
-									<span class="order_label01" th:if="${oneData.supplyMall}">업체직배송</span>
-									<!-- //배송구분 설정 -->
-									<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>
-								</div>
-								<th:block th:if="${oneData.orderList}" th:each="order, status : ${oneData.orderList}">
-									<div class="tbl type2">
-										<table id="returnList">
-											<colgroup>
-												<col width="1020">
-												<col width="180">
-											</colgroup>
-											<tbody>
-											<th:block th:if="${order.ordDtlList}" th:each="ordDtl, status : ${order.ordDtlList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
-												<input type="hidden" name="ordDtlNo" th:value="${ordDtl.ordDtlNo}"/>
-												<input type="hidden" name="ordDtlStat" th:value="${ordDtl.ordDtlStat}"/>
-												<input type="hidden" name="reviewSq" th:value="${ordDtl.reviewSq}"/>
-												<tr>
-													<td>
-														<div class="info_item">
-															<div class="thumb_box">
-																<a href="">
-																	<img th:src="${imageUrl + '/' + ordDtl.sysImgNm}" width="100%" alt="">
-																</a>
-															</div>
-															<div class="info_box">
-																<p class="od_name">
-																	<a href="">
-																		<span class="brand" th:text="${ordDtl.brandNm}"></span>
-																		<span class="name" th:text="${ordDtl.goodsNm}"></span>
-																	</a>
-																</p>
-																<p class="od_opt">
-																	<span class="option"><em th:text="${ordDtl.optCd1}"></em><em th:text="${ordDtl.optCd2}"></em></span>
-																	<span class="count">수량 <em th:text="${ordDtl.ordQty}"></em>개</span>
-																</p>
-															</div>
-															<div class="info_calc">
-																<p class="price">
-																	<span class="selling_price" th:text="|${#numbers.formatInteger(ordDtl.ordAmt, 1, 'COMMA')}원|"></span>
-																</p>
-																<p class="point"><span th:text="${#numbers.formatInteger(ordDtl.savePntAmt, 1, 'COMMA')}"></span>p</p>
-															</div>
+						<div class="part_deliver">
+							<div class="tbl_tit">
+								<!-- 주문일/선물일 설정 -->
+								<span class="start_t" th:unless="${returnList.oneData.giftPackYn == 'Y'}">주문일</span>
+								<span class="gift_t" th:if="${returnList.oneData.giftPackYn == 'Y'}">선물일</span>
+								<!-- //주문일/선물일 설정 -->
+
+								<span class="order_date" th:text="${returnList.oneData.ordDt}"></span>
+
+								<!-- 배송구분 설정 -->
+								<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>
+								<!-- //배송구분 설정 -->
+								<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>
-													</td>
-													<td class="cnt_sel">
-														<span class="cnt_t">수량</span>
-														<select class="select_dress" name="chgQty" onchange="fnChangeQty();">
-															<option value="">선택</option>
-															<option th:if="${ordDtl.ordQty > 0}" th:each="num : ${#numbers.sequence(1,ordDtl.ordQty)}" th:value="${num}" th:text="${num}"></option>
-														</select>
-													</td>
-												</tr>
-											</th:block>
-											</tbody>
-										</table>
-									</div>
-								</th:block>
-								<div class="order_confirm">
-									<p class="cf_txt cf_desc c_primary">반품하실 상품의 수량을 선택하신 후 반품 신청을 하실 수 있습니다.</p>
-								</div>
+													</div>
+												</div>
+<!--												<select class="select_dress" name="chgQty" onchange="fnChangeQty();">-->
+<!--													<option value="">선택</option>-->
+<!--													<option th:if="${return.ordQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordQty)}" th:value="${num}" th:text="${num}"></option>-->
+<!--												</select>-->
+											</td>
+										</tr>
+									</th:block>
+									</tbody>
+								</table>
+							</div>
+							<div class="order_confirm">
+								<p class="cf_txt cf_desc c_primary">반품하실 상품의 수량을 선택하신 후 반품 신청을 하실 수 있습니다.</p>
 							</div>
 							</div>
-						</th:block>
+						</div>
 					</section>
 					</section>
 					<section class="order_row">
 					<section class="order_row">
 						<div class="tbl_tit">
 						<div class="tbl_tit">
@@ -118,10 +123,17 @@
 								<tbody>
 								<tbody>
 								<tr>
 								<tr>
 									<td>
 									<td>
-										<select id="mounth" name="chgReason" onchange="fnChangeReason(this);">
-											<option value="">반품 사유를 선택하세요</option>
-											<option th:if="${returnReason}" th:each="oneData, status : ${returnReason}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
-										</select>
+										<div class="form_field">
+											<div class="select_custom type1">
+												<div class="combo">
+													<div class="select" name="chgReason">반품 사유를 선택하세요</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>
 									</td>
 								</tr>
 								</tr>
 								<tr>
 								<tr>
@@ -303,12 +315,23 @@
 	</div>
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 <script th:inline="javascript">
+	let returnList = [[${returnList.returnList}]];
+	let usedGiftCardInfo = [[${usedGiftCardInfo}]];
+	let usedPointInfo = [[${usedPointInfo}]];
+	let refundPoint = 0;
+	let refundGiftCard = 0;
+
 	$(document).ready(function() {
 	$(document).ready(function() {
 		// 마이페이지 LNB 설정
 		// 마이페이지 LNB 설정
 		fnSetMypageLnbList(2);
 		fnSetMypageLnbList(2);
 		
 		
 		// 마이페이지 location 설정
 		// 마이페이지 location 설정
 		fnSetMypageLocation('취소/반품/환불내역', '_PAGE_MYPAGE_CRS_LIST', '반품 신청');
 		fnSetMypageLocation('취소/반품/환불내역', '_PAGE_MYPAGE_CRS_LIST', '반품 신청');
+		
+		// 셀렉트박스 활성화
+		$('.select_custom.type1').each(function(index) {
+			var selecter01 = new sCombo($(this));
+		});
 	});
 	});
 	
 	
 	// 반품 처리
 	// 반품 처리
@@ -319,14 +342,108 @@
 	
 	
 	// 반품 수량 변경 이벤트 처리
 	// 반품 수량 변경 이벤트 처리
 	var fnChangeQty = function(param) {
 	var fnChangeQty = function(param) {
+		let url = '/mypage/cancel/refund/amt/calculate';
+		$(param).parent().parent().find('input[name=chgQty]').val($(param).val());
+		
+		let chgReason = $('div[name=chgReason]').parent().find('li.selected').attr('value');
+		
+		if (!gagajf.isNull(chgReason)) {
+			let data = {};
+			let returnRequestList = [];
+
+			// 반품 수량 설정
+			let chgQtyArr = [];
+			let ordDtlNoArr = [];
+			let ordCanChgQtyArr = [];
+			$.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));
+			});
+			
+			let refundPoint = fnCalculatePoint(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr);
+			let refundGiftCard = fnCalculateGiftCard(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr);
+
+			$.each(returnList, function(idx, item) {
+				let index = ordDtlNoArr.indexOf(item.ordDtlNo);
+				item.ordCanChgQty = chgQtyArr[index];
+
+				returnRequestList.push(item);
+			})
+			
+			let jsonData = JSON.stringify(returnRequestList);
+			
+			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+				let returnAmt = result.spanRefundAmt;													// 환불예정금액
+				let goodsCancelAmt = result.spanCnclRtnAmt;												// 상품취소금액
+				let deliveryFee = result.sumDeliveryFee + result.spanTotDeliveryFee;					// 배송비
+				let deductDcAmt = result.spanCpnDcAmt + result.spanTmtbDcAmt + result.spanPrePntDcAmt;	// 할인금액 차감(쿠폰+다다익선+선포인트)
+				let refundPayAmt = result.spanRealCnclRtnAmt + result.sumDeliveryFee;					// 결제금액 환불
+				//let refundPoint = result.spanPntDcAmt;													// 포인트 환불
+				//let refundGiftCard = result.spanGfcdUseAmt;												// 상품권 환불
+
+				// 금액 설정
+				$('#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 fnChangeReason = function(param) {
 		// TODO
 		// TODO
-		// 반품 수량 변경 처리
+		// 반품 사유 변경 처리
 	}
 	}
 	
 	
+	// 반품 방식 선택 이벤트
 	var fnChangeWdGb = function() {
 	var fnChangeWdGb = function() {
 		let wdGb = $('input[name=wdGb]:radio:checked').val();
 		let wdGb = $('input[name=wdGb]:radio:checked').val();
 		console.log(wdGb);
 		console.log(wdGb);
 	}
 	}
+
+	// 환불 포인트 계산
+	var fnCalculatePoint = function(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr) {
+		let refundAmt = 0;
+
+		$.each(usedPointInfo, function(idx, item) {
+			let index = ordDtlNoArr.indexOf(item.ordDtlNo);
+			let chgQty = chgQtyArr[index];
+			let ordCanChgQty = ordCanChgQtyArr[index];
+			
+			if (chgQty = ordCanChgQty) {
+				refundAmt += item.pntAmt;
+			} else {
+				refundAmt += item.pntAmt * (chgQty / ordCanChgQty);
+			}
+		});
+	}
+	
+	// 환불 상품권 계산
+	var fnCalculateGiftCard = function(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr) {
+		let refundAmt = 0;
+		
+		$.each(usedGiftCardInfo, function(idx, item) {
+			let index = ordDtlNoArr.indexOf(item.ordDtlNo);
+			let chgQty = chgQtyArr[index];
+			let ordCanChgQty = ordCanChgQtyArr[index];
+			
+			if (chgQty = ordCanChgQty) {
+				refundAmt += item.gfcdAmt;
+			} else {
+				refundAmt += item.pntAmt * (chgQty / ordCanChgQty);
+			}
+		});
+	}
 </script>
 </script>
 
 
 </th:block>
 </th:block>

+ 300 - 67
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -23,6 +23,62 @@
 <script type="text/javascript" src="/ux/pc/js/slick.min.js"></script>
 <script type="text/javascript" src="/ux/pc/js/slick.min.js"></script>
 <script type="text/javascript" src="/ux/pc/js/jquery-ui.js"></script>
 <script type="text/javascript" src="/ux/pc/js/jquery-ui.js"></script>
 
 
+<!-- xodud1202 -->
+	<script type="text/javascript">
+		/****************************************************************/
+		/* m_Completepayment  설명                                      */
+		/****************************************************************/
+		/* 인증완료시 재귀 함수                                         */
+		/* 해당 함수명은 절대 변경하면 안됩니다.                        */
+		/* 해당 함수의 위치는 payplus.js 보다먼저 선언되어여 합니다.    */
+		/* Web 방식의 경우 리턴 값이 form 으로 넘어옴                   */
+		/****************************************************************/
+		function m_Completepayment( FormOrJson, closeEvent )
+		{
+			var frm = document.order_info;
+
+			/********************************************************************/
+			/* FormOrJson은 가맹점 임의 활용 금지                               */
+			/* frm 값에 FormOrJson 값이 설정 됨 frm 값으로 활용 하셔야 됩니다.  */
+			/* FormOrJson 값을 활용 하시려면 기술지원팀으로 문의바랍니다.       */
+			/********************************************************************/
+			GetField( frm, FormOrJson );
+
+
+			if( frm.res_cd.value == "0000" )
+			{
+				alert("결제 승인 요청 전,\n\n반드시 결제창에서 고객님이 결제 인증 완료 후\n\n리턴 받은 ordr_chk 와 업체 측 주문정보를\n\n다시 한번 검증 후 결제 승인 요청하시기 바랍니다."); //업체 연동 시 필수 확인 사항.
+				/*
+					가맹점 리턴값 처리 영역
+				*/
+				frm.submit();
+			} else {
+				alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value );
+				closeEvent();
+			}
+		}
+	</script>
+
+	<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}"></script>
+
+	<script type="text/javascript">
+		/* 표준웹 실행 */
+		function jsf__pay( form )
+		{
+			try {
+				KCP_Pay_Execute( form );
+			} catch (e) {
+				/* IE 에서 결제 정상종료시 throw로 스크립트 종료 */
+			}
+		}
+	</script>
+
+	<form name="order_info" method="post" action="pp_cli_hub.jsp" >
+
+	</form>
+
+<!-- // xodud1202 -->
+
 <!--  container -->
 <!--  container -->
 <form id="payForm" name="payForm">
 <form id="payForm" name="payForm">
 	<input type="hidden" name="delvMemo" th:value="${deliveryAddrInfo.delvMemo}">
 	<input type="hidden" name="delvMemo" th:value="${deliveryAddrInfo.delvMemo}">
@@ -347,7 +403,7 @@
 														<div>
 														<div>
 															<dt>할인쿠폰</dt>
 															<dt>할인쿠폰</dt>
 															<dd>
 															<dd>
-																<a href="" class="btn_coupon_toggle">할인쿠폰 <span>3장</span>적용</a>
+																<a href="javascript:void(0);" class="btn_coupon_toggle">할인쿠폰 <span id="cpnApplyCnt"></span>적용</a>
 																<div class="coupon_list">
 																<div class="coupon_list">
 																	<ul>
 																	<ul>
 																		<!--  상품쿠폰 -->
 																		<!--  상품쿠폰 -->
@@ -376,6 +432,7 @@
 																						<div class="form_field">
 																						<div class="form_field">
 																							<div class="select_custom type1">
 																							<div class="select_custom type1">
 																								<div class="combo">
 																								<div class="combo">
+																									<input type="hidden" name="cpnType" value="goodsCpn"/>
 																									<input type="hidden" name="cpnCartSq" th:value="${goods.cartSq}"/>
 																									<input type="hidden" name="cpnCartSq" th:value="${goods.cartSq}"/>
 																									<input type="hidden" name="custCpnSq" value="0"/>
 																									<input type="hidden" name="custCpnSq" value="0"/>
 																									<input type="hidden" name="cpnDcAmt" value="0"/>
 																									<input type="hidden" name="cpnDcAmt" value="0"/>
@@ -407,6 +464,7 @@
 																					<div class="form_field">
 																					<div class="form_field">
 																						<div class="select_custom type1">
 																						<div class="select_custom type1">
 																							<div class="combo">
 																							<div class="combo">
+																								<input type="hidden" name="cpnType" value="cartCpn"/>
 																								<input type="hidden" name="custCpnSq" value="0"/>
 																								<input type="hidden" name="custCpnSq" value="0"/>
 																								<input type="hidden" name="cpnDcAmt" value="0"/>
 																								<input type="hidden" name="cpnDcAmt" value="0"/>
 																								
 																								
@@ -416,8 +474,10 @@
 																									<th:block th:each="cartCpn, k : ${cartCpnList}">
 																									<th:block th:each="cartCpn, k : ${cartCpnList}">
 																										<li th:value="${cartCpn.custCpnSq}" th:data="${cartCpn.cpnDcAmt}">
 																										<li th:value="${cartCpn.custCpnSq}" th:data="${cartCpn.cpnDcAmt}">
 																											<th:block th:text="${cartCpn.cpnNm}"></th:block>
 																											<th:block th:text="${cartCpn.cpnNm}"></th:block>
+																											<input type="hidden" name="dcWay" th:value="${cartCpn.dcWay}"/>
+																											<input type="hidden" name="dcVal" th:value="${cartCpn.dcVal}"/>
 																											<th:block th:each="cartCpnCartSq, kokok : ${cartCpn.cartCpnCartSqArr}"> 
 																											<th:block th:each="cartCpnCartSq, kokok : ${cartCpn.cartCpnCartSqArr}"> 
-																												<input type="text" name="cartCpnCartSq" th:value="${cartCpnCartSq}" />
+																												<input type="hidden" name="cartCpnCartSq" th:value="${cartCpnCartSq}" />
 																											</th:block>
 																											</th:block>
 																										</li>
 																										</li>
 																									</th:block>
 																									</th:block>
@@ -441,14 +501,16 @@
 																					<div class="form_field">
 																					<div class="form_field">
 																						<div class="select_custom type1">
 																						<div class="select_custom type1">
 																							<div class="combo">
 																							<div class="combo">
+																								<input type="hidden" name="cpnType" value="delvCpn"/>
 																								<input type="hidden" name="custCpnSq" value="0"/>
 																								<input type="hidden" name="custCpnSq" value="0"/>
 																								<input type="hidden" name="cpnDcAmt" value="0"/>
 																								<input type="hidden" name="cpnDcAmt" value="0"/>
+																								<input type="hidden" name="delvFeeCd" value="0"/>
 																								
 																								
 																								<div class="select" value="0">선택없음</div>
 																								<div class="select" value="0">선택없음</div>
 																								<ul class="list">
 																								<ul class="list">
 																									<li value="0">선택없음</li>
 																									<li value="0">선택없음</li>
 																									<th:block th:each="delvCpn, k : ${delvCpnList}">
 																									<th:block th:each="delvCpn, k : ${delvCpnList}">
-																										<li th:value="${delvCpn.custCpnSq}" th:data="${delvCpn.cpnDcAmt}" th:text="${delvCpn.cpnNm}"></li>
+																										<li th:value="${delvCpn.custCpnSq}" th:data="${delvCpn.cpnDcAmt}" th:delvfeecd="${delvCpn.delvFeeCd}" th:text="${delvCpn.cpnNm}"></li>
 																									</th:block>
 																									</th:block>
 																								</ul>
 																								</ul>
 																							</div>
 																							</div>
@@ -836,32 +898,34 @@
 												<div class="gd_list">
 												<div class="gd_list">
 													<th:block th:each="goods, i : ${delvAllCart}">
 													<th:block th:each="goods, i : ${delvAllCart}">
 														<div class="item_gd">
 														<div class="item_gd">
-															<input type="text" name="cartSq" 			th:value="${goods.cartSq}"/>
-															<input type="text" name="cpn1CpnSq" 		th:value="${goods.cpn1CpnSq}"/>
-															<input type="text" name="cpn1DcAmt" 		th:value="${goods.orgCurrPrice} - ${goods.currPrice}"/>
+															<input type="hidden" name="cartSq" 			th:value="${goods.cartSq}"/>
+															<input type="hidden" name="currPrice"		th:value="${goods.currPrice}"/>
+															
+															<input type="hidden" name="cpn1CpnSq" 		th:value="${goods.cpn1CpnSq}"/>
+															<input type="hidden" name="cpn1DcAmt" 		th:value="${goods.orgCurrPrice} - ${goods.currPrice}"/>
 															
 															
 															<th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
 															<th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
-																<input type="text" name="tmtb1Sq" 		th:value="${goods.qtyTmtbSq}"/>
-																<input type="text" name="tmtb1DcAmt" 	th:value="${goods.tmtb1DcAmt}"/>
+																<input type="hidden" name="tmtb1Sq" 	th:value="${goods.qtyTmtbSq}"/>
+																<input type="hidden" name="tmtb1DcAmt" 	th:value="${goods.tmtb1DcAmt}"/>
 															</th:block>
 															</th:block>
 															<th:block th:if="${goods.applyQtySectionYn} != 'Y'">
 															<th:block th:if="${goods.applyQtySectionYn} != 'Y'">
-																<input type="text" name="tmtb1Sq" 		value="0"/>
-																<input type="text" name="tmtb1DcAmt" 	value="0"/>
+																<input type="hidden" name="tmtb1Sq" 	value="0"/>
+																<input type="hidden" name="tmtb1DcAmt" 	value="0"/>
 															</th:block>
 															</th:block>
 															
 															
 															<th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
 															<th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
-																<input type="text" name="tmtb2Sq" 		th:value="${goods.amtTmtbSq}"/>
-																<input type="text" name="tmtb2DcAmt" 	th:value="${goods.tmtb2DcAmt}"/>
+																<input type="hidden" name="tmtb2Sq" 	th:value="${goods.amtTmtbSq}"/>
+																<input type="hidden" name="tmtb2DcAmt" 	th:value="${goods.tmtb2DcAmt}"/>
 															</th:block>
 															</th:block>
 															<th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
 															<th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
-																<input type="text" name="tmtb2Sq" 		value="0"/>
-																<input type="text" name="tmtb2DcAmt" 	value="0"/>
+																<input type="hidden" name="tmtb2Sq" 	value="0"/>
+																<input type="hidden" name="tmtb2DcAmt" 	value="0"/>
 															</th:block>
 															</th:block>
 															
 															
-															<input type="text" name="goodsCpnSq" 		value=""/>
-															<input type="text" name="goodsCpnDcAmt" 	value=""/>
-															<input type="text" name="cartCpnSq" 		value=""/>
-															<input type="text" name="cartCpnDcAmt" 		value=""/>
+															<input type="hidden" name="goodsCpnSq" 		value=""/>
+															<input type="hidden" name="goodsCpnDcAmt" 	value=""/>
+															<input type="hidden" name="cartCpnSq" 		value=""/>
+															<input type="hidden" name="cartCpnDcAmt" 	value=""/>
 															
 															
 															<figure>
 															<figure>
 																<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
 																<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
@@ -907,7 +971,7 @@
 										</div>
 										</div>
 										<div>
 										<div>
 											<dt>다다익선할인금액</dt>
 											<dt>다다익선할인금액</dt>
-											<dd><span class="disc_amount" id="tmtbDcSumAmt" th:text="|${#numbers.formatInteger(tmtbDcSumAmt, 1, 'COMMA')}원|"></span></dd>
+											<dd><span class="disc_amount" id="tmtbDcSumAmt" th:text="|-${#numbers.formatInteger(tmtbDcSumAmt, 1, 'COMMA')}원|"></span></dd>
 										</div>
 										</div>
 										<div>
 										<div>
 											<dt>쿠폰할인금액</dt>
 											<dt>쿠폰할인금액</dt>
@@ -1176,6 +1240,7 @@ $(document).ready( function() {
 	var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
 	var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
 	var delvCnt 			= [[${delvCnt}]];				// 입전 일반 배송건수
 	var delvCnt 			= [[${delvCnt}]];				// 입전 일반 배송건수
 	var shotDelvYn			= [[${shotDelvYn}]];			// 총알배송여부
 	var shotDelvYn			= [[${shotDelvYn}]];			// 총알배송여부
+	var sumDelvFee			= [[${sumDelvFee}]];			// 배송비합계
 	
 	
 	// 할인관련정보 변수선언
 	// 할인관련정보 변수선언
 	var freegiftList		= [[${freegiftList}]];			// 사은품 프로모션 목록
 	var freegiftList		= [[${freegiftList}]];			// 사은품 프로모션 목록
@@ -1236,22 +1301,8 @@ $(document).ready( function() {
 				$(this).on("click", function(){
 				$(this).on("click", function(){
 					// 쿠폰 선택없음
 					// 쿠폰 선택없음
 					if ($(this).prop("value") == 0) {
 					if ($(this).prop("value") == 0) {
-						// select box 쿠폰 적용
-						var cpnCartSq = $(this).parent().parent().find("input[name='cpnCartSq']").val();
-						
-						// 장바구니시퀀스 체크
-						$("input[name='cartSq']").each(function(){
-							if (cpnCartSq == $(this).val()) {
-								$(this).parent().find("input[name='goodsCpnSq']").val("0");			// 상품쿠폰시퀀스
-								$(this).parent().find("input[name='goodsCpnDcAmt']").val("0");		// 상품쿠폰할인금액
-							}
-						});
-						
-						$(this).parent().parent().find("input[name='custCpnSq']").val("0");
-						$(this).parent().parent().find("input[name='cpnDcAmt']").val("0");
-						
-						$(this).parent().parent().find(".select").text("선택없음");
-						$(this).parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
+						// 쿠폰 선택없음
+						cpnApplyDel($(this));
 					}
 					}
 					// 쿠폰선택
 					// 쿠폰선택
 					else {
 					else {
@@ -1265,30 +1316,42 @@ $(document).ready( function() {
 							// 쿠폰적용불가
 							// 쿠폰적용불가
 							custCpnNotApply($(this));
 							custCpnNotApply($(this));
 						}
 						}
+						
+						// 쿠폰할인금액 SUM
+						custCpnSumAmtCal();
+						
+						// 최대할인혜택적용 체크해제
+						if ($("#chk-maxdisc").is(":checked")) {
+							$("#chk-maxdisc").attr("checked", false);
+						}
 					}
 					}
-					
-					// 최대할인혜택적용 체크해제
-					if ($("#chk-maxdisc").is(":checked")) {
-						$("#chk-maxdisc").attr("checked", false);
-					}
-					
-					// 쿠폰할인금액 SUM
-					custCpnSumAmtCal();
 				});
 				});
 			});
 			});
 		});
 		});
 		
 		
-		// 3. 쿠폰 최대할인금액 초기화 버튼 설정
-		$("#chk-maxdisc").on("click", function(){
-			if ($(this).is(":checked")) {
-				custCpnInit();
-			}
-		});
 		
 		
-		// 3. 쿠폰적용초기화(할인율최고)
+		// 4 쿠폰적용초기화(할인율최고)
 		custCpnInit();
 		custCpnInit();
 	});
 	});
 	
 	
+	// 쿠폰 최대할인금액 초기화 버튼 설정
+	$("#chk-maxdisc").on("click", function(){
+		if ($(this).is(":checked")) {
+			custCpnInit();
+		}
+	});
+	
+	// 쿠폰할인적용 삭제 버튼
+	$(".btn_del_coupon").on("click", function(){
+		//선택없음선택
+		$(this).parent().parent().find("ul li").each(function(i){
+			if (i == 0) {
+				// 쿠폰 선택없음
+				cpnApplyDel($(this));
+			}
+		});
+	});
+	
 	// 쿠폰 최대할인율 쿠폰적용
 	// 쿠폰 최대할인율 쿠폰적용
 	var custCpnInit = function() {
 	var custCpnInit = function() {
 		
 		
@@ -1327,7 +1390,7 @@ $(document).ready( function() {
 						if (custCpnDuplicationCheck($(this).prop("value"), index)) {
 						if (custCpnDuplicationCheck($(this).prop("value"), index)) {
 							// 쿠폰적용
 							// 쿠폰적용
 							custCpnApply($(this));
 							custCpnApply($(this));
-							
+							// 쿠폰할인적용
 							cpnApplyTemp = true;
 							cpnApplyTemp = true;
 						}
 						}
 					}
 					}
@@ -1366,25 +1429,125 @@ $(document).ready( function() {
 	
 	
 	// 쿠폰중복체크 후 적용가능
 	// 쿠폰중복체크 후 적용가능
 	var custCpnApply = function(obj) {
 	var custCpnApply = function(obj) {
-		// 적용된 할인금액 text 설정 
-		var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
-		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-		
 		// select box 쿠폰 적용
 		// select box 쿠폰 적용
-		var cpnCartSq = obj.parent().parent().find("input[name='cpnCartSq']").val();
+		var cpnType 	= obj.parent().parent().find("input[name='cpnType']").val();
 		
 		
-		// 장바구니시퀀스 체크
-		$("input[name='cartSq']").each(function(){
-			if (cpnCartSq == $(this).val()) {
-				$(this).parent().find("input[name='goodsCpnSq']").val(obj.prop("value"));		// 상품쿠폰시퀀스
-				$(this).parent().find("input[name='goodsCpnDcAmt']").val(obj.attr("data"));		// 상품쿠폰할인금액
-			}
-		});
+		// 상품쿠폰적용
+		if (cpnType == "goodsCpn") {
+			// 적용된 할인금액 text 설정 
+			var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
+			obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
+			
+			var cpnCartSq 	= obj.parent().parent().find("input[name='cpnCartSq']").val();
+			
+			// 장바구니상품시퀀스 체크
+			$("input[name='cartSq']").each(function(){
+				if (cpnCartSq == $(this).val()) {
+					$(this).parent().find("input[name='goodsCpnSq']").val(obj.prop("value"));		// 상품쿠폰시퀀스
+					$(this).parent().find("input[name='goodsCpnDcAmt']").val(obj.attr("data"));		// 상품쿠폰할인금액
+				}
+			});
+			
+			obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
+		} 
+		// 장바구니쿠폰적용
+		else if (cpnType == "cartCpn") {
+			var dcWay 				= obj.parent().find("input[name='dcWay']").val();
+			var dcVal 				= obj.parent().find("input[name='dcVal']").val();
+			var cartCpnDcSumAmt		= 0;
+			var tempSumAmt			= 0;
+			var applyGoodsCnt		= 0;
+			var leftAmt				= 0;
+			var index				= 0;
+			
+			// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
+			obj.find("input[name='cartCpnCartSq']").each(function(){
+				var cartCpnCartSq 		= $(this).val();
+				var cartCpnDcAmt		= 0;
+				
+				// 장바구니시퀀스 체크
+				$("input[name='cartSq']").each(function(){
+					if (cartCpnCartSq == $(this).val()) {
+						var currPrice 		= parseInt($(this).parent().find("input[name='currPrice']").val());
+						var tmtb1DcAmt 		= parseInt($(this).parent().find("input[name='tmtb1DcAmt']").val());
+						var tmtb2DcAmt 		= parseInt($(this).parent().find("input[name='tmtb2DcAmt']").val());
+						var goodsCpnDcAmt 	= parseInt($(this).parent().find("input[name='goodsCpnDcAmt']").val());
+						
+						var tempAmt 		= currPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
+						tempSumAmt			= tempSumAmt + tempAmt; 
+						
+						// 할인율일때 할인금액 
+						if (dcWay == "G240_20") {
+							cartCpnDcAmt = (tempAmt * dcVal) / 100;
+							cartCpnDcSumAmt = cartCpnDcSumAmt + cartCpnDcAmt;
+							
+							$(this).parent().find("input[name='cartCpnSq']").val(obj.prop("value"));
+							$(this).parent().find("input[name='cartCpnDcAmt']").val(cartCpnDcAmt);
+						}
+						
+						applyGoodsCnt++;
+					}
+				});
+			});
+			
+			// 금액일때 할인금액 적용
+			if (dcWay == "G240_10") {
+				cartCpnDcSumAmt = dcVal;
+				leftAmt			= dcVal;
+				index			= 0;
+				
+				// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
+				obj.find("input[name='cartCpnCartSq']").each(function(){
+					var cartCpnCartSq 		= $(this).val();
+					var cartCpnDcAmt		= 0;
+										
+					// 장바구니시퀀스 체크
+					$("input[name='cartSq']").each(function(){
+						if (cartCpnCartSq == $(this).val()) {
+							index++;
+							
+							var currPrice 		= parseInt($(this).parent().find("input[name='currPrice']").val());
+							var tmtb1DcAmt 		= parseInt($(this).parent().find("input[name='tmtb1DcAmt']").val());
+							var tmtb2DcAmt 		= parseInt($(this).parent().find("input[name='tmtb2DcAmt']").val());
+							var goodsCpnDcAmt 	= parseInt($(this).parent().find("input[name='goodsCpnDcAmt']").val());
+							
+							var tempAmt 		= currPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
+							var tempDiv 		= parseInt((tempAmt / tempSumAmt) * 100);
+							var cartCpnDcAmt	= 0;
+					
+							if (index == applyGoodsCnt) {
+								cartCpnDcAmt 	= leftAmt;
+							} else {
+								cartCpnDcAmt	= parseInt((cartCpnDcSumAmt * tempDiv) / 100);
+								leftAmt 		= leftAmt - cartCpnDcAmt;
+							}
+							
+							$(this).parent().find("input[name='cartCpnSq']").val(obj.prop("value"));
+							$(this).parent().find("input[name='cartCpnDcAmt']").val(cartCpnDcAmt);
+						}
+					});
+				});
+			} 
+			
+			obj.parent().parent().find("input[name='cpnDcAmt']").val(cartCpnDcSumAmt);
+			
+			var dcAmtStr = "- " + cartCpnDcSumAmt.addComma() + " 원 할인적용";
+			obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
+		}
+		// 배송비쿠폰적용
+		else if (cpnType == "delvCpn") {
+			// 적용된 할인금액 text 설정 
+			var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
+			obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
+			
+			var cpnCartSq 	= obj.parent().parent().find("input[name='cpnCartSq']").val();
+			
+			obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
+			obj.parent().parent().find("input[name='delvFeeCd']").val(obj.attr("delvfeecd"));
+		}
 		
 		
-		// select box 쿠폰 적용
+		// select box 쿠폰 적용 (공통적용)
 		obj.parent().parent().find("input[name='custCpnSq']").val(obj.prop("value"));
 		obj.parent().parent().find("input[name='custCpnSq']").val(obj.prop("value"));
-		obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
-		
 		obj.parent().parent().find(".select").text(obj.text());
 		obj.parent().parent().find(".select").text(obj.text());
 		
 		
 		// 선택된 할인금액 노출
 		// 선택된 할인금액 노출
@@ -1413,12 +1576,82 @@ $(document).ready( function() {
 	// 쿠폰할인금액합계설정
 	// 쿠폰할인금액합계설정
 	var custCpnSumAmtCal = function() {
 	var custCpnSumAmtCal = function() {
 		var cpnDcSumAmt = 0;
 		var cpnDcSumAmt = 0;
+		var cpnApplyCnt = 0;
+		
 		$("input[name='cpnDcAmt']").each(function(){
 		$("input[name='cpnDcAmt']").each(function(){
 			cpnDcSumAmt = cpnDcSumAmt + parseInt($(this).val());
 			cpnDcSumAmt = cpnDcSumAmt + parseInt($(this).val());
+			
+			// 적용된 쿠폰 수량
+			if (parseInt($(this).val()) > 0) {
+				cpnApplyCnt++;
+			}
+		});
+		
+		// 쿠폰영역
+		$(".maxdisc_amount").text("(-" + cpnDcSumAmt.addComma() + "원)"); // 쿠폰할인금액합계
+		$("#cpnApplyCnt").text(cpnApplyCnt + "장");
+		
+		// 상품목록영역
+		$("#couponDcSumAmt").text("-" + cpnDcSumAmt.addComma() + "원"); // 쿠폰할인금액합계
+		// 배송비할인적용
+		$("input[name='cpnType']").each(function(){
+			if ($(this).val() == "delvCpn") {
+				sumDelvFee = parseInt(sumDelvFee) - parseInt($(this).parent().find("input[name='cpnDcAmt']").val()); 
+				// 최종배송비
+				$("#delvSumAmt").text(sumDelvFee.addComma() + "원");
+			}
 		});
 		});
-		$(".maxdisc_amount").text("(-" + cpnDcSumAmt.addComma() + "원)");
 	};
 	};
 	
 	
+	// 쿠폰 선택없음 기능 구현
+	var cpnApplyDel = function(obj) {
+		// 쿠폰타입(상품쿠폰, 장바구니쿠폰, 배송비쿠폰)
+		var cpnType = obj.parent().parent().find("input[name='cpnType']").val();
+		
+		// 상품쿠폰적용
+		if (cpnType == "goodsCpn") {
+			// select box 쿠폰 적용
+			var cpnCartSq = obj.parent().parent().find("input[name='cpnCartSq']").val();
+			
+			// 장바구니시퀀스 체크
+			$("input[name='cartSq']").each(function(){
+				if (cpnCartSq == $(this).val()) {
+					$(this).parent().find("input[name='goodsCpnSq']").val("0");			// 상품쿠폰시퀀스
+					$(this).parent().find("input[name='goodsCpnDcAmt']").val("0");		// 상품쿠폰할인금액
+				}
+			});
+		}
+		// 장바구니쿠폰적용
+		else if (cpnType == "cartCpn") {
+			// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
+			$("input[name='cartSq']").each(function(){
+				$(this).parent().find("input[name='cartCpnSq']").val("0");
+				$(this).parent().find("input[name='cartCpnDcAmt']").val("0");
+			});
+		}
+		// 배송비쿠폰적용
+		else if (cpnType == "delvCpn") {
+			// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
+			$("input[name='cartSq']").each(function(){
+				$(this).parent().find("input[name='delvFeeCd']").val("0");
+			});
+		}
+		
+		obj.parent().parent().find("input[name='custCpnSq']").val("0");
+		obj.parent().parent().find("input[name='cpnDcAmt']").val("0");
+
+		obj.parent().parent().find(".select").text("선택없음");
+		obj.parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
+		
+		// 쿠폰할인금액 SUM
+		custCpnSumAmtCal();
+		
+		// 최대할인혜택적용 체크해제
+		if ($("#chk-maxdisc").is(":checked")) {
+			$("#chk-maxdisc").attr("checked", false);
+		}
+	}
+	
 	// 사은품선택 라디오 버튼 기능
 	// 사은품선택 라디오 버튼 기능
 	$(".freegiftRdo").on("click", function() {
 	$(".freegiftRdo").on("click", function() {
 		var total_gift 		= 0;
 		var total_gift 		= 0;

+ 106 - 0
src/main/webapp/WEB-INF/views/web/pg/kcpOrder.html

@@ -0,0 +1,106 @@
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<script type="text/javascript">
+	/****************************************************************/
+	/* m_Completepayment  설명                                      */
+	/****************************************************************/
+	/* 인증완료시 재귀 함수                                         */
+	/* 해당 함수명은 절대 변경하면 안됩니다.                        */
+	/* 해당 함수의 위치는 payplus.js 보다먼저 선언되어여 합니다.    */
+	/* Web 방식의 경우 리턴 값이 form 으로 넘어옴                   */
+	/****************************************************************/
+	function m_Completepayment( FormOrJson, closeEvent )
+	{
+		var frm = document.order_info;
+
+		/********************************************************************/
+		/* FormOrJson은 가맹점 임의 활용 금지                               */
+		/* frm 값에 FormOrJson 값이 설정 됨 frm 값으로 활용 하셔야 됩니다.  */
+		/* FormOrJson 값을 활용 하시려면 기술지원팀으로 문의바랍니다.       */
+		/********************************************************************/
+		GetField( frm, FormOrJson );
+
+
+		if( frm.res_cd.value == "0000" )
+		{
+			alert("결제 승인 요청 전,\n\n반드시 결제창에서 고객님이 결제 인증 완료 후\n\n리턴 받은 ordr_chk 와 업체 측 주문정보를\n\n다시 한번 검증 후 결제 승인 요청하시기 바랍니다."); //업체 연동 시 필수 확인 사항.
+			/*
+				가맹점 리턴값 처리 영역
+			*/
+
+			frm.submit();
+		}
+		else
+		{
+			alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value );
+
+			closeEvent();
+		}
+	}
+</script>
+
+<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}"></script>
+
+<script type="text/javascript">
+	/* 표준웹 실행 */
+	function jsf__pay( form )
+	{
+		try
+		{
+			KCP_Pay_Execute( form );
+		}
+		catch (e)
+		{
+			/* IE 에서 결제 정상종료시 throw로 스크립트 종료 */
+		}
+	}
+</script>
+
+<!-- 선택, 상점이름(영문으로 작성권장) -->
+<input type="hidden" name="site_name" th:value="${@environment.getProperty('pg.kcp.site.name')}" />
+<!-- 필수, 상점코드 -->
+<input type="hidden" name="site_cd" th:value="${@environment.getProperty('pg.kcp.site.cd')}" />
+
+<input type="hidden" name="req_tx" value="pay" />				<!-- 필수, 요청의 종류를 구분하는 변수 결제요청페이지의 경우 ‘pay’로 설정 -->
+<input type="hidden" name="ordr_idxx" value="100" />			<!-- 필수, 상점 관리 주문번호 (유니크한 값 설정 권장) -->
+<input type="hidden" name="pay_method" value="100000000000" />	<!-- 필수, 결제수단코드(신용카드 : 100000000000, 계좌이체 : 010000000000, 가상계좌 : 001000000000, 포인트 : 000100000000, 휴대폰 : 000010000000, 상품권 : 000000001000, ARS : 000000000010) -->
+<input type="hidden" name="good_name" value="TEST NAME" />		<!-- 필수, 상품명 -->
+<input type="hidden" name="good_mny" value="2000" />			<!-- 필수, 주문요청금액 (※ 화폐단위가 ‘USD’ 일 경우, Cent까지 설정 ex ) $10.55 일 경우 콤마를 뺀 1055, $100 일 경우 10000로 설정 -->
+<input type="hidden" name="buyr_name" value="LTY" />			<!-- 필수, 주문자 이름 -->
+<input type="hidden" name="buyr_mail" value="test@test.com" />	<!-- 선택, 주문자 이메일 -->
+<input type="hidden" name="buyr_tel1" value="" />				<!-- 선택, 주문자 전화번호 -->
+<input type="hidden" name="buyr_tel2" value="01071114489" />	<!-- 필수, 주문자 휴대폰번호 -->
+<input type="hidden" name="currency" value="WON" />				<!-- 필수, 원화 : WON / 달러 : USD -->
+<input type="hidden" name="shop_user_id" value="xodud1202" />	<!-- 필수, 쇼핑몰회원ID 기관에 따라 RM 조치를 위해 쇼핑몰 관리 ID를 필수로 요청 -->
+
+<input type="hidden" name="quotaopt"        value="12"/>		<!-- 최대 할부 개월 수(0 ~ 18까지 설정 가능) -->
+
+<!--
+      ※ 필 수
+          필수 항목 : 표준웹에서 값을 설정하는 부분으로 반드시 포함되어야 합니다
+          값을 설정하지 마십시오
+-->
+<input type="hidden" name="res_cd"          value=""/>
+<input type="hidden" name="res_msg"         value=""/>
+<input type="hidden" name="enc_info"        value=""/>
+<input type="hidden" name="enc_data"        value=""/>
+<input type="hidden" name="ret_pay_method"  value=""/>
+<input type="hidden" name="tran_cd"         value=""/>
+<input type="hidden" name="use_pay_method"  value=""/>
+
+<!-- 주문정보 검증 관련 정보 : 표준웹 에서 설정하는 정보입니다 -->
+<input type="hidden" name="ordr_chk"        value=""/>
+
+<!--  현금영수증 관련 정보 : 표준웹 에서 설정하는 정보입니다 -->
+<input type="hidden" name="cash_yn"         value=""/>
+<input type="hidden" name="cash_tr_code"    value=""/>
+<input type="hidden" name="cash_id_info"    value=""/>
+
+<!-- 2012년 8월 18일 전자상거래법 개정 관련 설정 부분 -->
+<!-- 제공 기간 설정 0:일회성 1:기간설정(ex 1:2012010120120131)  -->
+<input type="hidden" name="good_expr" value="0">
+
+<!-- 표준웹 설정 정보입니다(변경 불가) -->
+<input type="hidden" name="module_type" th:value="${@environment.getProperty('pg.kcp.module.type')}" />
+
+</html>

BIN
src/main/webapp/images/pc/btn_count.png


BIN
src/main/webapp/images/pc/btn_deal_item_more.png


BIN
src/main/webapp/images/pc/btn_delete_item.png


BIN
src/main/webapp/images/pc/btn_itemLike.png


BIN
src/main/webapp/images/pc/btn_itemShare.png


BIN
src/main/webapp/images/pc/ico_arr_lg02.png


BIN
src/main/webapp/images/pc/ico_bell.png


BIN
src/main/webapp/images/pc/ico_besttag.png


BIN
src/main/webapp/images/pc/ico_count_bg.png


BIN
src/main/webapp/images/pc/ico_filter02.png


BIN
src/main/webapp/images/pc/ico_ic_btn.png


BIN
src/main/webapp/images/pc/ico_play.png


BIN
src/main/webapp/images/pc/ico_plus_white.png


BIN
src/main/webapp/images/pc/ico_point3.png


BIN
src/main/webapp/images/pc/ico_point4.png


BIN
src/main/webapp/images/pc/ico_qk_cart.png


BIN
src/main/webapp/images/pc/ico_qk_cate.png


BIN
src/main/webapp/images/pc/ico_qk_coupon.png


BIN
src/main/webapp/images/pc/ico_qk_history.png


BIN
src/main/webapp/images/pc/ico_qk_like.png


BIN
src/main/webapp/images/pc/ico_qk_top.png


BIN
src/main/webapp/images/pc/ico_quick_cate.png


BIN
src/main/webapp/images/pc/ico_quick_cate_on.png


BIN
src/main/webapp/images/pc/ico_quick_close.png


BIN
src/main/webapp/images/pc/ico_sch.png


BIN
src/main/webapp/images/pc/ico_secret.png


BIN
src/main/webapp/images/pc/ico_thumblist.png


BIN
src/main/webapp/images/pc/ico_time_dot.png


BIN
src/main/webapp/images/pc/info_size_bag.jpg


BIN
src/main/webapp/images/pc/info_size_pants.jpg


BIN
src/main/webapp/images/pc/info_size_shoe.jpg


BIN
src/main/webapp/images/pc/info_size_top.jpg


BIN
src/main/webapp/images/pc/info_size_underwear.jpg


BIN
src/main/webapp/images/pc/logo_andew.png


BIN
src/main/webapp/images/pc/logo_buckaroo.png


BIN
src/main/webapp/images/pc/logo_converse.png


BIN
src/main/webapp/images/pc/logo_curlysue.png


BIN
src/main/webapp/images/pc/logo_frj.png


BIN
src/main/webapp/images/pc/logo_hurley.png


BIN
src/main/webapp/images/pc/logo_jordan.png


BIN
src/main/webapp/images/pc/logo_levis.png


BIN
src/main/webapp/images/pc/logo_lpga.png


BIN
src/main/webapp/images/pc/logo_moi.png


BIN
src/main/webapp/images/pc/logo_nba.png


BIN
src/main/webapp/images/pc/logo_nbakid.png


BIN
src/main/webapp/images/pc/logo_nike.png


BIN
src/main/webapp/images/pc/logo_pga.png


BIN
src/main/webapp/images/pc/logo_tbj.png


BIN
src/main/webapp/images/pc/star_empty.png


BIN
src/main/webapp/images/pc/star_empty_big.png


BIN
src/main/webapp/images/pc/star_empty_big_only.png


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

@@ -1123,12 +1123,21 @@ input[type="file"] {
 }
 }
 .select_custom[disabled] {
 .select_custom[disabled] {
   pointer-events: none;
   pointer-events: none;
+<<<<<<< HEAD
 }
 }
 .select_custom[disabled] .select {
 .select_custom[disabled] .select {
   pointer-events: none;
   pointer-events: none;
   color: #bbb;
   color: #bbb;
   background-color: #f5f5f5 !important;
   background-color: #f5f5f5 !important;
 }
 }
+=======
+} 
+.select_custom[disabled] .select {
+  pointer-events: none;
+  color: #bbb;
+  background-color: #f5f5f5 !important;
+} 
+>>>>>>> refs/heads/eskim
 .select_custom .combo .list>li[aria-disabled="true"] {
 .select_custom .combo .list>li[aria-disabled="true"] {
 	text-decoration: line-through;
 	text-decoration: line-through;
     background: #f5f5f5;
     background: #f5f5f5;

Разница между файлами не показана из-за своего большого размера
+ 804 - 78
src/main/webapp/ux/pc/css/layout.css


+ 29 - 1
src/main/webapp/ux/style24_link.js

@@ -19,6 +19,14 @@ const _PAGE_CUSTOMER_PWD_CHANGE_TEMP = _frontUrl + "/customer/password/change/fo
 const _PAGE_CUSTOMER_DORMANT = _frontUrl + "/customer/dormant/certify/form";						// 고객 > 휴면회원
 const _PAGE_CUSTOMER_DORMANT = _frontUrl + "/customer/dormant/certify/form";						// 고객 > 휴면회원
 
 
 //== 상품상세 ==/
 //== 상품상세 ==/
+const _PAGE_GOODS_DETAIL = _frontUrl + "/goods/detail/form?goodsCd=";		// 상품 상세
+//const _PAGE_GOODS_DETAIL = _frontUrl + "/goods/detail/coupon/layer?goodsCd=";		// 쿠폰레이어
+const _PAGE_SHOPPING_BENEFIT = _frontUrl + "/goods/shopping/benefit/layer";		// 쇼핑혜택레이어
+const _PAGE_CARD_PROMOTION = _frontUrl + "/goods/card/promotion/layer";		// 카드혜택레이어
+const _PAGE_GOODS_SIZEINFO = _frontUrl + "/goods/sizeInfo/layer?goodsCd=";		// 사이즈정보레이어
+const _PAGE_GOODS_COUNSEL = _frontUrl + "/goods/counsel/layer?goodsCd=";		// 상품문의레이어
+const _PAGE_GOODS_DELIVERY = _frontUrl + "/goods/delivery/layer?goodsCd=";		// 배송/교환/반품 레이어
+const _PAGE_GOODS_REVIEW = _frontUrl + "/goods/review/layer?goodsCd=";		// 상품평 레이어
 
 
 //== 장바구니 ==/
 //== 장바구니 ==/
 
 
@@ -246,7 +254,6 @@ var cfnLoginKakao = function (requestGb, chkRememberMe) {
 	}
 	}
 };
 };
 
 
-
 /**
 /**
  * @type   : function
  * @type   : function
  * @access : public
  * @access : public
@@ -272,3 +279,24 @@ var cfnLoginYes24 = function (requestGb, chkRememberMe) {
 		document.location.href = actionUrl + '&requestGb=' + requestGb;
 		document.location.href = actionUrl + '&requestGb=' + requestGb;
 	}
 	}
 };
 };
+
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 상품상세로 이동
+ * <pre>
+ *        cfnGoToGoodsDetail('A83U-TS058S');
+ * </pre>
+ * @param  : goodsCd - 상품코드코드. 필수
+ * @param  : ithrCd - 유입경로. 필수
+ * @param  : contentsLoc - 컨텐츠위치.
+ * @since  : 2021/03/02
+ * @author : eskim
+ */
+var cfnGoToGoodsDetail = function (goodsCd, ithrCd, contentsLoc, planDtlSq) {
+	var params = goodsCd;
+	if (typeof (ithrCd) != 'undefined') params += "&ithrCd=" + ithrCd;
+	if (typeof (contentsLoc) != 'undefined' && contentsLoc != "") params += "&contentsLoc=" + contentsLoc;
+	if (typeof (planDtlSq) != 'undefined') params += "&planDtlSq=" + planDtlSq;
+	cfnGoToPage(_PAGE_GOODS_DETAIL + params);
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов