Explorar el Código

Merge branch 'order' into develop

card007 hace 5 años
padre
commit
398c17ca6b
Se han modificado 27 ficheros con 3561 adiciones y 811 borrados
  1. 8 0
      src/main/java/com/style24/front/biz/dao/TsfCouponDao.java
  2. 73 0
      src/main/java/com/style24/front/biz/dao/TsfOrderDao.java
  3. 9 9
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  4. 175 0
      src/main/java/com/style24/front/biz/service/TsfCouponService.java
  5. 188 0
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  6. 15 22
      src/main/java/com/style24/front/biz/web/TsfCartController.java
  7. 89 18
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  8. 99 5
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  9. 0 2
      src/main/java/com/style24/persistence/domain/Cart.java
  10. 10 0
      src/main/java/com/style24/persistence/domain/Coupon.java
  11. 29 6
      src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml
  12. 290 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml
  13. 1 0
      src/main/resources/i18n/messages/message_ko_KR.properties
  14. 12 3
      src/main/webapp/WEB-INF/views/web/cart/cartListAjaxFormWeb.html
  15. 2 0
      src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html
  16. 69 6
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderDetailFormWeb.html
  17. 38 23
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html
  18. 96 0
      src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrAddPopWeb.html
  19. 82 0
      src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrChangePopWeb.html
  20. 92 0
      src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrModifyPopWeb.html
  21. 102 0
      src/main/webapp/WEB-INF/views/web/order/OrderDelvMemoChangePopWeb.html
  22. 1128 716
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html
  23. 828 0
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb_20210216.html
  24. 22 0
      src/main/webapp/WEB-INF/views/web/order/OrderFreegiftInfoPopWeb.html
  25. 82 0
      src/main/webapp/WEB-INF/views/web/order/OrderPayAgreePopWeb.html
  26. 21 0
      src/main/webapp/WEB-INF/views/web/order/OrderPayCustConfirmPopWeb.html
  27. 1 1
      src/main/webapp/ux/style24_link.js

+ 8 - 0
src/main/java/com/style24/front/biz/dao/TsfCouponDao.java

@@ -20,4 +20,12 @@ public interface TsfCouponDao {
 	 * @since 2021. 02. 16
 	 */
 	Coupon getSerialCpnUseInfo(Coupon param);
+
+	/**
+	 * 입력된 시리얼 쿠폰 정보 조회
+	 * @param param
+	 * @author xodud1202
+	 * @since 2021. 02. 17
+	 */
+	Coupon getSearchSerialCpnInfo(Coupon param);
 }

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

@@ -1,6 +1,9 @@
 package com.style24.front.biz.dao;
 
+import java.util.Collection;
+
 import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Order;
 
 /**
  * 주문 Dao
@@ -11,4 +14,74 @@ import com.style24.core.support.annotation.ShopDs;
 @ShopDs
 public interface TsfOrderDao {
 
+	/**
+	 * 마이페이지 주문 정보 조회
+	 *
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author card007
+	 * @since 2021. 02. 04
+	 */
+	Collection<Order> getOrderListForMypage(Order order);
+
+	/**
+	 * 마이페이지 주문상태 별 주문수량 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	int getOrderStatCount(Order order);
+
+	/**
+	 * 마이페이지 주문변경상태 별 주문수량 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	int getOrderChangeStatCount(Order order);
+
+	/**
+	 * 마이페이지 주문상세 금액정보 조회
+	 *
+	 * @param Order
+	 * @return Order
+	 * @author card007
+	 * @since 2021. 02. 15
+	 */
+	Order getOrderAmtForMypage(Order order);
+
+	/**
+	 * 마이페이지 주문상세 결제정보 조회
+	 *
+	 * @param Order
+	 * @return Order
+	 * @author card007
+	 * @since 2021. 02. 15
+	 */
+	Order getPaymentInfoForMypage(Order order);
+
+	/**
+	 * 마이페이지 주문상세 배송지 정보 조회
+	 *
+	 * @param Order
+	 * @return Order
+	 * @author card007
+	 * @since 2021. 02. 15
+	 */
+	Order getOrderDeliveryAddrInfo(Order order);
+
+	/**
+	 * 마이페이지 주문상세 주문내역삭제 처리
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 17
+	 */
+	int updateOrderDisplayYn(Order order);
+
 }

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

