Jelajahi Sumber

CSS 퍼블 최신화

xodud1202 5 tahun lalu
induk
melakukan
2df7419509

+ 38 - 17
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -116,7 +116,7 @@ public class TsfCartService {
 		}
 
 		// 장바구니 정보 수정
-		if (TscConstants.GoodsType.SET.value().equals(params.iterator().next().getCartGb())) {
+		if (TscConstants.GoodsType.SET.value().equals(params.iterator().next().getGoodsType())) {
 			// 세트상품일 경우
 			saveSetTypeCartInfo(params);
 		} else {
@@ -175,8 +175,8 @@ public class TsfCartService {
 
 		if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "C".equals(params.iterator().next().getCartGb())) {
 			cart.setCartGb(TscConstants.CartGb.CART.value());
-			cartSqList = cartDao.selectHasSetItemCartList(cart);
 			// 같은 장바구니 상품 확인
+			cartSqList = cartDao.selectHasSetItemCartList(cart);
 		} else if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "O".equals(params.iterator().next().getCartGb())) {
 			if ("P".equals(TsfSession.getFrontGb())) {
 				cart.setCartGb(TscConstants.CartGb.PC_ORDER.value());
@@ -342,7 +342,7 @@ public class TsfCartService {
 		}
 
 		// 자사 / 입점업체 리스트 분리
-		order = getCartDelvGoodsCntList(cartGoodsList);
+		order = getCartDelvGoodsCntList(cartGoodsList, order);
 
 		// 장바구니 업체별 배송비 계산
 		setCartListDelvFeeInfo(cartGoodsList, order);
@@ -550,7 +550,7 @@ public class TsfCartService {
 	 * @author xodud1202
 	 * @since 2021. 02. 02
 	 */
-	public Order getCartDelvGoodsCntList(Collection<Order> cartGoodsList) {
+	public Order getCartDelvGoodsCntList(Collection<Order> cartGoodsList, Order paramOrder) {
 
 		// 1. 장바구니 상품 배송단위별 건수 체크 로직 (자사:총알배송, 자사:일반배송, 입점업체, 예약배송)
 		Order delvOrder = new Order();
@@ -579,7 +579,11 @@ public class TsfCartService {
 
 			// 1.3 배송정책별 상품 구분
 			if ("SHOT".equals(order.getCartDelvFeeCd())) {
-				shotCartList.add(order);
+				if(paramOrder.getShotDelvUseYn() != null && "N".equals(paramOrder.getShotDelvUseYn())) {
+					wmsCartList.add(order);
+				} else {
+					shotCartList.add(order);
+				}
 			} else if ("WMS".equals(order.getCartDelvFeeCd())) {
 				wmsCartList.add(order);
 			} else {
@@ -792,19 +796,19 @@ public class TsfCartService {
 			cart.getCartCompsList().add(new Cart());
 
 			for(Cart comp : cart.getCartCompsList()) {
-				if("Y".equals(cart.getSelfGoodsYn())) {
+				//if("Y".equals(cart.getSelfGoodsYn())) {
 					comp.setCartColorList(cartDao.selectCartGoodsColorList(cart));
 
-					if("Y".equals(cart.getSelfGoodsYn())) {		// 자사 상품은 TB_GOODS_IMG.COLOR_CD = TB_OPTION.OPT_CD1
+				//	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));
-				}
+				//	}
+				//} else {
+				//	comp.setCartColorList(cartDao.selectCartGoodsSizeList(cart));
+				//}
 			}
 
 			if(!"Y".equals(cart.getSelfGoodsYn())) {			// 입점 상품은 TB_GOODS_IMG.COLOR_CD = TB_GOODS.MAIN_COLOR_CD
@@ -818,7 +822,8 @@ public class TsfCartService {
 	}
 
 	@Transactional("shopTxnManager")
-	public void updateCartOption(Cart param) {
+	public GagaMap updateCartOption(Cart param) {
+		GagaMap result = new GagaMap();
 		param.setJsessionId(TsfSession.getSessionId());
 		param.setFrontGb(TsfSession.getFrontGb());
 
@@ -836,14 +841,19 @@ public class TsfCartService {
 		Goods goods = new Goods();
 		goods.setGoodsCd(param.getGoodsCd());
 		goods.setFrontGb(TsfSession.getFrontGb());
+		goods.setSiteCd(TscConstants.Site.STYLE24.value());
 
 		goods = goodsService.getGoodsInfo(goods);
 
 		if (goods == null) {
-			throw new IllegalArgumentException("상품 정보가 존재하지 않습니다.");
+			result.put("status", "FAIL");
+			result.put("message", "상품 정보가 존재하지 않습니다.");
+			return result;
 		}
 		if (TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat())) {
-			throw new IllegalArgumentException("품절입니다.");
+			result.put("status", "FAIL");
+			result.put("message", "품절입니다.");
+			return result;
 		}
 		
 		// 현재 장바구니 수량
@@ -865,7 +875,9 @@ public class TsfCartService {
 			String stockResult = goodsService.getCheckStock(checkParam);
 
 			if (!"SUCCESS".equals(stockResult)) {
-				throw new IllegalArgumentException(stockResult);
+				result.put("status", "FAIL");
+				result.put("message", stockResult);
+				return result;
 			}
 		}
 
@@ -896,7 +908,9 @@ public class TsfCartService {
 			// 동일 상품 존재시
 			if (cartList != null && cartList.size() > 0) {		// 장바구니 기존재
 				if (cartList.size() > 1) {						// 장바구니 조회 결과 이상시 insert or select 수정 필요
-					throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
+					result.put("status", "FAIL");
+					result.put("message", "장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
+					return result;
 				} else {
 					// 기존 존재 장바구니 UPDATE
 					Cart cart = new Cart();
@@ -935,10 +949,13 @@ public class TsfCartService {
 		} else {
 			param.setCartGb(TscConstants.CartGb.CART.value());
 			param.setNotCartSq(param.getCartSq());						// 수정 장바구니 번호 제외
+			param.setOptCd(param.getOptCds()[0]);
 			Collection<Integer> cartSqList = cartDao.selectHasNormalDealItemCartList(param);
 			if (cartSqList != null && cartSqList.size() > 0) {			// 장바구니 기존재
 				if (cartSqList.size() > 1) {							// 장바구니 조회 결과 이상시 insert or select 수정 필요
-					throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
+					result.put("status", "FAIL");
+					result.put("message", "장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
+					return result;
 				} else {
 					param.setCartSq(cartSqList.iterator().next());
 					cartDao.updateCartInfo(param);				// 장바구니 기존 데이터에 UPDATE(수량증가)
@@ -962,5 +979,9 @@ public class TsfCartService {
 				cartDao.insertCartDetailHst(param);                // 장바구니 수정 이력 저장
 			}
 		}
+
+		result.put("status", "SUCCESS");
+
+		return result;
 	}
 }

+ 4 - 0
src/main/java/com/style24/front/biz/service/TsfCouponService.java

@@ -165,6 +165,7 @@ public class TsfCouponService {
 				for (Order cpnInfo : serialGoodsList) {
 					if ("A".equals(cpnInfo.getApplyScope()) || param.getCartSqArr()[i] == cpnInfo.getCartSq()) {
 						cpnInfo.setCurrPrice(param.getCurrPrices()[i]);
+						log.info("CHECK CURR_PRICE ::::: {}", cpnInfo.getCurrPrice());
 					}
 				}
 			}
@@ -176,6 +177,7 @@ public class TsfCouponService {
 				buyLimitAmt = info.getBuyLimitAmt();								// 최대할인율과 최소주문금액은 한 쿠폰에 값이 동일
 				if (TscConstants.DcWay.RATE.value().equals(info.getDcWay())) {		// 할인방식이 할인율이면 각 상품별 할인금액을 따로 계산해야함
 					int dcAmt = (int)(info.getCurrPrice() * (info.getDcVal() / 100.0));		// 해당상품 할인금
+					log.info("CHECK TOT_DC_AMT ::::: {} / {} / {}", info.getCurrPrice(), info.getDcVal(), dcAmt);
 					totDcAmt = totDcAmt + dcAmt;									// 적용 상품 총 할인금액
 				} else {															// 할인 방식이 금액일 경우
 					totDcAmt = info.getDcVal();
@@ -197,6 +199,8 @@ public class TsfCouponService {
 			}
 		}
 
+		log.info("CHECK TOTAL_DC_AMT ::::: {}", totDcAmt);
+
 		return totDcAmt;
 	}
 

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

@@ -257,6 +257,10 @@ public class TsfGoodsService {
 
 			stockCheck = goodsDao.getGoodsStockInfo(stockCheck);					// 구성 상품 재고 조회
 
+			if(stockCheck == null) {
+				return "재고체크 실패했습니다. 새로고침 후 다시 시도해주세요.";
+			}
+
 			Goods compsInfo = new Goods();
 			compsInfo.setGoodsCd(param.getGoodsCd());
 			compsInfo.setCompsGoodsCd(param.getItemCd());
@@ -266,7 +270,7 @@ public class TsfGoodsService {
 
 			// 재고 체크
 			if (param.getGoodsQty() * compsInfo.getQty() > stockCheck.getCurrStockQty()) {
-				return param.getItemCd() + "의 재고가 충분하지 않습니다.";
+				return compsInfo.getGoodsNm() + " 옵션의 재고가 충분하지 않습니다.";
 			}
 		} else {
 			GoodsStock stockCheck = new GoodsStock();								// 재고 조회 결과
@@ -275,8 +279,12 @@ public class TsfGoodsService {
 
 			stockCheck = goodsDao.getGoodsStockInfo(stockCheck);					// 구성 상품 재고 조회
 
+			if(stockCheck == null) {
+				return "재고체크 실패했습니다. 새로고침 후 다시 시도해주세요.";
+			}
+
 			if (param.getGoodsQty() > stockCheck.getCurrStockQty()) {
-				return param.getGoodsCd() + "의 재고가 충분하지 않습니다.";
+				return "옵션의 재고가 충분하지 않습니다.";
 			}
 		}
 

+ 27 - 5
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -65,22 +65,43 @@ public class TsfOrderService {
 	 * @since 2021. 02. 04
 	 */
 	public Collection<GagaMap> getOrderListForMypage(Order order) {
-		int ordNo = 0;
-		int index = 0;
 		Collection<GagaMap> orderList = new ArrayList<>();
 		Collection<Order> ordDtlList = new ArrayList<>();
 		String allCanYn = "Y";
+		int ordNo = 0;
+		int index = 0;
+		int ordReqChgQty = 0;
 
 		for (Order tmpOrder : orderDao.getOrderListForMypage(order)) {
+			// 세트상품 옵션별 배열로 담기
+			if (tmpOrder.getItemNm().contains("!@!")) {
+				tmpOrder.setItemNmArr(tmpOrder.getItemNm().split("!@!"));
+				tmpOrder.setColorNmArr(tmpOrder.getColorNm().split(","));
+				tmpOrder.setOptCd1Arr(tmpOrder.getOptCd1().split(","));
+				tmpOrder.setOptCd2Arr(tmpOrder.getOptCd2().split(","));
+			} else {
+				String[] arr = {tmpOrder.getItemNm()}, arr2 = {tmpOrder.getColorNm()}, arr3 = {tmpOrder.getOptCd1()}, arr4 = {tmpOrder.getOptCd2()};
+				tmpOrder.setItemNmArr(arr);
+				tmpOrder.setColorNmArr(arr2);
+				tmpOrder.setOptCd1Arr(arr3);
+				tmpOrder.setOptCd2Arr(arr4);
+			}
+
+			// 주문 목록 데이터 설정
 			if (index > 0 && ordNo != tmpOrder.getOrdNo()) {
-				orderList.add(setOrderMap(ordDtlList, allCanYn));
+				orderList.add(setOrderMap(ordDtlList, allCanYn, ordReqChgQty));
 
 				ordDtlList = new ArrayList<>();
 				ordDtlList.add(tmpOrder);
+				allCanYn = "Y";
+				ordReqChgQty = 0;
 			} else {
 				ordDtlList.add(tmpOrder);
 			}
 
+			// 전체취소 가능 여부 설정
+			ordReqChgQty += tmpOrder.getOrdReqChgQty();
+
 			if ("Y".equals(allCanYn)
 				&& !tmpOrder.getOrdDtlStat().equals(TscConstants.OrderDetailStat.DEPOSIT_WAIT.value())
 				&& !tmpOrder.getOrdDtlStat().equals(TscConstants.OrderDetailStat.PAYMENT_COMPLETE.value())
@@ -93,13 +114,13 @@ public class TsfOrderService {
 		}
 
 		if (ordDtlList.size() > 0) {
-			orderList.add(setOrderMap(ordDtlList, allCanYn));
+			orderList.add(setOrderMap(ordDtlList, allCanYn, ordReqChgQty));
 		}
 		
 		return orderList;
 	}
 	
-	private GagaMap setOrderMap(Collection<Order> ordDtlList, String allCanYn) {
+	private GagaMap setOrderMap(Collection<Order> ordDtlList, String allCanYn, int ordReqChgQty) {
 		Order order = ordDtlList.iterator().next();
 
 		GagaMap map = new GagaMap();
@@ -108,6 +129,7 @@ public class TsfOrderService {
 		map.set("ordDt", order.getOrdDt());
 		map.set("freeGiftList", orderDao.getOrderFreeGiftListForMypage(order));
 		map.set("allCanYn", allCanYn);
+		map.set("ordReqChgQty", ordReqChgQty);
 		map.set("oneData", order);
 		map.set("ordDtlList", ordDtlList);
 

+ 35 - 15
src/main/java/com/style24/front/biz/web/TsfCartController.java

@@ -109,38 +109,51 @@ public class TsfCartController extends TsfBaseController {
 	// @ResponseBody
 	@PostMapping("/goods/list")
 	public String selectCartGoodsList(Order param, Model model) {
-		// 장바구니 정보 조회
-		Order order = cartService.getCartGoodsList(param);
+		log.info("CHECK INFO >>> {}", param.getShotDelvUseYn());
+
 
 		// 총알배송 가능 여부 체크
-		int shotCanYn = coreOrderService.getDailyDeliveryCheck(order);
+		int shotCanYn = coreOrderService.getDailyDeliveryCheck(param);
 
 		// 10시 이전에만 총알 배송 가능 여부 체크
 		if(shotCanYn == 1) {
 			SimpleDateFormat format = new SimpleDateFormat ( "MM/dd");
 			Date time = new Date();
 
-			order.setShotCanYn("Y");
-			order.setShotDelvDt(format.format(time));
+			param.setShotCanYn("Y");
+			param.setShotDelvDt(format.format(time));
 		} else {
 			SimpleDateFormat format = new SimpleDateFormat ( "MM/dd");
 			Date time = new Date();
-			order.setShotDelvDt(format.format(time));
+			param.setShotCanYn("N");
+			param.setShotDelvDt(format.format(time));
+		}
+
+		// TODO 테스트 후 삭제할것.
+		// param.setShotCanYn("Y");
 
-			order.setShotCanYn("N");
-			order.setShotDelvYn("N");
+		if(param.getShotDelvUseYn() == null) {
+			param.setShotDelvUseYn(param.getShotCanYn());
 		}
 
+		// 장바구니 정보 조회
+		Order order = cartService.getCartGoodsList(param);
+		order.setShotDelvUseYn(param.getShotDelvUseYn());
+		order.setShotCanYn(param.getShotCanYn());
+		order.setShotDelvDt(param.getShotDelvDt());
+
 		model.addAttribute("loginInfo", TsfSession.getInfo());
 		model.addAttribute("order", order);
-		model.addAttribute("shotCartList", order.getShotCartList());
-		model.addAttribute("wmsCartList", order.getWmsCartList());
-		model.addAttribute("delvCartList", order.getDelvCartList());
 		model.addAttribute("IMG_PATH", env.getProperty("upload.goods.view"));
 
 		return super.getDeviceViewName("cart/CartListAjaxForm");
 	}
 
+	/**
+	 * 장바구니 체크박스 change시에 계산로직 진행
+	 * @param param
+	 * @return
+	 */
 	@ResponseBody
 	@PostMapping("/change/goods/list")
 	public Order selectCartGoodsJsonList(@RequestBody Order param) {
@@ -186,7 +199,7 @@ public class TsfCartController extends TsfBaseController {
 	}
 
 	/**
-	 * 장바구니 삭제
+	 * 장바구니 옵션변경 팝업
 	 * @param param
 	 * @return String
 	 * @author xodud1202
@@ -211,8 +224,15 @@ public class TsfCartController extends TsfBaseController {
 	 */
 	@ResponseBody
 	@PostMapping("/change/option")
-	public GagaResponse updateCartOption(@RequestBody Cart param) {
-		cartService.updateCartOption(param);
-		return super.ok(message.getMessage("SUCC_0001"));
+	public GagaMap updateCartOption(@RequestBody Cart param) {
+		GagaMap result = new GagaMap();
+
+		result = cartService.updateCartOption(param);
+
+		if("SUCCESS".equals(result.get("status"))) {
+			result.put("message", message.getMessage("SUCC_0009"));
+		}
+
+		return result;
 	}
 }

+ 5 - 4
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -70,6 +70,7 @@
 		AND    C.CUST_NO = #{custNo}
 		</if>
 		<if test="custNo == null or custNo == 0">
+		AND    C.CUST_NO = 0
 		AND    C.JSESSION_ID = #{jsessionId}
 		</if>
 		AND    C.GOODS_CD = #{goodsCd}
@@ -513,7 +514,7 @@
 			 , Z.SUPPLY_COMP_CD
 			 , Z.DELV_FEE_CD
 			 , Z.CART_DELV_FEE_CD
-			 , (Z.CURR_PRICE + Z.OPT_ADD_PRICE) * Z.GOODS_QTY AS CURR_PRICE
+			 , (Z.CURR_PRICE + SUM(Z.OPT_ADD_PRICE)) * Z.GOODS_QTY AS CURR_PRICE
 			 , CASE WHEN Z.SOLDOUT_YN = 'N' AND Z.CUST_TODAY_ORD = 0 AND Z.NOCUST_TODAY_ORD = 0 THEN 'N' ELSE 'Y' END AS SOLDOUT_YN
 			 , 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
@@ -564,7 +565,9 @@
 					 , CASE WHEN C.CUST_NO = 0 AND C.GOODS_QTY > G.DAY_MAX_ORD_QTY THEN 1 ELSE 0 END AS NOCUST_TODAY_ORD
 					 /*, 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*/
-					 , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
+					 /* , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM */
+					 , 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 MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y' LIMIT 1) END AS SYS_IMG_NM
 				FROM   TB_CART C
 				INNER  JOIN TB_CART_DETAIL CD
 				ON     C.CART_SQ = CD.CART_SQ
@@ -674,7 +677,6 @@
 			 , Z.CURR_PRICE
 			 , Z.PNT_PRATE
 			 , Z.PNT_MRATE
-			 , Z.OPT_ADD_PRICE
 			 , SYS_IMG_NM
 		ORDER  BY Z.DELV_FEE_CD
 			 , Z.CART_SQ DESC
@@ -971,7 +973,6 @@
 		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>
 

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

@@ -439,6 +439,7 @@
 		     , GC.GOODS_TYPE
 		     , GC.QTY
 		     , G.GOODS_STAT
+			 , G.GOODS_NM
 		  FROM TB_GOODS_COMPOSE GC
 		 INNER JOIN TB_GOODS G
 		    ON GC.COMPS_GOODS_CD = G.GOODS_CD

+ 157 - 87
src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml

@@ -18,81 +18,145 @@
 	<!-- 마이페이지 주문 목록 조회 -->
 	<select id="getOrderListForMypage" parameterType="Order" resultType="Order">
 		/* TsfOrder.getOrderListForMypage */
-		SELECT O.ORD_NO
-		     , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
-		     , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(O.ORD_DT + INTERVAL 3 DAY, '%Y.%m.%d')
-				END															AS GIFT_LIMIT_DT
-		     , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN TIMESTAMPDIFF(DAY, NOW(), O.ORD_DT + INTERVAL 3 DAY)
-				END															AS GIFT_LIMIT_DAY
-		     , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(DA.UPD_DT, '%Y.%m.%d')
-				END															AS GIFT_COMPLETE_DT
-		     , DATE_FORMAT(OD.DELV_EDDT, '%m/%d')							AS DELV_EDDT
-		     , OD.ORD_DTL_NO
-		     , OD.ORD_EXCH_GB
-		     , OD.GOODS_CD
-		     , G.GOODS_NM
-		     , G.LIST_PRICE
-		     , ODI.OPT_CD
-		     , ODI.OPT_CD1
-		     , ODI.OPT_CD2
-		     , GI.SYS_IMG_NM
-		     , OD.ORD_DTL_STAT
-		     , OD.ORD_QTY
-		     , OD.CNCL_RTN_QTY
-		     , OD.ORD_AMT
-		     , OD.REAL_ORD_AMT
-		     , OD.SAVE_PNT_AMT
-		     , OD.CNCL_RTN_AMT
-		     , OD.SHIP_COMP_CD
-		     , OD.GIFT_PACK_YN
-		     , (SELECT SHIP_COMP_NM
-				  FROM TB_SHIP_COMPANY Z
-				 WHERE Z.SHIP_COMP_CD = OD.SHIP_COMP_CD)					AS SHIP_COMP_NM
-		     , OD.INVOICE_NO
-		     , OD.SUPPLY_COMP_CD
-		     , OD.DELV_FEE_CD
-		     , OD.SHOT_DELV_YN
-		     , OD.CHANGEABLE_YN
-		     , OD.RETURNABLE_YN
-		     , G.SELF_GOODS_YN
-		     , CONCAT(B.BRAND_ENM, ' ', B.BRAND_KNM)						AS BRAND_NM
-		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT)						AS ORD_DTL_STAT_NM
-		     , R.REVIEW_SQ
-		     , IF(NOW() <![CDATA[<]]> O.ORD_DT + INTERVAL 90 DAY, 'Y', 'N')	AS REVIEWABLE_YN
-		     , TIMESTAMPDIFF(DAY, NOW(), OD.DELV_EDDT + INTERVAL 2 WEEK)	AS PURCHASE_CONFIRM_DAY
-		     , DA.RECIP_NM
-		     , DA.RECIP_TELNO
-		     , DA.RECIP_PHNNO
-		     , DA.RECIP_ZIPCODE
-		     , DA.RECIP_BASE_ADDR
-		     , DA.RECIP_DTL_ADDR
-		     , DATE_FORMAT(GRS.DELV_RES_DT, '%Y.%m.%d')						AS DELV_RES_DT
-		  FROM TB_ORDER O
-		 INNER JOIN TB_ORDER_DETAIL OD
-		    ON O.ORD_NO = OD.ORD_NO
-		   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
-		 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_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
-		 INNER JOIN TB_GOODS G
-		    ON OD.GOODS_CD = G.GOODS_CD
-		 INNER JOIN TB_BRAND B
-		    ON B.BRAND_CD = G.BRAND_CD
-		  LEFT OUTER JOIN TB_REVIEW R
-		    ON R.ORD_NO = OD.ORD_NO
-		   AND R.ORD_DTL_NO = OD.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 TB_GOODS_RES_SELL GRS
-		    ON GRS.GOODS_CD = OD.GOODS_CD
+		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!') AS ITEM_NM
+		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
+		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1
+		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD2
+		     , Z.ORD_NO
+		     , Z.ORD_DT
+		     , Z.GIFT_LIMIT_DT
+		     , Z.GIFT_LIMIT_DAY
+		     , Z.GIFT_COMPLETE_DT
+		     , Z.GIFT_ADDR_INP_YN
+		     , Z.DELV_EDDT
+		     , Z.ORD_DTL_NO
+		     , Z.ORD_EXCH_GB
+		     , Z.GOODS_CD
+		     , Z.GOODS_NM
+		     , Z.LIST_PRICE
+		     , Z.GOODS_TYPE
+		     , Z.SYS_IMG_NM
+		     , Z.ORD_DTL_STAT
+		     , Z.ORD_QTY
+		     , Z.CNCL_RTN_QTY
+		     , Z.ORD_AMT
+		     , Z.REAL_ORD_AMT
+		     , Z.SAVE_PNT_AMT
+		     , Z.CNCL_RTN_AMT
+		     , Z.PNT_DC_AMT
+		     , Z.GFCD_USE_AMT
+		     , Z.SHIP_COMP_CD
+		     , Z.GIFT_PACK_YN
+		     , Z.SHIP_COMP_NM
+		     , Z.INVOICE_NO
+		     , Z.SUPPLY_COMP_CD
+		     , Z.DELV_FEE_CD
+		     , Z.SHOT_DELV_YN
+		     , Z.CHANGEABLE_YN
+		     , Z.RETURNABLE_YN
+		     , Z.SELF_GOODS_YN
+		     , Z.BRAND_NM
+		     , Z.ORD_DTL_STAT_NM
+		     , Z.REVIEW_SQ
+		     , Z.REVIEWABLE_YN
+		     , Z.PURCHASE_CONFIRM_DAY
+		     , Z.DELV_RES_DT
+		     , Z.ORD_REQ_CHG_QTY
+		     , Z.BANK_CD
+		     , Z.ACCOUNT_NO
+		     , Z.ACCOUNT_NM
+		  FROM (SELECT O.ORD_NO
+					 , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
+					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(O.ORD_DT + INTERVAL 3 DAY, '%Y.%m.%d')
+						END																AS GIFT_LIMIT_DT
+					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN TIMESTAMPDIFF(DAY, NOW(), O.ORD_DT + INTERVAL 3 DAY)
+						END																AS GIFT_LIMIT_DAY
+					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(DA.UPD_DT, '%Y.%m.%d')
+						END																AS GIFT_COMPLETE_DT
+					 , DATE_FORMAT(OD.DELV_EDDT, '%m/%d')								AS DELV_EDDT
+					 , OD.ORD_DTL_NO
+					 , OD.ORD_EXCH_GB
+					 , OD.GOODS_CD
+		             , OD.GIFT_ADDR_INP_YN
+					 , G.GOODS_NM
+					 , IFNULL((SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
+					 , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = ODI.ITEM_CD)		AS ITEM_NM
+		             , ODI.ORD_DTL_ITEM_SQ
+					 , ODI.OPT_CD1
+					 , ODI.OPT_CD2
+					 , G.LIST_PRICE
+		             , G.GOODS_TYPE
+					 , GI.SYS_IMG_NM
+					 , OD.ORD_DTL_STAT
+					 , OD.ORD_QTY
+					 , OD.CNCL_RTN_QTY
+					 , OD.ORD_AMT
+					 , OD.REAL_ORD_AMT
+					 , OD.SAVE_PNT_AMT
+					 , OD.CNCL_RTN_AMT
+					 , OD.PNT_DC_AMT
+					 , OD.GFCD_USE_AMT
+					 , OD.SHIP_COMP_CD
+					 , OD.GIFT_PACK_YN
+					 , (SELECT SHIP_COMP_NM
+						  FROM TB_SHIP_COMPANY Z
+						 WHERE Z.SHIP_COMP_CD = OD.SHIP_COMP_CD)						AS SHIP_COMP_NM
+					 , OD.INVOICE_NO
+					 , OD.SUPPLY_COMP_CD
+					 , OD.DELV_FEE_CD
+					 , OD.SHOT_DELV_YN
+					 , OD.CHANGEABLE_YN
+					 , OD.RETURNABLE_YN
+					 , G.SELF_GOODS_YN
+					 , CONCAT(B.BRAND_ENM, ' ', B.BRAND_KNM)							AS BRAND_NM
+					 , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT)							AS ORD_DTL_STAT_NM
+					 , R.REVIEW_SQ
+					 , IF(NOW() <![CDATA[<]]> O.ORD_DT + INTERVAL 90 DAY, 'Y', 'N')		AS REVIEWABLE_YN
+					 , TIMESTAMPDIFF(DAY, NOW(), OD.DELV_EDDT + INTERVAL 2 WEEK)		AS PURCHASE_CONFIRM_DAY
+					 , DATE_FORMAT(GRS.DELV_RES_DT, '%Y.%m.%d') AS DELV_RES_DT
+					 , IFNULL(OCD.ORD_REQ_CHG_QTY, 0) AS ORD_REQ_CHG_QTY
+					 , CA.BANK_CD
+					 , CA.ACCOUNT_NO
+					 , CA.ACCOUNT_NM
+				  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_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
+				 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_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
+				 INNER JOIN TB_GOODS G
+				    ON OD.GOODS_CD = G.GOODS_CD
+				 INNER JOIN TB_BRAND B
+				    ON B.BRAND_CD = G.BRAND_CD
+				  LEFT OUTER JOIN TB_REVIEW R
+				    ON R.ORD_NO = OD.ORD_NO
+				   AND R.ORD_DTL_NO = OD.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 TB_GOODS_RES_SELL GRS
+				    ON GRS.GOODS_CD = OD.GOODS_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_CUST_ACCOUNT CA
+				    ON O.CUST_NO = CA.CUST_NO
 		<where>
 			<choose>
-				<when test='custNo != null and custNo != ""'>
+				<when test="custNo != null and custNo != ''">
 		   AND O.CUST_NO = #{custNo}
 				</when>
 				<otherwise>
@@ -103,31 +167,33 @@
 			<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>
+			<if test="ordNoList != null">
+		   AND O.ORD_NO IN
+				<foreach collection="ordNoList" item="item" index="index"  open="(" close=")" separator=",">
+					#{item}
+				</foreach>
+			</if>
 		   AND O.DISP_YN = 'Y'
+		   AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
 		</where>
-		 ORDER BY OD.ORD_NO DESC
-				, OD.ORD_DTL_STAT
-				, G.SELF_GOODS_YN DESC
-				, OD.SHOT_DELV_YN DESC
-		 		, OD.SUPPLY_COMP_CD
-				, OD.DELV_FEE_CD
+				) Z
+		 GROUP BY Z.ORD_NO, Z.ORD_DT, Z.GIFT_LIMIT_DT, Z.GIFT_LIMIT_DAY, Z.GIFT_COMPLETE_DT, GIFT_ADDR_INP_YN, Z.DELV_EDDT, Z.ORD_DTL_NO, Z.ORD_EXCH_GB
+				, Z.GOODS_CD, Z.GOODS_NM, Z.LIST_PRICE, Z.SYS_IMG_NM, Z.ORD_DTL_STAT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.ORD_AMT, Z.REAL_ORD_AMT
+				, Z.SAVE_PNT_AMT, Z.CNCL_RTN_AMT, Z.PNT_DC_AMT, Z.GFCD_USE_AMT, Z.SHIP_COMP_CD, Z.GIFT_PACK_YN, Z.SHIP_COMP_NM, Z.INVOICE_NO
+				, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD, Z.SHOT_DELV_YN, Z.CHANGEABLE_YN, Z.SELF_GOODS_YN, Z.BRAND_NM, Z.ORD_DTL_STAT_NM, Z.REVIEW_SQ
+				, Z.REVIEWABLE_YN, Z.PURCHASE_CONFIRM_DAY, Z.DELV_RES_DT, Z.ORD_REQ_CHG_QTY, Z.BANK_CD, Z.ACCOUNT_NO, Z.ACCOUNT_NM
+		ORDER BY Z.ORD_NO DESC, Z.ORD_DTL_STAT, Z.SELF_GOODS_YN DESC, Z.SHOT_DELV_YN DESC, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD
 	</select>
 
 	<!-- 마이페이지 주문목록 페이징 처리 주문번호 수 조회 -->
 	<select id="getPagingOrdNoListCount" parameterType="Order" resultType="int">
-		/* TsfOrder.getPagingOrdNoList */
+		/* TsfOrder.getPagingOrdNoListCount */
 		SELECT COUNT(*) AS CNT
 		  FROM (SELECT O.ORD_NO
 				  FROM TB_ORDER O
@@ -135,6 +201,8 @@
 				    ON O.ORD_NO = OD.ORD_NO
 				 WHERE O.CUST_NO = #{custNo}
 				   AND O.DISP_YN = 'Y'
+				   AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
+				   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
 				   AND O.ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
 		</if>
@@ -156,6 +224,8 @@
 		    ON O.ORD_NO = OD.ORD_NO
 		 WHERE O.CUST_NO = #{custNo}
 		   AND O.DISP_YN = 'Y'
+		   AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
+		   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
 		   AND O.ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
 		</if>
@@ -168,7 +238,7 @@
 	
 	<!-- 마이페이지 주문목록 사은품 조회 -->
 	<select id="getOrderFreeGiftListForMypage" parameterType="Order" resultType="Order">
-		/* TsfOrder.getPagingOrdNoList */
+		/* TsfOrder.getOrderFreeGiftListForMypage */
 		SELECT FG.GOODS_NM
 			 , OFV.USE_POINT
 		  FROM TB_ORD_FREEGIFT OFG

+ 326 - 210
src/main/webapp/WEB-INF/views/web/cart/CartChangeOptionPopupWeb.html

@@ -1,269 +1,385 @@
 <html lang="ko"
 	  xmlns:th="http://www.thymeleaf.org">
 <!-- 옵션변경 팝업 -->
-<div class="modal-dialog cartOptionModal" role="document">
+<div id="cartOptionModal" 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>
+				<span class="name" th:text="${cart.goodsNm}">버카루 BUCKROO 남성 제기장 스웨이드 자켓</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>
+				<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}" th:if="${img.colorCd == color.cartOptCd1}">
+											<span class="thumb"><img th:src="${cart.imgPath + '/' + img.sysImgNm}" src="#" alt="" /></span>
+										</li>
 									</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>
+							</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">
+								<div class="opt_header">
+									<span class="title" th:text="${comp.goodsNm}"></span>
+								</div>
+								<div class="opt_header">
+									<span class="title">옵션1</span>
+									<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
+										<span class="text" th:text="${color.cartColorNm}"></span>
+									</th:block>
+								</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>
+								<!-- 컬러 변경시 만들어줄 size option -->
+								<th:block th:each="color, index : ${comp.cartColorList}">
+									<span style="display:none;">
+										<select th:classappend="|color_${color.goodsCd}_${color.optCd1}|">
+											<th:block th:each="size, i : ${color.cartSizeList}">
+												<th:block th:if="${color.optCd1.equals(size.optCd1)}">
+													<option th:value="${size.optCd}" th:text="${size.optCd2}"></option>
+												</th:block>
+											</th:block>
+										</select>
+									</span>
+								</th:block>
 
-										<div class="form_field">
-											<select class="setColorSelect">
-												<th:block th:each="color, index : ${comp.cartColorList}">
-													<option th:data="${comp.goodsCd}" th:value="${color.optCd1}" rel="icon-temperature" th:text="${color.colorNm}" th:selected="${color.cartColorNm != null}"></option>
+								<form class="form_wrap">
+									<div class="form_field">
+										<div class="select_custom item_opt1 setColorSelect">
+											<div class="combo">
+												<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
+													<div class="select" th:text="${color.cartColorNm}"></div>
 												</th:block>
-											</select>
+												<ul class="list">
+													<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
+													<th:block th:each="color, index : ${comp.cartColorList}">
+														<li th:classappend="${color.cartColorNm != null} ? selected" th:text="${color.colorNm}"></li>
+													</th:block>
+													<!--<li class="selected">카키/95</li>
+													<li aria-disabled="true">옐로우/105</li>-->
+												</ul>
+											</div>
 										</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>
+									</div>
+								</form>
+							</div>
+							<div class="opt_select">
+								<div class="opt_header">
+									<span class="title">옵션2</span>
+									<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
+										<th:block th:each="size, i : ${color.cartSizeList}" th:if="${size.cartOptCd != null}">
+											<span class="text" th:text="${size.optCd2}"></span>
+										</th:block>
+									</th:block>
+								</div>
+								<form class="form_wrap">
+									<div class="form_field">
+										<div class="select_custom item_opt2 setSizeSelect">
+											<div class="combo">
+												<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
+													<th:block th:each="size, i : ${color.cartSizeList}" th:if="${size.cartOptCd != null}">
+														<div class="select" th:classappend="|size_${comp.goodsCd}|" th:text="${size.optCd2}" th:data="${color.goodsCd}"></div>
 													</th:block>
+													<ul class="list">
+														<th:block th:each="size, i : ${color.cartSizeList}" th:if="${color.optCd1.equals(size.optCd1)}">
+															<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
+															<li th:classappend="${size.cartOptCd != null} ? selected" th:data="${comp.cartDtlSq}" th:optCd="${size.optCd}" th:value="${size.optCd}" th:text="${size.optCd2}"></li>
+															<!--<li class="selected">블랙/95</li>
+															<li aria-disabled="true">블랙/105</li>-->
+														</th:block>
+													</ul>
 												</th:block>
-											</select>
-											</th:block>
+											</div>
 										</div>
 									</div>
-								</th:block>
+								</form>
+							</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 th:if="${!setType.equals(cart.goodsType) and 'Y'.equals(cart.selfGoodsYn)}">
+							<div class="opt_color">
+								<div class="opt_header">
+									<span class="title">컬러</span>
+									<th:block th:each="color, index : ${comp.cartColorList}">
+										<th:block th:if="${color.cartColorNm != null}">
+											<span class="color" th:text="${color.cartColorNm}"></span>
+										</th:block>
+									</th:block>
+								</div>
+								<ul>
+									<li th:each="color, index : ${comp.cartColorList}" class="selfGoodsColor">
+										<a href="" th:cartDtlSq="${color.cartDtlSq}" th:classappend="${color.cartColorNm != null} ? 'on'" class="selfGoodsColorSelect" th:data="${color.optCd1}">
+											<img th:src="${cart.imgPath + '/' + color.sysImgNm}" src="#" th:alt="${color.colorNm}" alt="" />
+										</a>
+									</li>
+								</ul>
+							</div>
+							<div class="opt_size">
+								<div class="opt_header">
+									<span class="title">사이즈</span>
+								</div>
+								<div class="form_field selfGoodsSize">
+									<th:block th:each="color, index : ${comp.cartColorList}">
+										<th:block th:if="${color.cartColorNm != null}">
+											<th:block th:each="size, index : ${color.cartSizeList}">
+												<div>
+													<input type="radio" name="rdi-optsize" th:id="|${'rdi-optsize' + size.goodsCd + '-' + size.optCd}|" th:value="${size.optCd}" th:checked="${size.cartOptCd != null}" th:disabled="${size.soldoutYn == 'Y' or cart.goodsQty > size.currStockQty}">
+													<label th:for="|${'rdi-optsize' + size.goodsCd + '-' + size.optCd}|"><span th:text="${size.optCd2}"></span></label>
+												</div>
 											</th:block>
-										</div>
-										<ul>
-											<li th:each="color, index : ${comp.cartColorList}" class="selfGoodsColor">
-												<a href="" th:cartDtlSq="${color.cartDtlSq}" th:classappend="${color.cartColorNm != null} ? 'on'" class="selfGoodsColorSelect" th:data="${color.optCd1}">
-													<img th:src="${cart.imgPath + '/' + color.sysImgNm}" src="#" th:alt="${color.colorNm}" alt="" />
-												</a>
-											</li>
-										</ul>
-									</div>
+										</th:block>
+									</th:block>
+								</div>
+							</div>
+						</th:block>
 
-									<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:if="${!setType.equals(cart.goodsType) and 'N'.equals(cart.selfGoodsYn)}">
+							<div class="opt_select">
+								<div class="opt_header">
+									<span class="title">옵션1</span>
+									<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
+										<span class="text" th:text="${color.cartColorNm}"></span>
+									</th:block>
+								</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>
-										</div>
-									</div>
+										</select>
+									</span>
 								</th:block>
 
-								<!-- 입점업체 상품 옵션 -->
-								<th:block th:if="${!setType.equals(cart.goodsType) and !'Y'.equals(cart.selfGoodsYn)}">
-									<div class="opt_select">
-										<div class="opt_header">
-											<span class="title">옵션선택</span>
-										</div>
-										<div class="form_field">
-											<select class="selfGoodsColor">
-												<th:block th:each="color, index : ${comp.cartColorList}">
-												<option th:data="${color.cartDtlSq}" th:value="${color.optCd}" th:text="${color.optCd1 + '/' + color.optCd2}" th:selected="${color.cartOptCd != null}"></option>
+								<form class="form_wrap">
+									<div class="form_field">
+										<div class="select_custom item_opt1 setColorSelect">
+											<div class="combo">
+												<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
+													<div class="select" th:text="${color.cartColorNm}"></div>
 												</th:block>
-											</select>
+												<ul class="list">
+													<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
+													<th:block th:each="color, index : ${comp.cartColorList}">
+														<li th:classappend="${color.cartColorNm != null} ? selected" th:text="${color.colorNm}"></li>
+													</th:block>
+													<!--<li class="selected">카키/95</li>
+													<li aria-disabled="true">옐로우/105</li>-->
+												</ul>
+											</div>
 										</div>
 									</div>
-								</th:block>
-							</th:block>
-							<div class="opt_count">
+								</form>
+							</div>
+							<div class="opt_select">
 								<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>
+									<span class="title">옵션2</span>
+									<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
+										<th:block th:each="size, i : ${color.cartSizeList}" th:if="${size.cartOptCd != null}">
+											<span class="text" th:text="${size.optCd2}"></span>
+										</th:block>
+									</th:block>
 								</div>
+								<form class="form_wrap">
+									<div class="form_field">
+										<div class="select_custom item_opt2 setSizeSelect">
+											<div class="combo">
+												<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
+													<th:block th:each="size, i : ${color.cartSizeList}" th:if="${size.cartOptCd != null}">
+														<div class="select" th:classappend="|size_${comp.goodsCd}|" th:text="${size.optCd2}" th:data="${color.goodsCd}"></div>
+													</th:block>
+													<ul class="list">
+														<th:block th:each="size, i : ${color.cartSizeList}" th:if="${color.optCd1.equals(size.optCd1)}">
+															<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
+															<li th:classappend="${size.cartOptCd != null} ? selected" th:data="${color.cartDtlSq}" th:optCd="${size.optCd}" th:value="${size.optCd}" th:text="${size.optCd2}"></li>
+															<!--<li class="selected">블랙/95</li>
+															<li aria-disabled="true">블랙/105</li>-->
+														</th:block>
+													</ul>
+												</th:block>
+											</div>
+										</div>
+									</div>
+								</form>
 							</div>
-							<div class="btn_group_block">
-								<button class="btn btn_dark btn_block" th:onclick="|fnChangeCartOption(${cart.cartSq})|"><span>옵션변경</span></button>
-							</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"><em class="sr-only">감소</em></span>
+							<input type="text" name="goodsQty" maxlength="3" style='ime-mode:disabled' th:value="${cart.goodsQty}" />
+							<span class="plus"><em class="sr-only">추가</em></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>
-<!-- //옵션변경 팝업 -->
 
+	<script th:inline="javascript">
+		$(document).ready(function() {
+			$(".select_custom").each(function() {
+				new sCombo(this);
+			});
+		});
+
+		// 세트상품 컬러 변경시
+		$(".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());
+		});
 
-<script th:inline="javascript">
-	// 세트상품 컬러 변경시
-	$(".setColorSelect").on("change", function(e) {
-		let goodsCd = $(this).find("option:checked").attr("data");
-		$(".setOption .size_" + goodsCd).html("");
-		$(".setOption .size_" + goodsCd).html($(".color_" + goodsCd + "_" + $(this).val()).html());
-	});
+		// 자사 일반 상품 컬러 선택시
+		$(".selfGoodsColorSelect").on("click", function(e) {
+			let sizeHtml = "";
+			let imgHtml = "";
+			let cart = [[${cart}]];
+			let color =  [[${cart.cartCompsList[0].cartColorList}]];
+			let optCd1 = $(this).attr("data");
 
-	// 자사 일반 상품 컬러 선택시
-	$(".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) {
+						sizeHtml += "<div>";
+						sizeHtml += "<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) {
+							sizeHtml += "disabled = 'disabled'";
+						}
+						sizeHtml += " />\n";
+						sizeHtml += "<label for='" + size[j].goodsCd + "-" + size[j].optCd + "'><span>" + size[j].optCd2 + "</span></label>\n"
+						sizeHtml += "</div>\n";
+					}
+				}
 
-		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'";
+				if(optCd1 == color[i].optCd1) {
+					for (let j = 0; j < color[i].cartImgList.length; j++) {
+						let img = color[i].cartImgList[j];
+						if(optCd1 == img.colorCd) {
+							imgHtml += "<li>\n<span class='thumb'>\n";
+							imgHtml += "<img src='" + cart.imgPath + "/" + img.sysImgNm + "' alt='' />\n";
+							imgHtml += "</span>\n</li>\n";
+						}
 					}
-					html += " />\n";
-					html += "<label for='" + size[j].goodsCd + "-" + size[j].optCd + "'><span>" + size[j].optCd2 + "</span></label>\n"
-					html += "</div>\n";
 				}
 			}
-		}
 
-		$(".selfGoodsSize").html(html);
-	});
+			$(".cartOptionModal .pic_list").html(imgHtml);
+			$(".cartOptionModal .selfGoodsSize").html(sizeHtml);
+		});
 
-	function fnChangeCartOption(cartSq) {
-		let cart = [[${cart}]];
-		let cartDtlSqArr = [], itemCds = [], optCds = [];
-		let data;
+		function fnChangeCartOption(cartSq) {
+			let cart = [[${cart}]];
+			var cartDtlSqArr = [], itemCds = [], optCds = [];
+			var 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"));
-			});
+			if(cart.goodsType == "G056_S") {
+				$(".setSizeSelect").each(function() {
+					$(this).find("ul.list > li").each(function() {
+						if($(this).hasClass("selected")) {
+							optCds.push($(this).attr("optCd"));
+							cartDtlSqArr.push($(this).attr("data"));
+						}
+					});
+					itemCds.push($(this).find("div.select").attr("data"));
+				});
 
-			data = {
-				  cartSq : cart.cartSq
-				, goodsCd : cart.goodsCd
-				, goodsType : cart.goodsType
-				, cartDtlSqArr : cartDtlSqArr
-				, itemCds : itemCds
-				, optCds : optCds
-				, goodsQty : $("input[name=goodsQty]").val()
-			}
-		} else if(cart.goodsType != "G056_S" && cart.selfGoodsYn == "Y") {
-			optCds.push($(".selfGoodsSize").find("input[name=rdi-optsize]:checked").val());
-			itemCds.push(cart.goodsCd);
-			$(".selfGoodsColorSelect").each(function() {
-				if($(this).attr("cartDtlSq") > 0) {
-					cartDtlSqArr.push($(this).attr("cartDtlSq"));
+				data = {
+					  cartSq : cart.cartSq
+					, goodsCd : cart.goodsCd
+					, goodsType : cart.goodsType
+					, cartDtlSqArr : cartDtlSqArr
+					, itemCds : itemCds
+					, optCds : optCds
+					, goodsQty : $("input[name=goodsQty]").val()
 				}
-			});
+			} else if(cart.goodsType != "G056_S" && cart.selfGoodsYn == "Y") {
+				optCds.push($(".selfGoodsSize").find("input[name=rdi-optsize]:checked").val());
+				itemCds.push(cart.goodsCd);
+				$(".selfGoodsColorSelect").each(function() {
+					if($(this).attr("cartDtlSq") > 0) {
+						cartDtlSqArr.push($(this).attr("cartDtlSq"));
+					}
+				});
 
-			data = {
-				  cartSq : cart.cartSq
-				, goodsCd : cart.goodsCd
-				, goodsType : cart.goodsType
-				, cartDtlSqArr : cartDtlSqArr
-				, itemCds : itemCds
-				, optCds : optCds
-				, goodsQty : $("input[name=goodsQty]").val()
-			}
-		} else {
-			optCds.push($(".selfGoodsColor").val());
-			itemCds.push(cart.goodsCd);
-			$(".selfGoodsColor option").each(function() {
-				if($(this).attr("data") > 0) {
-					cartDtlSqArr.push($(this).attr("data"));
+				data = {
+					  cartSq : cart.cartSq
+					, goodsCd : cart.goodsCd
+					, goodsType : cart.goodsType
+					, cartDtlSqArr : cartDtlSqArr
+					, itemCds : itemCds
+					, optCds : optCds
+					, goodsQty : $("input[name=goodsQty]").val()
 				}
-			});
-
-			data = {
-				cartSq : cart.cartSq
-				, goodsCd : cart.goodsCd
-				, goodsType : cart.goodsType
-				, cartDtlSqArr : cartDtlSqArr
-				, itemCds : itemCds
-				, optCds : optCds
-				, goodsQty : $("input[name=goodsQty]").val()
-			}
-		}
+			} else {
+				// optCds.push($(".selfGoodsColor").val());
+				itemCds.push(cart.goodsCd);
+				$(".setSizeSelect .selected").each(function() {
+					if($(this).attr("data") > 0) {
+						cartDtlSqArr.push($(this).attr("data"));
+						optCds.push($(this).attr("optCd"));
+					}
+				});
 
-		$.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();
+				data = {
+					cartSq : cart.cartSq
+					, goodsCd : cart.goodsCd
+					, goodsType : cart.goodsType
+					, cartDtlSqArr : cartDtlSqArr
+					, itemCds : itemCds
+					, optCds : optCds
+					, goodsQty : $("input[name=goodsQty]").val()
+				}
 			}
-		});
-	}
-</script>
 
+			$.ajax( {
+				type: "POST",
+				url : '/cart/change/option',
+				contentType: 'application/json',
+				dataType : 'json',
+				data : JSON.stringify(data),
+				error : function(e) {
+					alert(e.message);
+				},
+				success : function(result) {
+					mcxDialog.alert(result.message);
+					$(".closeCartOptionModal").trigger("click");
+					let data = {shotDelvUseYn : $("input[name=shotDelvUseYn]:checked").val()};
+					getCartList(data);
+				}
+			});
+		}
+	</script>
+	<a href="#close-modal" rel="modal:close" id="optModifyPop_close" class="close-modal closeCartOptionModal">Close</a>
 </div>
-<a href="#close-modal" rel="modal:close" class="close-modal closeCartOptionModal">Close</a>
+<!-- //옵션변경 팝업 -->
 </html>

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

@@ -65,7 +65,7 @@
 											</select>
 										</div>
 										<div class="form_field">
-											<th:block th:each="color, index : ${comp.cartColorList}">
+											<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
 											<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)}">

+ 1012 - 952
src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html

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

+ 10 - 2
src/main/webapp/WEB-INF/views/web/cart/CartListFormWeb.html

@@ -278,26 +278,34 @@
 <script src="/ux/pc/js/swiper.min.js"></script>
 <link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css" />
 
-<script type="text/javascript">
+<script th:inline="javascript">
     $(document).ready(function() {
         // 장바구니 상품 정보 select
         getCartList();
     });
 
-    function getCartList() {
+    function getCartList(parameter) {
         // 장바구니 정보 조회
         $.ajax( {
             type: "POST",
             url : '/cart/goods/list',
+			data : parameter,
             dataType : 'html',
             success : function(result) {
                 if (result != null) {
+                	$("#cartListForm").remove();
                     $("#cartAjaxList").html(result);
                 }
             }
         });
     }
 
+	//상품옵션변경 팝업 > 컬러선택 표기
+	$(document).on('change','input[name=shotDelvUseYn]',function(e){
+		let data = {shotDelvUseYn : $("input[name=shotDelvUseYn]:checked").val()};
+		getCartList(data);
+	});
+
     //상품옵션변경 팝업 > 수량조절
     $(document).on('click','.opt_modify_pop .number_count .minus',function(e){
         var $input = $(this).parent().find('input');

+ 6 - 4
src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html

@@ -49,16 +49,18 @@
 	<link rel="icon" href="/images/favicon-32x32.png" sizes="32x32" type="image/png"/>
 	<link rel="icon" href="/images/favicon-16x16.png" sizes="16x16" type="image/png"/>
 
+	<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css">
+	<link rel="stylesheet" type="text/css" href="http://ldfront.style24.com/ux/pc/css/slick.css"/>
+	<link rel="stylesheet" type="text/css" th:href="@{'/ux/pc/css/swiper.min.css?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" href="/ux/pc/css/swiper.min.css"/>
+	<link rel="stylesheet" type="text/css" th:href="@{'/ux/pc/css/jquery-ui.css?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" href="/ux/pc/css/jquery-ui.css"/>
 	<link rel="stylesheet" type="text/css" th:href="@{'/ux/pc/css/reset.css?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" href="/ux/pc/css/reset.css"/>
 	<link rel="stylesheet" type="text/css" th:href="@{'/ux/pc/css/font.css?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" href="/ux/pc/css/font.css"/>
-	<link rel="stylesheet" type="text/css" th:href="@{'/ux/pc/css/layout.css?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" href="/ux/pc/css/layout.css"/>
 	<link rel="stylesheet" type="text/css" th:href="@{'/ux/pc/css/common.css?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" href="/ux/pc/css/common.css"/>
-	
+	<link rel="stylesheet" type="text/css" th:href="@{'/ux/pc/css/layout.css?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" href="/ux/pc/css/layout.css"/>
 	<link rel="stylesheet" type="text/css" th:href="@{'/ux/pc/css/main.css?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" href="/ux/pc/css/main.css"/>
-	<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css" />
 	
 	<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
-	<!-- <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> -->
+	<!--<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>-->
 	<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
 	<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.0/js/swiper.min.js"></script>
 	<script src="/ux/pc/js/jquery.modal.min.js"></script>

+ 57 - 386
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderDetailFormWeb.html

@@ -14,6 +14,7 @@
  * VER  DATE         AUTHOR      DESCRIPTION
  * ===  ===========  ==========  =============================================
  * 1.0  2021.02.16   card007     최초 작성
+ * 1.1  2021.03.23   card007     퍼블 수정
  *******************************************************************************
  -->
 <body>
@@ -38,11 +39,14 @@
 				</div>
 				<div class="sec_body">
 					<th:block th:if="${orderList}" th:each="order, status : ${orderList}">
+						<input type="hidden" name="accountNo" th:value="${order.oneData.accountNo}"/>
+						<input type="hidden" name="accountNm" th:value="${order.oneData.accountNm}"/>
+						<input type="hidden" name="bankCd" th:value="${order.oneData.bankCd}"/>
 						<div class="part_goods">
 							<div class="goods_head">
 								<p th:unless="${order.giftPackYn == 'Y'}">주문일 <span th:text="${order.ordDt}"></span></p>
 								<p th:if="${order.giftPackYn == 'Y'}">선물일 <span th:text="${order.ordDt}"></span></p>
-								<a href="javascript:void(0)" th:if="${allCanYn == 'Y'}" th:onclick="fnAllCancel([[${order.ordNo}]])">주문전체취소</a>
+								<li><a href="javascript:void(0)" th:if="${order.allCanYn == 'Y' and order.ordReqChgQty == 0}" onclick="fnAllCancel();">주문전체취소</a></li>
 							</div>
 							<div class="goods_cont">
 								<!-- 주문상품 -->
@@ -77,8 +81,8 @@
 														<span class="count"><em th:text="${ordDtl.ordQty - ordDtl.cnclRtnQty}"></em>개</span>
 													</p>
 													<p>
-														<span class="price_org"><em th:text="${#numbers.formatInteger(ordDtl.listPrice * (ordDtl.ordQty - ordDtl.cnclRtnQty), 1, 'COMMA')}"></em>원</span>
-														<span class="price_sale"><em th:text="${#numbers.formatInteger(ordDtl.ordAmt - ordDtl.cnclRtnAmt, 1, 'COMMA')}"></em>원</span>
+														<span class="price_org"><em th:text="${#numbers.formatInteger(ordDtl.ordAmt - ordDtl.cnclRtnAmt - ordDtl.cpn1DcAmt, 1, 'COMMA')}"></em>원</span>
+														<span class="price_sale"><em th:text="${#numbers.formatInteger(ordDtl.realOrdAmt + ordDtl.pntDcAmt + ordDtl.gfcdUseAmt, 1, 'COMMA')}"></em>원</span>
 													</p>
 													<p>
 														<span class="point"><em th:text="${#numbers.formatInteger(ordDtl.savePntAmt, 1, 'COMMA')}"></em><stong>P</stong>&nbsp;적립예정</span>
@@ -436,395 +440,14 @@
 				<input type="hidden" name="ordNo"/>
 				<input type="hidden" name="ordDtlNo"/>
 			</form>
-			<!--<div class="my_cont">
-				<div class="sec_head">
-					<h3>주문상세</h3>
-					<div class="od_detail">
-						(주문번호 : <span class="num" th:text="${ordNo}"></span>)
-					</div>
-					<button type="button" class="btn btn_default od_del_btn" onclick="fnDeleteOrder()"><span>주문 내역 삭제</span></button>
-				</div>
-				<div class="sec_body">
-					<div class="order_list" id="orderList">
-						<section class="order_row">
-							<th:block th:if="${orderList}" th:each="oneData, status : ${orderList}">
-								<div class="part_deliver">
-									<div class="tbl_tit">
-										&lt;!&ndash; 주문일/선물일 설정 &ndash;&gt;
-										<span class="start_t" th:unless="${oneData.giftPackYn == 'Y'}">주문일</span>
-										<span class="gift_t" th:if="${oneData.giftPackYn == 'Y'}">선물일</span>
-										&lt;!&ndash; //주문일/선물일 설정 &ndash;&gt;
-		
-										<span class="order_date" th:text="${oneData.ordDt}"></span>
-		
-										&lt;!&ndash; 배송구분 설정 &ndash;&gt;
-										<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>
-										&lt;!&ndash; //배송구분 설정 &ndash;&gt;
-		&lt;!&ndash;								<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>&ndash;&gt;
-									</div>
-									<th:block th:if="${oneData.orderList}" th:each="order, status : ${oneData.orderList}">
-										<div class="tbl type2">
-											<table>
-												<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 class="bundle_row">
-														<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>
-																	<button type="button" class="btn btn_dark cart_btn" onclick="fnCreateCart(this);">쇼핑백 담기</button>
-																</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>
-														</td>
-														&lt;!&ndash; 주문 &ndash;&gt;
-														<td class="merge_row" th:unless="${oneData.giftPackYn == 'Y'}">
-															<div class="delivery">
-																<p class="dlvr_staus" th:text="${ordDtl.ordDtlStatNm}"></p>
-																<p class="dlvr_desc" th:if="${ordDtl.delvEddt}" th:text="|${ordDtl.delvEddt}일 도착|"></p>
-															</div>
-															<div class="tbl_btn_wrap case02">
-																<button type="button" class="btn btn_default btn_sm" onclick="fnCreateExchange(this, 'exchange');"><span>교환</span></button>
-																<button type="button" class="btn btn_default btn_sm" onclick="fnCreateCancel(this, 'cancel');"><span>반품/취소</span></button>
-		&lt;!&ndash;														<button type="button" class="btn btn_default btn_sm" th:if="${ordDtl.reviewSq == 0}" th:attr="ordNo=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰작성</span></button>&ndash;&gt;
-																<button type="button" class="btn btn_default btn_sm" th:if="${!order.review}" th:attr="ordNo=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰작성</span></button>
-															</div>
-														</td>
-														<td class="merge_row" th:if="${oneData.giftPackYn == 'Y' and #strings.isEmpty(ordDtl.recipBaseAddr)}">
-															<div class="delivery">
-																<p class="dlvr_staus c_primary">주소 입력 대기</p>
-																<p class="dlvr_desc" th:text="|남은 기간 ${ordDtl.giftLimitDay}일|"></p>
-																<p class="dlvr_desc" th:text="|(${ordDtl.giftLimitDt}까지)|"></p>
-															</div>
-															<div class="tbl_btn_wrap case02">
-																<button type="button" class="btn btn_dark btn_sm" onclick="fnReSendSms(this);"><span>SMS 재전송</span></button>
-															</div>
-														</td>
-														<td class="merge_row" th:if="${oneData.giftPackYn == 'Y' and !#strings.isEmpty(ordDtl.recipBaseAddr)}">
-															<div class="delivery">
-																<p class="dlvr_staus c_primary">선물 완료</p>
-																<p class="dlvr_desc" th:text="|(${ordDtl.giftCompleteDt})|"></p>
-															</div>
-															<div class="tbl_btn_wrap case02">
-															</div>
-														</td>
-													</tr>
-												</th:block>
-												</tbody>
-											</table>
-										</div>
-										&lt;!&ndash; 주문 &ndash;&gt;
-										<th:block th:unless="${oneData.giftPackYn == 'Y'}">
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_00' or order.ordDtlStat == 'G013_10' or order.ordDtlStat == 'G013_11'}">
-												<span class="cf_txt">주문 완료 / 결제를 기다리고 있습니다.</span>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_20' or order.ordDtlStat == 'G013_30' or order.ordDtlStat == 'G013_35'}">
-												<span class="cf_txt">배송할 상품을 준비 중입니다.</span>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_40'}">
-												<span class="cf_txt">상품준비가 완료되어 곧 배송될 예정입니다.</span>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_50' or order.ordDtlStat == 'G013_55'}">
-												<span class="cf_txt" th:text="|${order.shipCompNm} / ${order.invoiceNo}|"></span>
-												<button type="button" class="btn btn_primary" th:attr="ordNo=${oneData.ordNo}, invoiceNo=${order.invoiceNo}, shipCompCd=${order.shipCompCd}" onclick="fnGetDeliveryInfo(this)">배송조회</button>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_60'}">
-												<span class="cf_txt" th:text="|${order.purchaseConfirmDay}일 후 자동으로 구매확정|"></span>
-												<button type="button" class="btn btn_primary" onclick="fnDecideOrder(this);">구매확정 하기</button>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq == 0}">
-												<span class="cf_txt">리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</span>
-												<button type="button" class="btn btn_primary" banner="banner" onclick="fnCreateReview(this, 'Y');">리뷰작성</button>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq > 0}">
-												<span class="cf_txt">주문내역 다시 구매하기 위해</span>
-												<button type="button" class="btn btn_primary" onclick="fnCreateCart(this, 'Y');">장바구니 담기</button>
-											</div>
-										</th:block>
-		
-										&lt;!&ndash; 선물 &ndash;&gt;
-										<th:block th:if="${oneData.giftPackYn == 'Y'}">
-											<div class="order_confirm" th:if="${#strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay >= 0}">
-												<span class="cf_txt" th:text="|${order.recipNm}님이 주소를 입력하기 전입니다. (입력기한 ${order.giftLimitDt})|"></span>
-											</div>
-											<div class="order_confirm" th:unless="${#strings.isEmpty(order.recipBaseAddr)}">
-												<span class="cf_txt" th:text="|${order.recipNm}님께 선물이 발송되었습니다.|"></span>
-											</div>
-											<div class="order_confirm" th:if="${#strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay < 0}">
-												<span class="cf_txt">주소입력 기한이 경과되어 선물이 취소 되었습니다.</span>
-											</div>
-										</th:block>
-									</th:block>
-								</div>
-							</th:block>
-		
-							&lt;!&ndash; 주문 없을 때 &ndash;&gt;
-							<th:block th:unless="${orderList}" th:each="oneData, status : ${orderList}">
-		
-							</th:block>
-						</section>
-						<section class="order_row" th:if="${paymentInfo.payMeans == 'G014_20'}">
-							<div class="order_tit">
-								<h3 class="subH3">무통장 입금 정보</h3>
-							</div>
-							<div class="tbl type1 row_tbl">
-								<table>
-									<colgroup>
-										<col width="*">
-									</colgroup>
-									<tbody>
-										<tr>
-											<td>
-												<div>
-													<span th:text="${paymentInfo.vaBank}"></span>(<span th:text="${paymentInfo.vaNm}"></span>)
-												</div>
-												<div>
-													<span th:text="${paymentInfo.vaNo}"></span>
-												</div>
-												<div>
-													<span th:text="${paymentInfo.vaDeadlineYmd}"></span><span th:text="${paymentInfo.vaDeadlineHms}"></span> 까지
-												</div>
-											</td>
-										</tr>
-									</tbody>
-								</table>
-							</div>
-						</section>
-						<section class="order_row">
-							<div class="order_tit">
-								<h3 class="subH3">주문 고객</h3>
-							</div>
-							<div class="tbl type1 row_tbl">
-								<table>
-									<colgroup>
-										<col width="*">
-									</colgroup>
-									<tbody>
-										<tr>
-											<td>
-												<div>
-													<span th:text="${orderInfo.ordNm}"></span>
-												</div>
-												<div>
-													<span th:text="${orderInfo.ordEmail}"></span>
-												</div>
-												<div>
-													<span th:text="${orderInfo.ordPhnno}"></span>
-												</div>
-											</td>
-										</tr>
-									</tbody>
-								</table>
-							</div>
-						</section>
-						<section class="order_row">
-							<div class="order_tit">
-								<h3 class="subH3">배송지 정보</h3>
-							</div>
-							<div class="tbl type1 row_tbl">
-								<table>
-									<colgroup>
-										<col width="*">
-									</colgroup>
-									<tbody>
-									<tr th:if="${deliveryAddrInfo.recipNm}">
-										<td th:text="${deliveryAddrInfo.recipNm}"><span class="sr-only">배송지명</span></td>
-									</tr>
-									<tr th:if="${${deliveryAddrInfo.recipBaseAddr}}">
-										<td th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"><span class="sr-only">배송 주소</span></td>
-									</tr>
-									<tr>
-										<td th:text="${deliveryAddrInfo.recipPhnno}"><span class="sr-only">휴대폰 번호</span></td>
-									</tr>
-									<tr>
-										<td>
-											<span class="tit c_primary">배송요청 사항</span>
-											<th:block th:text="${deliveryAddrInfo.delvMemo}"></th:block>
-											<button type="button" class="btn_popup" id="btn_rqstModify_pop" onclick="fnChangeDelvMemo();"><span>변경하기</span></button>
-										</td>
-									</tr>
-									</tbody>
-								</table>
-							</div>
-						</section>
-						<section class="order_row">
-							<div class="order_tit">
-								<h3 class="subH3">결제정보</h3>
-							</div>
-							<div class="order_amount">
-								<div class="tbl type3">
-									<table>
-										<colgroup>
-											<col width="33.33%">
-											<col width="33.33%">
-											<col width="*">
-										</colgroup>
-										<thead>
-										<tr>
-											<th>
-												<dl>
-													<dt>총 주문금액</dt>
-													<dd class="price" th:text="|${#numbers.formatInteger(orderAmtInfo.ordAmt + orderAmtInfo.delvFee, 1, 'COMMA')}원|"></dd>
-												</dl>
-												<i class="ico_calc minus"></i>
-											</th>
-											<th>
-												<dl>
-													<dt>총 할인금액</dt>
-													<dd class="price" th:text="|- ${#numbers.formatInteger(orderAmtInfo.totalDcAmt, 1, 'COMMA')}원|"></dd>
-												</dl>
-												<i class="ico_calc result"></i>
-											</th>
-											<th>
-												<dl>
-													<dt>결제금액</dt>
-													<dd class="price" data-weight="price" data-font="lato">
-														<span class="oder_total_price" th:text="${#numbers.formatInteger(orderAmtInfo.realOrdAmt, 1, 'COMMA')}"></span>원
-													</dd>
-												</dl>
-											</th>
-										</tr>
-										</thead>
-										<tbody>
-										<tr>
-											<td>
-												<dl>
-													<div>
-														<dt>상품금액</dt>
-														<dd th:text="|${#numbers.formatInteger(orderAmtInfo.ordAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.delvFee > 0}">
-														<dt>배송비</dt>
-														<dd th:text="|${#numbers.formatInteger(orderAmtInfo.delvFee, 1, 'COMMA')}원|"></dd>
-													</div>
-												</dl>
-											</td>
-											<td>
-												<dl>
-													<div th:if="${orderAmtInfo.cpn1DcAmt > 0}">
-														<dt>상품 할인(즉시 할인)</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.cpn1DcAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt > 0}">
-														<dt>다다익선 할인</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt > 0}">
-														<dt>쿠폰 할인</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt, 1, 'COMMA')}원|">- 30,000원</dd>
-													</div>
-													<div th:if="${orderAmtInfo.prePntDcAmt > 0}">
-														<dt>선 포인트 할인</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.prePntDcAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.pntDcAmt > 0}">
-														<dt>포인트 사용</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.pntDcAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.gfcdUseAmt > 0}">
-														<dt>상품권 사용</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.gfcdUseAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													&lt;!&ndash; 
-													<div th:if="${}">
-														<dt>마일리지 사용</dt>
-														<dd></dd>
-													</div>
-													<div th:if="${}">
-														<dt>제휴 할인</dt>
-														<dd></dd>
-													</div>
-													&ndash;&gt;
-												</dl>
-											</td>
-											<td>
-												<dl>
-													<div th:if="${orderAmtInfo.savePntAmt > 0}">
-														<dt>적립 예정 포인트</dt>
-														<dd th:text="|${#numbers.formatInteger(orderAmtInfo.savePntAmt, 1, 'COMMA')}P|"></dd>
-													</div>
-													<div>
-														<dt>결제방법</dt>
-														<dd>
-															&lt;!&ndash; TODO &ndash;&gt;
-															&lt;!&ndash; Style24 간편결제 처리 (STYLE24 간편결제 : STYLE24 간편결제명 / 카드사명 / 할부개월(일시불)) &ndash;&gt;
-															&lt;!&ndash; 실시간계좌이체, 무통장입금 현금영수증 신청여부 추가 &ndash;&gt;
-															&lt;!&ndash; 네이버페이 처리 (네이버 페이 : 네이버 페이) &ndash;&gt;
-															&lt;!&ndash; 카카오페이 처리 (카카오 페이 : 카카오 페이) &ndash;&gt;
-															&lt;!&ndash; PAYCO 처리 (PAYCO : PAYCO) &ndash;&gt;
-															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_10'}" th:text="|실시간계좌이체|"></span>
-															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_20'}" th:text="|무통장입금|"></span>
-															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_30'}" th:text="|${paymentInfo.cardNm}/${paymentInfo.cardMips}|"></span>
-															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_60'}">휴대폰결제</span>
-														</dd>
-													</div>
-													<th:block th:if="${paymentInfo.pgGb == 'KCP'}">
-														&lt;!&ndash; 신용카드 결제시 &ndash;&gt;
-														<div th:if="${paymentInfo.payMeans == 'G014_30'}">
-															<dt>&nbsp;</dt>
-															<dd>
-																<button type="button" class="btn btn_default" onclick="fnReceipt('card');"><span>신용카드 전표</span></button>
-															</dd>
-														</div>
-														&lt;!&ndash; //무통장 결제시 &ndash;&gt;
-														&lt;!&ndash; 무통장 결제시 &ndash;&gt;
-														<div th:if="${paymentInfo.payMeans == 'G014_10' or paymentInfo.payMeans == 'G014_20'}">
-															<dt>&nbsp;</dt>
-															<dd>
-																<button type="button" class="btn btn_default" onclick="fnReceipt('cash');"><span>현금영수증</span></button>
-															</dd>
-														</div>
-														&lt;!&ndash; //무통장 결제시 &ndash;&gt;
-													</th:block>
-													<th:block th:unless="${paymentInfo.pgGb == 'KCP'}">
-														<dt></dt>
-														<dd>NPAY등의 대체결제수단으로 결제시 해당 결제 플롯폼에서 영수증 확인이 가능합니다.</dd>
-													</th:block>
-												</dl>
-											</td>
-										</tr>
-										</tbody>
-									</table>
-								</div>
-							</div>
-						</section>
-					</div>
-				</div>
-			</div>-->
 			<!-- // CONT-BODY -->
 		</div>
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 	let ordNo = [[${ordNo}]];
+	let orderList = [[${orderList}]];
+	let paymentInfo = [[${paymentInfo}]];
 
 	$(document).ready(function() {
 		// 마이페이지 LNB 설정
@@ -834,6 +457,54 @@
 		fnSetMypageLocation('주문확인/배송조회', '_PAGE_MYPAGE_ORDER_LIST', '주문상세');
 	});
 	
+	// 전체취소 버튼 클릭 이벤트
+	var fnAllCancel = function() {
+		let cancelRequestList = [];
+
+		$.each(orderList[0].ordDtlList, function(idx, item) {
+			item.ordCanChgQty = (item.ordQty - item.cnclRtnQty);
+			cancelRequestList.push(item);
+		});
+		
+		// 환불계좌 체크
+		let accountNo = $('input[name=accountNo]').val();
+		let accountNm = $('input[name=accountNm]').val();
+		let bankCd = $('input[name=bankCd]').val();
+		
+		if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_00' && (gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
+			// TODO
+			// 환불계좌 등록 팝업
+			
+			return false;
+		}
+		
+		// 취소요청 데이터 설정
+		let url = '/mypage/cancel';
+		
+		let allCanYn = '';
+		if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_00') {
+			allCanYn = 'Y';
+		}
+		
+		let data = {};
+		data.ordNo = ordNo;
+		data.chgReason = 'G686_10';
+		data.accountNo = accountNo;
+		data.accountNm = accountNm;
+		data.bankCd = bankCd;
+		data.allCanYn = allCanYn;
+		data.isCustomer = 'Y';
+		data.reqGbn = 'cnclComplete';
+		data.cancelReqList = cancelRequestList;
+		
+		let jsonData = JSON.stringify(data);
+		console.log(jsonData);
+		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+			// TODO
+			// 주문취소 콜백처리
+			console.log(result);
+		});
+	}
 </script>
 
 </th:block>

+ 11 - 5
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html

@@ -140,13 +140,13 @@
 								<div class="form_field">
 									<label class="input_label sr-only">선택기간 시작</label>
 									<div class="input_wrap">
-										<input type="text" class="form_control period_datepicker hasDatepicker" value="" id="stDate" onchange="fnCheckPeriod(this);">
+										<input type="text" class="form_control period_datepicker" value="" id="stDate" onchange="fnCheckPeriod(this);">
 									</div>
 								</div>
 								<div class="form_field">
 									<label class="input_label sr-only">선택기간 끝</label>
 									<div class="input_wrap">
-										<input type="text" class="form_control n_input period_datepicker hasDatepicker" value="" id="edDate" onchange="fnCheckPeriod(this);">
+										<input type="text" class="form_control n_input period_datepicker" value="" id="edDate" onchange="fnCheckPeriod(this);">
 									</div>
 								</div>
 								<button type="button" class="btn btn_dark btn_sm" onclick="fnSearchOrderList();"><span>조회</span></button>
@@ -405,7 +405,13 @@
 					tag += '					<div class="gd_opt">\n';
 					tag += '						<div class="option_wrap">\n';
 					tag += '							<span class="title sr-only">주문 옵션</span>\n';
-					tag += '							<span class="option">' + ordDtl.optCd1 + ' / ' + ordDtl.optCd2 + '</span>\n';
+					$.each(ordDtl.colorNmArr, function (index2, option) {
+						if (ordDtl.goodsType == 'G056_S') {
+							tag += '							<span class="option">' + ordDtl.itemNmArr[index2] + ' / ' + option + ' / ' + ordDtl.optCd2Arr[index2] + '</span>\n';
+						} else {
+							tag += '							<span class="option">' + option + ' / ' + ordDtl.optCd2Arr[index2] + '</span>\n';
+						}
+					});
 					tag += '						</div>\n';
 					tag += '					</div>\n';
 					tag += '					<div class="gd_calc">\n';
@@ -413,8 +419,8 @@
 					tag += '							<span class="count"><em>' + (ordDtl.ordQty - ordDtl.cnclRtnQty) + '</em>개</span>\n';
 					tag += '						</p>\n';
 					tag += '						<p>\n';
-					tag += '							<span class="price_org"><em>' + (ordDtl.listPrice * (ordDtl.ordQty - ordDtl.cnclRtnQty)).addComma() + '</em>원</span>\n';
-					tag += '							<span class="price_sale"><em>' + (ordDtl.ordAmt - ordDtl.cnclRtnAmt).addComma() + '</em>원</span>\n';
+					tag += '							<span class="price_org"><em>' + (ordDtl.ordAmt - ordDtl.cnclRtnAmt - ordDtl.cpn1DcAmt).addComma() + '</em>원</span>\n';
+					tag += '							<span class="price_sale"><em>' + (ordDtl.realOrdAmt + ordDtl.pntDcAmt + ordDtl.gfcdUseAmt).addComma() + '</em>원</span>\n';
 					tag += '						</p>\n';
 					tag += '					</div>\n';
 					tag += '				</div>\n';

+ 2 - 2
src/main/webapp/ux/pc/css/layout.css

@@ -352,7 +352,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 #quick_menu .shopingbag .itemsGrp .item_state.soldout .itemPic:before {content:'SOLD OUT'; position: absolute; top: 50%; left: 50%; font-size: 20px; color:#fff; background: rgba(0,0,0,.5); width: 100%; height: 100%; transform:translate(-50%, -50%); line-height: 420px; z-index: 1; text-align: center;}
 #quick_menu .shopingbag .itemsGrp .item_prod .itemBrand {margin:0px 0 15px; font-size: 14px; font-weight: 300;}
 #quick_menu .shopingbag .itemsGrp .item_prod .itemComment {}
-#quick_menu .shopingbag .itemsGrp .item_prod .itemName {margin:0px 0 13px; font-size: 14px; font-weight: 300; lin e-height: 1.5; max-height:44px; overflow:hidden;}
+#quick_menu .shopingbag .itemsGrp .item_prod .itemName {margin:0px 0 13px; font-size: 14px; font-weight: 300; line-height: 1.5; max-height:44px; overflow:hidden;}
 #quick_menu .shopingbag .itemsGrp .item_prod .itemSize {font-size: 12px; margin-bottom: 20px; color: #888;}
 #quick_menu .shopingbag .itemsGrp .item_prod .itemPrice {font-size: 16px; line-height: 1; font-weight: 500; margin:0 0 10px}
 #quick_menu .shopingbag .itemsGrp .item_prod .itemPrice_original {display: inline-block; font-size: 14px; font-weight: 200;}
@@ -1832,7 +1832,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.dp .itemsGrp.rowtype .item_prod .itemPic .pd_img {z-index: 88;}
 	.dp .itemsGrp.rowtype .item_prod.soldout .itemPic:before {content:'SOLD OUT'; position: absolute; top: 50%; left: 50%; font-size: 20px; color:#fff; background: rgba(0,0,0,.5); width: 100%; height: 100%; transform:translate(-50%, -50%); line-height: 420px; z-index: 99; text-align: center;}
 	.dp .itemsGrp.rowtype .item_prod .itemBrand {margin:0px 6px 65px; font-size: 16px; font-weight: 300;}
-	.dp .itemsGrp.rowtype .item_prod .itemComment {position: static; left: 340px; top: 150px; font-size: 16px; font-weight: 300; margin:0;} */
+	.dp .itemsGrp.rowtype .item_prod .itemComment {position: static; left: 340px; top: 150px; font-size: 16px; font-weight: 300; margin:0;}
 	.dp .itemsGrp.rowtype .item_prod .itemName {margin:0px 6px 40px; font-size: 30px; font-weight: 200; line-height: 1.2; max-height:70px; height: 70px;}
 	.dp .itemsGrp.rowtype .item_prod .itemPrice {font-size: 30px; line-height: 1; font-weight: 500;}
 	.dp .itemsGrp.rowtype .item_prod .itemPrice_original {font-size: 20px; font-weight: 200;}

+ 11 - 17
src/main/webapp/ux/pc/js/mypage.js

@@ -1,17 +1,17 @@
 // 마이페이지 LNB 처리
 var fnSetMypageLnbList = function(lnbLvl) {
 	let tag = '';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"' + (lnbLvl == 1 ? ' class="on"' : '') + '>주문확인/배송조회</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST);"' + (lnbLvl == 2 ? ' class="on"' : '') + '>취소/반품/환불내역</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_RESTOCK);"' + (lnbLvl == 3 ? ' class="on"' : '') + '>재입고 알림 내역</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_COUPON);"' + (lnbLvl == 4 ? ' class="on"' : '') + '>쿠폰</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_POINT);"' + (lnbLvl == 5 ? ' class="on"' : '') + '>STYLE24 포인트</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);"' + (lnbLvl == 6 ? ' class="on"' : '') + '>상품권</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_REVIEW);"' + (lnbLvl == 7 ? ' class="on"' : '') + '>리뷰</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_DELIVERY_ADDR);"' + (lnbLvl == 8 ? ' class="on"' : '') + '>배송지 관리</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_WISHLIST);"' + (lnbLvl == 9 ? ' class="on"' : '') + '>위시리스트</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CUSTOMER);"' + (lnbLvl == 10 ? ' class="on"' : '') + '>내정보 관리</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_SECEDE);"' + (lnbLvl == 11 ? ' class="on"' : '') + '>회원 탈퇴</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"' + (lnbLvl == 1 ? ' class="on"' : '') + '>주문확인/배송조회</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST);"' + (lnbLvl == 2 ? ' class="on"' : '') + '>취소/반품/환불내역</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_RESTOCK);"' + (lnbLvl == 3 ? ' class="on"' : '') + '>재입고 알림 내역</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_COUPON);"' + (lnbLvl == 4 ? ' class="on"' : '') + '>쿠폰</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_POINT);"' + (lnbLvl == 5 ? ' class="on"' : '') + '>STYLE24 포인트</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);"' + (lnbLvl == 6 ? ' class="on"' : '') + '>상품권</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_REVIEW);"' + (lnbLvl == 7 ? ' class="on"' : '') + '>리뷰</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_DELIVERY_ADDR);"' + (lnbLvl == 8 ? ' class="on"' : '') + '>배송지 관리</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_WISHLIST);"' + (lnbLvl == 9 ? ' class="on"' : '') + '>위시리스트</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_CUSTOMER);"' + (lnbLvl == 10 ? ' class="on"' : '') + '>내정보 관리</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_SECEDE);"' + (lnbLvl == 11 ? ' class="on"' : '') + '>회원 탈퇴</a></li>\n';
 	tag += '</ul>';
 	$('#mypageLnbList').html(tag);
 }
@@ -129,12 +129,6 @@ var fnReSendSms = function(param) {
 	// 선물하기 SMS 재발송 처리
 }
 
-// 주문전체취소 버튼 클릭 이벤트
-var fnAllCancel = function(ordNo) {
-	// TODO
-	// 주문전체취소 처리
-}
-
 // 반품/취소/교환 버튼 클릭 이벤트
 var fnCreateChange = function(param, gubun) {
 	let ordNo = $(param).attr('ordNo');