@@ -115,9 +115,9 @@ public class TsfCartService {
 		StringBuilder sb = new StringBuilder();
 
 		// TODO 로그인 정보 세팅
-		cart.setRegNo(0);
-		cart.setCustNo(0);
-		cart.setUpdNo(0);
+		cart.setRegNo(1000006);
+		cart.setCustNo(1000006);
+		cart.setUpdNo(1000006);
 		cart.setJsessionId(TscSession.getSessionId());
 
 		// 장바구니 보유 CART_SQ 쿼리
@@ -189,9 +189,9 @@ public class TsfCartService {
 	public void saveNormalDealCartInfo(Cart param) {
 		// TODO 로그인 정보 세팅
 		param.setJsessionId(TscSession.getSessionId());
-		param.setRegNo(0);
-		param.setCustNo(0);
-		param.setUpdNo(0);
+		param.setRegNo(1000006);
+		param.setCustNo(1000006);
+		param.setUpdNo(1000006);
 
 		if("C".equals(param.getCartGb())) {
 			param.setCartGb(TscConstants.CartGb.CART.value());
@@ -237,9 +237,9 @@ public class TsfCartService {
 		// TODO 로그인 체크
 		order.setJsessionId(TscSession.getSessionId());
 		order.setJsessionId("aaec62cc-5f91-47bb-ba65-ebc9a61385cf");
-		order.setCustNo(0);
-		order.setRegNo(0);
-		order.setUpdNo(0);
+		order.setCustNo(1000006);
+		order.setRegNo(1000006);
+		order.setUpdNo(1000006);
 
 		// 장바구니 상품 조회
 		Collection<Order> cartGoodsList = cartDao.getCartGoodsList(order);

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

@@ -1,10 +1,21 @@
 package com.style24.front.biz.service;
 
+import java.util.Collection;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.thymeleaf.util.StringUtils;
 
+import com.style24.core.biz.dao.TscCouponDao;
+import com.style24.core.biz.service.TscCouponService;
+import com.style24.core.biz.service.TscOrderService;
+import com.style24.core.support.env.TscConstants;
 import com.style24.front.biz.dao.TsfCouponDao;
+import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Coupon;
+import com.style24.persistence.domain.CustCoupon;
+import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -21,6 +32,12 @@ public class TsfCouponService {
 	@Autowired
 	private TsfCouponDao couponDao;
 
+	@Autowired
+	private TscCouponDao coreCouponDao;
+
+	@Autowired
+	private TscOrderService coreOrderService;
+
 	/**
 	 * 시리얼 쿠폰 지급 정보 조회
 	 * @param param
@@ -31,4 +48,162 @@ public class TsfCouponService {
 	public Coupon getSerialCpnUseInfo(Coupon param) {
 		return couponDao.getSerialCpnUseInfo(param);
 	}
+
+	/**
+	 * 시리얼 쿠폰 적용
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @since 2021. 02. 16
+	 */
+	public Coupon serialCpnApplyInfo(Coupon param) {
+		// TODO 로그인 정보 입력
+		param.setCustNo(1000006);
+		param.setRegNo(1000006);
+		param.setUpdNo(1000006);
+		param.setFrontGb(TsfSession.getFrontGb());
+
+		// 시리얼키의 쿠폰이 다운로드 가능한지 확인
+		Coupon cpn = couponDao.getSearchSerialCpnInfo(param);   // >> 여기서 쿠폰 정보 다 빼내야함.
+
+
+		// 다운로드 받을 수 있는 쿠폰이 있으면
+		if(cpn != null && cpn.getCpnId() > 0) {
+			// 다운 받을 수 있는 쿠폰ID를 내가 받은 이력이 있는지 확인
+			cpn.setCustNo(param.getCustNo());
+			Coupon myCpn = couponDao.getSerialCpnUseInfo(cpn);
+
+			// 다운로드 받은 쿠폰이 있는 경우
+			if(myCpn != null && myCpn.getCpnId() > 0) {
+				// 이미 다운 받았고, 사용 한 쿠폰이 있을 경우 종료
+				if(!StringUtils.isEmpty(myCpn.getUsedDt())) {
+					cpn.setResult("해당 쿠폰은 이미 사용하신 쿠폰입니다.");
+				} else {
+					cpn.setResult("지급 받으신 쿠폰 사용 기한이 지났습니다.");
+				}
+				return cpn;
+			} else {
+				/* 다운받지 않은 경우 (tb_cust_coupon insert) */
+				// 랜덤쿠폰 할당 및 쿠폰 지급
+				cpn.setRegNo(param.getRegNo());
+				cpn.setUpdNo(param.getUpdNo());
+				updateGiveRandomCpnInfo(cpn);
+			}
+		} else {
+			// 다운로드 받을 수 있는 쿠폰이 존재하지 않음.
+			cpn.setResult("해당 쿠폰은 존재하지 않습니다.");
+			return cpn;
+		}
+
+		// 장바구니쿠폰 토탈 할인 금액 계산
+		cpn.setDcAmt(getCartCpnApplyTotalAmt(param));
+		cpn.setResult("SUCCESS");
+
+		log.info("CHECK INFO >> {} / {}", cpn.getDcAmt(), cpn.getResult());
+
+		return cpn;
+
+
+
+/*
+		// 시리얼 쿠폰 지급 및 사용 내역 조회
+		Coupon useSerial = getSerialCpnUseInfo(param);
+		if(useSerial == null) {	useSerial = new Coupon();	}
+
+		useSerial.setRdCpnNm(param.getRdCpnNm());
+		useSerial.setCartSqArr(param.getCartSqArr());
+		useSerial.setCustNo(param.getCustNo());
+		useSerial.setRegNo(param.getRegNo());
+		useSerial.setUpdNo(param.getUpdNo());
+
+		Coupon coupon = new Coupon();
+
+		// 시리얼 쿠폰 다운로드하지 않았다면
+		if(useSerial != null && useSerial.getCpnId() > 0) {
+			// 해당 시리얼쿠폰을 사용한적이 있는 경우나, 받은것이 있는경우에 대한 처리
+			if(!StringUtils.isEmpty(useSerial.getUsedDt())) {
+				useSerial.setResult("해당 쿠폰은 이미 사용완료된 쿠폰입니다.");
+				return useSerial;
+			}
+		} else {
+			// 쿠폰 저장 및 할인 가격 적용
+			coupon = couponDao.getSearchSerialCpnInfo(useSerial);
+			if(coupon == null) {
+				useSerial.setResult("해당 쿠폰은 존재하지 않습니다.");
+				return useSerial;
+			} *//*else if (!"Y".equals(coupon.getDownCanGb())) {
+				useSerial.setResult("해당 쿠폰은 사용 할 수 없습니다.");
+				return useSerial;
+			}*//* else {
+				// 랜덤쿠폰 할당 및 쿠폰 지급
+				coupon.setCustNo(useSerial.getCustNo());
+				coupon.setRegNo(useSerial.getRegNo());
+				coupon.setUpdNo(useSerial.getUpdNo());
+				updateGiveRandomCpnInfo(coupon);
+			}
+		}*/
+	}
+
+	// 장바구니쿠폰 토탈 할인 금액 계산
+	public int getCartCpnApplyTotalAmt(Coupon param) {
+		// 쿠폰 할당 금액 세팅
+		Order order = new Order();
+		order.setCustNo(param.getCustNo());
+		order.setCartSqArr(param.getCartSqArr());
+		order.setCpnId(param.getCpnId());
+		order.setFrontGb(TsfSession.getFrontGb());
+
+		// 장바구니에 등록된 상품 중 적용 상품 조회
+		int totDcAmt = 0;
+		int totCurrPrice = 0;
+		int maxDcAmt = 0;
+		int buyLimitAmt = 0;
+
+		Collection<Order> serialGoodsList = coreOrderService.getSerialCpnApplyGoodsList(order);
+
+		// 각 필요 데이터 세팅
+		for(Order info : serialGoodsList) {
+			totCurrPrice = totCurrPrice + info.getCurrPrice();				// 적용 상품 구매 금액 합계((즉시할인쿠폰 + 옵션추가) * 수량)
+			maxDcAmt = info.getMaxDcAmt();									// 최대할인율과 최소주문금액은 한 쿠폰에 값이 동일
+			buyLimitAmt = info.getBuyLimitAmt();							// 최대할인율과 최소주문금액은 한 쿠폰에 값이 동일
+			if(TscConstants.DcWay.RATE.value().equals(info.getDcWay())) {	// 할인방식이 할인율이면 각 상품별 할인금액을 따로 계산해야함
+				int dcAmt = (int) (info.getCurrPrice() * (info.getDcVal() / 100.0));		// 해당상품 할인금
+				totDcAmt = totDcAmt + dcAmt;								// 적용 상품 총 할인금액
+			} else {														// 할인 방식이 금액일 경우
+				totDcAmt = info.getDcVal();
+			}
+		}
+
+		// 최대 할인 금액 요건 확인 (0은 제한 없음. 최대 할인 금액보다 할인금액이 크다면 최대할인금액만큼만 할인)
+		if(maxDcAmt > 0 && maxDcAmt < totDcAmt) {
+			totDcAmt = maxDcAmt;
+		}
+
+		// 주문 최소 금액 요건 확인 (0은 제한 없음. 최소 주문 금액보다 총 상품 금액이 적으면 0원으로 세팅)
+		if(buyLimitAmt > 0 && buyLimitAmt > totCurrPrice) {
+			totDcAmt = 0;
+		}
+
+		return totDcAmt;
+	}
+
+	@Transactional("shopTxnManager")
+	public void updateGiveRandomCpnInfo(Coupon param) {
+		// 랜덤쿠폰 할당 및 쿠폰 지급
+		CustCoupon custCoupon = new CustCoupon();
+		custCoupon.setCustNo(param.getCustNo());
+		custCoupon.setRegNo(param.getRegNo());
+		custCoupon.setUpdNo(param.getUpdNo());
+		custCoupon.setCpnId(param.getCpnId());
+		custCoupon.setRdCpnId(param.getRdCpnId());
+		custCoupon.setEndAlimSendYn("N");		// 알림 발송 여부(발송되면 Y)
+		custCoupon.setAvailStdt(param.getAvailStdt());
+		custCoupon.setAvailEddt(param.getAvailEddt());
+		custCoupon.setPubReason("G068_60");		// 쿠폰 발행사유 (랜덤쿠폰등록)
+		custCoupon.setPubReasonDtl(param.getRdCpnNm() + " 쿠폰 등록");
+
+		// 트랜잭션을 묶기 위해 dao 직접 호출
+		coreCouponDao.updateGiveRandomCoupon(custCoupon);		// 랜덤쿠폰 CUST_NO UPDATE
+		coreCouponDao.saveCouponCustPub(custCoupon);			// 랜덤쿠폰 고객 지급
+	}
 }

+ 188 - 0
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -2,12 +2,16 @@ package com.style24.front.biz.service;
 
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import com.gagaframework.web.parameter.GagaMap;
 import com.style24.front.biz.dao.TsfOrderDao;
 import com.style24.persistence.domain.Order;
 
@@ -48,4 +52,188 @@ public class TsfOrderService {
 		return period; 
 	}
 
+	/**
+	 * 마이페이지 주문 정보 조회
+	 *
+	 * @param Order
+	 * @author card007
+	 * @since 2021. 02. 04
+	 */
+	public Collection<GagaMap> getOrderListForMypage(Order order) {
+		Collection<GagaMap> mapList = new ArrayList<>();
+		List<Order> orderList = new ArrayList<>();
+		int ordNo = 0;
+		String ordDt = "";
+		String delvFeeCd = "";
+		String ordDtlStat = "";
+		String shotDelvYn = "";
+		String selfGoodsYn = "";
+		String shipCompNm = "";
+		String invoiceNo = "";
+		String giftPackYn = "";
+		int reviewSq = 0;
+		int index = 0;
+		int ordDtlStatCnt = 0;
+		int rowspan = 0;
+
+		for (Order tmpOrder : orderDao.getOrderListForMypage(order)) {
+			// 주문번호, 배송구분(총알배송, 일반배송, 업체직배송), 배송정책 변경
+			if (ordNo != tmpOrder.getOrdNo() || !selfGoodsYn.equals(tmpOrder.getSelfGoodsYn()) || ("N".equals(tmpOrder.getSelfGoodsYn()) && !delvFeeCd.equals(tmpOrder.getDelvFeeCd())) || !shotDelvYn.equals(tmpOrder.getShotDelvYn())) {
+				// 데이터 설정
+				if (index > 0) {
+					GagaMap map = new GagaMap();
+					map.set("ordNo", ordNo);					// 주문번호
+					map.set("ordDt", ordDt);					// 주문일시
+					map.set("shotDelvYn", shotDelvYn);			// 총알배송여부
+					map.set("selfGoodsYn", selfGoodsYn);		// 자사여부
+					map.set("ordDtlStat", ordDtlStat);			// 주문상태코드
+					map.set("shipCompNm", shipCompNm);			// 배송업체명
+					map.set("invoiceNo", invoiceNo);			// 송장번호
+					map.set("giftPackYn", giftPackYn);			// 선물하기여부
+					map.set("reviewSq", reviewSq);				// 리뷰일련번호
+					map.set("orderList", setOrderListParameter(orderList, rowspan, ordDtlStatCnt, "Y"));			// 주문내역
+					mapList.add(map);
+				}
+
+				// 데이터 설정 후 초기화 진행
+				ordNo = tmpOrder.getOrdNo();
+				ordDt = tmpOrder.getOrdDt();
+				delvFeeCd = tmpOrder.getDelvFeeCd();
+				ordDtlStat = tmpOrder.getOrdDtlStat();
+				shotDelvYn = tmpOrder.getShotDelvYn();
+				selfGoodsYn = tmpOrder.getSelfGoodsYn();
+				shipCompNm = tmpOrder.getShipCompNm();
+				invoiceNo = tmpOrder.getInvoiceNo();
+				reviewSq = tmpOrder.getReviewSq();
+				giftPackYn = tmpOrder.getGiftPackYn();
+				orderList = new ArrayList<>();
+				ordDtlStatCnt = 0;
+				rowspan = 0;
+			} else if (index > 0 && !ordDtlStat.equals(tmpOrder.getOrdDtlStat())) {
+				// 주문내역 데이터 추가
+				orderList = setOrderListParameter(orderList, rowspan, ordDtlStatCnt, "N");
+
+				// 상태 별 배너 설정 후 초기화 진행
+				ordDtlStat = tmpOrder.getOrdDtlStat();
+				rowspan = 0;
+			}
+
+			// 주문내역 설정
+			orderList.add(tmpOrder);
+
+			// 인덱스 처리
+			index++;
+			ordDtlStatCnt++;
+			rowspan++;
+		}
+
+		// 마지막 데이터 설정
+		if (ordNo > 0) {
+			GagaMap map = new GagaMap();
+			map.set("ordNo", ordNo);
+			map.set("ordDt", ordDt);
+			map.set("shotDelvYn", shotDelvYn);
+			map.set("selfGoodsYn", selfGoodsYn);
+			map.set("ordDtlStat", ordDtlStat);
+			map.set("shipCompNm", shipCompNm);
+			map.set("invoiceNo", invoiceNo);
+			map.set("giftPackYn", giftPackYn);
+			map.set("reviewSq", reviewSq);
+			map.set("orderList", setOrderListParameter(orderList, rowspan, ordDtlStatCnt, "Y"));
+			mapList.add(map);
+		}
+
+		return mapList;
+	}
+
+	/**
+	 * 마이페이지 주문내역 데이터 추가
+	 *
+	 * @param List<Order>
+	 * @return List<Order>
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	private List<Order> setOrderListParameter(List<Order> orderList, int rowspan, int ordDtlStatCnt, String setLastBanner) {
+		// rowspan 설정
+		for (int i = 0;i <= rowspan;i++) {
+			if (i == rowspan) {
+				orderList.get(ordDtlStatCnt - rowspan).setRowspan(rowspan);
+			} else if (rowspan == 1){
+				orderList.get(ordDtlStatCnt - rowspan).setRowspan(1);
+			} else {
+				orderList.get(ordDtlStatCnt - rowspan).setRowspan(0);
+			}
+		}
+
+		// 주문상세상태값 별 배너 설정
+		if ("Y".equals(setLastBanner)) {
+			orderList.get(orderList.size() - 1).setOrdDtlStatBanner("Y");
+		} else {
+			orderList.get(ordDtlStatCnt - 1).setOrdDtlStatBanner("Y");
+		}
+
+		return orderList;
+	}
+
+	/**
+	 * 마이페이지 주문상태 별 주문수량 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	public int getOrderStatCount(Order order) { return orderDao.getOrderStatCount(order); }
+
+	/**
+	 * 마이페이지 주문변경상태 별 주문수량 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	public int getOrderChangeStatCount(Order order) { return orderDao.getOrderChangeStatCount(order); }
+
+	/**
+	 * 마이페이지 주문상세 금액정보 조회
+	 *
+	 * @param Order
+	 * @return Order
+	 * @author card007
+	 * @since 2021. 02. 16
+	 */
+	public Order getOrderAmtForMypage(Order order) { return orderDao.getOrderAmtForMypage(order); }
+
+	/**
+	 * 마이페이지 주문상세 결제정보 조회
+	 *
+	 * @param Order
+	 * @return Order
+	 * @author card007
+	 * @since 2021. 02. 16
+	 */
+	public Order getPaymentInfoForMypage(Order order) { return orderDao.getPaymentInfoForMypage(order); }
+
+	/**
+	 * 마이페이지 주문상세 배송지 정보 조회
+	 *
+	 * @param Order
+	 * @return Order
+	 * @author card007
+	 * @since 2021. 02. 16
+	 */
+	public Order getOrderDeliveryAddrInfo(Order order) { return orderDao.getOrderDeliveryAddrInfo(order); }
+
+	/**
+	 * 마이페이지 주문상세 주문내역삭제 처리
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 17
+	 */
+	public int updateOrderDisplayYn(Order order) { return orderDao.updateOrderDisplayYn(order); }
+
 }

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

@@ -128,34 +128,27 @@ public class TsfCartController extends TsfBaseController {
 		return super.getDeviceViewName("cart/cartListAjaxForm");
 	}
 
+	/**
+	 * 프로모션 할인 쿠폰 조회
+	 * @param param
+	 * rdCpnNm : 시리얼쿠폰명
+	 * cartSqArr[] : 장바구니 번호 배열
+	 * @return GagaMap
+	 * @author xodud1202
+	 * @since 2021. 02. 17
+	 */
 	@ResponseBody
 	@PostMapping("/list/serialCpnApply")
-	public GagaMap serialCpnApply(@RequestBody Cart param) {
-		// 시리얼 쿠폰 사용 정보 조회
-		Coupon cpn = new Coupon();
-		cpn.setRdCpnNm(param.getRdCpnNm());
-		cpn.setCartSqArr(param.getCartSqArr());
-		// TODO 로그인 정보 입력
-		cpn.setCustNo(1000006);
-
-		Coupon useSerial = couponService.getSerialCpnUseInfo(cpn);
-
-		// 시리얼 쿠폰 다운로드하지 않았다면
-		if(useSerial != null) {
-			// 해당 시리얼쿠폰을 사용한적이 있는 경우나, 받은것이 있는경우에 대한 처리(분기)
-
-		} else {
-			// 해당 쿠폰 저장
-
-		}
+	public GagaMap serialCpnApply(@RequestBody Coupon param) {
+		GagaMap result = new GagaMap();
 
-		log.info("CHECK IN >> {}", param.getSerialCpnNm());
+		log.info("CHECK IN >> {}", param.getRdCpnNm());
 		log.info("CHECK IN >> {}", param.getCartSqArr());
 
+		// 시리얼 쿠폰 정보 조회 및 쿠폰 지급 미대상인 경우 쿠폰 지급
+		Coupon useSerial = couponService.serialCpnApplyInfo(param);
 
-
-		GagaMap result = new GagaMap();
-		result.put("testResult", "SUCCESS");
+		result.put("serialCpnInfo", useSerial);
 
 		return result;
 	}

+ 89 - 18
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -6,9 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
@@ -87,14 +92,12 @@ public class TsfMypageController extends TsfBaseController {
 		customer.setSiteCd(TscConstants.Site.STYLE24.value());
 		customer.setCustNo(custNo);
 		customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
-		customer = coreCustomerService.getCustomerInfo(customer);
-
-		mav.addObject("customerInfo", customer);
+		mav.addObject("customerInfo", coreCustomerService.getCustomerInfo(customer));
 
 		// 주문정보 조회
 		Order order = new Order();
 		order.setCustNo(custNo);
-		mav.addObject("orderInfo", coreOrderService.getOrderListForMypage(order));
+		mav.addObject("orderInfo", orderService.getOrderListForMypage(order));
 
 		// 쿠폰정보 조회
 		mav.addObject("couponCnt", coreOrderService.getCouponInfo(order));
@@ -107,40 +110,42 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 상품권 정보 조회
 		mav.addObject("rmGfcdAmt", coreOrderService.getGiftcardInfo(order));
-		
-		// 바꿈
 
 		// 주문접수
 		order.setOrdDtlStat(TscConstants.OrderDetailStat.ORDER_RECEIPT.value());
-		mav.addObject("orderReceiptCount", coreOrderService.getOrderStatCount(order));
+		mav.addObject("orderReceiptCount", orderService.getOrderStatCount(order));
 
 		// 결제완료
 		order.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_COMPLETE.value());
-		mav.addObject("paymentCompleteCount", coreOrderService.getOrderStatCount(order));
+		mav.addObject("paymentCompleteCount", orderService.getOrderStatCount(order));
 
 		// 상품준비중
 		order.setOrdDtlStat(TscConstants.OrderDetailStat.GOODS_PREPARE.value());
-		mav.addObject("goodsPrepareCount", coreOrderService.getOrderStatCount(order));
+		mav.addObject("goodsPrepareCount", orderService.getOrderStatCount(order));
+
+		// 배송중
+		order.setOrdDtlStat(TscConstants.OrderDetailStat.DELIVERY_PREPARE.value());
+		mav.addObject("shipPrepareCount", orderService.getOrderStatCount(order));
 
 		// 배송중
 		order.setOrdDtlStat(TscConstants.OrderDetailStat.SHIPPING.value());
-		mav.addObject("shippingCount", coreOrderService.getOrderStatCount(order));
+		mav.addObject("shippingCount", orderService.getOrderStatCount(order));
 
 		// 배송완료
 		order.setOrdDtlStat(TscConstants.OrderDetailStat.DELIVERY_COMPLETE.value());
-		mav.addObject("shipCompleteCount", coreOrderService.getOrderStatCount(order));
+		mav.addObject("shipCompleteCount", orderService.getOrderStatCount(order));
 
 		// 취소내역
 		order.setChgStat(TscConstants.OrderChangeStat.CANCEL.value());
-		mav.addObject("cancelCount", coreOrderService.getOrderChangeStatCount(order));
+		mav.addObject("cancelCount", orderService.getOrderChangeStatCount(order));
 
 		// 반품내역
 		order.setChgStat(TscConstants.OrderChangeStat.RETURN.value());
-		mav.addObject("returnCount", coreOrderService.getOrderChangeStatCount(order));
+		mav.addObject("returnCount", orderService.getOrderChangeStatCount(order));
 
 		// 교환내역
 		order.setChgStat(TscConstants.OrderChangeStat.EXCHANGE.value());
-		mav.addObject("exchangeCount", coreOrderService.getOrderChangeStatCount(order));
+		mav.addObject("exchangeCount", orderService.getOrderChangeStatCount(order));
 		
 		// 검색기간 설정
 		mav.addObject("searchPeriod", orderService.getSearchPeriod());
@@ -182,23 +187,89 @@ public class TsfMypageController extends TsfBaseController {
 		order.setOrdNo(ordNo);
 		
 		// 주문목록 조회
-		mav.addObject("orderList", coreOrderService.getOrderListForMypage(order));
+		Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
+
+		if (orderList.size() == 0) {
+			throw new IllegalStateException(message.getMessage("ORDER_0001"));
+		}
+
+		mav.addObject("orderList", orderList);
 
 		// 주문정보 조회
 		mav.addObject("orderInfo", coreOrderService.getOrderInfoList(order).iterator().next());
 
 		// 주문 금액정보 조회
-		mav.addObject("orderAmtInfo", coreOrderService.getOrderAmtForMypage(order));
+		mav.addObject("orderAmtInfo", orderService.getOrderAmtForMypage(order));
 
 		// 주문 결제정보 조회
-		mav.addObject("paymentInfo", coreOrderService.getPaymentInfoForMypage(order));
+		mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
 		
 		// 주문 배송지 정보 조회
-		mav.addObject("deliveryAddrInfo", coreOrderService.getOrderDeliveryAddrInfo(order));
+		mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
 
 		mav.setViewName(super.getDeviceViewName("mypage/MypageOrderDetailForm"));
 
 		return mav;
 	}
 
+	/**
+	 * 마이페이지 주문상세 주문내역 삭제
+	 *
+	 * @return
+	 * @author card007
+	 * @since 2021. 02. 15
+	 */
+	@PostMapping("/order/delete")
+	@ResponseBody
+	public GagaMap deleteOrder(@RequestBody Order order) {
+		GagaMap result = new GagaMap();
+
+		// int custNo = TsfSession.getInfo().getCustNo();
+		int custNo = 1000007;
+		
+		order.setUpdNo(custNo);
+		
+		int chk = orderService.updateOrderDisplayYn(order);
+
+		if (chk > 0) {
+			result.set("message", message.getMessage("SUCC_0003"));
+			result.set("status", GagaResponseStatus.SUCCESS.getCode());
+		} else {
+			result.set("message", message.getMessage("FAIL_0003"));
+			result.set("status", GagaResponseStatus.FAIL.getCode());
+		}
+
+		return result;
+	}
+
+	/**
+	 * 마이페이지 구매확정 처리
+	 *
+	 * @return
+	 * @author card007
+	 * @since 2021. 02. 17
+	 */
+	@PostMapping("/order/decision")
+	@ResponseBody
+	public GagaMap decideOrder(@RequestBody Order order) {
+		GagaMap result = new GagaMap();
+
+		if (order.getOrdDtlNoArr().length == 0) {
+			result.set("message", message.getMessage("FAIL_1003"));
+			result.set("status", GagaResponseStatus.FAIL.getCode());
+			return result;
+		}
+
+		// int custNo = TsfSession.getInfo().getCustNo();
+		int custNo = 1000007;
+
+		order.setCustNo(custNo);
+		order.setRegNo(custNo);
+		order.setUpdNo(custNo);
+		
+		result = coreOrderService.decideOrder(order);
+		
+		return result;
+	}
+
 }

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

@@ -76,11 +76,8 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// TODO 임시 장바구니
 		// 2. 장바구니시퀀스 배열 등록 (장바구니 상품 정보 조회)
-		int[] cartSqArr = new int[2];
-		cartSqArr[0] = 8;
-		cartSqArr[1] = 11;
-		
-		order.setCartSqArr(cartSqArr);
+		int[] arr = {14,15,16,17,18,19,20,21,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,8,77};
+		order.setCartSqArr(arr);
 		order.setShotDelvYn("Y");
 		
 		mav.addObject("order" , order);	// 주문정보
@@ -110,6 +107,7 @@ public class TsfOrderController extends TsfBaseController {
 		String jsessionId 	= "aaec62cc-5f91-47bb-ba65-ebc9a61385cf";
 		Boolean noMember 	= true;
 		
+		
 		// TODO 로그인체크 로직 추가
 		// 1.0 회원, 비회원 여부 판단
 		if (TsfSession.getInfo() == null) {
@@ -123,6 +121,9 @@ public class TsfOrderController extends TsfBaseController {
 			}
 		}
 		
+		// 임시
+		order.setCustNo(1000006); // 고객번호등록
+		
 		// TODO
 		// 1.1 카트시퀀스가 없을때 처리 장바구니로 이동 
 		if (order.getCartSqArr() == null) {
@@ -144,6 +145,7 @@ public class TsfOrderController extends TsfBaseController {
 			deliveryAddrInfo.setRecipZipcode(order.getRecipZipcode());
 			deliveryAddrInfo.setRecipBaseAddr(order.getRecipBaseAddr());
 			deliveryAddrInfo.setRecipDtlAddr(order.getRecipDtlAddr());
+			deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
 		} else {
 			// 1.1 주문고객 정보조회
 			custemerInfo = coreOrderService.getCustemerInfo(order);
@@ -240,5 +242,97 @@ public class TsfOrderController extends TsfBaseController {
 		
 		return rtn;
 	}
+	
+	/**
+	 * 배송지정보변경팝업
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/delvAddrChangePop")
+	public ModelAndView delvAddrChangePop(Order order) {
+		
+		ModelAndView mav = new ModelAndView();
+		mav.setViewName(super.getDeviceViewName("order/OrderDelvAddrChangePop"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 배송지정보수정팝업
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/delvAddrModifyPop")
+	public ModelAndView delvAddrModifyPop(Order order) {
+		
+		ModelAndView mav = new ModelAndView();
+		mav.setViewName(super.getDeviceViewName("order/OrderDelvAddrModifyPop"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 배송지정보추가팝업
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/delvAddrAddPop")
+	public ModelAndView delvAddrAddPop(Order order) {
+		
+		ModelAndView mav = new ModelAndView();
+		mav.setViewName(super.getDeviceViewName("order/OrderDelvAddrAddPop"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 배송지메모변경팝업
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/delvMemoChangePop")
+	public ModelAndView delvMemoChangePop(Order order) {
+		
+		ModelAndView mav = new ModelAndView();
+		mav.setViewName(super.getDeviceViewName("order/OrderDelvMemoChangePop"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 사은품안내팝업
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/freegiftInfoPop")
+	public ModelAndView freegiftInfoPop(Order order) {
+		
+		ModelAndView mav = new ModelAndView();
+		mav.setViewName(super.getDeviceViewName("order/OrderFreegiftInfoPop"));
+		
+		return mav;
+	}
+	
+	
 
 }

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

@@ -58,6 +58,4 @@ public class Cart extends TscBaseDomain {
 	private String cpnNm;
 	private String rdCpnNm;
 	private String usedDt;
-	private String serialCpnNm;
-
 }

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

@@ -19,7 +19,17 @@ public class Coupon extends TscBaseDomain {
 	private int[] cartSqArr;		// 장바구니 일련번호 배열
 	private int cpnId;				// 쿠폰번호
 	private int custNo;				// 회원번호
+	private int availDays;			// 쿠폰 다운로드 후 유효기간일
+	private int rdCpnId;			// 랜덤쿠폰번호
+	private int dcAmt;				// 할인금액
+	private String useYn;			// 쿠폰 사용 여부
 	private String cpnNm;			// 쿠폰명
 	private String rdCpnNm;			// 시리얼쿠폰 키
 	private String usedDt;			// 쿠폰 사용완료 일자
+	private String result;			// 결과
+	private String pdGb;			// 기간/일수 구분 (P : 기간, D : 일수)
+	private String availStdt;		// 쿠폰 유효일
+	private String availEddt;		// 쿠폰 유효일
+	private String endAlimYn;		// 쿠폰 종료 알림 여부
+	private String frontGb;			// 화면 구분
 }

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

@@ -17,16 +17,39 @@
 	<!-- 시리얼 쿠폰 지급 정보 조회 -->
 	<select id="getSerialCpnUseInfo" parameterType="Coupon" resultType="Coupon">
 		/* TsfCoupon.getSerialCpnUseInfo */
-		SELECT CP.CPN_NM
+		SELECT CC.CPN_ID
+			 , DATE_FORMAT(CC.USED_DT, '%Y-%m-%d') AS USED_DT
+		FROM   TB_CUST_COUPON CC
+		WHERE  1=1
+		AND    CC.CPN_ID = #{cpnId}
+		AND    CC.CUST_NO = #{custNo}
+	</select>
+
+	<!-- 입력된 시리얼 쿠폰 정보 조회 -->
+	<select id="getSearchSerialCpnInfo" parameterType="Coupon" resultType="Coupon">
+		/* TsfCoupon.getSearchSerialCpnInfo : 입력된 시리얼 쿠폰 정보 조회 */
+		SELECT CP.CPN_ID
+			 , CP.CPN_NM
+		     , CP.DC_WAY
+			 , CASE WHEN #{frontGb} = 'P' THEN CP.DC_PVAL
+					WHEN #{frontGb} = 'M' THEN CP.DC_MVAL
+					ELSE CP.DC_AVAL END AS DC_VAL
 			 , RC.RD_CPN_NM
-			 , DATE_FORMAT(CC.USED_DT, '%Y-%m-%d %H:%i:%S') AS USED_DT
+		     , RC.RD_CPN_ID
+			 , CASE WHEN CP.PD_GB = 'D' THEN DATE_FORMAT(NOW(), '%Y%m%d%H%i%S')
+			     	ELSE DATE_FORMAT(CP.AVAIL_STDT, '%Y%m%d%H%i%S') END AS AVAIL_STDT
+			 , CASE WHEN CP.PD_GB = 'D' THEN DATE_FORMAT(DATE_ADD(NOW(), INTERVAL CP.AVAIL_DAYS DAY), '%Y%m%d%H%i%S')
+			     	ELSE  DATE_FORMAT(CP.AVAIL_EDDT, '%Y%m%d%H%i%S') END AS AVAIL_EDDT
+			 , CASE WHEN NOW() BETWEEN CP.DOWN_STDT AND CP.DOWN_EDDT THEN 'Y'
+					ELSE 'N' END AS downCanGb
 		FROM   TB_COUPON CP
 		INNER  JOIN TB_RANDOM_COUPON RC
 		ON     CP.CPN_ID = RC.CPN_ID
-		INNER  JOIN TB_CUST_COUPON CC
-		ON     CP.CPN_ID = CC.CPN_ID
 		WHERE  1=1
-		AND    RC.RD_CPN_NM = ${rdCpnNm}
-		AND    CC.CUST_NO = ${custNo}
+		AND    RC.RD_CPN_NM = #{rdCpnNm}
+		AND    NOW() BETWEEN CP.DOWN_STDT AND CP.DOWN_EDDT
+		ORDER  BY RC.CPN_ID
+		<!-- 랜덤쿠폰은 RD_CPN_NM이 1개이나, 시리얼 쿠폰은 다수개이므로 하나의 정보만 조회 -->
+		LIMIT  1
 	</select>
 </mapper>

+ 290 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml

@@ -15,4 +15,294 @@
 	</sql>
 	<!--// Paging -->
 
+	<!-- 마이페이지 주문 목록 조회 -->
+	<select id="getOrderListForMypage" parameterType="Order" resultType="Order">
+		/* TscOrder.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
+		     , ODI.OPT_CD
+		     , ODI.OPT_CD1
+		     , ODI.OPT_CD2
+		     , GI.SYS_IMG_NM
+		     , OD.ORD_DTL_STAT
+		     , OD.ORD_QTY
+		     , OD.ORD_AMT
+		     , OD.SAVE_PNT_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
+		     , 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
+		     , 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
+		  FROM TB_ORDER O
+		 INNER JOIN TB_ORDER_DETAIL OD
+		    ON O.ORD_NO = OD.ORD_NO
+		   AND OD.ORD_DTL_STAT NOT IN ('G013_11', 'G013_25', 'G013_97')
+		 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+		    ON OD.ORD_NO = ODI.ORD_NO
+		   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		 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'
+		<where>
+			<choose>
+				<when test='custNo != null and custNo != ""'>
+		   AND O.CUST_NO = #{custNo}
+				</when>
+				<otherwise>
+		   AND O.ORD_NO = #{ordNo}
+		   AND O.ORD_NM = #{orderNm}
+				</otherwise>
+			</choose>
+			<if test="ordNo != null and ordNo != ''">
+		   AND O.ORD_NO = #{ordNo}
+			</if>
+			<choose>
+				<when test="stDate != null and stDate != '' and edDate != null and edDate != ''">
+		   AND O.ORD_DT BETWEEN DATE_FORMAT(CONCAT(#{stDate}, ' 000000'), '%Y-%m-%d %H%i%S') AND DATE_FORMAT(CONCAT(#{edDate}, ' 235959'), '%Y-%m-%d %H%i%S')
+				</when>
+				<otherwise>
+		   AND O.ORD_DT >= DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 3 MONTH) + INTERVAL 1 DAY, '%Y-%m-%d')
+				</otherwise>
+			</choose>
+			<if test="ordDtlNoArr != null">
+		   AND OD.ORD_DTL_NO IN
+				<foreach collection="ordDtlNoArr" item="item" index="index"  open="(" close=")" separator=",">
+					#{item}
+				</foreach>
+			</if>
+		   AND O.DISP_YN = 'Y'
+		</where>
+		 ORDER BY OD.SUPPLY_COMP_CD
+				, OD.DELV_FEE_CD
+				, OD.ORD_NO DESC
+				, G.SELF_GOODS_YN DESC
+				, OD.SHOT_DELV_YN DESC
+				, OD.ORD_DTL_STAT
+	</select>
+
+	<!-- 마이페이지 주문상태 별 주문수량 조회 -->
+	<select id="getOrderStatCount" parameterType="Order" resultType="int">
+		/* TscOrder.getOrderStatCount */
+		SELECT COUNT(*) CNT
+		  FROM TB_ORDER O
+		 INNER JOIN TB_ORDER_DETAIL OD
+		    ON O.ORD_NO = OD.ORD_NO
+		<where>
+			<choose>
+				<when test='custNo != null and custNo != ""'>
+		   AND O.CUST_NO  =  #{custNo}
+				</when>
+				<otherwise>
+		   AND O.ORD_NO = #{ordNo}
+		   AND O.ORD_NM = #{orderNm}
+				</otherwise>
+			</choose>
+		</where>
+		<if test="ordDtlStat == 'G013_60'">
+		   AND O.ORD_DT >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 WEEK, '%Y-%m-%d')
+		</if>
+		   AND OD.ORD_DTL_STAT = #{ordDtlStat}
+		   AND O.DISP_YN = 'Y'
+	</select>
+
+	<!-- 마이페이지 주문변경상태 별 주문수량 조회 -->
+	<select id="getOrderChangeStatCount" parameterType="Order" resultType="int">
+		/* TscOrder.getOrderChangeStatCount */
+		SELECT COUNT(*) CNT
+		  FROM TB_ORDER_CHANGE_DETAIL OCD
+		 INNER JOIN TB_ORDER_DETAIL OD
+		    ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+		 INNER JOIN TB_ORDER O
+		    ON O.ORD_NO = OD.ORD_NO
+		<where>
+			<choose>
+				<when test='custNo != null and custNo != ""'>
+		   AND O.CUST_NO  =  #{custNo}
+				</when>
+				<otherwise>
+		   AND O.ORD_NO = #{ordNo}
+		   AND O.ORD_NM = #{orderNm}
+				</otherwise>
+			</choose>
+		</where>
+		<choose>
+			<when test="chgStat == 'G685_30'">
+		   AND OCD.CHG_STAT IN (#{chgStat}, 'G685_33')
+			</when>
+			<otherwise>
+		   AND OCD.CHG_STAT = #{chgStat}
+			</otherwise>
+		</choose>
+		   AND O.DISP_YN = 'Y'
+	</select>
+
+	<!-- 마이페이지 주문목록 페이징 처리 주문번호 조회 -->
+	<select id="getPagingOrdNoList" parameterType="Order" resultType="Order">
+		/* TscOrder.getPagingOrdNoList */
+		<include refid="selectForPagingHeader"/>
+		SELECT ORD_NO
+		     , RANK() OVER(ORDER BY ORD_DT DESC) AS NUMB
+		  FROM TB_ORDER
+		 WHERE CUST_NO = #{custNo}
+		   AND DISP_YN = 'Y'
+		<include refid="selectForPagingFooter"/>
+	</select>
+
+	<!-- 마이페이지 주문상세 금액정보 조회 -->
+	<select id="getOrderAmtForMypage" parameterType="Order" resultType="Order">
+		/* TscOrder.getOrderAmtForMypage */
+		SELECT SUM(OD.ORD_AMT)          AS ORD_AMT
+			 , SUM(OD.CPN1_DC_AMT)      AS CPN1_DC_AMT
+			 , SUM(OD.TMTB1_DC_AMT)     AS TMTB1_DC_AMT
+			 , SUM(OD.TMTB2_DC_AMT)     AS TMTB2_DC_AMT
+			 , SUM(OD.CART_CPN_DC_AMT)  AS CART_CPN_DC_AMT
+			 , SUM(OD.GOODS_CPN_DC_AMT) AS GOODS_CPN_DC_AMT
+			 , SUM(OD.PRE_PNT_DC_AMT)   AS PRE_PNT_DC_AMT
+			 , SUM(OD.PNT_DC_AMT)       AS PNT_DC_AMT
+			 , SUM(OD.GFCD_USE_AMT)     AS GFCD_USE_AMT
+			 , SUM(OD.CPN1_DC_AMT + OD.TMTB1_DC_AMT + OD.TMTB2_DC_AMT + OD.CART_CPN_DC_AMT + OD.GOODS_CPN_DC_AMT + OD.PRE_PNT_DC_AMT + OD.PNT_DC_AMT + OD.GFCD_USE_AMT) AS TOTAL_DC_AMT
+			 , SUM(OD.REAL_ORD_AMT)     AS REAL_ORD_AMT
+			 , SUM(OD.SAVE_PNT_AMT)     AS SAVE_PNT_AMT
+			 , SUM(DF.DELV_FEE)         AS DELV_FEE
+		  FROM TB_ORDER_DETAIL OD
+		  LEFT OUTER JOIN (
+			  SELECT ORD_NO
+				   , SUM(DELV_FEE) AS DELV_FEE
+				FROM TB_DELIVERY_FEE
+			   WHERE ORD_NO = #{ordNo}
+				 AND DELV_FEE_GB = 'G018_10'
+			   GROUP BY ORD_NO
+		  ) DF
+		  ON OD.ORD_NO = DF.ORD_NO
+		 WHERE OD.ORD_NO = #{ordNo}
+	</select>
+
+	<!-- 마이페이지 주문상세 결제정보 조회 -->
+	<select id="getPaymentInfoForMypage" parameterType="Order" resultType="Order">
+		/* TscOrder.getPaymentInfoForMypage */
+		SELECT PAY_SQ
+		     , ORD_NO
+		     , PAY_DT
+		     , PAY_MEANS
+		     , PAY_AMT
+		     , PG_CPN_AMT
+		     , NPAY_PNT_AMT
+		     , PAY_GB
+		     , PAY_STAT
+		     , PG_GB
+		     , PG_TID
+		     , PG_TRADE_NO
+		     , PG_SHOP_ID
+		     , CARD_TYPE
+		     , CARD_KIND
+		     , CARD_BANK
+		     , CARD_NM
+		     , CARD_MIPS
+		     , CARD_PCABLE_YN
+		     , VA_NO
+		     , VA_NM
+		     , VA_BANK
+		     , VA_DEADLINE
+		     , DATE_FORMAT(VA_DEADLINE, '%Y.%m.%d') AS VA_DEADLINE_YMD
+		     , DATE_FORMAT(VA_DEADLINE, '%H:%i:%S') AS VA_DEADLINE_HMS
+		     , TELECOM
+		     , ESCROW_YN
+		     , ORD_CHG_SQ
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		  FROM TB_PAYMENT
+		<where>
+			<if test="ordNo != null and ordNo != ''">
+		   AND ORD_NO = #{ordNo}
+			</if>
+			<if test="paySq != null and paySq != ''">
+		   AND PAY_SQ = #{paySq}
+			</if>
+			<if test="ordChgSq != null and ordChgSq != ''">
+		   AND ORD_CHG_SQ = #{ordChgSq}
+			</if>
+			<if test="pgTid != null and pgTid != ''">
+		   AND PG_TID = #{pgTid}
+			</if>
+			<if test="payGb != null and payGb != ''">
+		   AND PAY_GB = #{payGb}
+			</if>
+			<if test="payStat != null and payStat != ''">
+		   AND PAY_STAT = #{payStat}
+			</if>
+			<if test="pgGb != null and pgGb != ''">
+		   AND PG_GB = #{pgGb}
+			</if>
+		</where>
+	</select>
+
+	<!-- 마이페이지 주문상세 배송지 정보 조회 -->
+	<select id="getOrderDeliveryAddrInfo" parameterType="Order" resultType="Order">
+		/* TscOrder.getOrderDeliveryAddrInfo */
+		SELECT DA.DELV_ADDR_SQ
+			 , DA.RECIP_NM
+			 , DA.RECIP_PHNNO
+			 , DA.RECIP_TELNO
+			 , DA.RECIP_ZIPCODE
+			 , DA.RECIP_BASE_ADDR
+			 , DA.RECIP_DTL_ADDR
+			 , DA.DELV_MEMO
+			 , DA.REG_NO
+			 , DA.REG_DT
+			 , DA.UPD_NO
+			 , DA.UPD_DT
+		  FROM TB_DELIVERY_ADDR DA
+		  INNER JOIN TB_ORDER_DETAIL OD
+		  ON OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
+			  AND OD.ORD_NO = #{ordNo}
+		 LIMIT 1
+	</select>
+
+	<!-- 마이페이지 주문상세 주문내역삭제 처리 -->
+	<update id="updateOrderDisplayYn" parameterType="Order">
+		/* TsfOrder.updateOrderDisplayYn */
+		UPDATE TB_ORDER
+		   SET DISP_YN = 'N'
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
+		 WHERE ORD_NO = #{ordNo}
+	</update>
 </mapper>

+ 1 - 0
src/main/resources/i18n/messages/message_ko_KR.properties

@@ -22,6 +22,7 @@ FAIL_0007=\uC624\uB958\uB85C \uC778\uD574 \uC5C5\uB85C\uB4DC \uB418\uC9C0 \uC54A
 FAIL_0009=\uC624\uB958\uB85C \uC778\uD574 \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 FAIL_1001=\uC800\uC7A5\uD560 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
 FAIL_1002=\uC804\uC1A1\uD560 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
+FAIL_1003=\uCC98\uB9AC\uD560 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
 
 LOGN_0001=\uC785\uB825\uD558\uC2E0 \uC815\uBCF4\uB85C \uAC00\uC785\uB41C \uB0B4\uC5ED\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
 LOGN_0002=\uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.

+ 12 - 3
src/main/webapp/WEB-INF/views/web/cart/cartListAjaxFormWeb.html

@@ -1,6 +1,8 @@
 <html lang="ko"
       xmlns:th="http://www.thymeleaf.org">
 <form id="cartListForm" method="post" action="/order/noMember">
+    <input type="hidden" name="cartCpnDcAmt" id="cartCpnDcAmt" th:value="${param.cartCpnDcAmt}" />
+
 <!-- CONT-BODY -->
 <div class="od_cont">
     <div class="sec_head" th:if="${order.shotCanYn.equals('Y')}">
@@ -294,14 +296,14 @@
                 </div>
                 <div>
                     <dt>할인금액</dt>
-                    <dd><span class="disc_amount"><em th:text="${#numbers.formatInteger(order.totDcAmt, 1, 'COMMA')}"></em>원</span></dd>
+                    <dd><span class="disc_amount"><em id="totDcAmt" th:text="${#numbers.formatInteger(order.totDcAmt, 1, 'COMMA')}"></em>원</span></dd>
                 </div>
             </dl>
         </div>
         <div class="totalprice_box">
             <dl>
                 <dt>총 결제 예정 금액</dt>
-                <dd data-weight="price" data-font="lato"><span th:text="${#numbers.formatInteger(order.sumRealPayAmt, 1, 'COMMA')}"></span>원</dd>
+                <dd data-weight="price" data-font="lato"><span id="sumRealPayAmt" th:text="${#numbers.formatInteger(order.sumRealPayAmt, 1, 'COMMA')}"></span>원</dd>
             </dl>
         </div>
         <div class="btn_box">
@@ -409,7 +411,12 @@
 </form>
 
 <script type="text/javascript">
+    let sumRealPayAmt = [[${order.sumRealPayAmt}]];
+    let totDcAmt = [[${order.totDcAmt}]];
+
     $(document).ready(function() {
+        $("#sumRealPayAmt").text(Number(sumRealPayAmt).toLocaleString());
+        $("#totDcAmt").text(Number(totDcAmt).toLocaleString());
         //$("#cartListForm").submit();
        /* $.ajax( {
             type: "POST",
@@ -443,7 +450,9 @@
             dataType : 'json',
             data : jsonData,
             success : function(result) {
-                alert(result.testResult);
+                alert(result.serialCpnInfo.result + " / " + result.serialCpnInfo.dcAmt);
+                $("#sumRealPayAmt").text(Number(sumRealPayAmt - result.serialCpnInfo.dcAmt).toLocaleString());
+                $("#totDcAmt").text(Number(totDcAmt - result.serialCpnInfo.dcAmt).toLocaleString());
             }
         });
     };

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

@@ -26,12 +26,14 @@
 	<link rel="icon" href="/images/favicon-16x16.png" sizes="16x16" type="image/png"/>
 	
 	<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" href="/ux/pc/css/jquery-ui.css">
 	<link rel="stylesheet" type="text/css" href="/ux/pc/css/slick.css" />
 	
 	<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
 	<script src="/ux/pc/js/slick.min.js"></script>
 	<script src="/ux/pc/js/jquery-ui.js"></script>
 	<script src="/ux/pc/js/jquery.modal.min.js"></script>
+	<script src="/ux/pc/js/jquery.ui.datepicker.monthyearpicker.js"></script>
 	<script src="/ux/plugins/jquery.serializeObject.min.js"></script>
 	<script src="/ux/plugins/mcxdialog/mcxdialog_ui.js"></script>
 

+ 69 - 6
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderDetailFormWeb.html

@@ -25,13 +25,14 @@
 			<div class="od_detail">
 				(주문번호 : <span class="num" th:text="${ordNo}"></span>)
 			</div>
-			<button type="button" class="btn btn_default od_del_btn"><span>주문 내역 삭제</span></button>
+			<button type="button" class="btn btn_default od_del_btn" onclick="fnDeleteOrder()"><span>주문 내역 삭제</span></button>
 		</div>
 		<div class="sec_body">
 			<div class="order_list">
 				<section class="order_row">
 					<th:block th:if="${orderList}" th:each="oneData, status : ${orderList}">
 						<div class="part_deliver">
+							
 							<div class="tbl_tit">
 								<!-- 주문일/선물일 설정 -->
 								<span class="start_t" th:unless="${oneData.giftPackYn == 'Y'}">주문일</span>
@@ -44,6 +45,8 @@
 								<a href="" class="detail_btn">주문상세보기</a>
 							</div>
 							<th:block th:if="${oneData.orderList}" th:each="order, status : ${oneData.orderList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+								<input type="hidden" name="ordDtlNo" th:value="${order.ordDtlNo}"/>
+								<input type="hidden" name="ordDtlStat" th:value="${order.ordDtlStat}"/>
 								<div class="tbl type2">
 									<table>
 										<colgroup>
@@ -95,14 +98,14 @@
 										</tbody>
 									</table>
 								</div>
-								<div class="order_confirm">
+								<div class="order_confirm" th:if="${order.ordDtlStatBanner == 'Y'}">
 									<p class="cf_txt cf_desc c_primary" th:if="${order.ordDtlStat == 'G013_00' or order.ordDtlStat == 'G013_10' or order.ordDtlStat == 'G013_11'}">주문 완료 / 결제를 기다리고 있습니다.</p> <!-- button 없이 텍스트만 있을 경우 cf_desc c_primary class 추가 -->
 									<p class="cf_txt cf_desc c_primary" th:if="${order.ordDtlStat == 'G013_20' or order.ordDtlStat == 'G013_30' or order.ordDtlStat == 'G013_35'}">배송할 상품을 준비 중입니다.</p>
 									<p class="cf_txt cf_desc c_primary" th:if="${order.ordDtlStat == 'G013_40'}">상품준비가 완료되어 곧 배송될 예정입니다.</p>
 									<p class="cf_txt cf_desc c_primary" th:if="${order.ordDtlStat == 'G013_50' or order.ordDtlStat == 'G013_55'}" th:text="|${order.shipCompNm} / ${order.invoiceNo}|"></p>
 									<button type="button" class="btn btn_primary" th:if="${order.ordDtlStat == 'G013_50' or order.ordDtlStat == 'G013_55'}">배송조회</button>
 									<p class="cf_txt cf_desc c_primary" th:if="${order.ordDtlStat == 'G013_60'}" th:text="|${order.purchaseConfirmDay}일 후 자동으로 구매확정|"></p>
-									<button type="button" class="btn btn_primary" th:if="${order.ordDtlStat == 'G013_60'}">구매확정 하기</button>
+									<button type="button" class="btn btn_primary" th:if="${order.ordDtlStat == 'G013_60'}" onclick="fnDecideOrder(this);">구매확정 하기</button>
 									<p class="cf_txt cf_desc c_primary" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq == 0}">리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</p>
 									<button type="button" class="btn btn_primary" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq == 0}">리뷰작성</button>
 									<p class="cf_txt cf_desc c_primary" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq > 0}">주문내역 다시 구매하기 위해</p>
@@ -318,15 +321,75 @@
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
-/*<![CDATA[*/
+	let ordNo = [[${ordNo}]];
+	
+	// 주문 내역 삭제 처리
+	var fnDeleteOrder = function() {
+		mcxDialog.confirm('주문 내역을 삭제하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				let data = {};
+				
+				data.ordNo = ordNo;
+				
+				var jsonData = JSON.stringify(data);
+				gagajf.ajaxJsonSubmit('/mypage/order/delete'
+					, jsonData
+					, function() {
+						cfnGoToPage(_PAGE_MYPAGE);
+					});
+			}
+		});
+	};
+	
+	// 구매확정 처리
+	var fnDecideOrder = function(param) {
+		let ordDtlNoArr = $(param).parent().parent().find('input[name=ordDtlNo]');
+		let ordDtlStatArr = $(param).parent().parent().find('input[name=ordDtlStat]');
+		
+		console.log(ordDtlNoArr);
+		let orderDecisionArr = [];
+		$.each(ordDtlNoArr, function(idx, item) {
+			console.log(item.value);
+			if (ordDtlStatArr[idx].value == 'G013_60') {
+				orderDecisionArr.push(item.value);
+			}
+		});
+
+		console.log(orderDecisionArr);
+		if (orderDecisionArr.length == 0) {
+			mcxDialog.alert('구매확정 가능한 상품이 없습니다.');
+			return false;
+		}
+
+		mcxDialog.confirm('구매확정 처리를 하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				let data = {};
+				
+				data.ordNo = ordNo;
+				data.ordDtlNoArr = orderDecisionArr;
+				
+				var jsonData = JSON.stringify(data);
+				gagajf.ajaxJsonSubmit('/mypage/order/decision'
+					, jsonData
+					, function() {
+						cfnGoToPage(_PAGE_ORDER_DETAIL + ordNo);
+					});
+			}
+		});
+	}
+
 	$(document).ready(function() {
 		// 마이페이지 LNB 설정
 		fnSetMypageLnbList(1);
 		
 		// 마이페이지 location 설정
-		fnSetMypageLocation('주문확인/배송조회', _PAGE_ORDER_LIST, '주문상세');
+		fnSetMypageLocation('주문확인/배송조회', '_PAGE_ORDER_LIST', '주문상세');
 	});
-/*]]>*/
+	
 </script>
 
 </th:block>

+ 38 - 23
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html

@@ -51,33 +51,34 @@
 			<!-- 주문 경로 -->
 			<div class="order_info clear">
 				<ul class="clear">
-					<li class="orl01">
+					<li>
 						<p class="or_p">주문접수</p>
 						<p class="count"><span th:text="${orderReceiptCount}">0</span></p>
 					</li>
-					<li class="orl02">
+					<li>
 						<p class="or_p">결제완료</p>
 						<p class="count"><span th:text="${paymentCompleteCount}">0</span></p>
 					</li>
-					<li class="orl03">
+					<li>
 						<p class="or_p">상품 준비 중</p>
 						<p class="count"><span th:text="${goodsPrepareCount}">0</span></p>
 					</li>
-					<li class="orl04">
+					<li>
+						<p class="or_p">배송 준비 중</p>
+						<p class="count"><span th:text="${shipPrepareCount}">0</span></p>
+					</li>
+					<li>
 						<p class="or_p">배송 중</p>
 						<p class="count"><span th:text="${shippingCount}">0</span></p>
 					</li>
-					<li class="orl05">
+					<li>
 						<p class="or_p">배송 완료</p>
 						<p class="count"><span th:text="${shipCompleteCount}">0</span></p>
 					</li>
 				</ul>
 				<div class="order_right">
-					<ul>
-						<li>취소 내역<span th:text="${cancelCount}">0</span></li>
-						<li>교환 내역<span th:text="${returnCount}">0</span></li>
-						<li>반품 내역<span th:text="${exchangeCount}">0</span></li>
-					</ul>
+					<p class="or_p">취소/교환/반품</p>
+					<p class="count"><span th:text="${cancelCount + returnCount + exchangeCount}">0</span></p>
 				</div>
 			</div>
 			<!-- //주문 경로 -->
@@ -85,14 +86,19 @@
 			<!-- 주문조회 검색 -->
 			<div class="order_sch_filter clear">
 				<div class="sch_radio_tab">
-					<button type="button" class="btn btn_default" th:if="${searchPeriod}" th:each="oneData, status : ${searchPeriod}" th:text="${oneData}"></button>
+					<input type="checkbox" name="month" value="최근 1개월" id="chk01" onclick="fnSetSearchPeriod(1);">
+					<label for="chk01">최근 1개월</label>
+					<input type="checkbox" name="month" value="최근 3개월" id="chk02" onclick="fnSetSearchPeriod(3);">
+					<label for="chk02">최근 2개월</label>
+					<input type="checkbox" name="month" value="최근 6개월" id="chk03" onclick="fnSetSearchPeriod(6);">
+					<label for="chk03">최근 3개월</label>
 				</div>
 				<div class="sch_right">
 					<div class="sch_datepicker sb">
-						<input type="text" class="n_input hasDatepicker" name="dt_fr_input" value="" placeholder="20.10.05" id="">
+						<input type="text" class="n_input my_datepicker" name="stDate" value="" th:placeholder="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}" id="stDate">
 					</div>
 					<div class="sch_datepicker">
-						<input type="text" class="n_input hasDatepicker" name="dt_to_input" value="" placeholder="20.10.05" id="">
+						<input type="text" class="n_input my_datepicker" name="edDate" value="" th:placeholder="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}" id="edDate">
 					</div>
 					<button type="button" class="btn btn_dark">조회</button>
 				</div>
@@ -110,9 +116,9 @@
 							<span class="order_date" th:text="${oneData.ordDt}"></span>
 
 							<!-- 배송구분 설정 -->
-							<span class="order_method" th:if="${oneData.shotDelvYn == 'Y'}" th:text="총알배송"></span>
-							<span class="order_method" th:if="${oneData.shotDelvYn == 'N' and oneData.selfGoodsYn == 'Y'}" th:text="일반배송"></span>
-							<span class="order_method" th:if="${oneData.selfGoodsYn == 'N'}" th:text="업체직배송"></span>
+							<span class="order_method" th:if="${oneData.shotDelvYn == 'Y'}">총알배송</span>
+							<span class="order_method" th:if="${oneData.shotDelvYn == 'N' and oneData.selfGoodsYn == 'Y'}">일반배송</span>
+							<span class="order_method" th:if="${oneData.selfGoodsYn == 'N'}">업체직배송</span>
 							<!-- //배송구분 설정 -->
 							<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>
 						</div>
@@ -166,13 +172,13 @@
 													<th:block th:if="${oneData.giftPackYn == 'Y'}">
 														<!-- 주소 입력 전 -->
 														<th:block th:if="${#strings.isEmpty(order.recipBaseAddr)}">
-															<p class="dlvr_staus c_primary" th:text="|주소 입력 대기|"></p>
+															<p class="dlvr_staus c_primary">주소 입력 대기</p>
 															<p class="dlvr_desc" th:text="|남은 기간 ${order.giftLimitDay}일|"></p>
 															<p class="dlvr_desc" th:text="|(${order.giftLimitDt}까지)|"></p>
 														</th:block>
 														<!-- 주소 입력 후 -->
 														<th:block th:unless="${#strings.isEmpty(order.recipBaseAddr)}">
-															<p class="dlvr_staus c_primary" th:text="|선물 완료|"></p>
+															<p class="dlvr_staus c_primary">선물 완료</p>
 															<p class="dlvr_desc" th:text="|(${order.giftCompleteDt})|"></p>
 														</th:block>
 													</th:block>
@@ -222,11 +228,11 @@
 															<button type="button" class="btn btn_primary">구매확정 하기</button>
 														</div>
 														<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq == 0}">
-															<span class="cf_txt" th:text="리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다."></span>
+															<span class="cf_txt">리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</span>
 															<button type="button" class="btn btn_primary">리뷰작성</button>
 														</div>
 														<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq > 0}">
-															<span class="cf_txt" th:text="주문내역 다시 구매하기 위해"></span>
+															<span class="cf_txt">주문내역 다시 구매하기 위해</span>
 															<button type="button" class="btn btn_primary">장바구니 담기</button>
 														</div>
 													</td>
@@ -244,7 +250,7 @@
 															<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" th:text="|주소입력 기한이 경과되어 선물이 취소 되었습니다.|"></span>
+															<span class="cf_txt">주소입력 기한이 경과되어 선물이 취소 되었습니다.</span>
 														</div>
 													</td>
 												</tr>
@@ -273,12 +279,21 @@
 		
 		// 마이페이지 location 설정
 		fnSetMypageLocation('주문확인/배송조회');
+		
+		// datepicker 설정
+		$(".my_datepicker").datepicker();
 	});
 	
 	var fnGoToOrderDetail = function(param) {
 		let ordNo = $(param).attr('ordNo');
-		console.log(_PAGE_ORDER_DETAIL + '/' + ordNo);
-		cfnGoToPage(_PAGE_ORDER_DETAIL + '/' + ordNo);
+		cfnGoToPage(_PAGE_ORDER_DETAIL + ordNo);
+	}
+	
+	var fnSetSearchPeriod = function(period) {
+		let date = new Date();
+		$('#edDate').val(date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate() + 1)).slice(-2));
+		date.setMonth(date.getMonth() - period);
+		$('#stDate').val(date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate() + 1)).slice(-2));
 	}
 	
 /*]]>*/

+ 96 - 0
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrAddPopWeb.html

@@ -0,0 +1,96 @@
+<!-- 배송지추가 팝업 -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="adrsAddLabel">배송지 등록</h5>
+		</div>
+		<div class="modal-body">
+			<div class="pop_cont">
+				<div class="area_adrsinfo">
+					<div class="form_field">
+						<label class="input_label sr-only">이름(주문자명)</label>
+						<div class="ui_col_12">
+							<div class="input_wrap">
+								<input type="text" name="userName" placeholder="이름(주문자명)" id="txtName">
+							</div>
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">휴대폰 번호</label>
+						<div class="ui_col_12">
+							<div class="input_wrap">
+								<input type="text" name="userPhone" placeholder="휴대폰 번호" id="userPhone">
+							</div>
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">배송주소</label>
+						<div class="ui_col_12">
+							<div class="input_wrap">
+								<input type="text" name="userNumber" placeholder="배송주소" id="">
+								<button type="button" class="btn btn_dark btn_default btn_postcode">
+									<span>우편번호 찾기</span>
+								</button>
+							</div>
+						</div>
+					</div>
+					<!-- 주소 출력 -->
+					<div class="adress">
+						<dl>
+							<div>
+								<dt>
+									<span>도로명</span>
+								</dt>
+								<dd>서울시 영등포구 은행로 11, 일신빌딩 8층</dd>
+							</div>
+							<div>
+								<dt>
+									<span>지번</span>
+								</dt>
+								<dd>서울특별시 영등포구 여의도동 15-15 일신빌딩 8층</dd>
+							</div>
+						</dl>
+					</div>
+					<!-- //주소 출력 -->
+				</div>
+				<div class="area_request">
+					<h6>배송요청 사항</h6>
+					<div class="form_field">
+						<div>
+							<input type="radio" name="rdi-request1" id="rdi-request11" value="" checked=""> 
+							<label for="rdi-request11"><span>문앞</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request1" id="rdi-request12" value="" checked=""> 
+							<label for="rdi-request12"><span>직접받고 부재시 문 앞</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request1" id="rdi-request13" value="" checked="">
+							 <label for="rdi-request13"><span>경비실</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request1" id="rdi-request14" value="" checked=""> 
+							<label for="rdi-request14"><span>택배함</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request1" id="rdi-request15"value="" checked=""> 
+							<label for="rdi-request15"><span>기타사항</span></label>
+							<div class="info_box">
+								<div class="input_wrap">
+									<input type="text" class="form_control" maxlength="30" placeholder="보관장소만 입력">
+									<p>보관 장소 외 다른 내용 입력시 통보없이 삭제 될 수 있습니다.</p>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="btn_group_block">
+					<button class="btn btn_dark btn_block">
+						<span>배송지 등록</span>
+					</button>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+<!-- //배송지추가 팝업 -->

+ 82 - 0
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrChangePopWeb.html

@@ -0,0 +1,82 @@
+<!-- 배송지변경 팝업 -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="adrsChangeLabel">배송지 선택</h5>
+		</div>
+		<div class="modal-body">
+			<div class="pop_cont">
+				<ul>
+					<li>
+						<div class="adrs_box">
+							<dl>
+								<div>
+									<dt><span class="sr-only">배송지명</span></dt>
+									<dd>홍길동 
+										<span class="icon_tag"> 
+											<em class="tag_stype1">기본 배송지</em>
+											<em class="tag_stype2">총알배송</em>
+										</span>
+									</dd>
+								</div>
+								<div>
+									<dt><span class="sr-only">배송주소</span></dt>
+									<dd>서울시 영등포구 은행로 11,8층(여의도동,일신빌딩)</dd>
+								</div>
+								<div>
+									<dt><span class="sr-only">휴대폰 번호</span></dt>
+									<dd>010-1234-5647</dd>
+								</div>
+								<div>
+									<dt>배송요청 사항</dt>
+									<dd>직접받고 부재 시 문앞</dd>
+								</div>
+								<button class="btn btn_default btn_sm" id="btn_addrModify_pop">
+									<span>수정</span>
+								</button>
+								<button class="btn btn_dark btn_sm" id="">
+									<span>선택</span>
+								</button>
+							</dl>
+						</div>
+					</li>
+					<li>
+						<div class="adrs_box">
+							<dl>
+								<div>
+									<dt><span class="sr-only">배송지명</span></dt>
+									<dd>홍길동 <span class="icon_tag"> <em class="tag_stype1">기본 배송지</em> <em class="tag_stype2">총알배송</em></span></dd>
+								</div>
+								<div>
+									<dt><span class="sr-only">배송주소</span></dt>
+									<dd>서울시 영등포구 은행로 11,8층(여의도동,일신빌딩)</dd>
+								</div>
+								<div>
+									<dt><span class="sr-only">휴대폰 번호</span></dt>
+									<dd>010-1234-5647</dd>
+								</div>
+								<div>
+									<dt>배송요청 사항</dt>
+									<dd>직접받고 부재 시 문앞</dd>
+								</div>
+								<button class="btn btn_default btn_sm"
+									id="btn_addrModify_pop">
+									<span>수정</span>
+								</button>
+								<button class="btn btn_dark btn_sm" id="">
+									<span>선택</span>
+								</button>
+							</dl>
+						</div>
+					</li>
+				</ul>
+				<div class="btn_group_block">
+					<button class="btn btn_dark btn_block" id="btn_addrAdd_pop">
+						<span>배송지 추가</span>
+					</button>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+<!-- //배송지변경 팝업 -->

+ 92 - 0
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrModifyPopWeb.html

@@ -0,0 +1,92 @@
+<!-- 배송지수정 팝업 -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="adrsModifyLabel">배송지 수정</h5>
+		</div>
+		<div class="modal-body">
+			<div class="pop_cont">
+				<div class="area_adrsinfo">
+					<div class="form_field">
+						<label class="input_label sr-only">이름(주문자명)</label>
+						<div class="ui_col_12">
+							<div class="input_wrap">
+								<input type="text" name="userName" placeholder="이름(주문자명)" id="txtName">
+							</div>
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">휴대폰 번호</label>
+						<div class="ui_col_12">
+							<div class="input_wrap">
+								<input type="text" name="userPhone" placeholder="휴대폰 번호" id="userPhone">
+							</div>
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">배송주소</label>
+						<div class="ui_col_12">
+							<div class="input_wrap">
+								<input type="text" name="userNumber" placeholder="배송주소" id="">
+								<button type="button" class="btn btn_dark btn_default btn_postcode">
+									<span>우편번호 찾기</span>
+								</button>
+							</div>
+						</div>
+					</div>
+					<!-- 주소 출력 -->
+					<div class="adress">
+						<dl>
+							<div>
+								<dt><span>도로명</span></dt>
+								<dd>서울시 영등포구 은행로 11, 일신빌딩 8층</dd>
+							</div>
+							<div>
+								<dt><span>지번</span></dt>
+								<dd>서울특별시 영등포구 여의도동 15-15 일신빌딩 8층</dd>
+							</div>
+						</dl>
+					</div>
+					<!-- //주소 출력 -->
+				</div>
+				<div class="area_request">
+					<h6>배송요청 사항</h6>
+					<div class="form_field">
+						<div>
+							<input type="radio" name="rdi-request2" id="rdi-request21" value="" checked=""> 
+							<label for="rdi-request21"><span>문앞</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request2" id="rdi-request22" value="" checked=""> 
+							<label for="rdi-request22"><span>직접받고 부재시 문 앞</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request2" id="rdi-request23" value="" checked=""> 
+							<label for="rdi-request23"><span>경비실</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request2" id="rdi-request24" value="" checked=""> 
+							<label for="rdi-request24"><span>택배함</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request2" id="rdi-request25" value="" checked=""> 
+							<label for="rdi-request25"><span>기타사항</span></label>
+							<div class="info_box">
+								<div class="input_wrap">
+									<input type="text" class="form_control" maxlength="30" placeholder="보관장소만 입력">
+									<p>보관 장소 외 다른 내용 입력시 통보없이 삭제 될 수 있습니다.</p>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="btn_group_block">
+					<button class="btn btn_dark btn_block">
+						<span>배송지 수정완료</span>
+					</button>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+<!-- //배송지수정 팝업 -->

+ 102 - 0
src/main/webapp/WEB-INF/views/web/order/OrderDelvMemoChangePopWeb.html

@@ -0,0 +1,102 @@
+<!-- 배송요청사항수정 팝업 -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="rqstModifyLabel">배송요청 사항</h5>
+		</div>
+		<div class="modal-body">
+			<div class="pop_cont">
+				<div class="area_request">
+					<div class="form_field">
+						<div>
+							<input type="radio" name="rdi-request3" id="rdi-request31" value="" checked=""> 
+							<label for="rdi-request31"><span>문앞</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request3" id="rdi-request32" value="" checked=""> 
+							<label for="rdi-request32"><span>직접받고 부재시 문 앞</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request3" id="rdi-request33" value="" checked=""> 
+							<label for="rdi-request33"><span>경비실</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request3" id="rdi-request34" value="" checked=""> 
+							<label for="rdi-request34"><span>택배함</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-request3" id="rdi-request35" value="" checked=""> 
+							<label for="rdi-request35"><span>기타사항</span></label>
+							<div class="info_box">
+								<div class="input_wrap">
+									<input type="text" name="etcDelvMemo" class="form_control" maxlength="30" placeholder="보관장소만 입력">
+									<p>보관 장소 외 다른 내용 입력시 통보없이 삭제 될 수 있습니다.</p>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="btn_group_block">
+					<button class="btn btn_dark btn_block" id="btn_delvMemoChange">
+						<span>등록</span>
+					</button>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+<script type="text/javascript">
+// 배송메모버튼클릭
+$("input[name='rdi-request3']").on("click", function(){
+	// 배송메모내용
+	var rtnTxt = $("input[name='rdi-request3']:checked").parent().find('span').text();
+	
+	if (rtnTxt == "기타사항") {
+		$("input[name='etcDelvMemo'").removeAttr("disbled");
+	} else {
+		$("input[name='etcDelvMemo'").attr("disbled", true);
+	}
+});
+
+// 배송메모등록버튼
+$("#btn_delvMemoChange").on("click", function(){
+	var rtnTxt = $("input[name='rdi-request3']:checked").parent().find('span').text();
+	if (rtnTxt == "기타사항") {
+		rtnTxt = $("input[name='etcDelvMemo'").val();
+	} 
+	
+	// 배송메모 부모창에 설정
+	$("input[name='delvMemo']").val(rtnTxt);		// input 값에 설정
+	$("#delvMemo").text(rtnTxt);					// 메모 text 설정
+	$(".close-modal").trigger("click");				// 팝업닫기
+});
+
+// 초기배송메모설정
+$(document).ready( function() {
+	
+	// 배송메모 초기값설정
+	var delvMemo = $("input[name='delvMemo']").val();
+	$("input[name='rdi-request3'").each(function(i){
+		var rtnTxt = $(this).parent().find('span').text();
+		
+		if (rtnTxt == delvMemo) {
+			$(this).attr("checked", true);
+		} else {
+			$(this).removeAttr("checked");
+		}
+	});
+	
+	$("input[name='rdi-request3']").trigger('change');
+});
+</script>
+<!-- //배송요청사항수정 팝업 -->
+
+
+
+
+
+
+
+
+

+ 1128 - 716
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -1,8 +1,7 @@
 <!DOCTYPE html>
-<html lang="ko"
-	  xmlns:th="http://www.thymeleaf.org"
-	  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
-	  layout:decorator="web/common/layout/DefaultLayoutWeb">
+<html lang="ko" xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="web/common/layout/DefaultLayoutWeb">
 <!--
  *******************************************************************************
  * @source  : OrderFormWeb.html
@@ -19,810 +18,1223 @@
 <body>
 <th:block layout:fragment="content">
 
-	<!--  container -->
+<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css">
+<script type="text/javascript" src="/ux/pc/js/swiper.min.js"></script>
+<script type="text/javascript" src="/ux/pc/js/slick.min.js"></script>
+<script type="text/javascript" src="/ux/pc/js/jquery-ui.js"></script>
+
+<!-- 
+<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
+<script type="text/javascript" src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
+<script type="text/javascript" src="/ux/pc/js/jquery.modal.min.js"></script>
+<script type="text/javascript" src="/ux/pc/js/common-ui.js"></script>
+ -->
+
+<!--  container -->
+<form id="payForm" name="payForm">
+	<input type="hidden" name="delvMemo" th:value="${deliveryAddrInfo.delvMemo}">
+		
 	<div id="container" class="container od">
-		<div class="breadcrumb">
-			<ul>
-				<li class="bread_home"><a href="index.html">홈</a></li>
-				<li class="bread_2depth">쇼핑백</li>
-				<li class="bread_3depth">주문/결제</li>
-			</ul>
-		</div>
 		<div class="wrap">
-			<div class="content odPayment"> <!-- 페이지특정 클래스 = mbPayment -->
+			<div class="content odPayment">
+				<!-- 페이지특정 클래스 = odPayment -->
 				<div class="cont_head">
-					<h2 class="t_c mb60">주문&#47;결제</h2>
+					<h2>주문&#47;결제</h2>
+					<div class="oder_steps">
+						<ul>
+							<li>01 쇼핑백</li>
+							<li class="on">02 주문/결제</li>
+							<li>03 주문완료</li>
+						</ul>
+					</div>
 				</div>
-
 				<div class="cont_body">
 					<!-- CONT-BODY -->
-					<section class="od_cont fl">
-						<div class="sec_head">
-							<div class="tbl type4">
-								<table>
-									<colgroup>
-										<col width="240">
-										<col width="*">
-									</colgroup>
-									<tbody>
-									<tr>
-										<th>총 <span class="c_primary bold" th:text="${delvTotCnt}"></span> 건으로 나뉘어 배송 예정</th>
-										<td class="t_l">
-											<span>총알배송<em class="c_primary bold" th:text="${wmsCnt}" id="shotDelv"></em>건</span>
-											<span>STYLE24<em class="c_primary bold" th:text="${wmsCnt}" id="wmsDelv"></em>건</span>
-											<span>업체직배송<em class="c_primary bold" th:text="${delvCnt}"></em>건</span>
-											<span>예약배송<em class="c_primary bold" th:text="${resCnt}"></em>건</span>
-										</td>
-									</tr>
-									</tbody>
-								</table>
-							</div>
-						</div>
-
-						<div class="sec_body">
-							<div class="t_r mb15">
-								<a href="/cart/list/form" class="btn_link">쇼핑백 바로가기</a>
+					<form class="form_wrap">
+						<div class="od_cont">
+							<div class="sec_head">
+								<div class="tbl type4">
+									<table>
+										<colgroup>
+											<col width="240">
+											<col width="*">
+										</colgroup>
+										<tbody>
+											<tr>
+												<th>총 <span class="c_primary bold" th:text="${delvTotCnt}"></span> 건으로 나뉘어 배송 예정</th>
+												<td class="t_l">
+													<span>총알배송<em class="c_primary bold" th:text="${wmsCnt}" id="shotDelv"></em>건</span>
+													<span>STYLE24<em class="c_primary bold" th:text="${wmsCnt}" id="wmsDelv"></em>건</span>
+													<span>업체직배송<em class="c_primary bold" th:text="${delvCnt}"></em>건</span>
+													<span>예약배송<em class="c_primary bold" th:text="${resCnt}"></em>건</span>
+												</td>
+											</tr>
+										</tbody>
+									</table>
+								</div>
 							</div>
-
-							<div class="foldGroup">
-								<ul>
-									<li>
-										<!-- 주문고객정보 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>주문고객</span>
-													</div>
-													<div class="data">
-														<span th:text="${custemerInfo.custNm}"></span>
-														<span th:text="${custemerInfo.email}"></span>
-														<span th:text="${custemerInfo.cellPhnno}"></span>
-													</div>
-												</div>
-											</a>
-										</div>
-
-										<div class="fold_cont" style="display: none;">
-											<div class="area_default">
-												<dl>
-													<div>
-														<dt>주문자명</dt>
-														<dd th:text="${custemerInfo.custNm}"></dd>
-													</div>
-													<div>
-														<dt>이메일</dt>
-														<dd th:text="${custemerInfo.email}"></dd>
-													</div>
+							<div class="sec_body">
+								<!-- -->
+								<div class="foldGroup">
+									<ul>
+										<li class="fold_mbinfo">
+											<!-- 주문고객정보 -->
+											<div class="fold_head">
+												<a href="javascript:void(0)">
 													<div>
-														<dt>휴대폰 번호</dt>
-														<dd th:text="${custemerInfo.cellPhnno}"><button type="button" class="btn_popup" id=""><span>본인인증하기</span></button></dd>
+														<div class="fold_tit">
+															<span>주문고객</span>
+														</div>
+														<div class="data">
+															<span th:text="${custemerInfo.custNm}"></span>
+															<span th:text="${custemerInfo.email}"></span>
+															<span th:text="${custemerInfo.cellPhnno}"></span>
+														</div>
 													</div>
-												</dl>
+												</a>
 											</div>
-										</div>
-										<!-- //주문고객정보 -->
-									</li>
-									<li>
-										<!-- 배송지정보 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>배송지 정보</span>
-													</div>
-													<div class="data" th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}"></div>
+											<div class="fold_cont" style="display: none;">
+												<div class="area_mbinfo">
+													<dl>
+														<div>
+															<dt>
+																<span class="sr-only">주문자명</span>
+															</dt>
+															<dd th:text="${custemerInfo.custNm}"></dd>
+														</div>
+														<div>
+															<dt>
+																<span class="sr-only">이메일</span>
+															</dt>
+															<dd th:text="${custemerInfo.email}">/dd>
+														</div>
+														<div>
+															<dt>
+																<span class="sr-only">휴대폰 번호</span>
+															</dt>
+															<dd>
+																<span th:text="${custemerInfo.cellPhnno}"></span>
+																<th:block th:if="${custemerInfo.ci} == null or ${custemerInfo.ci} == ''">
+																	<button type="button" class="btn_popup" id="">
+																		<span>본인인증하기</span>
+																	</button>
+																</th:block>
+															</dd>
+														</div>
+													</dl>
 												</div>
-											</a>
-										</div>
-										<div class="fold_cont" style="display: none;">
-											<div class="area_default">
-												<dl>
-													<div>
-														<dt>배송지명</dt>
-														<dd th:text="${deliveryAddrInfo.delvAddrNm}">
-															<span class="icon_tag">
-																<em class="tag_stype1">기본 배송지</em>
-																<em class="tag_stype2">총알배송</em>
-															</span>
-														</dd>
-													</div>
-													<div>
-														<dt>배송주소</dt>
-														<dd th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}">
-															<button type="button" class="btn_popup" id=""><span>배송지 선택</span></button>
-														</dd>
-													</div>
-													<div>
-														<dt>휴대폰 번호</dt>
-														<dd th:text="${custemerInfo.cellPhnno}"></dd>
-													</div>
+											</div> <!-- //주문고객정보 -->
+										</li>
+										<li class="fold_mbinfo">
+											<!-- 배송지정보 -->
+											<div class="fold_head">
+												<a href="javascript:void(0)">
 													<div>
-														<dt>배송요청 사항</dt>
-														<dd>
-															직접받고 부재 시 문앞
-															<button type="button" class="btn_popup" id=""><span>변경하기</span></button>
-														</dd>
+														<div class="fold_tit">
+															<span>배송지 정보</span>
+														</div>
+														<div class="data" th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}"></div>
 													</div>
-												</dl>
+												</a>
 											</div>
-											<!-- 해외배송상품일 경우 노출 -->
-											<div class="area_overseas">
-												<dl>
-													<div>
-														<dt>개인통관고유부호</dt>
-														<dd>
-															<div class="form_field">
-																<div>
-																	<input type="radio" name="rdi-overseas" id="rdi-overs1" value="" checked="">
-																	<label for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
-																	<div class="info_box pb10">
+											<div class="fold_cont" style="display: none;">
+												<div class="area_mbinfo">
+													<dl>
+														<div>
+															<dt><span class="sr-only">배송지명</span></dt>
+															<dd>
+																<span th:text="${deliveryAddrInfo.delvAddrNm}"></span>
+																<span class="icon_tag">
+																	<em class="tag_stype1">기본 배송지</em> 
+																	<em class="tag_stype2">총알배송</em>
+																</span>
+															</dd>
+														</div>
+														<div>
+															<dt>
+																<span class="sr-only">배송주소</span>
+															</dt>
+															<dd>
+																<span th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}"></span>
+																<button type="button" class="btn_popup" id="btn_adrsChange_pop">
+																	<span>배송지 선택</span>
+																</button>
+															</dd>
+														</div>
+														<div>
+															<dt>
+																<span class="sr-only">휴대폰 번호</span>
+															</dt>
+															<dd th:text="${custemerInfo.cellPhnno}"></dd>
+														</div>
+														<div>
+															<dt>배송요청 사항</dt>
+															<dd>
+																<span th:text="${deliveryAddrInfo.delvMemo}" id="delvMemo"></span>
+																<button type="button" class="btn_popup" id="btn_rqstModify_pop">
+																	<span>변경하기</span>
+																</button>
+															</dd>
+														</div>
+													</dl>
+												</div>
+												
+												<!-- 해외배송상품일 경우 노출 -->
+												<div class="area_overseas">
+													<dl>
+														<div>
+															<dt>개인통관고유부호</dt>
+															<dd>
+																<div class="form_field">
+																	<div>
+																		<input type="radio" name="rdi-overseas" id="rdi-overs1" checked> 
+																		<label for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
+																	</div>
+																	<div>
+																		<input type="radio" name="rdi-overseas" id="rdi-overs2">
+																		<label for="rdi-overs2"><span>입력 안 함</span></label>
+																	</div>
+																	<div class="info_box overs1">
 																		<div class="input_wrap">
-																			<input type="text" class="form_control" maxlength="13" placeholder="P로 시작하는 13자리">
-																			<button type="button" class="btn btn_dark"><span>적용</span></button>
+																			<input type="text" class="form_control err" maxlength="13" placeholder="P로 시작하는 13자리">
+																			<!-- 유효하지 않은 개인통관고유부호 일때 class명 'err' 추가 -->
+																		</div>
+																		<div class="t_err">개인통관고유부호가 유효하지 않습니다.</div>
+																		<!-- 유효하지 않은 개인통관고유부호 일때 노출 -->
+																		<div class="agree_overs">
+																			<input id="chk-overs-agr" type="checkbox" checked="">
+																			<label for="chk-overs-agr">
+																				<span>
+																					위 정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게 STYLE24에서 저장 &#47; 관리 합니다.&nbsp;&nbsp;
+																					<em class="tmark_required">(필수)</em>
+																				</span>
+																			</label>
 																		</div>
 																	</div>
-																</div>
-																<div class="mt20">
-																	<input type="radio" name="rdi-overseas" id="rdi-overs2" value="">
-																	<label for="rdi-overs2"><span>입력 안 함</span></label>
-																	<div class="info_box" style="display:none;">
-																		<p>
-																			개인통관고유부호를 입력하지 않아도 관세사무소에서 개인정보 확인을 위해 별도 연락을 드릴 예정입니다.
-																		</p>
+																	<div class="info_box overs2" style="display: none;">
+																		<p>개인통관고유부호를 입력하지 않아도 관세사무소에서 개인정보 확인을 위해 별도 연락을 드릴 예정입니다.</p>
 																	</div>
 																</div>
-															</div>
-														</dd>
-													</div>
-												</dl>
-												<div class="com_info_txt">
-													<p class="tit">해외 배송 안내</p>
-													<ul>
-														<li>물품가액이 $150초과할 경우 관/부과세가 발생 할 수 있습니다.</li>
-														<li>물품 종류와 해외공급자 관계없이 같은 날 입항하게 되면 합산과세 대상이 됩니다.</li>
-													</ul>
+																<div class="info_txt">
+																	<ul>
+																		<li>물품가액이 $150초과할 경우 관/부과세가 발생 할 수 있습니다.</li>
+																		<li>물품 종류와 해외공급자 관계없이 같은 날 입항하게 되면 합산과세 대상이 됩니다.</li>
+																	</ul>
+																</div>
+															</dd>
+														</div>
+													</dl>
 												</div>
-												<div class="form_field mt30">
-													<div>
-														<input id="chk-overs-agr" type="checkbox" checked="">
-														<label for="chk-overs-agr"><span>위 정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게 STYLE24에서 저장 &#47; 관리 합니다.&nbsp;&nbsp;<em class="c_primary bold f_size12">(필수)</em></span></label>
+												<!-- //해외배송상품일 경우 노출 -->
+												
+												<!-- 주문제작상품일 경우 노출 -->
+												<div class="area_customitem">
+													<div class="form_field">
+														<div class="agree_custom">
+															<input id="chk-custom-agr1" type="checkbox" checked="">
+															<label for="chk-custom-agr1">
+																<span>고객님께서 주문하신 상품에는 주문제작상품이 포함되어 있습니다.<br>주문제작상품에 대한 안내를 확인하였으며 배송에 동의합니다.&nbsp;&nbsp;
+																	<em class="tmark_required">(필수)</em>
+																</span>
+															</label>
+														</div>
 													</div>
-												</div>
-											</div>
-											<!-- //해외배송상품일 경우 노출 -->
-											<!-- 주문제작상품일 경우 노출 -->
-											<div class="area_customitem">
-												<div class="txt_box mb30">
-													<p class="c_primary normal">현재 주문제작 상품을 포함하여 주문을 진행중 입니다.</p>
-												</div>
-												<div class="com_info_txt">
-													<p class="tit">주문 제작 상품 안내</p>
-													<ul>
-														<li>주문 제작 상품은 주문 후 제작이 진행되며, 제작 완료 후 배송이 시작됩니다.</li>
-														<li>주문 제작 상품의 특성상 주문 완료 후 취소/교환이 불가능합니다. (상품 하자에 한해 가능)</li>
-													</ul>
-												</div>
-												<div class="form_field mt30">
-													<div>
-														<input id="chk-custom-agr1" type="checkbox" checked="">
-														<label for="chk-custom-agr1"><span>주문 제작 상품에 대한 안내를 확인하였으며 배송에 동의합니다.&nbsp;&nbsp;<em class="c_primary bold f_size12">(필수)</em></span></label>
+													<div class="info_txt">
+														<ul>
+															<li>주문 제작 상품은 주문 후 제작이 진행되며, 제작 완료 후 배송이 시작됩니다.</li>
+															<li>주문 제작 상품의 특성상 주문 완료 후 취소/교환이 불가능합니다. (상품 하자에 한해 가능)</li>
+														</ul>
 													</div>
 												</div>
-											</div>
-											<!-- //주문제작상품일 경우 노출 -->
-										</div>
-										<!-- //배송지정보 -->
-									</li>
-									<li>
+												<!-- //주문제작상품일 경우 노출 -->
+											</div> <!-- //배송지정보 -->
+										</li>
+										
 										<!-- 사은품선택 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>사은품 선택</span>
-													</div>
-													<div class="data">
-														<span>사은품 총 <em class="c_primary normal">2</em>개 선택</span>
-														<span><em class="c_primary normal">0</em>P 차감</span>
-													</div>
+										<th:block th:if="${freegiftList != null && #lists.size(freegiftList) > 0}">
+											<li>
+												<div class="fold_head">
+													<a href="javascript:void(0)">
+														<div>
+															<div class="fold_tit">
+																<span>사은품 선택</span>
+															</div>
+															<div class="data">
+																<span>사은품 총 <em class="total_gift">0</em>&nbsp;개 선택</span> 
+																<span><em class="total_deduct">0</em>&nbsp;P 차감</span>
+															</div>
+														</div>
+													</a>
 												</div>
-											</a>
-										</div>
-										<div class="fold_cont" style="display:none;">
-											<div class="area_default">
-												<th:block th:each="freegift, i : ${freegiftList}">
-													<!-- 2021.02.15 css 수정되면 삭제예정 -->
-													<th:block th:if="${i.count} > 1">
-														<br>
-														<br>
-													</th:block>
-													<p class="txt" th:text="'사은품선택' + ${i.count} + ' > ' + ${freegift.freegiftNm}"></p>
-													<div class="form_field">
-														<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
-															<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
-																<div class="gift" >
-																	<input type="radio" th:name="'chk-gift'+${i.count}" th:id="'chk-gift'+${i.count}+${k.count}" class="chk_img" value="">
-																	<label th:for="'chk-gift'+${i.count}+${k.count}">
-																		<span class="thumb"><img src="http://codepartners.co.kr/project/style24/pc/ux/images/thumb/tmp_gift1.jpg" width="" alt=""></span>
-																		<span class="name" th:text="${freegiftGoods.goodsNm}"></span>
-																		<span th:if="${freegiftGoods.usePoint} < 1" class="deduct" th:text="무료"></span>
-																		<span th:if="${freegiftGoods.usePoint} > 0" class="deduct" th:text="|- ${freegiftGoods.usePoint} P|"></span>
-																	</label>
+												<div class="fold_cont" style="display: none;">
+													<div class="area_selgift">
+														<th:block th:each="freegift, i : ${freegiftList}">
+															<div class="gift_box">
+																<p class="txt">
+																	<span th:text="'사은품선택' + ${i.count} + '' + ${freegift.freegiftNm}"></span>
+																</p>
+																<div class="form_field">
+																	<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
+																		<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
+																			<div class="gift">
+																				<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" th:usepoint="${freegiftGoods.usePoint}"> 
+																				<label th:for="'rdi-gift'+${i.count}+${k.count}"> 
+																					<span class="thumb"><img src="http://ts5000.ipdisk.co.kr:89/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
+																					<span class="name" th:text="${freegiftGoods.goodsNm}"></span> 
+																					<span th:if="${freegiftGoods.usePoint} < 1" class="deduct" th:text="무료"></span>
+																					<span th:if="${freegiftGoods.usePoint} > 0" class="deduct" th:text="|- ${freegiftGoods.usePoint} P|"></span>
+																				</label>
+																			</div>
+																		</th:block>
+																	</th:block>
+																	<div class="gift">
+																		<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="${i.count}+'0'" class="chk_img freegiftRdo" value="noSel" usepoint="0"> 
+																		<label th:for="${i.count}+'0'">
+																			<span class="thumb"><img src="/images/pc/thumb/tmp_gift_empty.jpg" width=""alt=""></span> 
+																			<span class="name">사은품 수령안함</span>
+																			<span class="deduct">수령거부</span>
+																		</label>
+																	</div>
 																</div>
-															</th:block>
+															</div>
 														</th:block>
-														<div class="gift">
-															<input type="radio" th:name="'chk-gift'+${i.count}" th:id="${i.count}+'0'" class="chk_img" value="">
-															<label th:for="${i.count}+'0'">
-																<span class="thumb"></span>
-																<span class="name">사은품 수령안함</span>
-																<span class="deduct">수령거부</span>
-															</label>
-														</div>
-													</div>
-												</th:block>
-												
-												<br>
-												<div class="form_field">
-													<div class="gift_agree">
-														<p><input id="chk-gift_agree" type="checkbox"><label for="chk-gift_agree"><span>동의합니다</span></label></p>
-														<p class="mt20">
-															사은품 지급에 대한 내용을 확인하였으며, 이에 동의합니다.
-															<button type="button" class="btn_popup" id=""><span>안내 보기</span></button>
-														</p>
-													</div>
-												</div>
-											</div>
-										</div>
-										<!-- //사은품선택 -->
-									</li>
-									<li>
-										<!-- 할인/혜택 사용 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>할인/혜택 사용</span>
-													</div>
-													<div class="data">
 														<div class="form_field">
-															<!--<input id="chk-maxdisc" type="checkbox" checked="">-->
-															<label for="chk-maxdisc"><span>최대 할인혜택을 바로 적용하세요 (<em class="c_primary normal">-3,000원</em>)</span></label>
+															<div class="agree_gift">
+																<p>
+																	<input id="chk-agree_gift" type="checkbox">
+																	<label for="chk-agree_gift"><span>동의합니다</span></label>
+																</p>
+																<p class="txt">
+																	사은품 지금에 대한 내용을 확인하였으며, 이에 동의합니다.
+																	<button type="button" class="btn_link_popup" id="btn_infoGift_pop">
+																		<span>보기</span>
+																	</button>
+																</p>
+															</div>
 														</div>
 													</div>
-												</div>
-											</a>
-										</div>
-										<div class="fold_cont" style="display: none;">
-											<div class="area_default">
-												<div class="maxdisc">
-													<div class="form_field">
-														<input id="chk-maxdisc" type="checkbox">
-														<label for="chk-maxdisc">
-															<span>최대 할인혜택을 바로 적용하세요!</span>
-														</label>
-													</div>
-												</div>
-												<br>
-												<dl>
+												</div> <!-- //사은품선택 -->
+											</li>
+										</th:block>
+										
+										
+										<li>
+											<!-- 할인/혜택 사용 -->
+											<div class="fold_head">
+												<a href="javascript:void(0)">
 													<div>
-														<dt>할인코드</dt>
-														<dd>
-															<div class="input_wrap">
-																<input type="text" class="form_control" maxlength="13" placeholder="할인코드를 입력해주세요.">
-																<button type="submit" class="btn btn_dark">적용</button>
+														<div class="fold_tit">
+															<span>할인/혜택 사용</span>
+														</div>
+														<div class="data maxdisc">
+															<div class="form_field">
+																<input id="chk-maxdisc" type="checkbox" checked="">
+																<label for="chk-maxdisc">
+																	<span>최대 할인혜택을 바로 적용하세요 <em class="maxdisc_amount">(-3,000원)</em></span>
+																</label>
 															</div>
-														</dd>
-													</div>
-													<div>
-														<dt>할인쿠폰</dt>
-														<dd><a href="" class="btn_coupon_toggle">할인쿠폰 <span class="c_primary" th:text="|${#lists.size(cartCpnList)} 장|"></span> 적용 <i class="ico ico_ft_arrow_b"></i></a></dd>
+														</div>
 													</div>
-												</dl>
-												<div class="coupon_list">
-													<ul>
-														<th:block th:each="goods, i : ${goodsApplyCpnList}">
-															<li>
-																<div class="coupon">
-																	<div class="item_gd">
-																		<figure>
-																			<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-																			<figcaption>
-																				<div class="brand" th:text="${goods.brandEnm}+' '+${goods.brandKnm}"></div>
-																				<div class="name" th:text="${goods.goodsNm}"></div>
-																				<div class="price">
-																					<span class="selling_price" th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></span>
-																				</div>
-																			</figcaption>
-																		</figure>
-																	</div>
-																	<div class="form_field">
-																		<select id="" class="select_hidden">
-																			<th:block th:eath="goodsCpn, k : ${goodsCpnList}">
-																				<option th:value="${gooods.cpnId}" th:text="${gooods.cpnNm}"></option>
-																			</th:block>
-																		</select>
-																	</div>
-																	<button type="button" class="btn_del_coupon" id=""><span>쿠폰적용해제</span></button>
-																</div>
-															</li>
-														</th:block>
-															
-														<th:block th:if="${cartCpnList != null && #lists.size(cartCpnList) > 0}">
-															<li>
-																<div class="coupon">
-																	<div class="form_field">
-																		<label for="">장바구니 할인쿠폰</label>
-																		<select id="" class="select_hidden">
-																			<th:block th:eath="cartCpn, k : ${cartCpnList}">
-																				<option th:value="${gooods.cpnId}" th:text="${gooods.cpnNm}"></option>
-																			</th:block>
-																		</select>
+												</a>
+											</div>
+											<div class="fold_cont" style="display: none;">
+												<div class="area_seldiscount">
+													<dl>
+														<div>
+															<dt><span class="mid">할인코드</span></dt>
+															<dd>
+																<div class="form_field">
+																	<div class="input_wrap">
+																		<input type="text" class="form_control" maxlength="13" placeholder="할인코드를 입력해주세요.">
+																		<button type="button" class="btn btn_dark">적용</button>
 																	</div>
-																	<button type="button" class="btn_del_coupon" id=""><span>쿠폰적용해제</span></button>
 																</div>
-															</li>
-														</th:block>
-														
-														<th:block th:if="${delvCpnList != null && #lists.size(delvCpnList) > 0}">
-															<li>
-																<div class="coupon">
-																	<div class="form_field">
-																		<label for="">배송비 할인쿠폰</label>
-																		<select id="" class="select_hidden">
-																			<th:block th:eath="delvCpn, k : ${delvCpnList}">
-																				<option th:value="${delvCpn.cpnId}" th:text="${delvCpn.cpnNm}"></option>
+															</dd>
+														</div>
+														<div>
+															<dt>할인쿠폰</dt>
+															<dd>
+																<a href="" class="btn_coupon_toggle">할인쿠폰 <span>3장</span>적용</a>
+																<div class="coupon_list">
+																	<ul>
+																		<!--  상품쿠폰 -->
+																		<th:block th:if="${goodsApplyCpnList.size() > 0}">
+																			<th:block th:each="goods, i : ${goodsApplyCpnList}">
+																				<li>
+																					<div class="coupon">
+																						<div class="item_gd">
+																							<figure>
+																								<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+																								<figcaption>
+																									<div class="brand" th:text="${goods.brandEnm}+' '+${goods.brandKnm}"></div>
+																									<div class="name" th:text="${goods.goodsNm}"></div>
+																									<div class="price">
+																										<span class="selling_price"  th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></span>
+																									</div>
+																								</figcaption>
+																							</figure>
+																						</div>
+																						<div class="form_field">
+																							<select id="" class="select_hidden">
+																								<th:block th:eath="goodsCpn, k : ${goodsCpnList}">
+																									<option th:value="${goodsCpn.cpnId}" th:text="${goodsCpn.cpnNm}"></option>
+																								</th:block>
+																							</select>
+																						</div>
+																						<div class="cp_discount">
+																							<span class="cp_amount">-10,000원 할인적용</span>
+																							<button type="button" class="btn_del_coupon" id="">
+																								<span>쿠폰적용해제</span>
+																							</button>
+																						</div>
+																					</div>
+																				</li>
 																			</th:block>
-																		</select>
-																	</div>
-																	<button type="button" class="btn_del_coupon" id=""><span>쿠폰적용해제</span></button>
+																		</th:block>
+																		<!--  상품쿠폰 -->
+																		
+																		<!--  장바구니쿠폰 -->
+																		<th:block th:if="${cartCpnList.size() > 0}">
+																			<li>
+																				<div class="coupon">
+																					<div class="form_field">
+																						<label for="">장바구니 할인쿠폰</label> 
+																						<select id="" class="select_hidden">
+																							<th:block th:each="cartCpn, k : ${cartCpnList}">
+																								<option th:value="${cartCpn.cpnId}" th:text="${cartCpn.cpnNm}"></option>
+																							</th:block>
+																						</select>
+																					</div>
+																					<div class="cp_discount">
+																						<span class="cp_amount">-10,000원 할인적용</span>
+																						<button type="button" class="btn_del_coupon" id="">
+																							<span>쿠폰적용해제</span>
+																						</button>
+																					</div>
+																				</div>
+																			</li>
+																		</th:block>
+																		<!--  장바구니쿠폰 -->
+																		
+																		<!--  배송비쿠폰 -->
+																		<th:block th:if="${delvCpnList.size() > 0}">
+																			<li>
+																				<div class="coupon">
+																					<div class="form_field">
+																						<label for="">배송비 할인쿠폰</label> 
+																						<select id="" class="select_hidden">
+																							<th:block th:each="delvCpn, k : ${delvCpnList}">
+																								<option th:value="${delvCpn.cpnId}" th:text="${delvCpn.cpnNm}"></option>
+																							</th:block>
+																						</select>
+																					</div>
+																					<div class="cp_discount">
+																						<span class="cp_amount">-10,000원 할인적용</span>
+																						<button type="button" class="btn_del_coupon" id="">
+																							<span>쿠폰적용해제</span>
+																						</button>
+																					</div>
+																				</div>
+																			</li>
+																		</th:block>
+																		<!--  배송비쿠폰 -->
+																	</ul>
 																</div>
-															</li>
-														</th:block>
-													</ul>
+															</dd>
+														</div>
+													</dl>
 												</div>
-											</div>
-											<br>
-											<div class="area_point">
-												<dl>
-													<div>
-														<dt>선포인트</dt>
-														<dd>
-															<div class="form_field">
-																<div>
-																	<input type="radio" name="rdi-codeuse" id="rdi-codeuse1" value="">
-																	<label for="rdi-codeuse1"><span>사용 안함</span></label>
+												
+												<div class="area_selpoint">
+													<dl>
+														<div>
+															<dt>선 포인트 사용</dt>
+															<dd>
+																<div class="form_field">
+																	<div>
+																		<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint1" value="" checked=""> 
+																		<label for="rdi-beforpoint1"><span>사용 안함</span></label>
+																	</div>
+																	<div>
+																		<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint2" value=""> 
+																		<label for="rdi-beforpoint2"><span>사용함</span></label> 
+																		<span class="remain_point" th:text="|사용가능 포인트 : ${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')} P|">사용가능 포인트:1,500P</span>
+																	</div>
 																</div>
-																<div>
-																	<input type="radio" name="rdi-codeuse" id="rdi-codeuse2" value="">
-																	<label for="rdi-codeuse2"><span>사용함</span></label>
-																	<span>사용가능 포인트&nbsp;:&nbsp;<em th:text="${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}"></em>&nbsp;P</span>
+															</dd>
+														</div>
+														<div>
+															<dt>
+																<span class="mid">스타일 포인트</span>
+															</dt>
+															<dd>
+																<div class="form_field">
+																	<!-- 스타일 포인트 3만원 이상 결제시 노출 -->
+																	<div class="input_wrap">
+																		<input type="text" class="form_control" maxlength="" placeholder="사용할 포인트를 입력해주세요.">
+																		<button type="button" class="btn btn_dark">적용</button>
+																	</div>
+																	<!-- 스타일 포인트 3만원 이상 결제시 노출 -->
+																	
+																	<!-- 스타일 포인트 3만원 미만 결제시 노출 -->
+																	<div class="input_wrap">
+																		<input type="text" class="form_control" maxlength="" placeholder="3만원 이상 결제시에만 포인트 사용이 가능합니다." disabled>
+																		<button type="button" class="btn btn_dark">적용</button>
+																	</div>
+																	<!-- //스타일 포인트 3만원 미만 결제시 노출 -->
+																	<p><span class="remain_point" th:text="|보유 : ${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')} P|"></span>(결제금액의 최대 40%까지 사용가능)</p>
 																</div>
-															</div>
-														</dd>
-													</div>
-												</dl>
-											</div>
-
-											<div class="point_code">
-												<div class="form_field">
-													<label class="ui_col_3 input_label">스타일 포인트</label>
-													<div class="ui_col_9">
-														<div class="input_wrap">
-															<input type="text" class="form_control" maxlength="13" placeholder="사용할 포인트를 입력해주세요.">
-															<button type="submit" class="btn btn_dark">적용</button>
+															</dd>
 														</div>
-														<div class="save_point">
-															<p>보유 : <span th:text="|${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')} P|"></span></p>
+														<div>
+															<dt>
+																<span class="mid">상품권</span>
+															</dt>
+															<dd>
+																<div class="form_field">
+																	<div class="input_wrap">
+																		<input type="text" class="form_control" maxlength="" placeholder="사용할 금액을 입력해주세요.">
+																		<button type="button" class="btn btn_dark">적용</button>
+																	</div>
+																	<p><span class="remain_point" th:text="|보유 : ${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')} 원|"></span></p>
+																	<div class="agree_receipt">
+																		<input id="chk-receipt" type="checkbox"> 
+																		<label for="chk-receipt"><span>상품권 현금영수증 신청</span></label>
+																		<div class="info_box">
+																			<div class="input_wrap">
+																				<input type="text" class="form_control" maxlength="11" placeholder="">
+																			</div>
+																		</div>
+																	</div>
+																</div>
+															</dd>
 														</div>
-													</div>
+													</dl>
 												</div>
-												<br>
-												<div class="form_field">
-													<label class="ui_col_3 input_label">상품권</label>
-													<div class="ui_col_9">
-														<div class="input_wrap">
-															<input type="text" class="form_control" maxlength="13" placeholder="사용할 상품권금액 입력해주세요.">
-															<button type="submit" class="btn btn_dark">적용</button>
-														</div>
-														<div class="save_point">
-															<p>보유 : <span th:text="|${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')} 원|"></span></p>
-														</div>
+											</div> <!-- //할인/혜택 사용 -->
+										</li>
+										<li class="fold_paymethod">
+											<!-- 결제수단 선택 -->
+											<div class="fold_head">
+												<a href="javascript:void(0)">
+													<div>
+														<div class="fold_tit"><span>결제수단 선택</span></div>
+														<div class="data"><span>STYLE24 간편결제</span></div>
 													</div>
-												</div>
+												</a>
 											</div>
-
-										</div>
-										<!-- //할인/혜택 사용 -->
-									</li>
-									<li>
-										<!-- 결제수단 선택 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>결제수단 선택</span>
-													</div>
-												</div>
-											</a>
-										</div>
-										<div class="fold_cont" style="display: none;">
-											<div class="paymethod_list">
-												<div class="paymethod on">
-													<div class="paymethod_wrap">
-														<input type="radio" name="radio_card" id="rdi-card-1" value="1" checked>
-														<label for="rdi-card-1" data="0">
-															STYLE24 간편결제
-														</label>
-														<div class="paymethod_body">
-															<div class="add_card">
-																<div class="plus_card">
-																	<div class="cross_wrap">
-																		<button>
-																			<div class="cross"></div>
+											<div class="fold_cont" style="display: none;">
+												<div class="area_paymethod">
+													<div class="form_field">
+														<div class="radio_blk">
+															<div class="paymethod_radio">
+																<input type="radio" name="rdi-paymethod" id="rdi-paymethod-quick" value=""> 
+																<label for="rdi-paymethod-quick"><span>STYLE24 간편결제</span></label>
+																<div class="quickpay_bnr">
+																	<span>3초면 결제 끝! 추가 혜택 할인과 함께 만나는 STYLE24 간편결제! 지금 바로 등록하세요!</span>
+																	<button type="button" class="btn_close_bnr">
+																		<span class="sr-only">닫기</span>
+																	</button>
+																</div>
+															</div>
+															<div class="paymethod_box" style="display: none;">
+																<div class="card_quickpay">
+																	<!-- 등록카드 없을때 -->
+																	<div class="empty">
+																		<button type="button" class="btn_addcard">
+																			<span>결제수단 등록</span>
 																		</button>
 																	</div>
-																	<div class="enrollment">
-																		<p>결제수단 등록</p>
+																	<!-- //등록카드 없을때 -->
+																	
+																	<!-- 등록카드 있을때 -->
+																	<div class="list_card swiper-container">
+																		<div class="swiper-wrapper">
+																			<div class="swiper-slide">
+																				<!-- 등록된 카드 -->
+																				<div class="card">
+																					<span class="logo_samsung">삼성카드</span>
+																					<p class="number">
+																						<span>9410</span> <span>09**</span> <span>****</span>
+																						<span>1287</span>
+																					</p>
+																					<p class="name">삼성개인특별카드</p>
+																					<select name="" id="" class="select_month">
+																						<option value="">일시불</option>
+																						<option value="">2개월 무이자</option>
+																						<option value="">3개월 무이자</option>
+																						<option value="">4개월 무이자</option>
+																						<option value="">5개월 무이자</option>
+																						<option value="">6개월 무이자</option>
+																						<option value="">7개월</option>
+																						<option value="">8개월</option>
+																						<option value="">9개월</option>
+																						<option value="">10개월</option>
+																						<option value="">11개월</option>
+																						<option value="">12개월</option>
+																					</select>
+																					<div class="etc">
+																						<button type="button" class="btn_favorcard">
+																							<span><i class="ico ico_star"></i><em class="sr-only">즐겨찾기</em></span>
+																						</button>
+																						<button type="button" class="btn_delcard">
+																							<span><i class="ico ico_trash_wh"></i><em class="sr-only">카드삭제</em></span>
+																						</button>
+																					</div>
+																				</div>
+																				<!-- //등록된 카드 -->
+																			</div>
+																			<div class="swiper-slide">
+																				<!-- 등록된 카드 -->
+																				<div class="card">
+																					<span class="logo_hyundai">현대카드</span>
+																					<p class="number">
+																						<span>9410</span> <span>09**</span> <span>****</span>
+																						<span>1287</span>
+																					</p>
+																					<p class="name">현대 M3 카드</p>
+																					<select name="" id="" class="select_month">
+																						<option value="">일시불</option>
+																						<option value="">2개월 무이자</option>
+																						<option value="">3개월 무이자</option>
+																						<option value="">4개월 무이자</option>
+																						<option value="">5개월 무이자</option>
+																						<option value="">6개월 무이자</option>
+																						<option value="">7개월</option>
+																						<option value="">8개월</option>
+																						<option value="">9개월</option>
+																						<option value="">10개월</option>
+																						<option value="">11개월</option>
+																						<option value="">12개월</option>
+																					</select>
+																					<div class="etc">
+																						<button type="button" class="btn_favorcard active">
+																							<span><i class="ico ico_star"></i><em class="sr-only">즐겨찾기</em></span>
+																						</button>
+																						<button type="button" class="btn_delcard">
+																							<span><i class="ico ico_trash_wh"></i><em class="sr-only">카드삭제</em></span>
+																						</button>
+																					</div>
+																				</div>
+																				<!-- //등록된 카드 -->
+																			</div>
+																			<div class="swiper-slide">
+																				<!-- 카드추가버튼 -->
+																				<button type="button" class="btn_addcard">
+																					<span>결제수단 등록</span>
+																				</button>
+																				<!-- //카드추가버튼 -->
+																			</div>
+																		</div>
+																		<div class="swiper-button-next"></div>
+																		<div class="swiper-button-prev"></div>
 																	</div>
+																	<!-- //등록카드 있을때 -->
 																</div>
-															</div>
-															<div class="paymethod_text">
-																<p>&#183; 결제수단 등록 한번으로 간편하게 결제하실 수 있습니다.</p>
-																<p>&#183; 국내 8개 카드에 대해 이용 가능합니다. (법인카드,기프트카드,해외카드 제외)</p>
-																<p>&#183; 일반 신용카드의 할인혜택은 적용되지 않습니다.</p>
+																<ul class="info_quick">
+																	<li>결제수단 등록 한번으로 간편하게 결제하실 수 있습니다.</li>
+																	<li>국내 8개 카드에 대해 이용 가능합니다. (법인카드,기프트카드,해외카드 제외)</li>
+																	<li>일반 신용카드의 할인혜택은 적용되지 않습니다.</li>
+																</ul>
 															</div>
 														</div>
-													</div>
-												</div>
-												<div class="paymethod">
-													<div class="paymethod_wrap">
-														<input type="radio" name="radio_card" id="rdi-card-2" value="2">
-														<label for="rdi-card-2"  data="1">
-															일반 결제
-														</label>
-														<div class="paymethod_body">
-															<div class="form_field">
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-8" value="8"><label for="rdi-8"> <span>신용카드</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-9" value="9"><label for="rdi-9"> <span>실시간계좌이체</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-10" value="10"><label for="rdi-10"> <span>무통장입금</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-11" value="11"><label for="rdi-11"> <span>휴대폰 결제</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-12" value="12"><label for="rdi-12"> <span>카카오페이</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-13" value="13"><label for="rdi-13"> <span>네이버엔페이</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-14" value="14"><label for="rdi-14"> <span>페이코</span> </label>
+														<div class="radio_blk">
+															<div class="paymethod_radio">
+																<input type="radio" name="rdi-paymethod" id="rdi-paymethod-normal" value=""> 
+																<label for="rdi-paymethod-normal"><span>일반 결제</span></label>
+															</div>
+															<div class="paymethod_box" style="display: none;">
+																<ul class="sel_method">
+																	<li>
+																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal1" value=""> 
+																		<label for="rdi-paynormal1"><span>신용카드</span></label>
+																	</li>
+																	<li>
+																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal2" value=""> 
+																		<label for="rdi-paynormal2"><span>실시간계좌이체</span></label>
+																	</li>
+																	<li>
+																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal3" value=""> 
+																		<label for="rdi-paynormal3"><span>무통장입금</span></label>
+																	</li>
+																	<li>
+																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal4" value=""> 
+																		<label for="rdi-paynormal4"><span>휴대폰 결제</span></label>
+																	</li>
+																	<li>
+																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal5" value=""> 
+																		<label for="rdi-paynormal5">
+																			<span>
+																				<em class="sr-only">카카오페이 결제</em>
+																				<em class="payimg kakao"></em>
+																			</span>
+																		</label>
+																	</li>
+																	<li>
+																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal6" value=""> 
+																		<label for="rdi-paynormal6">
+																			<span>
+																				<em class="sr-only">네이버페이 결제</em>
+																				<em class="payimg naver"></em>
+																			</span>
+																		</label>
+																	</li>
+																	<li>
+																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal7" value=""> 
+																		<label for="rdi-paynormal7">
+																			<span>
+																				<em class="sr-only">페이코 결제</em>
+																				<em class="payimg payco"></em>
+																			</span>
+																		</label>
+																	</li>
+																</ul>
+																<div class="agree_insurance">
+																	<input id="chk-insurance" type="checkbox"> 
+																	<label for="chk-insurance"> 
+																		<span>소비자 피해 보상보험 신청&nbsp;&nbsp;<em class="tmark_optional">(선택)</em></span>
+																		<button type="button" class="btn_link_popup" id="">
+																			<span>FAQ확인</span>
+																		</button>
+																	</label>
+																	<p>
+																		‘전자상거래 등에서의 소비자보호에 관한 법률‘에 따라 현금 결제 시 서울보증보험㈜가 제공하는
+																		소비자 피해보상보험을<br>신청할 수 있도록 해드리고 있습니다.
+																		(2013.11.28부터 시행)
+																	</p>
 																</div>
 															</div>
 														</div>
 													</div>
-												</div>
-											</div>
-											<!-- case1,2 간편결제,일반결제 결과-->
-											<div class="payment type01 active">
-												<div class="form_field">
-													<div>
-														<input id="chk-3" type="checkbox"><label for="chk-3"> <span>선택한 결제수단으로 향후 결제 이용에 동의합니다. <a href="#none">(선택)</a></span> </label>
-													</div>
-												</div>
-												<div class="privacy_consent">
-													<p>개인정보 제공에 대한 동의</p>
-													<span>개인정보를 제공받는 자 : 업체명,업체명,업체명</span>
-													<span>개인정보를 제공받는 자의 개인정보 이용 목적 : 주문상품의 배송,고객상당 및 불만처리</span>
-													<span>제공하는 개인정보의 항목:성명,주소,연락처</span>
-													<span>개인정보 제공받는 자의 개인정보 보유 및 이용기간 : 이용목적 달성 시 까지</span>
 													<div class="form_field">
-														<div>
-															<input id="chk-4" type="checkbox"><label for="chk-4"> <span>동의합니다.</span> </label>
+														<div class="agree_paymethod">
+															<input id="chk-agree_paymethod" type="checkbox">
+															<label for="chk-agree_paymethod"> 
+																<span>선택한 결제수단으로 향후 결제 이용에 동의합니다.&nbsp;&nbsp;<em class="tmark_optional">(선택)</em>
+															</span>
+															</label>
 														</div>
 													</div>
 												</div>
-												<div class="form_field">
-													<div>
-														<input id="chk-5" type="checkbox"><label for="chk-5"> <span>주문하실 상품,가격,배송정보,할인정보 등을 확인하였으며,구매에 동의하시겠습니까? (전자상거래법 제8조 2항)</span> </label>
-													</div>
-												</div>
-												<div class="ui_row">
-													<div class="ui_col_12">
-														<button class="btn btn_dark btn_block"><span>123,456,789</span>원 결제하기</button>
-													</div>
-												</div>
-											</div>
-											<div class="payment type02">
-												<div class="form_field">
-													<div>
-														<input id="chk-3" type="checkbox"><label for="chk-3"> <span>소비자 피해 보상보험 신청 <a href="#none">(선택)</a></span> <button class="faq">FAQ확인</button> </label>
-													</div>
-													<div>
-														<p>&#145;전자상거래 등에서의 소비자보호에 관한 법률&#146;에 따라 현금 결제 시 서울보증보험(주)가 제공하는 소비자 피해보상보험을<br>신청할 수 있도록 해드리고 있습니다. (2013.11.28부터 시행)</p>
-													</div>
-												</div>
-												<div class="privacy_consent">
-													<p>개인정보 제공에 대한 동의</p>
-													<span>개인정보를 제공받는 자 : 업체명,업체명,업체명</span>
-													<span>개인정보를 제공받는 자의 개인정보 이용 목적 : 주문상품의 배송,고객상당 및 불만처리</span>
-													<span>제공하는 개인정보의 항목:성명,주소,연락처</span>
-													<span>개인정보 제공받는 자의 개인정보 보유 및 이용기간 : 이용목적 달성 시 까지</span>
-													<div class="form_field">
-														<div>
-															<input id="chk-4" type="checkbox"><label for="chk-4"> <span>동의합니다.</span> </label>
+												<div class="area_paymentinfo">
+													<div class="paymentinfo">
+														<div class="payinfo_blk on">
+															<a href=""> 개인정보 제공에 대한 동의 <span>닫기</span>
+															</a>
+															<div class="infotxt">개인정보제공에 대한 동의 내용입니다.개인정보제공에
+																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
+																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
+																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
+																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
+																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
+																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
+																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
+																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
+																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
+																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
+																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
+																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
+																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
+																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.</div>
+														</div>
+														<div class="payinfo_blk">
+															<a href=""> 결제대행 서비스 약관 동의 <span>보기</span>
+															</a>
+															<div class="infotxt">결제대행서비스 약관 동의 내용입니다.결제대행서비스
+																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
+																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
+																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
+																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
+																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
+																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
+																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
+																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
+																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
+																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
+																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
+																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
+																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
+																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.</div>
 														</div>
 													</div>
+
+													<div class="agree_payment">위 주문내역을 확인 하였으며, 회원 본인은 결제에 동의합니다.</div>
 												</div>
-												<div class="form_field">
-													<div>
-														<input id="chk-5" type="checkbox"><label for="chk-5"> <span>주문하실 상품,가격,배송정보,할인정보 등을 확인하였으며,구매에 동의하시겠습니까? (전자상거래법 제8조 2항)</span> </label>
-													</div>
-												</div>
-												<div class="ui_row">
-													<div class="ui_col_12">
-														<button class="btn btn_dark btn_block"><span>123,456,789</span>원 결제하기</button>
+												<div class="area_paybtn">
+													<div class="form_field">
+														<button type="button" class="btn btn_primary btn_block">동의 후 123,456,789원 결제하기</button>
 													</div>
 												</div>
-											</div>
-											<!-- //case1,2 간편결제,일반결제 결과-->
-										</div>
-									</li>
-								</ul>
+											</div> <!-- //결제수단 선택 -->
+										</li>
+									</ul>
+								</div>
 							</div>
 						</div>
-					</section>
-
-					<section class="od_side fr">
-						<div class="area_order">
-							<div class="tit_box">
-								<h3 class="subH2">주문내역</h3>
-								<span>
-									<em class="c_primary bold" th:text="${delvTotCnt}"></em> 개의 상품
-								</span>
-							</div>
-							<div class="od_item_box">
-								<!-- 총알배송, 일반배송 -->
-								<div class="part_dlvr" id="wmsDelvArea" style="display:none;">
-									<h4 class="subH3 mb20" id="shotDelvTitle">STYLE24 총알배송<span>오늘 자정까지 도착</span></h4>
-									<h4 class="subH3 mb20" id="wmsDelvTitle">STYLE24 일반배송</h4>
-									<div class="gd_list">
-
-										<th:block th:each="goods, i : ${wmsCartList}">
-											<div class="item_gd">
-												<figure>
-													<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-													<figcaption>
-														<div class="brand" th:text="${goods.brandEnm}"></div>
-														<div class="name" th:text="${goods.goodsNm}"></div>
-														<div class="option" th:each="opt, index : ${goods.itemNmArr}">
-															<span class="option">옵션:<em th:text="${goods.optCdArr[index.index]}"></em></span>
-														</div>
-														<br/>
-														<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
-														<div class="price">
-															<span class="selling_price" th:text="|${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')} 원|"></span>
-														</div>
-													</figcaption>
-												</figure>
+						<div class="od_side">
+							<div class="area_order">
+								<div class="tit_box">
+									<h3 class="subH2">주문내역</h3>
+									<span> <em class="number" th:text="${delvTotCnt}"></em>개의 상품
+									</span>
+								</div>
+								<div class="od_item_box">
+									<!-- 총알배송, 일반배송-->
+									<th:block th:if="${wmsCartList != null and #lists.size(wmsCartList) > 0}">
+										<div class="part_dlvr">
+											<h4 class="subH3 mb20" id="shotDelvTitle">STYLE24 총알배송<span>오늘 자정까지 도착</span></h4>
+											<h4 class="subH3 mb20" id="wmsDelvTitle">STYLE24 일반배송</h4>
+											<div class="gd_list">
+												<th:block th:each="goods, i : ${wmsCartList}">
+													<div class="item_gd">
+														<figure>
+															<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+															<figcaption>
+																<div class="brand" th:text="${goods.brandEnm} + ${goods.brandKnm}"></div>
+																<div class="name" th:text="${goods.goodsNm}"></div>
+																<div class="option" th:each="opt, index : ${goods.itemNmArr}">
+																	<span th:text="${goods.optCdArr[index.index]}"></span> 
+																	<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
+																</div>
+																<div class="price">
+																	<span class="selling_price" th:text="|${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')} 원|"></span>
+																</div>
+															</figcaption>
+														</figure>
+													</div>
+												</th:block>
 											</div>
-										</th:block>
-										
-										
-										
-									</div>
+										</div>
+									</th:block>
+									<!-- //총알배송, 일반배송 -->
 									
+									<!-- 업체직배송 -->
+									<th:block th:if="${delvCartList != null and #lists.size(delvCartList) > 0}">
+										<div class="part_dlvr">
+											<h4 class="subH3 mb20">업체직배송</h4>
+											<div class="gd_list">
+												<th:block th:each="goods, i : ${delvCartList}">
+													<div class="item_gd">
+														<figure>
+															<span class="thumb"><img
+																src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+															<figcaption>
+																<div class="brand" th:text="${goods.brandEnm} + ${goods.brandKnm}"></div>
+																<div class="name" th:text="${goods.goodsNm}"></div>
+																<div class="option">
+																	<span th:text="${goods.optCd}"></span> 
+																	<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
+																</div>
+																<div class="price">
+																	<span class="selling_price" th:text="|${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')} 원|"></span>
+																</div>
+															</figcaption>
+														</figure>
+													</div>
+												</th:block>
+											</div>
+										</div>
+									</th:block>
+									<!-- //업체직배송 -->
 									
-								</div>
-								<!-- //총알배송, 일반배송 -->
-
-								<!-- 업체직배송 -->
-								<div class="part_dlvr" id="delvDelvArea" style="display:none;">
-									<h4 class="subH3 mb20">업체직배송</h4>
-									<div class="gd_list">
-										<div class="item_gd">
-											<th:block th:each="goods, i : ${delvCartList}">
-												<div class="item_gd">
-													<figure>
-														<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-														<figcaption>
-															<div class="brand" th:text="${goods.brandEnm}"></div>
-															<div class="name" th:text="${goods.goodsNm}"></div>
-															<div class="option">
-																<span th:text="${goods.optCd}"></span>
-																<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
-															</div>
-															<div class="price">
-																<span class="selling_price" th:text="${goods.currPrice}"></span>
-															</div>
-														</figcaption>
-													</figure>
-												</div>
-											</th:block>
+									<!-- 예약배송 -->
+									<th:block th:if="${resCartList != null and #lists.size(resCartList) > 0}">
+										<div class="part_dlvr">
+											<h4 class="subH3 mb20">예약배송</h4>
+											<div class="gd_list">
+												<th:block th:each="goods, i : ${resCartList}">
+													<div class="item_gd">
+														<figure>
+															<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+															<figcaption>
+																<div class="brand" th:text="${goods.brandEnm}"></div>
+																<div class="name" th:text="${goods.goodsNm}"></div>
+																<div class="option">
+																	<span th:text="${goods.optCd}"></span>
+																	<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
+																</div>
+																<div class="price">
+																	<span class="selling_price" th:text="${goods.currPrice}"></span>
+																</div>
+															</figcaption>
+														</figure>
+														<p class="info_reserv">
+															<i class="ico ico_calender"></i><span>2021.01.15</span>
+															배송예정상품
+														</p>
+													</div>
+												</th:block>
+											</div>
 										</div>
-									</div>
+									</th:block>
+									<!-- //예약배송 -->
 								</div>
-								<!-- //업체직배송 -->
-
-								<!-- 예약배송 -->
-								<div class="part_dlvr" id="resDelvArea" style="display:none;">
-									<h4 class="subH3 mb20">예약배송</h4>
-									<div class="gd_list">
-										<div class="item_gd">
-											<th:block th:each="goods, i : ${resCartList}">
-												<div class="item_gd">
-													<figure>
-														<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-														<figcaption>
-															<div class="brand" th:text="${goods.brandEnm}"></div>
-															<div class="name" th:text="${goods.goodsNm}"></div>
-															<div class="option">
-																<span th:text="${goods.optCd}"></span>
-																<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
-															</div>
-															<div class="price">
-																<span class="selling_price" th:text="${goods.currPrice}"></span>
-															</div>
-														</figcaption>
-													</figure>
-												</div>
-											</th:block>
+								
+								<div class="od_amount_box">
+									<dl>
+										<div>
+											<dt>상품금액</dt>
+											<dd>1,590,000 원</dd>
+										</div>
+										<div>
+											<dt>배송비</dt>
+											<dd>0원</dd>
+										</div>
+										<div>
+											<dt>할인금액</dt>
+											<dd><span class="disc_amount">-1,746,500원</span></dd>
+										</div>
+										<div>
+											<dt>다다익선할인금액</dt>
+											<dd><span class="disc_amount">25,000원</span></dd>
 										</div>
-									</div>
+										<div>
+											<dt>쿠폰할인금액</dt>
+											<dd><span class="disc_amount">3,000원</span></dd>
+										</div>
+										<div>
+											<dt>선포인트 사용</dt>
+											<dd><span class="disc_amount">-1,500P</span></dd>
+										</div>
+										<div>
+											<dt>포인트 사용</dt>
+											<dd><span class="disc_amount">-5,500P</span></dd>
+										</div>
+										<div>
+											<dt>상품권 사용</dt>
+											<dd><span class="disc_amount">-50,000원</span></dd>
+										</div>
+									</dl>
+								</div>
+								<div class="totalprice_box">
+									<dl>
+										<dt>총 결제 예정 금액</dt>
+										<dd data-weight="price" data-font="lato">
+											<span>3,546,200</span>원
+										</dd>
+									</dl>
+									<p class="info_point">
+										스타일 포인트 <span class="save_point">3,500 P</span> 적립예정
+									</p>
 								</div>
-								<!-- //예약배송 -->
-							</div>
-
-							<div class="od_amount_box">
-								<dl>
-									<div>
-										<dt>상품금액</dt>
-										<dd>1,590,000 원</dd>
-									</div>
-									<div>
-										<dt>배송비</dt>
-										<dd>0원</dd>
-									</div>
-									<div>
-										<dt>할인금액</dt>
-										<dd class="c_primary">-1,746,500원</dd>
-									</div>
-									<div>
-										<dt>다다익선할인금액</dt>
-										<dd class="c_primary">25,000원</dd>
-									</div>
-									<div>
-										<dt>쿠폰할인금액</dt>
-										<dd class="c_primary">3,000원</dd>
-									</div>
-									<div>
-										<dt>선포인트 사용</dt>
-										<dd class="c_primary">-1,500P</dd>
-									</div>
-									<div>
-										<dt>포인트 사용</dt>
-										<dd class="c_primary">-5,500P</dd>
-									</div>
-									<div>
-										<dt>상품권 사용</dt>
-										<dd class="c_primary">-50,000원</dd>
-									</div>
-								</dl>
-							</div>
-
-
-							<div class="totalprice_box">
-								<dl>
-									<dt>총 결제 예정 금액</dt>
-									<dd data-weight="price" data-font="lato"><span>3,546,200</span>원</dd>
-								</dl>
-								<p class="info_point">
-									스타일 포인트 <span class="c_primary">3,500 P</span> 적립예정
-								</p>
 							</div>
-
-
 						</div>
-					</section>
-					<div class="clear"></div>
+					</form>
 					<!-- // CONT-BODY -->
 				</div>
 			</div>
 		</div>
 	</div>
-	<!-- // container -->
-
-	<script th:inline="javascript">
-		// 배송관련정보 변수선언
-		var wmsCnt 				= [[${wmsCnt}]];				// 자사 일반,촐알 배송건수
-		var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
-		var delvCnt 			= [[${delvCnt}]];				// 입전 일반 배송건수
-		var shotDelvYn			= [[${shotDelvYn}]];			// 총알배송여부
+</form>
+
+<!-- // container -->
+<footer id="footer"></footer>
+
+<!-- 배송지변경팝업 -->
+<div class="modal fade od_pop adrsChange_pop" id="adrsChangePop" tabindex="-1" role="dialog" aria-labelledby="adrsChangeLabel" aria-hidden="true"></div>
+
+<!-- 배송지수정팝업 -->
+<div class="modal fade od_pop adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" aria-hidden="true"></div>
+
+<!-- 배송지추가팝업 -->
+<div class="modal fade od_pop adrsAdd_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true"></div>
+
+<!-- 배송요청사항수정 팝업 -->
+<div class="modal fade od_pop rqstModify_pop" id="rqstModifyPop" tabindex="-1" role="dialog" aria-labelledby="rqstModifyLabel" aria-hidden="true"></div>
+
+<!-- 사은품지급안내 팝업 -->
+<div class="modal fade od_pop infoGift_pop" id="infoGiftPop" tabindex="-1" role="dialog" aria-labelledby="infoGiftLabel" aria-hidden="true"></div>
+
+<script type="text/javascript">
+
+$(document).ready( function() {
+	
+	// 배송지변경 팝업열기
+	$(document).on('click','#btn_adrsChange_pop',function(e){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/order/delvAddrChangePop',
+			dataType 	: 'html',
+			success 	: function(result) {
+				if (result != null) {
+					$("#adrsChangePop").html(result);
+					$("#adrsChangePop").modal("show");
+				}
+			}
+		});
 		
-		// 할인관련정보 변수선언
-		var freegiftList		= [[${freegiftList}]];			// 사은품 프로모션 목록
-		var freegiftGoodsList	= [[${freegiftGoodsList}]];		// 사은품 프로모션 상품 목록
-
-		// 총알배송가능 지역, 총알배송 가능 시간 체크
-		var fnGetDailyDeliveryCheck = function () {
-			// TODO
-			var jsonObj 	= {"zipNo" : 12345};
-			var jsonData 	= JSON.stringify(jsonObj);
-
-			gagajf.ajaxJsonSubmit(
-				"/order/getDailyDeliveryCheck"
-				, jsonData
-				, function (result) {
-					// 자사몰 일반배송
-					$("#shotDelv").text(0);
-					$("#wmsDelv").text(wmsCnt);
-					$("#wmsDelvTitle").css("display", "block");
-					$("#shotDelvTitle").css("display", "none");
-
-					// 자사몰 총알배송
-					if (shotDelvYn == "Y") {
-						if (parseInt(result) > 0) {
-							$("#shotDelv").text(wmsCnt);
-							$("#wmsDelv").text(0);
-							
-							$("#wmsDelvTitle").css("display", "none");
-							$("#shotDelvTitle").css("display", "block");
-						}
-					}
+		return false;
+	});
+
+	// 배송지추가 팝업열기
+	$(document).on('click','#btn_addrAdd_pop',function(e){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/order/delvAddrAddPop',
+			dataType 	: 'html',
+			success 	: function(result) {
+				if (result != null) {
+					$("#adrsAddPop").html(result);
+					$("#adrsAddPop").modal("show");
 				}
-			)
-		}
-	</script>
-
-	<script type="text/javascript">
-		// 컨텐츠 호출
-		$(document).ready( function() {
-			// 1. 총알배송가능 지역, 총알배송 가능 시간 체크
-			fnGetDailyDeliveryCheck();
-			
-			// 2. 배송목록 화면 노출, 비노출 처리
-			// 2.1 자사일반배송노출
-			if (wmsCnt > 0) {
-				$("#wmsDelvArea").css("display", "block");
 			}
-			
-			// 2.2 입점업체일반배송노출
-			if (delvCnt > 0) {
-				$("#delvDelvArea").css("display", "block");
+		});
+		
+		return false;
+	});
+
+	// 배송지수정 팝업열기
+	$("#btn_addrModify_pop").on("click", function(e){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/order/delvAddrModifyPop',
+			dataType 	: 'html',
+			success 	: function(result) {
+				if (result != null) {
+					$("#adrsModifyPop").html(result);
+					$("#adrsModifyPop").modal("show");
+				}
+			}
+		});
+		
+		return false;
+	});
+
+	// 배송요청사항 팝업열기
+	$("#btn_rqstModify_pop").on("click", function(e){
+		var jsonObj = new Object();
+		jsonObj.delvMemo = $("input[name='delvMemo']").val();
+		
+		$.ajax({
+			type		: "POST",
+			url 		: "/order/delvMemoChangePop",
+			data		: jsonObj,
+			dataType 	: "html",
+			success 	: function(result) {
+				if (result != null) {
+					$("#rqstModifyPop").html(result);
+					$("#rqstModifyPop").modal("show");
+				}
 			}
-			
-			// 2.3 자사예약배송노출
-			if (resCnt > 0) {
-				$("#resDelvArea").css("display", "block");
+		});
+		
+		return false;
+	});
+		
+	// 해외배송 입력
+	$(document).on('change','.odPayment .area_overseas #rdi-overs1', function(e){
+		$('.info_box.overs2').hide();
+		$('.info_box.overs1').show();
+		return false;
+	}).on('change','.odPayment .area_overseas #rdi-overs2', function(e){
+		$('.info_box.overs1').hide();
+		$('.info_box.overs2').show();
+		return false;
+	});
+	
+	// 사은품지급안내 팝업열기
+	$("#btn_infoGift_pop").on("click",function(e){
+		$.ajax({
+			type		: "POST",
+			url 		: "/order/freegiftInfoPop",
+			dataType 	: "html",
+			success 	: function(result) {
+				if (result != null) {
+					$("#infoGiftPop").html(result);
+					$("#infoGiftPop").modal("show");
+				}
 			}
 		});
+		
+		return false;
+	});
+
+	// 할인쿠폰 확인
+	$(document).on('click','.odPayment .area_seldiscount .btn_coupon_toggle',function(e){
+		$('.coupon_list').toggle();
+		$(this).toggleClass('on');
+		return false;
+	});
+
+	// 결제수단 선택
+	$(document).on('change','.odPayment .area_paymethod .paymethod_radio input',function(e){
+		$('.radio_blk').removeClass('on');
+		$(this).parents('.radio_blk').addClass('on');
+		$(this).parents('.radio_blk').find('.paymethod_box').show();
+		$(this).parents('.radio_blk').siblings('div').find('.paymethod_box').hide();
+
+		var paymethodlabel =  $(this).prop('labels');
+		$(this).parents('li').find('.fold_head .data span').text($(paymethodlabel).text());
 
-		$(function(){
-			$('.od .od_cont').on('click','.area_overseas input',function(e){
-				//해외배송 입력
-				e.preventDefault();
-				$(this).parent('div').find('.info_box').show();
-				$(this).parent('div').siblings('div').find('.info_box').hide();
-			}).on('click','.btn_coupon_toggle',function(e){
-				//할인쿠폰 확인
-				e.preventDefault();
-				$('.coupon_list').toggle();
-				$(this).toggleClass('on');
-			});
+		// 간편결제 카드추가 슬라이드
+		var swiper = new Swiper('.paymethod_box .card_quickpay .list_card', {
+			slidesPerView: 'auto',
+			spaceBetween: 160,
+			centeredSlides: true,
+			navigation: {
+				nextEl: '.list_card .swiper-button-next',
+				prevEl: '.list_card .swiper-button-prev',
+			},
 		});
-	</script>
-</th:block>
+		return false;
+	});
+
+	// STYLE24 간편결제 배너닫기
+	$(document).on('click','.odPayment .area_paymethod .quickpay_bnr .btn_close_bnr',function(e){
+		$('.quickpay_bnr').hide();
+	});
+
+	// 결제수단 선택 > 즐겨찾기 추가시 
+	$(document).on('click','.odPayment .area_paymethod .paymethod_box .card .etc .btn_favorcard',function(e){
+		$(this).toggleClass('active');
+		return false;
+	});
+
+	// 결제수단 > 일반결제> 실시간계좌이체 선택시            
+	$(document).on('change','.odPayment input:radio[name=rdi-paynormal]',function(e){
+		var paynormalValue = $(this).attr('id');
+		
+		if (paynormalValue == 'rdi-paynormal2') {
+			$('.area_paymethod .agree_insurance').show();
+		} else {
+			$('.area_paymethod .agree_insurance').hide();
+		}
+		return false;
+	});
+
+	// 개인정보동의 열고닫기
+	$(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){		
+		e.preventDefault();
+		$(this).parents('.payinfo_blk').toggleClass('on');
+		var privacyToggle = $(this).find('span');
+		$(privacyToggle).text($(privacyToggle).text() == '보기' ? '닫기' : '보기');
+		return false;
+	});
+
+	// 간편결제등록 > STEP1.이용약관 팝업열기
+	$(document).on('click','.btn_addcard',function(e){
+		$("#qPayAgree_pop").modal("show");
+		return false;
+	});
 
+	// 간편결제등록 > STEP1.이용약관 체크
+	$(document).on('click','.area_QpayCk .agr_select button',function(e){
+		$(this).parents('.area_QpayCk').find('.info_agrQpay').toggle();
+		var payagrToggle = $(this).find('span');
+		$(payagrToggle).text($(payagrToggle).text() == '약관열기' ? '약관닫기' : '약관열기');
+		return false;
+	});
 
+	// 간편결제등록 > STEP1.이용약관 체크박스 전체선택
+	$(document).on('click','#chk-Qpay-agrAll',function(e){
+		$(this).parents(".qPayAgree_pop").find('.agree_Qpay input').prop("checked", $(this).is(":checked"));
+	});
+
+	// 간편결제등록 > STEP1.이용약관 체크박스 개별선택
+	$(document).on("click", ".agree_Qpay input",function(e){
+		var is_checked = true;
+		$(".agree_Qpay input").each(function(){
+			is_checked = is_checked && $(this).is(":checked");
+		});
+		$("#chk-Qpay-agrAll").prop("checked", is_checked);
+	});
 
+	// 간편결제등록 > 본인인증 팝업열기
+	$(document).on('click','#btn_qPayidConfirm_pop',function(e){
+		$("#qPayidConfirm_pop").modal("show");
+		return false;
+	});
 
+});
+</script>
 
+<script th:inline="javascript">
+	// 배송관련정보 변수선언
+	var wmsCnt 				= [[${wmsCnt}]];				// 자사 일반,촐알 배송건수
+	var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
+	var delvCnt 			= [[${delvCnt}]];				// 입전 일반 배송건수
+	var shotDelvYn			= [[${shotDelvYn}]];			// 총알배송여부
+	
+	// 할인관련정보 변수선언
+	var freegiftList		= [[${freegiftList}]];			// 사은품 프로모션 목록
+	var freegiftGoodsList	= [[${freegiftGoodsList}]];		// 사은품 프로모션 상품 목록
+
+	// 총알배송가능 지역, 총알배송 가능 시간 체크
+	var fnGetDailyDeliveryCheck = function () {
+		// TODO
+		var jsonObj 	= {"zipNo" : 12345};
+		var jsonData 	= JSON.stringify(jsonObj);
+
+		gagajf.ajaxJsonSubmit(
+			"/order/getDailyDeliveryCheck"
+			, jsonData
+			, function (result) {
+				// 자사몰 일반배송
+				$("#shotDelv").text(0);
+				$("#wmsDelv").text(wmsCnt);
+				$("#wmsDelvTitle").css("display", "block");
+				$("#shotDelvTitle").css("display", "none");
+				$(".tag_stype2").css("display", "none");
+
+				// 자사몰 총알배송
+				if (shotDelvYn == "Y") {
+					if (parseInt(result) > 0) {
+						$("#shotDelv").text(wmsCnt);
+						$("#wmsDelv").text(0);
+						
+						$("#wmsDelvTitle").css("display", "none");
+						$("#shotDelvTitle").css("display", "block");
+						$(".tag_stype2").css("display", "block");
+					}
+				}
+			}
+		)
+	}
+</script>
+
+<script type="text/javascript">
+	// 컨텐츠 호출
+	$(document).ready( function() {
+		// 1. 총알배송가능 지역, 총알배송 가능 시간 체크
+		fnGetDailyDeliveryCheck();
+		
+		// 2. 배송목록 화면 노출, 비노출 처리
+		// 2.1 자사일반배송노출
+		if (wmsCnt > 0) {
+			$("#wmsDelvArea").css("display", "block");
+		}
+		
+		// 2.2 입점업체일반배송노출
+		if (delvCnt > 0) {
+			$("#delvDelvArea").css("display", "block");
+		}
+		
+		// 2.3 자사예약배송노출
+		if (resCnt > 0) {
+			$("#resDelvArea").css("display", "block");
+		}
+	});
+	
+	// 사은품선택 라디오 버튼 기능
+	$(".freegiftRdo").on("click", function() {
+		var total_gift 		= 0;
+		var total_deduct 	= 0;
+		
+		$(".freegiftRdo").each(function(){
+			// 라디오버튼 사은품 체크
+			if ($(this).is(":checked")) {
+				// 수령거부가 아닐때 체크
+				if ($(this).val() != "noSel") {
+					total_gift 		+= 1;
+					total_deduct 	+= parseInt($(this).attr("usepoint"));
+				}
+			}
+		});
+		
+		$(".total_gift").text(total_gift);			// 사은품총선택개수
+		$(".total_deduct").text(total_deduct);		// 사은품총사용포인트
+	});
+</script>
+</th:block>
 </body>
 </html>

+ 828 - 0
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb_20210216.html

@@ -0,0 +1,828 @@
+<!DOCTYPE html>
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org"
+	  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	  layout:decorator="web/common/layout/DefaultLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : OrderFormWeb.html
+ * @desc    : 주문/결제 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.01   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+
+	<!--  container -->
+	<div id="container" class="container od">
+		<div class="breadcrumb">
+			<ul>
+				<li class="bread_home"><a href="index.html">홈</a></li>
+				<li class="bread_2depth">쇼핑백</li>
+				<li class="bread_3depth">주문/결제</li>
+			</ul>
+		</div>
+		<div class="wrap">
+			<div class="content odPayment"> <!-- 페이지특정 클래스 = mbPayment -->
+				<div class="cont_head">
+					<h2 class="t_c mb60">주문&#47;결제</h2>
+				</div>
+
+				<div class="cont_body">
+					<!-- CONT-BODY -->
+					<section class="od_cont fl">
+						<div class="sec_head">
+							<div class="tbl type4">
+								<table>
+									<colgroup>
+										<col width="240">
+										<col width="*">
+									</colgroup>
+									<tbody>
+									<tr>
+										<th>총 <span class="c_primary bold" th:text="${delvTotCnt}"></span> 건으로 나뉘어 배송 예정</th>
+										<td class="t_l">
+											<span>총알배송<em class="c_primary bold" th:text="${wmsCnt}" id="shotDelv"></em>건</span>
+											<span>STYLE24<em class="c_primary bold" th:text="${wmsCnt}" id="wmsDelv"></em>건</span>
+											<span>업체직배송<em class="c_primary bold" th:text="${delvCnt}"></em>건</span>
+											<span>예약배송<em class="c_primary bold" th:text="${resCnt}"></em>건</span>
+										</td>
+									</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>
+
+						<div class="sec_body">
+							<div class="t_r mb15">
+								<a href="/cart/list/form" class="btn_link">쇼핑백 바로가기</a>
+							</div>
+
+							<div class="foldGroup">
+								<ul>
+									<li>
+										<!-- 주문고객정보 -->
+										<div class="fold_head">
+											<a href="javascript:void(0)">
+												<div>
+													<div class="fold_tit">
+														<span>주문고객</span>
+													</div>
+													<div class="data">
+														<span th:text="${custemerInfo.custNm}"></span>
+														<span th:text="${custemerInfo.email}"></span>
+														<span th:text="${custemerInfo.cellPhnno}"></span>
+													</div>
+												</div>
+											</a>
+										</div>
+
+										<div class="fold_cont" style="display: none;">
+											<div class="area_default">
+												<dl>
+													<div>
+														<dt>주문자명</dt>
+														<dd th:text="${custemerInfo.custNm}"></dd>
+													</div>
+													<div>
+														<dt>이메일</dt>
+														<dd th:text="${custemerInfo.email}"></dd>
+													</div>
+													<div>
+														<dt>휴대폰 번호</dt>
+														<dd th:text="${custemerInfo.cellPhnno}"><button type="button" class="btn_popup" id=""><span>본인인증하기</span></button></dd>
+													</div>
+												</dl>
+											</div>
+										</div>
+										<!-- //주문고객정보 -->
+									</li>
+									<li>
+										<!-- 배송지정보 -->
+										<div class="fold_head">
+											<a href="javascript:void(0)">
+												<div>
+													<div class="fold_tit">
+														<span>배송지 정보</span>
+													</div>
+													<div class="data" th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}"></div>
+												</div>
+											</a>
+										</div>
+										<div class="fold_cont" style="display: none;">
+											<div class="area_default">
+												<dl>
+													<div>
+														<dt>배송지명</dt>
+														<dd th:text="${deliveryAddrInfo.delvAddrNm}">
+															<span class="icon_tag">
+																<em class="tag_stype1">기본 배송지</em>
+																<em class="tag_stype2">총알배송</em>
+															</span>
+														</dd>
+													</div>
+													<div>
+														<dt>배송주소</dt>
+														<dd th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}">
+															<button type="button" class="btn_popup" id=""><span>배송지 선택</span></button>
+														</dd>
+													</div>
+													<div>
+														<dt>휴대폰 번호</dt>
+														<dd th:text="${custemerInfo.cellPhnno}"></dd>
+													</div>
+													<div>
+														<dt>배송요청 사항</dt>
+														<dd>
+															직접받고 부재 시 문앞
+															<button type="button" class="btn_popup" id=""><span>변경하기</span></button>
+														</dd>
+													</div>
+												</dl>
+											</div>
+											<!-- 해외배송상품일 경우 노출 -->
+											<div class="area_overseas">
+												<dl>
+													<div>
+														<dt>개인통관고유부호</dt>
+														<dd>
+															<div class="form_field">
+																<div>
+																	<input type="radio" name="rdi-overseas" id="rdi-overs1" value="" checked="">
+																	<label for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
+																	<div class="info_box pb10">
+																		<div class="input_wrap">
+																			<input type="text" class="form_control" maxlength="13" placeholder="P로 시작하는 13자리">
+																			<button type="button" class="btn btn_dark"><span>적용</span></button>
+																		</div>
+																	</div>
+																</div>
+																<div class="mt20">
+																	<input type="radio" name="rdi-overseas" id="rdi-overs2" value="">
+																	<label for="rdi-overs2"><span>입력 안 함</span></label>
+																	<div class="info_box" style="display:none;">
+																		<p>
+																			개인통관고유부호를 입력하지 않아도 관세사무소에서 개인정보 확인을 위해 별도 연락을 드릴 예정입니다.
+																		</p>
+																	</div>
+																</div>
+															</div>
+														</dd>
+													</div>
+												</dl>
+												<div class="com_info_txt">
+													<p class="tit">해외 배송 안내</p>
+													<ul>
+														<li>물품가액이 $150초과할 경우 관/부과세가 발생 할 수 있습니다.</li>
+														<li>물품 종류와 해외공급자 관계없이 같은 날 입항하게 되면 합산과세 대상이 됩니다.</li>
+													</ul>
+												</div>
+												<div class="form_field mt30">
+													<div>
+														<input id="chk-overs-agr" type="checkbox" checked="">
+														<label for="chk-overs-agr"><span>위 정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게 STYLE24에서 저장 &#47; 관리 합니다.&nbsp;&nbsp;<em class="c_primary bold f_size12">(필수)</em></span></label>
+													</div>
+												</div>
+											</div>
+											<!-- //해외배송상품일 경우 노출 -->
+											<!-- 주문제작상품일 경우 노출 -->
+											<div class="area_customitem">
+												<div class="txt_box mb30">
+													<p class="c_primary normal">현재 주문제작 상품을 포함하여 주문을 진행중 입니다.</p>
+												</div>
+												<div class="com_info_txt">
+													<p class="tit">주문 제작 상품 안내</p>
+													<ul>
+														<li>주문 제작 상품은 주문 후 제작이 진행되며, 제작 완료 후 배송이 시작됩니다.</li>
+														<li>주문 제작 상품의 특성상 주문 완료 후 취소/교환이 불가능합니다. (상품 하자에 한해 가능)</li>
+													</ul>
+												</div>
+												<div class="form_field mt30">
+													<div>
+														<input id="chk-custom-agr1" type="checkbox" checked="">
+														<label for="chk-custom-agr1"><span>주문 제작 상품에 대한 안내를 확인하였으며 배송에 동의합니다.&nbsp;&nbsp;<em class="c_primary bold f_size12">(필수)</em></span></label>
+													</div>
+												</div>
+											</div>
+											<!-- //주문제작상품일 경우 노출 -->
+										</div>
+										<!-- //배송지정보 -->
+									</li>
+									<li>
+										<!-- 사은품선택 -->
+										<div class="fold_head">
+											<a href="javascript:void(0)">
+												<div>
+													<div class="fold_tit">
+														<span>사은품 선택</span>
+													</div>
+													<div class="data">
+														<span>사은품 총 <em class="c_primary normal">2</em>개 선택</span>
+														<span><em class="c_primary normal">0</em>P 차감</span>
+													</div>
+												</div>
+											</a>
+										</div>
+										<div class="fold_cont" style="display:none;">
+											<div class="area_default">
+												<th:block th:each="freegift, i : ${freegiftList}">
+													<!-- 2021.02.15 css 수정되면 삭제예정 -->
+													<th:block th:if="${i.count} > 1">
+														<br>
+														<br>
+													</th:block>
+													<p class="txt" th:text="'사은품선택' + ${i.count} + ' > ' + ${freegift.freegiftNm}"></p>
+													<div class="form_field">
+														<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
+															<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
+																<div class="gift" >
+																	<input type="radio" th:name="'chk-gift'+${i.count}" th:id="'chk-gift'+${i.count}+${k.count}" class="chk_img" value="">
+																	<label th:for="'chk-gift'+${i.count}+${k.count}">
+																		<span class="thumb"><img src="http://codepartners.co.kr/project/style24/pc/ux/images/thumb/tmp_gift1.jpg" width="" alt=""></span>
+																		<span class="name" th:text="${freegiftGoods.goodsNm}"></span>
+																		<span th:if="${freegiftGoods.usePoint} < 1" class="deduct" th:text="무료"></span>
+																		<span th:if="${freegiftGoods.usePoint} > 0" class="deduct" th:text="|- ${freegiftGoods.usePoint} P|"></span>
+																	</label>
+																</div>
+															</th:block>
+														</th:block>
+														<div class="gift">
+															<input type="radio" th:name="'chk-gift'+${i.count}" th:id="${i.count}+'0'" class="chk_img" value="">
+															<label th:for="${i.count}+'0'">
+																<span class="thumb"></span>
+																<span class="name">사은품 수령안함</span>
+																<span class="deduct">수령거부</span>
+															</label>
+														</div>
+													</div>
+												</th:block>
+												
+												<br>
+												<div class="form_field">
+													<div class="gift_agree">
+														<p><input id="chk-gift_agree" type="checkbox"><label for="chk-gift_agree"><span>동의합니다</span></label></p>
+														<p class="mt20">
+															사은품 지급에 대한 내용을 확인하였으며, 이에 동의합니다.
+															<button type="button" class="btn_popup" id=""><span>안내 보기</span></button>
+														</p>
+													</div>
+												</div>
+											</div>
+										</div>
+										<!-- //사은품선택 -->
+									</li>
+									<li>
+										<!-- 할인/혜택 사용 -->
+										<div class="fold_head">
+											<a href="javascript:void(0)">
+												<div>
+													<div class="fold_tit">
+														<span>할인/혜택 사용</span>
+													</div>
+													<div class="data">
+														<div class="form_field">
+															<!--<input id="chk-maxdisc" type="checkbox" checked="">-->
+															<label for="chk-maxdisc"><span>최대 할인혜택을 바로 적용하세요 (<em class="c_primary normal">-3,000원</em>)</span></label>
+														</div>
+													</div>
+												</div>
+											</a>
+										</div>
+										<div class="fold_cont" style="display: none;">
+											<div class="area_default">
+												<div class="maxdisc">
+													<div class="form_field">
+														<input id="chk-maxdisc" type="checkbox">
+														<label for="chk-maxdisc">
+															<span>최대 할인혜택을 바로 적용하세요!</span>
+														</label>
+													</div>
+												</div>
+												<br>
+												<dl>
+													<div>
+														<dt>할인코드</dt>
+														<dd>
+															<div class="input_wrap">
+																<input type="text" class="form_control" maxlength="13" placeholder="할인코드를 입력해주세요.">
+																<button type="submit" class="btn btn_dark">적용</button>
+															</div>
+														</dd>
+													</div>
+													<div>
+														<dt>할인쿠폰</dt>
+														<dd><a href="" class="btn_coupon_toggle">할인쿠폰 <span class="c_primary" th:text="|${#lists.size(cartCpnList)} 장|"></span> 적용 <i class="ico ico_ft_arrow_b"></i></a></dd>
+													</div>
+												</dl>
+												<div class="coupon_list">
+													<ul>
+														<th:block th:each="goods, i : ${goodsApplyCpnList}">
+															<li>
+																<div class="coupon">
+																	<div class="item_gd">
+																		<figure>
+																			<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+																			<figcaption>
+																				<div class="brand" th:text="${goods.brandEnm}+' '+${goods.brandKnm}"></div>
+																				<div class="name" th:text="${goods.goodsNm}"></div>
+																				<div class="price">
+																					<span class="selling_price" th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></span>
+																				</div>
+																			</figcaption>
+																		</figure>
+																	</div>
+																	<div class="form_field">
+																		<select id="" class="select_hidden">
+																			<th:block th:eath="goodsCpn, k : ${goodsCpnList}">
+																				<option th:value="${gooods.cpnId}" th:text="${gooods.cpnNm}"></option>
+																			</th:block>
+																		</select>
+																	</div>
+																	<button type="button" class="btn_del_coupon" id=""><span>쿠폰적용해제</span></button>
+																</div>
+															</li>
+														</th:block>
+															
+														<th:block th:if="${cartCpnList != null && #lists.size(cartCpnList) > 0}">
+															<li>
+																<div class="coupon">
+																	<div class="form_field">
+																		<label for="">장바구니 할인쿠폰</label>
+																		<select id="" class="select_hidden">
+																			<th:block th:eath="cartCpn, k : ${cartCpnList}">
+																				<option th:value="${gooods.cpnId}" th:text="${gooods.cpnNm}"></option>
+																			</th:block>
+																		</select>
+																	</div>
+																	<button type="button" class="btn_del_coupon" id=""><span>쿠폰적용해제</span></button>
+																</div>
+															</li>
+														</th:block>
+														
+														<th:block th:if="${delvCpnList != null && #lists.size(delvCpnList) > 0}">
+															<li>
+																<div class="coupon">
+																	<div class="form_field">
+																		<label for="">배송비 할인쿠폰</label>
+																		<select id="" class="select_hidden">
+																			<th:block th:eath="delvCpn, k : ${delvCpnList}">
+																				<option th:value="${delvCpn.cpnId}" th:text="${delvCpn.cpnNm}"></option>
+																			</th:block>
+																		</select>
+																	</div>
+																	<button type="button" class="btn_del_coupon" id=""><span>쿠폰적용해제</span></button>
+																</div>
+															</li>
+														</th:block>
+													</ul>
+												</div>
+											</div>
+											<br>
+											<div class="area_point">
+												<dl>
+													<div>
+														<dt>선포인트</dt>
+														<dd>
+															<div class="form_field">
+																<div>
+																	<input type="radio" name="rdi-codeuse" id="rdi-codeuse1" value="">
+																	<label for="rdi-codeuse1"><span>사용 안함</span></label>
+																</div>
+																<div>
+																	<input type="radio" name="rdi-codeuse" id="rdi-codeuse2" value="">
+																	<label for="rdi-codeuse2"><span>사용함</span></label>
+																	<span>사용가능 포인트&nbsp;:&nbsp;<em th:text="${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}"></em>&nbsp;P</span>
+																</div>
+															</div>
+														</dd>
+													</div>
+												</dl>
+											</div>
+
+											<div class="point_code">
+												<div class="form_field">
+													<label class="ui_col_3 input_label">스타일 포인트</label>
+													<div class="ui_col_9">
+														<div class="input_wrap">
+															<input type="text" class="form_control" maxlength="13" placeholder="사용할 포인트를 입력해주세요.">
+															<button type="submit" class="btn btn_dark">적용</button>
+														</div>
+														<div class="save_point">
+															<p>보유 : <span th:text="|${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')} P|"></span></p>
+														</div>
+													</div>
+												</div>
+												<br>
+												<div class="form_field">
+													<label class="ui_col_3 input_label">상품권</label>
+													<div class="ui_col_9">
+														<div class="input_wrap">
+															<input type="text" class="form_control" maxlength="13" placeholder="사용할 상품권금액 입력해주세요.">
+															<button type="submit" class="btn btn_dark">적용</button>
+														</div>
+														<div class="save_point">
+															<p>보유 : <span th:text="|${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')} 원|"></span></p>
+														</div>
+													</div>
+												</div>
+											</div>
+
+										</div>
+										<!-- //할인/혜택 사용 -->
+									</li>
+									<li>
+										<!-- 결제수단 선택 -->
+										<div class="fold_head">
+											<a href="javascript:void(0)">
+												<div>
+													<div class="fold_tit">
+														<span>결제수단 선택</span>
+													</div>
+												</div>
+											</a>
+										</div>
+										<div class="fold_cont" style="display: none;">
+											<div class="paymethod_list">
+												<div class="paymethod on">
+													<div class="paymethod_wrap">
+														<input type="radio" name="radio_card" id="rdi-card-1" value="1" checked>
+														<label for="rdi-card-1" data="0">
+															STYLE24 간편결제
+														</label>
+														<div class="paymethod_body">
+															<div class="add_card">
+																<div class="plus_card">
+																	<div class="cross_wrap">
+																		<button>
+																			<div class="cross"></div>
+																		</button>
+																	</div>
+																	<div class="enrollment">
+																		<p>결제수단 등록</p>
+																	</div>
+																</div>
+															</div>
+															<div class="paymethod_text">
+																<p>&#183; 결제수단 등록 한번으로 간편하게 결제하실 수 있습니다.</p>
+																<p>&#183; 국내 8개 카드에 대해 이용 가능합니다. (법인카드,기프트카드,해외카드 제외)</p>
+																<p>&#183; 일반 신용카드의 할인혜택은 적용되지 않습니다.</p>
+															</div>
+														</div>
+													</div>
+												</div>
+												<div class="paymethod">
+													<div class="paymethod_wrap">
+														<input type="radio" name="radio_card" id="rdi-card-2" value="2">
+														<label for="rdi-card-2"  data="1">
+															일반 결제
+														</label>
+														<div class="paymethod_body">
+															<div class="form_field">
+																<div>
+																	<input type="radio" name="payMeansClass" id="rdi-8" value="8"><label for="rdi-8"> <span>신용카드</span> </label>
+																</div>
+																<div>
+																	<input type="radio" name="payMeansClass" id="rdi-9" value="9"><label for="rdi-9"> <span>실시간계좌이체</span> </label>
+																</div>
+																<div>
+																	<input type="radio" name="payMeansClass" id="rdi-10" value="10"><label for="rdi-10"> <span>무통장입금</span> </label>
+																</div>
+																<div>
+																	<input type="radio" name="payMeansClass" id="rdi-11" value="11"><label for="rdi-11"> <span>휴대폰 결제</span> </label>
+																</div>
+																<div>
+																	<input type="radio" name="payMeansClass" id="rdi-12" value="12"><label for="rdi-12"> <span>카카오페이</span> </label>
+																</div>
+																<div>
+																	<input type="radio" name="payMeansClass" id="rdi-13" value="13"><label for="rdi-13"> <span>네이버엔페이</span> </label>
+																</div>
+																<div>
+																	<input type="radio" name="payMeansClass" id="rdi-14" value="14"><label for="rdi-14"> <span>페이코</span> </label>
+																</div>
+															</div>
+														</div>
+													</div>
+												</div>
+											</div>
+											<!-- case1,2 간편결제,일반결제 결과-->
+											<div class="payment type01 active">
+												<div class="form_field">
+													<div>
+														<input id="chk-3" type="checkbox"><label for="chk-3"> <span>선택한 결제수단으로 향후 결제 이용에 동의합니다. <a href="#none">(선택)</a></span> </label>
+													</div>
+												</div>
+												<div class="privacy_consent">
+													<p>개인정보 제공에 대한 동의</p>
+													<span>개인정보를 제공받는 자 : 업체명,업체명,업체명</span>
+													<span>개인정보를 제공받는 자의 개인정보 이용 목적 : 주문상품의 배송,고객상당 및 불만처리</span>
+													<span>제공하는 개인정보의 항목:성명,주소,연락처</span>
+													<span>개인정보 제공받는 자의 개인정보 보유 및 이용기간 : 이용목적 달성 시 까지</span>
+													<div class="form_field">
+														<div>
+															<input id="chk-4" type="checkbox"><label for="chk-4"> <span>동의합니다.</span> </label>
+														</div>
+													</div>
+												</div>
+												<div class="form_field">
+													<div>
+														<input id="chk-5" type="checkbox"><label for="chk-5"> <span>주문하실 상품,가격,배송정보,할인정보 등을 확인하였으며,구매에 동의하시겠습니까? (전자상거래법 제8조 2항)</span> </label>
+													</div>
+												</div>
+												<div class="ui_row">
+													<div class="ui_col_12">
+														<button class="btn btn_dark btn_block"><span>123,456,789</span>원 결제하기</button>
+													</div>
+												</div>
+											</div>
+											<div class="payment type02">
+												<div class="form_field">
+													<div>
+														<input id="chk-3" type="checkbox"><label for="chk-3"> <span>소비자 피해 보상보험 신청 <a href="#none">(선택)</a></span> <button class="faq">FAQ확인</button> </label>
+													</div>
+													<div>
+														<p>&#145;전자상거래 등에서의 소비자보호에 관한 법률&#146;에 따라 현금 결제 시 서울보증보험(주)가 제공하는 소비자 피해보상보험을<br>신청할 수 있도록 해드리고 있습니다. (2013.11.28부터 시행)</p>
+													</div>
+												</div>
+												<div class="privacy_consent">
+													<p>개인정보 제공에 대한 동의</p>
+													<span>개인정보를 제공받는 자 : 업체명,업체명,업체명</span>
+													<span>개인정보를 제공받는 자의 개인정보 이용 목적 : 주문상품의 배송,고객상당 및 불만처리</span>
+													<span>제공하는 개인정보의 항목:성명,주소,연락처</span>
+													<span>개인정보 제공받는 자의 개인정보 보유 및 이용기간 : 이용목적 달성 시 까지</span>
+													<div class="form_field">
+														<div>
+															<input id="chk-4" type="checkbox"><label for="chk-4"> <span>동의합니다.</span> </label>
+														</div>
+													</div>
+												</div>
+												<div class="form_field">
+													<div>
+														<input id="chk-5" type="checkbox"><label for="chk-5"> <span>주문하실 상품,가격,배송정보,할인정보 등을 확인하였으며,구매에 동의하시겠습니까? (전자상거래법 제8조 2항)</span> </label>
+													</div>
+												</div>
+												<div class="ui_row">
+													<div class="ui_col_12">
+														<button class="btn btn_dark btn_block"><span>123,456,789</span>원 결제하기</button>
+													</div>
+												</div>
+											</div>
+											<!-- //case1,2 간편결제,일반결제 결과-->
+										</div>
+									</li>
+								</ul>
+							</div>
+						</div>
+					</section>
+
+					<section class="od_side fr">
+						<div class="area_order">
+							<div class="tit_box">
+								<h3 class="subH2">주문내역</h3>
+								<span>
+									<em class="c_primary bold" th:text="${delvTotCnt}"></em> 개의 상품
+								</span>
+							</div>
+							<div class="od_item_box">
+								<!-- 총알배송, 일반배송 -->
+								<div class="part_dlvr" id="wmsDelvArea" style="display:none;">
+									<h4 class="subH3 mb20" id="shotDelvTitle">STYLE24 총알배송<span>오늘 자정까지 도착</span></h4>
+									<h4 class="subH3 mb20" id="wmsDelvTitle">STYLE24 일반배송</h4>
+									<div class="gd_list">
+
+										<th:block th:each="goods, i : ${wmsCartList}">
+											<div class="item_gd">
+												<figure>
+													<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+													<figcaption>
+														<div class="brand" th:text="${goods.brandEnm}"></div>
+														<div class="name" th:text="${goods.goodsNm}"></div>
+														<div class="option" th:each="opt, index : ${goods.itemNmArr}">
+															<span class="option">옵션:<em th:text="${goods.optCdArr[index.index]}"></em></span>
+														</div>
+														<br/>
+														<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
+														<div class="price">
+															<span class="selling_price" th:text="|${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')} 원|"></span>
+														</div>
+													</figcaption>
+												</figure>
+											</div>
+										</th:block>
+										
+										
+										
+									</div>
+									
+									
+								</div>
+								<!-- //총알배송, 일반배송 -->
+
+								<!-- 업체직배송 -->
+								<div class="part_dlvr" id="delvDelvArea" style="display:none;">
+									<h4 class="subH3 mb20">업체직배송</h4>
+									<div class="gd_list">
+										<div class="item_gd">
+											<th:block th:each="goods, i : ${delvCartList}">
+												<div class="item_gd">
+													<figure>
+														<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+														<figcaption>
+															<div class="brand" th:text="${goods.brandEnm}"></div>
+															<div class="name" th:text="${goods.goodsNm}"></div>
+															<div class="option">
+																<span th:text="${goods.optCd}"></span>
+																<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
+															</div>
+															<div class="price">
+																<span class="selling_price" th:text="${goods.currPrice}"></span>
+															</div>
+														</figcaption>
+													</figure>
+												</div>
+											</th:block>
+										</div>
+									</div>
+								</div>
+								<!-- //업체직배송 -->
+
+								<!-- 예약배송 -->
+								<div class="part_dlvr" id="resDelvArea" style="display:none;">
+									<h4 class="subH3 mb20">예약배송</h4>
+									<div class="gd_list">
+										<div class="item_gd">
+											<th:block th:each="goods, i : ${resCartList}">
+												<div class="item_gd">
+													<figure>
+														<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+														<figcaption>
+															<div class="brand" th:text="${goods.brandEnm}"></div>
+															<div class="name" th:text="${goods.goodsNm}"></div>
+															<div class="option">
+																<span th:text="${goods.optCd}"></span>
+																<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
+															</div>
+															<div class="price">
+																<span class="selling_price" th:text="${goods.currPrice}"></span>
+															</div>
+														</figcaption>
+													</figure>
+												</div>
+											</th:block>
+										</div>
+									</div>
+								</div>
+								<!-- //예약배송 -->
+							</div>
+
+							<div class="od_amount_box">
+								<dl>
+									<div>
+										<dt>상품금액</dt>
+										<dd>1,590,000 원</dd>
+									</div>
+									<div>
+										<dt>배송비</dt>
+										<dd>0원</dd>
+									</div>
+									<div>
+										<dt>할인금액</dt>
+										<dd class="c_primary">-1,746,500원</dd>
+									</div>
+									<div>
+										<dt>다다익선할인금액</dt>
+										<dd class="c_primary">25,000원</dd>
+									</div>
+									<div>
+										<dt>쿠폰할인금액</dt>
+										<dd class="c_primary">3,000원</dd>
+									</div>
+									<div>
+										<dt>선포인트 사용</dt>
+										<dd class="c_primary">-1,500P</dd>
+									</div>
+									<div>
+										<dt>포인트 사용</dt>
+										<dd class="c_primary">-5,500P</dd>
+									</div>
+									<div>
+										<dt>상품권 사용</dt>
+										<dd class="c_primary">-50,000원</dd>
+									</div>
+								</dl>
+							</div>
+
+
+							<div class="totalprice_box">
+								<dl>
+									<dt>총 결제 예정 금액</dt>
+									<dd data-weight="price" data-font="lato"><span>3,546,200</span>원</dd>
+								</dl>
+								<p class="info_point">
+									스타일 포인트 <span class="c_primary">3,500 P</span> 적립예정
+								</p>
+							</div>
+
+
+						</div>
+					</section>
+					<div class="clear"></div>
+					<!-- // CONT-BODY -->
+				</div>
+			</div>
+		</div>
+	</div>
+	<!-- // container -->
+
+	<script th:inline="javascript">
+		// 배송관련정보 변수선언
+		var wmsCnt 				= [[${wmsCnt}]];				// 자사 일반,촐알 배송건수
+		var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
+		var delvCnt 			= [[${delvCnt}]];				// 입전 일반 배송건수
+		var shotDelvYn			= [[${shotDelvYn}]];			// 총알배송여부
+		
+		// 할인관련정보 변수선언
+		var freegiftList		= [[${freegiftList}]];			// 사은품 프로모션 목록
+		var freegiftGoodsList	= [[${freegiftGoodsList}]];		// 사은품 프로모션 상품 목록
+
+		// 총알배송가능 지역, 총알배송 가능 시간 체크
+		var fnGetDailyDeliveryCheck = function () {
+			// TODO
+			var jsonObj 	= {"zipNo" : 12345};
+			var jsonData 	= JSON.stringify(jsonObj);
+
+			gagajf.ajaxJsonSubmit(
+				"/order/getDailyDeliveryCheck"
+				, jsonData
+				, function (result) {
+					// 자사몰 일반배송
+					$("#shotDelv").text(0);
+					$("#wmsDelv").text(wmsCnt);
+					$("#wmsDelvTitle").css("display", "block");
+					$("#shotDelvTitle").css("display", "none");
+
+					// 자사몰 총알배송
+					if (shotDelvYn == "Y") {
+						if (parseInt(result) > 0) {
+							$("#shotDelv").text(wmsCnt);
+							$("#wmsDelv").text(0);
+							
+							$("#wmsDelvTitle").css("display", "none");
+							$("#shotDelvTitle").css("display", "block");
+						}
+					}
+				}
+			)
+		}
+	</script>
+
+	<script type="text/javascript">
+		// 컨텐츠 호출
+		$(document).ready( function() {
+			// 1. 총알배송가능 지역, 총알배송 가능 시간 체크
+			fnGetDailyDeliveryCheck();
+			
+			// 2. 배송목록 화면 노출, 비노출 처리
+			// 2.1 자사일반배송노출
+			if (wmsCnt > 0) {
+				$("#wmsDelvArea").css("display", "block");
+			}
+			
+			// 2.2 입점업체일반배송노출
+			if (delvCnt > 0) {
+				$("#delvDelvArea").css("display", "block");
+			}
+			
+			// 2.3 자사예약배송노출
+			if (resCnt > 0) {
+				$("#resDelvArea").css("display", "block");
+			}
+		});
+
+		$(function(){
+			$('.od .od_cont').on('click','.area_overseas input',function(e){
+				//해외배송 입력
+				e.preventDefault();
+				$(this).parent('div').find('.info_box').show();
+				$(this).parent('div').siblings('div').find('.info_box').hide();
+			}).on('click','.btn_coupon_toggle',function(e){
+				//할인쿠폰 확인
+				e.preventDefault();
+				$('.coupon_list').toggle();
+				$(this).toggleClass('on');
+			});
+		});
+	</script>
+</th:block>
+
+
+
+
+
+</body>
+</html>

+ 22 - 0
src/main/webapp/WEB-INF/views/web/order/OrderFreegiftInfoPopWeb.html

@@ -0,0 +1,22 @@
+<!-- 사은품지급안내 팝업 -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="infoGiftLabel">STYLE24 사은품 지급 안내</h5>
+		</div>
+		<div class="modal-body">
+			<div class="pop_cont">사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내
+				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
+				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내
+				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
+				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.
+				사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
+				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.
+				사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
+				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.
+				사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
+				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.</div>
+		</div>
+	</div>
+</div>
+<!-- //사은품지급안내 팝업 -->

+ 82 - 0
src/main/webapp/WEB-INF/views/web/order/OrderPayAgreePopWeb.html

@@ -0,0 +1,82 @@
+<!-- 간편결제 카드등록 > 이용약관동의 팝업 -->
+<div class="modal fade od_pop qPayAgree_pop" id="qPayAgree_pop" tabindex="-1" role="dialog" aria-labelledby="qPayAgreeLabel" aria-hidden="true">
+	<div class="modal-dialog" role="document">
+		<div class="modal-content">
+			<div class="modal-header">
+				<h5 class="modal-title" id="qPayAgreeLabel">이용약관 동의</h5>
+				<p class="txt">카드 정보 등록을 위해 약관을 확인하고 동의해주세요.</p>
+			</div>
+			<div class="modal-body">
+				<div class="pop_cont">
+					<div class="area_QpayCk">
+						<div class="agr_select">
+							<div class="form_field">
+								<div class="agree_Qpay">
+									<input id="chk-Qpay-agr1" type="checkbox" checked="">
+									<label for="chk-Qpay-agr1"><span>STYLE24 간편결제 개인회원 이용약관(카드)<em class="tmark_required">(필수)</em></span></label>
+								</div>
+							</div>
+							<button type="button">
+								<span>약관열기</span>
+							</button>
+						</div>
+						<div class="info_agrQpay">STYLE24 간편결제 개인회원 이용약관(카드)
+							내용입니다.STYLE24 간편결제 개인회원 이용약관(카드) 내용입니다.STYLE24 간편결제 개인회원
+							이용약관(카드) 내용입니다.STYLE24 간편결제 개인회원 이용약관(카드) 내용입니다.STYLE24 간편결제
+							개인회원 이용약관(카드) 내용입니다.STYLE24 간편결제 개인회원 이용약관(카드) 내용입니다.STYLE24
+							간편결제 개인회원 이용약관(카드) 내용입니다.STYLE24 간편결제 개인회원 이용약관(카드) 내용입니다.</div>
+					</div>
+					<div class="area_QpayCk">
+						<div class="agr_select">
+							<div class="form_field">
+								<div class="agree_Qpay">
+									<input id="chk-Qpay-agr2" type="checkbox" checked="">
+									<label for="chk-Qpay-agr2"><span>개인정보 수집 및 이용동의<em class="tmark_required">(필수)</em></span></label>
+								</div>
+							</div>
+							<button type="button">
+								<span>약관열기</span>
+							</button>
+						</div>
+						<div class="info_agrQpay">개인정보 수집 및 이용동의(필수) 내용입니다. 개인정보
+							수집 및 이용동의(필수) 내용입니다. 개인정보 수집 및 이용동의(필수) 내용입니다. 개인정보 수집 및
+							이용동의(필수) 내용입니다. 개인정보 수집 및 이용동의(필수) 내용입니다. 개인정보 수집 및 이용동의(필수)
+							내용입니다.개인정보 수집 및 이용동의(필수) 내용입니다. 개인정보 수집 및 이용동의(필수) 내용입니다. 개인정보
+							수집 및 이용동의(필수) 내용입니다.</div>
+					</div>
+					<div class="area_QpayCk">
+						<div class="agr_select">
+							<div class="form_field">
+								<div class="agree_Qpay">
+									<input id="chk-Qpay-agr3" type="checkbox" checked="">
+									<label for="chk-Qpay-agr3"><span>전자금융거래 이용약관<em class="tmark_required">(필수)</em></span></label>
+								</div>
+							</div>
+							<button type="button">
+								<span>약관열기</span>
+							</button>
+						</div>
+						<div class="info_agrQpay">전자금융거래 이용약관(필수) 내용입니다. 전자금융거래
+							이용약관(필수) 내용입니다. 전자금융거래 이용약관(필수) 내용입니다. 전자금융거래 이용약관(필수) 내용입니다.
+							전자금융거래 이용약관(필수) 내용입니다. 전자금융거래 이용약관(필수) 내용입니다. 전자금융거래 이용약관(필수)
+							내용입니다. 전자금융거래 이용약관(필수) 내용입니다. 전자금융거래 이용약관(필수) 내용입니다. 전자금융거래
+							이용약관(필수) 내용입니다. 전자금융거래 이용약관(필수) 내용입니다. 전자금융거래 이용약관(필수) 내용입니다.</div>
+					</div>
+					<div class="form_field">
+						<div class="agree_QpayAll">
+							<input id="chk-Qpay-agrAll" type="checkbox" checked="">
+							<label for="chk-Qpay-agrAll"><span>모든약관에 동의</span></label>
+						</div>
+					</div>
+					<div class="btn_group_block">
+						<button class="btn btn_dark btn_block"
+							id="btn_qPayidConfirm_pop">
+							<span>다음</span>
+						</button>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+<!-- //간편결제 카드등록 > 이용약관동의 팝업 -->

+ 21 - 0
src/main/webapp/WEB-INF/views/web/order/OrderPayCustConfirmPopWeb.html

@@ -0,0 +1,21 @@
+<!-- 간편결제 카드등록 > 본인인증 팝업 -->
+<div class="modal fade od_pop qPayidConfirm_pop" id="qPayidConfirm_pop" tabindex="-1" role="dialog" aria-labelledby="qPayidConfirmLabel" aria-hidden="true">
+	<div class="modal-dialog" role="document">
+		<div class="modal-content">
+			<div class="modal-header">
+				<h5 class="modal-title" id="qPayidConfirmLabel">본인인증</h5>
+				<p class="txt">본인 명의의 휴대폰 정보를 입력해 주세요.</p>
+			</div>
+			<div class="modal-body">
+				<div class="pop_cont">
+					<div class="btn_group_block">
+						<button class="btn btn_dark btn_block" id="">
+							<span>다음</span>
+						</button>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+<!-- //간편결제 카드등록 > 본인인증 팝업 -->

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

@@ -26,7 +26,7 @@ const _PAGE_CUSTOMER_DORMANT = _frontUrl + "/customer/dormant/certify/form";
 //== 마이페이지 ==/
 const _PAGE_MYPAGE = _frontUrl + "/mypage/main/form";							// 마이페이지 > 메인
 const _PAGE_ORDER_LIST = _frontUrl + "/mypage/order/list/form";					// 마이페이지 > 주문확인/배송조회
-const _PAGE_ORDER_DETAIL = _frontUrl + "/mypage/order/detail/form";				// 마이페이지 > 주문/배송 상세
+const _PAGE_ORDER_DETAIL = _frontUrl + "/mypage/order/detail/form/";			// 마이페이지 > 주문/배송 상세
 const _PAGE_CRS_LIST = _frontUrl + "/mypage/crs/list/form";						// 마이페이지 > 취소/교환/반품 목록
 const _PAGE_RESTOCK = _frontUrl + "/mypage/restock/form";						// 마이페이지 > 재입고 알림 내역
 const _PAGE_REVIEW = _frontUrl + "/mypage/review/form";							// 마이페이지 > 리뷰