xodud1202 5 anos atrás
pai
commit
09b4a78f84
60 arquivos alterados com 2608 adições e 5067 exclusões
  1. 21 0
      src/main/java/com/style24/front/biz/dao/TsfCustomerDao.java
  2. 2 56
      src/main/java/com/style24/front/biz/dao/TsfDisplayDao.java
  3. 11 0
      src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java
  4. 55 0
      src/main/java/com/style24/front/biz/service/TsfCustomerService.java
  5. 4 75
      src/main/java/com/style24/front/biz/service/TsfDisplayService.java
  6. 12 0
      src/main/java/com/style24/front/biz/service/TsfPlanningService.java
  7. 51 54
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  8. 58 4
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  9. 46 8
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  10. 53 15
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  11. 1 0
      src/main/java/com/style24/persistence/domain/Cate4Srch.java
  12. 8 8
      src/main/java/com/style24/persistence/domain/GoodsSafeNo.java
  13. 3 0
      src/main/java/com/style24/persistence/domain/GoodsSearch.java
  14. 1 0
      src/main/java/com/style24/persistence/domain/GoodsStock.java
  15. 11 0
      src/main/java/com/style24/persistence/domain/Plan.java
  16. 56 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfCustomer.xml
  17. 17 421
      src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml
  18. 2 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  19. 4 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml
  20. 3 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml
  21. 37 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml
  22. 2 4
      src/main/resources/config/application.yml
  23. 133 0
      src/main/webapp/WEB-INF/views/mob/common/fragments/FooterMob.html
  24. 2 1
      src/main/webapp/WEB-INF/views/mob/common/fragments/HeadMob.html
  25. 1 1
      src/main/webapp/WEB-INF/views/mob/common/layout/GoodsLayoutMob.html
  26. 442 1724
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  27. 151 317
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailQnaFormMob.html
  28. 18 15
      src/main/webapp/WEB-INF/views/mob/goods/GoodsQnaDetailFormMob.html
  29. 6 6
      src/main/webapp/WEB-INF/views/mob/goods/GoodsQnaFormMob.html
  30. 76 876
      src/main/webapp/WEB-INF/views/mob/goods/GoodsSizeInfoFormMob.html
  31. 431 456
      src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html
  32. 50 124
      src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html
  33. 1 1
      src/main/webapp/WEB-INF/views/web/display/LookbookMainFormWeb.html
  34. 28 23
      src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html
  35. 1 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html
  36. 6 6
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  37. 2 2
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailQnaFormWeb.html
  38. 3 2
      src/main/webapp/WEB-INF/views/web/goods/GoodsOtherFormWeb.html
  39. 47 231
      src/main/webapp/WEB-INF/views/web/mypage/ChangeOptionPopupFormWeb.html
  40. 39 2
      src/main/webapp/WEB-INF/views/web/mypage/MypageCustDeliveryAddrFormWeb.html
  41. 86 42
      src/main/webapp/WEB-INF/views/web/mypage/MypageExchangeFormWeb.html
  42. 4 4
      src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html
  43. 6 12
      src/main/webapp/WEB-INF/views/web/order/OrderDeliveryAddrInfoWeb.html
  44. 206 204
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html
  45. 4 5
      src/main/webapp/WEB-INF/views/web/order/OrderListInfoWeb.html
  46. 1 1
      src/main/webapp/WEB-INF/views/web/order/OrderPaymentInfoWeb.html
  47. 1 1
      src/main/webapp/WEB-INF/views/web/planning/PlanningEventMainFormWeb.html
  48. 3 3
      src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html
  49. 33 33
      src/main/webapp/WEB-INF/views/web/popup/DelvAddrAddPopWeb.html
  50. 55 55
      src/main/webapp/WEB-INF/views/web/popup/DelvAddrChangePopWeb.html
  51. 42 42
      src/main/webapp/WEB-INF/views/web/popup/DelvAddrModifyPopWeb.html
  52. 2 2
      src/main/webapp/WEB-INF/views/web/popup/DelvMemoChangePopWeb.html
  53. 1 1
      src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html
  54. 1 1
      src/main/webapp/biz/mypage.js
  55. BIN
      src/main/webapp/images/mo/ico_like.png
  56. BIN
      src/main/webapp/images/mo/ico_pop_cls.png
  57. 8 7
      src/main/webapp/ux/mo/css/common_m.css
  58. 133 130
      src/main/webapp/ux/mo/css/layout_m.css
  59. 107 86
      src/main/webapp/ux/mo/css/style24_m.css
  60. 20 0
      src/main/webapp/ux/style24_link.js

+ 21 - 0
src/main/java/com/style24/front/biz/dao/TsfCustomerDao.java

@@ -2,6 +2,7 @@ package com.style24.front.biz.dao;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.CustDeliveryAddr;
+import com.style24.persistence.domain.CustGrade;
 import com.style24.persistence.domain.CustSnsInfo;
 import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.WishList;
@@ -146,5 +147,25 @@ public interface TsfCustomerDao {
 	 */
 	int updateCustomerInfo(Customer customer);
 
+	/**
+	 * 고객등급 정책
+	 *
+	 * @param custGrade - 사이트 코드
+	 * @return int - 결과
+	 * @author jsshin
+	 * @since 2021. 04. 06
+	 */
+	Collection<CustGrade> getCustGradePolicy(CustGrade custGrade);
+
+	/**
+	 * 고객 예상등급 조회
+	 *
+	 * @param custGrade - 사이트 코드
+	 * @return int - 결과
+	 * @author jsshin
+	 * @since 2021. 04. 06
+	 */
+	CustGrade getExpectedCustGrde(CustGrade custGrade);
+
 
 }

+ 2 - 56
src/main/java/com/style24/front/biz/dao/TsfDisplayDao.java

@@ -146,65 +146,11 @@ public interface TsfDisplayDao {
 	Collection<Contents> getContentsBannerList(Contents contents);
 
 	/**
-	 * 상품카테고리 필터 브랜드 목록
+	 * 상품카테고리 필터 목록
 	 * @param
 	 * @return
 	 * @author bin2107
 	 * @date 2021. 4. 5
 	 */
-	Collection<GoodsSearch> getCategoryFliterBrand(GoodsSearch goodsSearch);
-
-	/**
-	 * 상품카테고리 필터 사이즈 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	Collection<GoodsSearch> getCategoryFliterSize(GoodsSearch goodsSearch);
-
-	/**
-	 * 상품카테고리 필터 가격 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	Collection<GoodsSearch> getCategoryFliterPrice(GoodsSearch goodsSearch);
-
-	/**
-	 * 상품카테고리 필터 연령대 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	Collection<GoodsSearch> getCategoryFliterAge(GoodsSearch goodsSearch);
-
-	/**
-	 * 상품카테고리 필터 시즌 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	Collection<GoodsSearch> getCategoryFliterSeason(GoodsSearch goodsSearch);
-
-	/**
-	 * 상품카테고리 필터 컬러 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	Collection<GoodsSearch> getCategoryFliterColor(GoodsSearch goodsSearch);
-
-	/**
-	 * 상품카테고리 필터 컬러 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	Collection<GoodsSearch> getCategoryFliterBenefit(GoodsSearch goodsSearch);
+	Collection<GoodsSearch> getCategoryFilter(Cate4Srch cate4Srch);
 }

+ 11 - 0
src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java

@@ -302,5 +302,16 @@ public interface TsfPlanningDao {
 	 */
 	CustDeliveryAddr getCustAddrShotConfirm(String recipZipcode);
 	
+	/**
+	 * 출석체크 달력
+	 *
+	 * @param Plan
+	 * @return plan
+	 * @author sowon
+	 * @date 2021. 4. 6
+	 */
+	Collection<Plan> getAttendMonth(Plan plan);
+	
+	
 	
 }

+ 55 - 0
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -7,6 +7,7 @@ import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
+import com.style24.persistence.domain.CustGrade;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -791,6 +792,7 @@ public class TsfCustomerService {
 
 	/**
 	 * 고객계좌 정보
+	 *
 	 * @param  custNo - 고객번호
 	 * @return CustAccount - 고객계과 정보
 	 * @author jsshin
@@ -803,6 +805,7 @@ public class TsfCustomerService {
 
 	/**
 	 * 고객정보 수정
+	 *
 	 * @param  customer - 고객정보
 	 * @return GagaMap - 결과
 	 * @author jsshin
@@ -865,6 +868,7 @@ public class TsfCustomerService {
 	 * 이메일 유효성 체크 -
 	 * 본인이 사용하고 있는 이메일 제외 하고 다른 사람이
 	 * 변경하려는 이메일 사용하느지 체크
+	 *
 	 * @param  customer - 이메일, 고객번호
 	 * @return GagaMap - 결과
 	 * @author jsshin
@@ -878,17 +882,20 @@ public class TsfCustomerService {
 
 	/**
 	 * 회원탈퇴 처리
+	 *
 	 * @param  customer - 고객번호
 	 * @return GagaMap - 결과
 	 * @author jsshin
 	 * @since 2021. 03. 24
 	 */
+	@Transactional("shopTxnManager")
 	public GagaMap saveCustomerSecede(Customer customer) {
 		return coreCustomerService.saveCustomerSecede(customer);
 	}
 
 	/**
 	 * 마이페이지 - 비밀번호 변경
+	 *
 	 * @param  customer - 고객번호
 	 * @return GagaMap - 결과
 	 * @author jsshin
@@ -919,6 +926,7 @@ public class TsfCustomerService {
 
 	/**
 	 * 마이페이지 - 배송지 목록
+	 *
 	 * @param  custDeliveryAddr - 고객번호
 	 * @return Collection<CustDeliveryAddr> - 배송목록
 	 * @author jsshin
@@ -928,4 +936,51 @@ public class TsfCustomerService {
 		return coreCustomerService.getCustomerDeliveryAddrList(custDeliveryAddr);
 	}
 
+	/**
+	 * 마이페이지 - 배송지 삭제
+	 *
+	 * @param  custDeliveryAddr - 고객번호
+	 * @return Collection<CustDeliveryAddr> - 배송목록
+	 * @author jsshin
+	 * @since 2021. 04. 01
+	 */
+	@Transactional("shopTxnManager")
+	public GagaMap deleteCustDeliveryAddr(CustDeliveryAddr custDeliveryAddr) {
+		GagaMap resultMap = new GagaMap();
+		Integer custNo = TsfSession.getInfo().getCustNo();
+		custDeliveryAddr.setCustNo(custNo);
+		custDeliveryAddr.setRegNo(custNo);
+		custDeliveryAddr.setUpdNo(custNo);
+		int resultCnt = coreCustomerService.deleteCustDeliveryAddr(custDeliveryAddr);
+		boolean isSuccess = resultCnt > 0;
+		resultMap.setBoolean("isSuccess", isSuccess);
+		return resultMap;
+	}
+
+	/*
+	 * 고객 예상등급
+	 *
+	 * @param  custGrade - 고객번호
+	 * @return CustGrade
+	 * @author jsshin
+	 * @since 2021. 04. 06
+	 */
+	public GagaMap getExpectedCustGrde(Customer customer) {
+		GagaMap result = new GagaMap();
+		CustGrade params = new CustGrade();
+		params.setCustNo(customer.getCustNo());
+		params.setSiteCd(customer.getSiteCd());
+		Collection<CustGrade> custGradePolicy = customerDao.getCustGradePolicy(params);
+		result.set("custGradePolicy", custGradePolicy);
+		CustGrade expctCustGrade;
+		for (CustGrade grade : custGradePolicy) {
+			grade.setCustNo(customer.getCustNo());
+			expctCustGrade = customerDao.getExpectedCustGrde(grade);
+			if (expctCustGrade != null) {
+				result.set("expctCustGrade", expctCustGrade);
+				return result;
+			}
+		}
+		return result;
+	}
 }

+ 4 - 75
src/main/java/com/style24/front/biz/service/TsfDisplayService.java

@@ -325,86 +325,15 @@ public class TsfDisplayService {
 	}
 
 	/**
-	 * 상품카테고리 필터 브랜드 목록
+	 * 상품카테고리 필터 목록
 	 * @param
 	 * @return
 	 * @author bin2107
 	 * @date 2021. 4. 5
 	 */
-	@Cacheable(value = "cate", key = "'categoryFilterBrand-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
-	public Collection<GoodsSearch> getCategoryFliterBrand(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
-		return displayDao.getCategoryFliterBrand(goodsSearch);
+	public Collection<GoodsSearch> getCategoryFilter(Cate4Srch cate4Srch, String filterGb){
+		cate4Srch.setFilterGb(filterGb);
+		return displayDao.getCategoryFilter(cate4Srch);
 	}
 
-	/**
-	 * 상품카테고리 필터 사이즈 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	@Cacheable(value = "cate", key = "'categoryFilterSize-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
-	public Collection<GoodsSearch> getCategoryFliterSize(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
-		return displayDao.getCategoryFliterSize(goodsSearch);
-	}
-
-	/**
-	 * 상품카테고리 필터 가격 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	@Cacheable(value = "cate", key = "'categoryFilterPrice-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
-	public Collection<GoodsSearch> getCategoryFliterPrice(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
-		return displayDao.getCategoryFliterPrice(goodsSearch);
-	}
-
-	/**
-	 * 상품카테고리 필터 연령대 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	@Cacheable(value = "cate", key = "'categoryFilterAge-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
-	public Collection<GoodsSearch> getCategoryFliterAge(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
-		return displayDao.getCategoryFliterAge(goodsSearch);
-	}
-
-	/**
-	 * 상품카테고리 필터 시즌 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	@Cacheable(value = "cate", key = "'categoryFilterSeason-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
-	public Collection<GoodsSearch> getCategoryFliterSeason(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
-		return displayDao.getCategoryFliterSeason(goodsSearch);
-	}
-
-	/**
-	 * 상품카테고리 필터 컬러 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	@Cacheable(value = "cate", key = "'categoryFilterColor-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
-	public Collection<GoodsSearch> getCategoryFliterColor(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
-		return displayDao.getCategoryFliterColor(goodsSearch);
-	}
-
-	/**
-	 * 상품카테고리 필터 혜택 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 5
-	 */
-	@Cacheable(value = "cate", key = "'categoryFilterBenefit-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
-	public Collection<GoodsSearch> getCategoryFliterBenefit(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
-		return displayDao.getCategoryFliterBenefit(goodsSearch);
-	}
 }

+ 12 - 0
src/main/java/com/style24/front/biz/service/TsfPlanningService.java

@@ -456,6 +456,18 @@ public class TsfPlanningService {
 		return planningDao.getCustAddrShotConfirm(recipZipcode);
 	}
 	
+	/**
+	 * 출석체크 달력 출력
+	 *
+	 * @param Plan
+	 * @return Plan
+	 * @author sowon
+	 * @date 2021. 4. 6
+	 */
+	public Collection<Plan> getAttendMonth(Plan plan) {
+		return planningDao.getAttendMonth(plan);
+	}
+	
 
 
 }

+ 51 - 54
src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -382,6 +382,32 @@ public class TsfDisplayController extends TsfBaseController {
 		return coreLookbookService.getLookbookList(lookbook);
 	}
 
+	/**
+	 * 룩북 상세
+	 * @param lookbook
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 6
+	 */
+	@GetMapping("/lookbook/detail/form")
+	public ModelAndView lookbookDetail(Device device, @RequestParam HashMap<String, String> paramMap) {
+		ModelAndView mav = new ModelAndView();
+
+		Lookbook lookbook = new Lookbook();
+		lookbook.setLookbookSq(Integer.parseInt(paramMap.get("lookbookSq")));
+		lookbook.setBrandCd(paramMap.get("brandGroupNo"));
+
+		mav.addObject("lookbookSq", paramMap.get("lookbookSq"));
+
+		lookbook.setFrontGb(TsfSession.getFrontGb());
+		mav.addObject("lookbookDetailList", coreLookbookService.getLookbookListForGoods(lookbook));
+
+		mav.addObject("otherLookbookList", coreLookbookService.getOtherLookbookList(lookbook));
+
+		mav.setViewName(super.getDeviceViewName("display/LookbookDetailForm"));
+		return mav;
+	}
+
 	/**
 	 * 팝업 목록
 	 *
@@ -410,67 +436,38 @@ public class TsfDisplayController extends TsfBaseController {
 	 * @param
 	 * @return
 	 * @author bin2107
-	 * @since 2021. 4. 2
+	 * @since 2021. 4. 2 CATE4SRCH
 	 */
 	@GetMapping("/category/goods/list/form")
-	public ModelAndView categoryGoodsListForm(Device device, @RequestParam HashMap<String, String> paramMap) {
+	public ModelAndView categoryGoodsListForm(Cate4Srch cate4Srch) {
 		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/CategoryGoodsListForm"));
 
-		String siteCd = TscConstants.Site.STYLE24.value();
-		String cateGb = paramMap.get("cateGb");
-		String formalGb = "G009_10";	//paramMap.get("formalGb");
-		String brandGroupNo = "0";
-		if(paramMap.get("brandGroupNo") != null && !paramMap.get("brandGroupNo").equals("")){
-			brandGroupNo = paramMap.get("brandGroupNo");
+		cate4Srch.setSiteCd(TscConstants.Site.STYLE24.value());
+		cate4Srch.setFormalGb("G009_10");
+		cate4Srch.setFrontGb(TsfSession.getFrontGb());
+		cate4Srch.setCustGb(TsfSession.getCustGb());
+		if(cate4Srch.getBrandGroupNo()==null || cate4Srch.getBrandGroupNo().equals("")){
+			cate4Srch.setBrandGroupNo(0);
 		}
-
-		GoodsSearch goodsSearch = new GoodsSearch();
-		Integer cateNo = 0;
-		if(paramMap.get("cate4No") != null && !paramMap.get("cate4No").equals("")){
-			goodsSearch.setCate4No(Integer.parseInt(paramMap.get("cate4No")));
-			cateNo = Integer.parseInt(paramMap.get("cate4No"));
-			mav.addObject("cateNo",cateNo);
-		} else if(paramMap.get("cate3No") != null && !paramMap.get("cate3No").equals("")){
-			goodsSearch.setCate3No(Integer.parseInt(paramMap.get("cate3No")));
-			cateNo = Integer.parseInt(paramMap.get("cate3No"));
-			mav.addObject("cateNo",cateNo);
-		} else if(paramMap.get("cate2No") != null && !paramMap.get("cate2No").equals("")) {
-			goodsSearch.setCate2No(Integer.parseInt(paramMap.get("cate2No")));
-			cateNo = Integer.parseInt(paramMap.get("cate2No"));
-			mav.addObject("cateNo",cateNo);
-		} else if(paramMap.get("cate1No") != null && !paramMap.get("cate1No").equals("")){
-			goodsSearch.setCate1No(Integer.parseInt(paramMap.get("cate1No")));
-			cateNo = Integer.parseInt(paramMap.get("cate1No"));
-			mav.addObject("cateNo",cateNo);
+		if(cate4Srch.getCate4No()!=null && !cate4Srch.getCate4No().equals("")){
+			cate4Srch.setCateNo(cate4Srch.getCate4No());
+		} else if(cate4Srch.getCate3No()!=null && !cate4Srch.getCate3No().equals("")){
+			cate4Srch.setCateNo(cate4Srch.getCate3No());
+		} else if(cate4Srch.getCate2No()!=null && !cate4Srch.getCate2No().equals("")){
+			cate4Srch.setCateNo(cate4Srch.getCate2No());
+		} else if(cate4Srch.getCate1No()!=null && !cate4Srch.getCate1No().equals("")){
+			cate4Srch.setCateNo(cate4Srch.getCate1No());
 		}
 
-		goodsSearch.setCateNo(cateNo);
-		goodsSearch.setSiteCd(siteCd);
-		goodsSearch.setCateGb(cateGb);
-		goodsSearch.setFormalGb(formalGb);
-		goodsSearch.setBrandGroupNo(Integer.parseInt(brandGroupNo));
-		goodsSearch.setCateType("G031_10");
-		goodsSearch.setFrontGb(TsfSession.getFrontGb());
-		goodsSearch.setCustGb(TsfSession.getCustGb());
-
-		mav.addObject("filterBrandList", displayService.getCategoryFliterBrand(goodsSearch, brandGroupNo, formalGb, cateNo));
-		mav.addObject("filterSizeList", displayService.getCategoryFliterSize(goodsSearch, brandGroupNo, formalGb, cateNo));
-		mav.addObject("filterPriceList", displayService.getCategoryFliterPrice(goodsSearch, brandGroupNo, formalGb, cateNo));
-		//mav.addObject("filterAgeList", displayService.getCategoryFliterAge(goodsSearch, brandGroupNo, formalGb, cateNo));
-		//mav.addObject("filterSeasonList", displayService.getCategoryFliterSeason(goodsSearch, brandGroupNo, formalGb, cateNo));
-		mav.addObject("filterAgeList", null);
-		mav.addObject("filterSeasonList", null);
-		mav.addObject("filterColorList", displayService.getCategoryFliterColor(goodsSearch, brandGroupNo, formalGb, cateNo));
-		mav.addObject("filterBenefitList", displayService.getCategoryFliterBenefit(goodsSearch, brandGroupNo, formalGb, cateNo));
-		
-		mav.addObject("siteCd",siteCd);
-		mav.addObject("cateGb",cateGb);
-		mav.addObject("formalGb",formalGb);
-		mav.addObject("brandGroupNo",brandGroupNo);
-		mav.addObject("cate1No",paramMap.get("cate1No"));
-		mav.addObject("cate2No",paramMap.get("cate2No"));
-		mav.addObject("cate3No",paramMap.get("cate3No"));
-		mav.addObject("cate4No",paramMap.get("cate4No"));
+		log.info("categoryGoodsListForm cate4Srch::::{}",cate4Srch);
+		mav.addObject("filterBrandList", displayService.getCategoryFilter(cate4Srch, "BRAND"));
+		mav.addObject("filterSizeList", displayService.getCategoryFilter(cate4Srch, "SIZE"));
+		mav.addObject("filterPriceList", displayService.getCategoryFilter(cate4Srch, "PRICE"));
+		mav.addObject("filterAgeList", displayService.getCategoryFilter(cate4Srch, "AGE"));
+		mav.addObject("filterSeasonList", displayService.getCategoryFilter(cate4Srch, "SEASON"));
+		mav.addObject("filterColorList", displayService.getCategoryFilter(cate4Srch, "COLOR"));
+		mav.addObject("filterBenefitList", displayService.getCategoryFilter(cate4Srch, "BENEFIT"));
+		mav.addObject("cateInfo", cate4Srch);
 
 		return mav;
 	}

+ 58 - 4
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -418,7 +418,45 @@ public class TsfMypageController extends TsfBaseController {
 
 		return mav;
 	}
-	
+
+	/**
+	 * 교환신청
+	 *
+	 * @param OrderChange
+	 * @return GagaMap
+	 * @author card007
+	 * @since 2021. 04. 06
+	 */
+	@SuppressWarnings("unchecked")
+	@PostMapping("/exchange")
+	@ResponseBody
+	public GagaMap excReq(@RequestBody OrderChange orderChange) {
+		GagaMap result = new GagaMap();
+
+		// 교환요청 데이터 확인
+		if (orderChange == null) {
+			result.set("status", GagaResponseStatus.FAIL.getCode());
+			result.set("message", message.getMessage("FAIL_1001"));
+			return result;
+		}
+
+		// 세션 고객번호 설정
+		int custNo = TsfSession.getInfo().getCustNo();
+		orderChange.setUpdNo(custNo);
+		orderChange.setRegNo(custNo);
+
+		// 교환처리
+		result = coreOrderChangeService.exchReq(orderChange);
+
+		// 처리 결과 코드에 따른 메세지 설정
+		if (result.get("status").equals(GagaResponseStatus.SUCCESS.getCode())) {
+			result.set("message", message.getMessage("SUCC_0004"));
+		} else {
+			result.set("message", message.getMessage("FAIL_0004"));
+		}
+
+		return result;
+	}
 
 	/**
 	 * 마이페이지 등급쿠폰 다운 처리
@@ -1332,9 +1370,13 @@ public class TsfMypageController extends TsfBaseController {
 
 		if (StringUtils.isBlank(referer)) {
 			redirect = true;
-		} else if (!referer.contains("/mypage/customer/confirm/form")) {
+		}
+
+		if (!referer.contains("/mypage/customer/confirm/form")) {
 			redirect = true;
-		} else if (!"Y".equals(confirmYn)) {
+		}
+
+		if (!"Y".equals(confirmYn)) {
 			redirect = true;
 		}
 
@@ -1343,7 +1385,7 @@ public class TsfMypageController extends TsfBaseController {
 			return mav;
 		}
 
-		mav.addObject("bankList", rendererService.getCommonCodeList("G940", "Y"));
+		mav.addObject("bankList", rendererService.getCommonCodeList("G942", "Y"));
 
 		mav.setViewName(super.getDeviceViewName("mypage/MypageCustModifyForm"));
 		return mav;
@@ -1598,6 +1640,18 @@ public class TsfMypageController extends TsfBaseController {
 		return customerService.getCustomerDeliveryAddrList(custDeliveryAddr);
 	}
 
+	/**
+	 * 마이페이지 - 배송지 삭제
+	 *
+	 * @return Collection<CustDeliveryAddr>
+	 * @author jsshin
+	 * @since 2021. 04. 05
+	 */
+	@PostMapping("/customer/delivery/addr/delete")
+	@ResponseBody
+	public GagaMap deleteCustDeliveryAddr(@RequestBody CustDeliveryAddr custDeliveryAddr) {
+		return customerService.deleteCustDeliveryAddr(custDeliveryAddr);
+	}
 
 	/*신주승 끝*/
 }

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

@@ -84,7 +84,7 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// TODO 임시 장바구니
 		// 2. 장바구니시퀀스 배열 등록 (장바구니 상품 정보 조회)
-		//int[] arr = {11,77,8};
+		//int[] arr = {20,12};
 		//order.setCartSqArr(arr);		// 장바구니시퀀스
 		//order.setShotDelvUseYn("Y");	// 장바구니총알배송사용여부
 		
@@ -113,11 +113,6 @@ public class TsfOrderController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap updateCustomerAuth(@RequestBody Customer customer) {
 		GagaMap authInfo = niceCertify.getCertifyCellPhoneResultInfo(customer);
-		
-		//ModelAndView mav = new ModelAndView();
-		//mav.addObject("cellPhnno"	, authInfo.getString("sMobileNo"));
-		//mav.addObject("custNm"	, authInfo.getString("sName"));
-		
 		return authInfo;
 	}
 	
@@ -146,6 +141,10 @@ public class TsfOrderController extends TsfBaseController {
 		}
 		
 		// TODO
+		int[] arr = {1,2,158,150,149,159,148,153,20,12};
+		order.setCartSqArr(arr);		// 장바구니시퀀스
+		order.setShotDelvUseYn("Y");	// 장바구니총알배송사용여부
+		
 		// 1.1 카트시퀀스가 정보가 없을때 처리 장바구니로 이동 
 		if (order.getCartSqArr() == null) {
 			mav.setViewName("redirect:/cart/list/form");		// 비회원주문서화면
@@ -175,8 +174,6 @@ public class TsfOrderController extends TsfBaseController {
 		// 3.1 즉시할인, 다다익선 할인금액 정보 적용 정보
 		Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
 		
-		log.info("tmtbGoodsApplyList.size() ::: {} ", tmtbGoodsApplyList.size());
-		
 		// 3.2 배송정보조회(장바구니상품목록)
 		GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList, order);
 		
@@ -356,6 +353,46 @@ public class TsfOrderController extends TsfBaseController {
 		return mav;
 	}
 	
+	/**
+	 * 배송정보조회
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping("/entryInfo")
+	public ModelAndView entryInfo(@RequestBody Order order) {
+		ModelAndView mav = new ModelAndView();
+		
+		mav.addObject("order"				, order);									// 파라미터
+		mav.addObject("isLogin"				, TsfSession.isLogin());					// 로그인여부
+		mav.setViewName(super.getDeviceViewName("order/OrderEntryInfo"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 배송정보조회
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping("/madeInfo")
+	public ModelAndView madeInfo(@RequestBody Order order) {
+
+		ModelAndView mav = new ModelAndView();
+		mav.addObject("order"				, order);									// 파라미터
+		mav.addObject("isLogin"				, TsfSession.isLogin());					// 로그인여부
+		mav.setViewName(super.getDeviceViewName("order/OrderMadeInfo"));
+		
+		return mav;
+	}
+	
 	/**
 	 * 주문내역정보조회
 	 *
@@ -382,6 +419,7 @@ public class TsfOrderController extends TsfBaseController {
 		GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList, order);
 				
 		ModelAndView mav = new ModelAndView();
+		mav.addObject("goodsTotCnt" 		, delvOrderMap.get("goodsTotCnt"));			// 총상품건수
 		mav.addObject("delvAllCartList" 	, delvOrderMap.get("delvAllCartList"));		// 전체배송목록
 		mav.addObject("delvFeeCdCnt" 		, delvOrderMap.get("delvFeeCdCnt"));		// 자사총알배송상품건수
 		mav.addObject("shotCnt" 			, delvOrderMap.get("shotCnt"));				// 자사총알배송상품건수

+ 53 - 15
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -3,6 +3,7 @@ package com.style24.front.biz.web;
 import java.util.Collection;
 import java.util.Map;
 
+import com.style24.front.biz.service.TsfCustomerService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.mobile.device.Device;
@@ -61,6 +62,10 @@ public class TsfPlanningController extends TsfBaseController {
 
 	@Autowired
 	private TscCouponService coreCouponService;
+
+	@Autowired
+	private TsfCustomerService customerService;
+
 	/**
 	 * 기획전 메인 화면
 	 * @param cateNo - 카테고리번호
@@ -184,19 +189,6 @@ public class TsfPlanningController extends TsfBaseController {
 		plan.setTmplType("G082_52");
 		mav.addObject("goods4Info", planningService.getPlanGoodsDisplayList(plan));
 
-		if (planGb.equals("P")) {
-			// 다른기획전 보기 
-			mav.addObject("planList", planningService.getPlanningList(plan));
-			mav.addObject("listSize", planningService.getPlanningList(plan).size());
-		}
-		else{
-			// 다른이벤트 보기
-			mav.addObject("planList", planningService.getPlanEventList(plan));
-			mav.addObject("listSize", planningService.getPlanEventList(plan).size());
-		}
-		
-		
-//
 //		mav.addObject("couponList", planningService.getPlusCouponList(plan));
 //
 //		// 코너 목록
@@ -213,6 +205,25 @@ public class TsfPlanningController extends TsfBaseController {
 		mav.addObject("viewPage", "G037_40");
 		mav.addObject("popupPlanSq", plan.getPlanSq());
 		
+		if (planGb.equals("P")) {
+			// 다른기획전 보기 
+			mav.addObject("planList", planningService.getPlanningList(plan));
+			mav.addObject("listSize", planningService.getPlanningList(plan).size());
+		}
+		else if(planGb.equals("E")){
+			// 다른이벤트 보기
+			mav.addObject("planList", planningService.getPlanEventList(plan));
+			mav.addObject("listSize", planningService.getPlanEventList(plan).size());
+		}else if(planGb.equals("C")) {
+			// 출석체크 
+			mav.addObject("planList", planningService.getPlanEventList(plan));
+			mav.addObject("listSize", planningService.getPlanEventList(plan).size());
+			mav.addObject("month", planningService.getAttendMonth(planInfo));
+			mav.setViewName(super.getDeviceViewName("planning/PlanningEventAttendForm"));
+			return mav;
+		}
+		
+		
 		mav.setViewName(super.getDeviceViewName("planning/PlanningDetailForm"));
 		return mav;
 	}
@@ -428,11 +439,11 @@ public class TsfPlanningController extends TsfBaseController {
 
 	
 	/**
-	 * 총알배송 메인 화면
+	 * 총알배송 / 일반배송 확인
 	 * 
 	 * @return
 	 * @author sowon
-	 * @since 2021. 3. 30
+	 * @since 2021. 4. 5
 	 */
 	@GetMapping("shot/delivery/confirm")
 	@ResponseBody
@@ -441,4 +452,31 @@ public class TsfPlanningController extends TsfBaseController {
 		result.set("shotYn", planningService.getCustAddrShotConfirm(recipZipcode));
 		return result;
 	}
+
+	/**
+	 * 회원등급 혜택
+	 *
+	 * @return ModelAndView
+	 * @author jsshin
+	 * @since 2021. 04. 06
+	 */
+	@GetMapping("/event/custgrade/benefit/form")
+	public ModelAndView getCustGradeBenefitForm() {
+		ModelAndView mav = new ModelAndView();
+		boolean isLogin = TsfSession.isLogin();
+		mav.addObject("isLogin", isLogin);
+
+		if (isLogin) {
+			Customer customer = new Customer();
+			customer.setSiteCd(TscConstants.Site.STYLE24.value());
+			customer.setCustNo(TsfSession.getInfo().getCustNo());
+			customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
+
+			mav.addObject("exptCustGrdeMap", customerService.getExpectedCustGrde(customer));
+			mav.addObject("customerInfo", coreCustomerService.getCustomerInfo(customer));
+		}
+
+		mav.setViewName(super.getDeviceViewName("planning/PlanningCustGradeBenefitForm"));
+		return mav;
+	}
 }

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

@@ -49,4 +49,5 @@ public class Cate4Srch extends TscBaseDomain {
 	private String viewDt;			// 미리보기 일시
 	private String preview;			// 미리보기 여부 (Y:미리보기)
 
+	private String filterGb;		// 필터 구분값
 }

+ 8 - 8
src/main/java/com/style24/persistence/domain/GoodsSafeNo.java

@@ -21,13 +21,13 @@ public class GoodsSafeNo extends TscBaseDomain {
 	private String certDiv;
 	private String certDt;
 
-	public boolean getIsCertNum() {
-		if (this.certNum.matches(".*[0-9].*")) {
-			return true;
-		} else {
-			return false;
-		}
-
-	}
+//	public boolean getIsCertNum() {
+//		if (this.certNum.matches(".*[0-9].*")) {
+//			return true;
+//		} else {
+//			return false;
+//		}
+//
+//	}
 
 }

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

@@ -53,5 +53,8 @@ public class GoodsSearch extends TscBaseDomain {
     private Integer price5;
     private Integer price6;
 
+    private String  filterGb;
+    private String  filterCd;
+    private String  filterNm;
 
 }

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

@@ -34,6 +34,7 @@ public class GoodsStock extends TscBaseDomain {
 	private int stockQty;			// 상품 재고
 	private String selfGoodsYn;		// 자사상품구분
 	private String optNm;			// 옵션명
+	private String goodsStat;		// 상품상태
 	private int minOrdQty;
 	private int maxOrdQty;
 	

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

@@ -244,6 +244,17 @@ public class Plan extends TscBaseDomain {
 	private String brandKnm;
 
 	private String sysImgNm;			// 상품 이미지
+	
+	private String sun;
+	private String mon;
+	private String tue;
+	private String wed;
+	private String thu;
+	private String fri;
+	private String sat;
+	
+	
+	
 	// Pagination
 	private TscPageRequest pageable;
 	private int pageNo = 1;

+ 56 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCustomer.xml

@@ -568,4 +568,60 @@
 		WHERE  CUST_NO = #{custNo}
 	</update>
 
+	<!--고객등급 정책조회-->
+	<select id="getCustGradePolicy" parameterType="CustGrade" resultType="CustGrade">
+		/* TsfCustomer.getCustGradePolicy */
+		SELECT SITE_CD
+		     , GRADE_CD
+		     , FN_GET_CODE_NM('G110', GRADE_CD) AS GRADE_CD_NM
+		     , SUBSTRING(GRADE_CD, 6, 2) AS GRADE_CD_NO
+		     , ICON_NM
+		     , CAL_MONTHS
+		     , MIN_BUY_AMT
+		     , MIN_BUY_CNT
+		     , BUY_EXCEPT_AMT
+		     , GRADE_CPN_ID1
+		     , GRADE_CPN_ID2
+		     , GRADE_CPN_ID3
+		     , DISP_ORD
+		     , USE_YN
+		FROM  TB_CUST_GRADE_POLICY
+		WHERE SITE_CD = #{siteCd}
+		AND   USE_YN = 'Y'
+		ORDER BY GRADE_CD
+	</select>
+	
+	<!--고객 예상등급 조회-->
+	<select id="getExpectedCustGrde" parameterType="CustGrade" resultType="CustGrade">
+		/* TsfCustomer.getExpectedCustGrde */
+		SELECT B.ORD_NO_CNT
+		     , B.SUM_REAL_ORD_AMT
+		     , #{gradeCd}        AS GRADE_CD
+		     , FN_GET_CODE_NM('G110', #{gradeCd}) AS GRADE_CD_NM
+		     , SUBSTRING(#{gradeCd}, 6, 2)        AS GRADE_CD_NO
+		FROM  (
+		       SELECT COUNT(DISTINCT A.ORD_NO) AS ORD_NO_CNT
+		            , SUM(A.SUM_REAL_ORD_AMT)  AS SUM_REAL_ORD_AMT
+		       FROM (
+		              SELECT O.ORD_NO
+		                   , SUM(OD.REAL_ORD_AMT + OD.GFCD_USE_AMT) AS SUM_REAL_ORD_AMT
+		              FROM   TB_ORDER O
+		              INNER JOIN
+		                     TB_ORDER_DETAIL OD
+		              ON     O.ORD_NO = OD.ORD_NO
+		              INNER JOIN
+		                     TB_CUSTOMER C
+		              ON     O.CUST_NO = C.CUST_NO
+		              WHERE  OD.ORD_DTL_STAT = 'G013_70' /*구매확정*/
+		              AND    C.CUST_NO = #{custNo}
+		              AND    O.ORD_DT >= DATE_ADD(DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY), INTERVAL -#{calMonths} MONTH)
+		              AND    O.ORD_DT <![CDATA[<]]> DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY) /*익월 1일*/
+		              GROUP BY O.ORD_NO
+		              HAVING SUM(OD.REAL_ORD_AMT + OD.GFCD_USE_AMT) >= #{buyExceptAmt}
+		            ) A
+		       ) B
+		WHERE B.ORD_NO_CNT >= #{minBuyCnt}
+		OR    B.SUM_REAL_ORD_AMT >= #{minBuyAmt}
+	</select>
+
 </mapper>

+ 17 - 421
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -588,431 +588,27 @@
 				 )
 	</select>
 
-	<!-- 상품 카테고리 필터 브랜드 -->
-	<select id="getCategoryFliterBrand" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
-		/* TsfDisplay.getCategoryFliterBrand */
-		SELECT BG.BRAND_GROUP_NO
-		     , CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
-		            BG.BRAND_GROUP_ENM
-		       ELSE
-		            BG.BRAND_GROUP_KNM
-		       END               AS BRAND_GROUP_NM /*브랜드그룹명*/
-		FROM   TB_BRAND_GROUP BG
-		WHERE  BRAND_GROUP_NO IN (SELECT B.BRAND_GROUP_NO
-		                          FROM   TB_CATE_4SRCH C4
-		                               , TB_CATE_GOODS CG
-		                               , TB_GOODS G
-		                               , TB_GOODS_STOCK GS
-		                               , TB_BRAND B
-		                               , TB_SITE_BRAND SB
-		                          WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
-		                          <choose>
-			                        <when test="brandGroupNo != null and brandGroupNo != ''">
-				                  AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
-									</when>
-			                        <otherwise>
-				                  AND    CG.BRAND_GROUP_NO = 0
-			                        </otherwise>
-		                          </choose>
-		                          AND    CG.GOODS_CD = G.GOODS_CD
-		                          AND    G.GOODS_CD = GS.GOODS_CD
-		                          AND    G.BRAND_CD = B.BRAND_CD
-		                          AND    B.BRAND_CD = SB.BRAND_CD
-		                          AND    C4.SITE_CD = #{siteCd}
-		                          AND    C4.CATE_GB = #{cateGb}
-		                          AND    C4.CATE_TYPE = 'G031_10'
-		                          AND    C4.CATE1_NO = #{cate1No}
-		                          <if test="cate2No != null and cate2No != ''">
-		                          	AND    C4.CATE2_NO = #{cate2No}
-		                          </if>
-		                          <if test="cate3No != null and cate3No != ''">
-		                          	AND    C4.CATE3_NO = #{cate3No}
-		                          </if>
-		                          <if test="cate4No != null and cate4No != ''">
-		                          	AND    C4.CATE4_NO = #{cate4No}
-		                          </if>
-		                          <if test="cate5No != null and cate5No != ''">
-		                          	AND    C4.CATE5_NO = #{cate5No}
-		                          </if>
-		                          AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-		                          AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
-		                          AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
-		                          AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
-		                          AND    SB.SITE_CD = #{siteCd}
-		                          AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
-		                          AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
-		                         )
-		AND  BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
-		ORDER  BY 2
-	</select>
-
-	<!-- 상품 카테고리 필터 사이즈 -->
-	<select id="getCategoryFliterSize" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
-		/* TsfDisplay.getCategoryFliterSize */
-		SELECT DISTINCT
-		       I.SIZE_GB /*사이즈구분(T:상의, B:하의, S:신발)*/
-		       , S.OPT_CD2 /*옵션코드2*/
-		FROM   TB_CATE_4SRCH C4
-		     , TB_CATE_GOODS CG
-		     , TB_GOODS G
-		     , TB_ITEMKIND I
-		     , VW_STOCK S
-		     , TB_BRAND B
-		     , TB_SITE_BRAND SB
-		WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+	<!-- 상품 카테고리 필터 -->
+	<select id="getCategoryFilter" parameterType="Cate4srch" resultType="GoodsSearch">
+		/* TsfDisplay.getCategoryFilter */
+		SELECT
 		<choose>
-			<when test="brandGroupNo != null and brandGroupNo != ''">
-				AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+			<when test="filterGb != null and filterGb =='SIZE'">
+		       SUBSTRING_INDEX(FILTER_CD,'|',1) AS FILTER_CD
 			</when>
 			<otherwise>
-				AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+		       FILTER_CD
 			</otherwise>
 		</choose>
-		AND    CG.GOODS_CD = G.GOODS_CD
-		AND    G.ITEMKIND_CD = I.ITEMKIND_CD
-		AND    G.GOODS_CD = S.GOODS_CD
-		AND    G.BRAND_CD = B.BRAND_CD
-		AND    B.BRAND_CD = SB.BRAND_CD
-		AND    C4.SITE_CD = #{siteCd}
-		AND    C4.CATE_GB = #{cateGb}
-		AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
-		AND    C4.CATE1_NO = #{cate1No}
-		<if test="cate2No != null and cate2No != ''">
-			AND    C4.CATE2_NO = #{cate2No}
-		</if>
-		<if test="cate3No != null and cate3No != ''">
-			AND    C4.CATE3_NO = #{cate3No}
-		</if>
-		<if test="cate4No != null and cate4No != ''">
-			AND    C4.CATE4_NO = #{cate4No}
-		</if>
-		<if test="cate5No != null and cate5No != ''">
-			AND    C4.CATE5_NO = #{cate5No}
-		</if>
-		AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-		AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
-		AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
-		AND    I.SIZE_GB IS NOT NULL
-		AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY <![CDATA[>]]> 0 /*재고있는옵션*/
-		AND    S.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
-		AND    S.DISP_YN = 'Y' /*노출하는 옵션*/
-		AND    LENGTH(S.OPT_CD2) > 0
-		AND    SB.SITE_CD = #{siteCd}
-		AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
-		AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
-		ORDER  BY CASE WHEN I.SIZE_GB = 'T' THEN 1
-		               WHEN I.SIZE_GB = 'B' THEN 2
-		               WHEN I.SIZE_GB = 'S' THEN 3
-		               ELSE 4
-		               END, S.OPT_CD2
-	</select>
-
-	<!-- 상품 카테고리 필터 사이즈 -->
-	<select id="getCategoryFliterPrice" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
-		/* TsfDisplay.getCategoryFliterPrice */
-		SELECT FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
-		     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
-		     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
-		     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
-		     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
-		     , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
-		FROM   (
-		        SELECT MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
-		        , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
-		        , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
-		        FROM   (
-		                SELECT FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/
-		                FROM   TB_CATE_4SRCH C4
-		                     , TB_CATE_GOODS CG
-		                     , TB_GOODS G
-		                     , TB_GOODS_STOCK GS
-		                     , TB_BRAND B
-		                     , TB_SITE_BRAND SB
-		                WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
-		                <choose>
-		                	<when test="brandGroupNo != null and brandGroupNo != ''">
-		                		AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
-		                	</when>
-		                	<otherwise>
-		                		AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
-		                	</otherwise>
-		                </choose>
-		                AND    CG.GOODS_CD = G.GOODS_CD
-		                AND    CG.GOODS_CD = GS.GOODS_CD
-		                AND    G.BRAND_CD = B.BRAND_CD
-		                AND    B.BRAND_CD = SB.BRAND_CD
-		                AND    C4.SITE_CD = #{siteCd}
-		                AND    C4.CATE_GB = #{cateGb}
-		                AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
-		                AND    C4.CATE1_NO = #{cate1No}
-		                <if test="cate2No != null and cate2No != ''">
-		                	AND    C4.CATE2_NO = #{cate2No}
-		                </if>
-		                <if test="cate3No != null and cate3No != ''">
-		                	AND    C4.CATE3_NO = #{cate3No}
-		                </if>
-		                <if test="cate4No != null and cate4No != ''">
-		                	AND    C4.CATE4_NO = #{cate4No}
-		                </if>
-		                <if test="cate5No != null and cate5No != ''">
-		                	AND    C4.CATE5_NO = #{cate5No}
-		                </if>
-		                AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-		                AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
-		                AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
-		                AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
-		                AND    SB.SITE_CD = #{siteCd}
-		                AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
-		                AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
-		        ) Z
-		) Z
-	</select>
-
-	<!-- 상품 카테고리 필터 연령대 -->
-	<select id="getCategoryFliterAge" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
-		/* TsfDisplay.getCategoryFliterAge */
-		SELECT CD    AS AGES_CD /*연령대코드*/
-		     , CD_NM AS AGES_NM /*연령대명*/
-		FROM   TB_COMMON_CODE
-		WHERE  CD_GB = 'G023'
-		AND    CD IN (SELECT G.AGE_GRP_CD
-		              FROM   TB_CATE_4SRCH C4
-		                   , TB_CATE_GOODS CG
-		                   , TB_GOODS G
-		                   , TB_GOODS_STOCK GS
-		                   , TB_BRAND B
-		                   , TB_SITE_BRAND SB
-		              WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
-		              <choose>
-		              	<when test="brandGroupNo != null and brandGroupNo != ''">
-		              		AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
-		              	</when>
-		              	<otherwise>
-		              		AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
-		              	</otherwise>
-		              </choose>
-		              AND    CG.GOODS_CD = G.GOODS_CD
-		              AND    CG.GOODS_CD = GS.GOODS_CD
-		              AND    G.BRAND_CD = B.BRAND_CD
-		              AND    B.BRAND_CD = SB.BRAND_CD
-		              AND    C4.SITE_CD = #{siteCd}
-		              AND    C4.CATE_GB = #{cateGb}
-		              AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
-		              AND    C4.CATE1_NO = #{cate1No}
-		              <if test="cate2No != null and cate2No != ''">
-		              	AND    C4.CATE2_NO = #{cate2No}
-		              </if>
-		              <if test="cate3No != null and cate3No != ''">
-		              	AND    C4.CATE3_NO = #{cate3No}
-		              </if>
-		              <if test="cate4No != null and cate4No != ''">
-		              	AND    C4.CATE4_NO = #{cate4No}
-		              </if>
-		              <if test="cate5No != null and cate5No != ''">
-		              	AND    C4.CATE5_NO = #{cate5No}
-		              </if>
-		              AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-		              AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
-		              AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
-		              AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
-		              AND    SB.SITE_CD = #{siteCd}
-		              AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
-		              AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
-		            )
-		AND    USE_YN = 'Y'
-		ORDER  BY DISP_ORD
-	</select>
-
-	<!-- 상품 카테고리 필터 시즌 -->
-	<select id="getCategoryFliterSeason" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
-	/* TsfDisplay.getCategoryFliterSeason */
-		SELECT CD    AS SEASON_CD /*시즌코드*/
-		     , CD_NM AS SEASON_NM /*시즌명*/
-		FROM   TB_COMMON_CODE
-		WHERE  CD_GB = 'G006'
-		AND    CD IN (SELECT G.SEASON_CD
-		              FROM   TB_CATE_4SRCH C4
-		                   , TB_CATE_GOODS CG
-		                   , TB_GOODS G
-		                   , TB_GOODS_STOCK GS
-		                   , TB_BRAND B
-		                   , TB_SITE_BRAND SB
-		              WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
-		              <choose>
-		              	<when test="brandGroupNo != null and brandGroupNo != ''">
-		              		AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
-		              	</when>
-		              	<otherwise>
-		              		AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
-		              	</otherwise>
-		              </choose>
-		              AND    CG.GOODS_CD = G.GOODS_CD
-		              AND    CG.GOODS_CD = GS.GOODS_CD
-		              AND    G.BRAND_CD = B.BRAND_CD
-		              AND    B.BRAND_CD = SB.BRAND_CD
-		              AND    C4.SITE_CD = #{siteCd}
-		              AND    C4.CATE_GB = #{cateGb}
-		              AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
-		              AND    C4.CATE1_NO = #{cate1No}
-		              <if test="cate2No != null and cate2No != ''">
-		              	AND    C4.CATE2_NO = #{cate2No}
-		              </if>
-		              <if test="cate3No != null and cate3No != ''">
-		              	AND    C4.CATE3_NO = #{cate3No}
-		              </if>
-		              <if test="cate4No != null and cate4No != ''">
-		              	AND    C4.CATE4_NO = #{cate4No}
-		              </if>
-		              <if test="cate5No != null and cate5No != ''">
-		              	AND    C4.CATE5_NO = #{cate5No}
-		              </if>
-		              AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-		              AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
-		              AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
-		              AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
-		              AND    SB.SITE_CD = #{siteCd}
-		              AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
-		              AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
-		     )
-		AND    USE_YN = 'Y'
-		ORDER  BY DISP_ORD
-	</select>
-
-	<!-- 상품 카테고리 필터 컬러 -->
-	<select id="getCategoryFliterColor" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
-		/* TsfDisplay.getCategoryFliterColor */
-		SELECT C.COLOR_GRP_CD               /*컬러그룹코드*/
-		     , CC.CD_DESC     AS COLOR_CHIP /*컬러칩*/
-		FROM   TB_COLOR C
-		     , TB_COMMON_CODE CC
-		WHERE  C.COLOR_GRP_CD = CC.CD
-		AND    CC.CD_GB = 'G072'
-		AND    C.COLOR_CD IN (SELECT O.OPT_CD1
-		                      FROM   TB_CATE_4SRCH C4
-		                           , TB_CATE_GOODS CG
-		                           , TB_GOODS G
-		                           , TB_GOODS_STOCK GS
-		                           , TB_BRAND B
-		                           , TB_SITE_BRAND SB
-		                           , TB_OPTION O
-		                      WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
-		                      <choose>
-		                      	<when test="brandGroupNo != null and brandGroupNo != ''">
-		                      		AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
-		                      	</when>
-		                      	<otherwise>
-		                      		AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
-		                      	</otherwise>
-		                      </choose>
-		                      AND    CG.GOODS_CD = G.GOODS_CD
-		                      AND    CG.GOODS_CD = GS.GOODS_CD
-		                      AND    G.BRAND_CD = B.BRAND_CD
-		                      AND    B.BRAND_CD = SB.BRAND_CD
-		                      AND    G.GOODS_CD = O.GOODS_CD
-		                      AND    C4.SITE_CD = #{siteCd}
-		                      AND    C4.CATE_GB = #{cateGb}
-		                      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
-		                      AND    C4.CATE1_NO = #{cate1No}
-		                      <if test="cate2No != null and cate2No != ''">
-		                      	AND    C4.CATE2_NO = #{cate2No}
-		                      </if>
-		                      <if test="cate3No != null and cate3No != ''">
-		                      	AND    C4.CATE3_NO = #{cate3No}
-		                      </if>
-		                      <if test="cate4No != null and cate4No != ''">
-		                      	AND    C4.CATE4_NO = #{cate4No}
-		                      </if>
-		                      <if test="cate5No != null and cate5No != ''">
-		                      	AND    C4.CATE5_NO = #{cate5No}
-		                      </if>
-		                      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-		                      AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
-		                      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
-		                      AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
-		                      AND    SB.SITE_CD = #{siteCd}
-		                      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
-		                      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
-		                      AND    O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
-		                      AND    O.DISP_YN = 'Y' /*노출하는 옵션*/
-		            )
-		AND    CC.USE_YN = 'Y'
-		GROUP BY C.COLOR_GRP_CD , CC.CD_DESC
-		ORDER  BY CC.DISP_ORD
-	</select>
-
-	<!-- 상품 카테고리 필터 혜택 -->
-	<select id="getCategoryFliterBenefit" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
-		/* TsfDisplay.getCategoryFliterBenefit */
-		WITH TAB_BENEFIT AS (
-			            SELECT GB.CPN_YN
-			            	 , GB.FREEGIFT_YN
-			            	 , G.FORMAL_GB
-			            	 , G.MIN_ORD_AMT
-			            	 , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/
-			            	 , DF.REAL_DELV_AMT
-			            FROM	TB_CATE_4SRCH C4
-						JOIN	TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		                <choose>
-		                	<when test="brandGroupNo != null and brandGroupNo != ''">
-		                		AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
-		                	</when>
-		                	<otherwise>
-		                		AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
-		                	</otherwise>
-		                </choose>
-						JOIN	TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
-						JOIN	TB_GOODS_STOCK GS ON CG.GOODS_CD = GS.GOODS_CD
-						LEFT OUTER JOIN	TB_GOODS_BENEFIT GB ON G.GOODS_CD = GB.GOODS_CD
-						JOIN	TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-						JOIN	TB_SITE_BRAND SB ON B.BRAND_CD = SB.BRAND_CD
-						JOIN	TB_DELIVERY_FEE DF ON G.DELV_FEE_CD = DF.DELV_FEE_CD
-			           WHERE	1=1
-		               AND    C4.SITE_CD = #{siteCd}
-		               AND    C4.CATE_GB = #{cateGb}
-		               AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
-		               AND    C4.CATE1_NO = #{cate1No}
-		               <if test="cate2No != null and cate2No != ''">
-		               	AND    C4.CATE2_NO = #{cate2No}
-		               </if>
-		               <if test="cate3No != null and cate3No != ''">
-		               	AND    C4.CATE3_NO = #{cate3No}
-		               </if>
-		               <if test="cate4No != null and cate4No != ''">
-		               	AND    C4.CATE4_NO = #{cate4No}
-		               </if>
-		               <if test="cate5No != null and cate5No != ''">
-		               	AND    C4.CATE5_NO = #{cate5No}
-		               </if>
-		               AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-		               AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
-		               AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
-		               AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
-		               AND    SB.SITE_CD = #{siteCd}
-		               AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
-		               AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
-		)
-		   SELECT	Z.BENEFIT_CD , Z.BENEFIT_NM
-		    FROM	(
-					SELECT '10'       AS BENEFIT_CD
-						 , '쿠폰할인' AS BENEFIT_NM
-					FROM   TAB_BENEFIT
-					WHERE  CPN_YN = 'Y'
-					UNION ALL
-					SELECT '20'       AS BENEFIT_CD
-						 , '무료배송' AS BENEFIT_NM
-					FROM   TAB_BENEFIT
-					WHERE  REAL_DELV_AMT = 0 -- MIN_ORD_AMT >= CURR_PRICE
-					UNION ALL
-					SELECT '30'       AS BENEFIT_CD
-						 , '사은품' AS BENEFIT_NM
-					FROM   TAB_BENEFIT
-					WHERE  FREEGIFT_YN = 'Y'
-					UNION ALL
-					SELECT '40'   AS BENEFIT_CD
-						 , '신상' AS BENEFIT_NM
-					FROM   TAB_BENEFIT
-					WHERE  FORMAL_GB = 'G009_10'
-				) Z
-		GROUP BY Z.BENEFIT_CD , Z.BENEFIT_NM
+			 , FILTER_NM
+		FROM	TB_CATE_FILTER
+		WHERE	1=1
+		  AND	SITE_CD = #{siteCd}
+		  AND 	CATE_GB = #{cateGb}
+		  AND 	FORMAL_GB = #{formalGb}
+		  AND 	BRAND_GROUP_NO = #{brandGroupNo}
+		  AND 	CATE_NO = #{cateNo}
+		  AND 	FILTER_GB = #{filterGb}
+		ORDER BY DISP_ORD
 	</select>
 </mapper>

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

@@ -254,6 +254,7 @@
 		           , G.SELF_GOODS_YN
 		           , G.MIN_ORD_QTY
 		           , G.MAX_ORD_QTY
+		           , G.GOODS_STAT
 		           , O.OPT_CD1
 		           , SUM(CASE WHEN O.SOLDOUT_YN = 'Y' THEN 0
 		                      WHEN VS.CURR_STOCK_QTY  <![CDATA[<=]]> 0 THEN 0
@@ -539,7 +540,7 @@
 	<select id="getGoodsResSell" parameterType="Goods" resultType="Goods">
 		/* TsfGoods.getGoodsResSell */
 		SELECT GOODS_CD
-		     , DATE_FORMAT(DELV_RES_DT ,'%Y년 %m월 %d일') AS DELV_RES_DT
+		     , DATE_FORMAT(DELV_RES_DT ,'%Y.%m.%d') AS DELV_RES_DT
 		FROM TB_GOODS_RES_SELL
 		WHERE GOODS_CD = #{goodsCd}
 		AND DELV_RES_DT > NOW()

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

@@ -192,6 +192,7 @@
 		   AND OD.ORD_DTL_STAT = #{ordDtlStat}
 			</if>
 		   AND O.DISP_YN = 'Y'
+		   AND OD.ORD_DTL_STAT <![CDATA[<>]]> 'G013_25'
 		   AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
 		</where>
 				) Z
@@ -382,6 +383,9 @@
 		 INNER JOIN TB_ORDER_DETAIL OD
 		    ON OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
 		   AND OD.ORD_NO = #{ordNo}
+		<if test="supplyCompCd != null and supplyCompCd != ''">
+		   AND OD.SUPPLY_COMP_CD = #{supplyCompCd}
+		</if>
 		<if test="ordDtlNoArr != null">
 		   AND OD.ORD_DTL_NO IN
 			<foreach collection="ordDtlNoArr" item="item" index="index"  open="(" close=")" separator=",">

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

@@ -192,7 +192,7 @@
 		     , Z.ACCOUNT_NO
 		     , Z.ACCOUNT_NM
 		     , Z.RTN_DELV_FEE
-		     , Z.DELV_FEE
+		     , Z.EXC_DELV_FEE
 		  FROM (SELECT O.ORD_NO
 		             , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')                                      AS ORD_DT
 		             , OD.ORD_DTL_NO
@@ -239,7 +239,7 @@
 		             , CA.ACCOUNT_NO
 		             , IFNULL(CA.ACCOUNT_NM, O.ORD_NM)                                        AS ACCOUNT_NM
 		             , DFP.RTN_DELV_FEE
-		             , DFP.DELV_FEE
+		             , DFP.DELV_FEE + DFP.RTN_DELV_FEE                                        AS EXC_DELV_FEE
 		          FROM TB_ORDER O
 		         INNER JOIN TB_ORDER_DETAIL OD
 		            ON O.ORD_NO = OD.ORD_NO
@@ -291,7 +291,7 @@
 		        , Z.ORD_DTL_STAT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.ORD_AMT, Z.REAL_ORD_AMT, Z.SAVE_PNT_AMT, Z.CNCL_RTN_AMT, Z.PNT_DC_AMT
 		        , Z.GFCD_USE_AMT, Z.SHIP_COMP_CD, Z.GIFT_PACK_YN, Z.SHIP_COMP_NM, Z.INVOICE_NO, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD
 		        , Z.SHOT_DELV_YN, Z.CHANGEABLE_YN, Z.SELF_GOODS_YN, Z.BRAND_NM, Z.ORD_REQ_CHG_QTY, Z.ORD_CAN_CHG_QTY, Z.BANK_CD
-		        , Z.ACCOUNT_NO, Z.ACCOUNT_NM, Z.RTN_DELV_FEE, Z.DELV_FEE
+		        , Z.ACCOUNT_NO, Z.ACCOUNT_NM, Z.RTN_DELV_FEE, Z.EXC_DELV_FEE
 		ORDER BY Z.ORD_DTL_NO
 	</select>
 	

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

@@ -388,7 +388,7 @@
 		               END                                  AS NEW_YN   /*신규여부(등록일기준3일)*/
 		             , TIMESTAMPDIFF(DAY,NOW(),P.DISP_EDDT) AS END_DAYS /*종료임박일수*/
 		        FROM   TB_PLAN P
-		        WHERE  P.PLAN_GB = 'E' /*이벤트*/
+		        WHERE  P.PLAN_GB IN ('E','C') /*이벤트,출석체크*/
 		        AND    P.SITE_CD = #{siteCd}
 		        <if test="frontGb != null and frontGb != ''">
 		        AND    P.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
@@ -1100,4 +1100,40 @@
 		WHERE 1=1 
 		AND ZIP_NO = #{recipZipcode}
 	</select>
+	
+	<!-- 달력 출력 -->
+	<select id="getAttendMonth" resultType="Plan" parameterType="Plan">
+		SELECT
+		      MIN(CASE WHEN WEEKDAY = '1' THEN DAY END ) AS 'sun'
+		      ,MIN(CASE WHEN WEEKDAY = '2' THEN DAY END )AS 'mon'
+		      ,MIN(CASE WHEN WEEKDAY = '3' THEN DAY END )AS 'tue'
+		      ,MIN(CASE WHEN WEEKDAY = '4' THEN DAY END )AS 'wed'
+		      ,MIN(CASE WHEN WEEKDAY = '5' THEN DAY END )AS 'thu'
+		      ,MIN(CASE WHEN WEEKDAY = '6' THEN DAY END )AS 'fri'
+		      ,MIN(CASE WHEN WEEKDAY = '7' THEN DAY END )AS 'sat'
+		FROM (
+		SELECT 
+				 CASE WHEN DAYOFWEEK(CDATE) = 1 THEN  WEEKOFYEAR(CDATE) +1 ELSE WEEKOFYEAR(CDATE) END AS WEEK
+				,DAYOFWEEK(CDATE) AS WEEKDAY
+				,DAYOFMONTH(CDATE) AS DAY
+		FROM (
+		        SELECT D1+D2 AS CDATE
+		        FROM (
+		               SELECT STR_TO_DATE(#{dispStdt},'%Y-%m-%d')D1
+		             )D1
+		             ,(
+		               SELECT 0 D2 UNION 
+		               SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION
+		               SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION
+		               SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION
+		               SELECT 12 UNION SELECT 13 UNION SELECT 14 UNION SELECT 15 UNION
+		               SELECT 16 UNION SELECT 17 UNION SELECT 18 UNION SELECT 19 UNION
+		               SELECT 20 UNION SELECT 21 UNION SELECT 22 UNION SELECT 23 UNION
+		               SELECT 24 UNION SELECT 25 UNION SELECT 26 UNION SELECT 27 UNION
+		               SELECT 28 UNION SELECT 29 UNION SELECT 30 UNION SELECT 31
+		             )AS D2) AS TEMP
+		       WHERE TEMP.CDATE <![CDATA[<=]]> LAST_DAY(TEMP.CDATE)
+		)AS TEMP2
+		GROUP BY WEEK
+	</select>
 </mapper>

+ 2 - 4
src/main/resources/config/application.yml

@@ -109,10 +109,8 @@ yes24 :
     unlinkUrl : https://wsyes24.yes24.com/Yes_Mem.asmx/Yes_Partner_Remove
 
 google :
-    # 개발정보
-    sitekey : 6LcY_JUaAAAAAIy1nHPE_lTkpIa51ihEd-waJCeO
-    secretKey : 6LcY_JUaAAAAAFux56mVih0a5NUwP3ARq0HUHR9p
-    # 개발정보
+    sitekey : 6LeZUp4aAAAAAAU-p4cZUfHvGJ_iFUkTUcT1MpKl
+    secretKey : 6LeZUp4aAAAAAD_0Tv4_Jc1lPeOFey604Z812QD-
     recaptchaVerifyUrl : https://www.google.com/recaptcha/api/siteverify
 
 

+ 133 - 0
src/main/webapp/WEB-INF/views/mob/common/fragments/FooterMob.html

@@ -64,6 +64,46 @@
 			</div>
 		</section>
 	</footer>
+	
+	<!-- 배송지관리_팝업 -->
+	<div class="modal pop_full adrsChange_Pop" id="adrsChangePop" tabindex="-1" role="dialog" aria-labelledby="adrsChangeLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+			</div>
+		</div>
+	</div>
+	<!-- //배송지관리_팝업 -->
+	
+	<!-- 배송지추가_팝업 -->
+	<div class="modal pop_full adrsAdd_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+			</div>
+		</div>
+		<a href="#close-modal" rel="modal:close" id="refundPop_close" class="close-modal">Close</a>
+	</div>
+	<!-- //배송지추가_팝업 -->
+	
+	<!-- 배송지수정_팝업 -->
+	<div class="modal pop_full adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+			</div>
+		</div>
+		<a href="#close-modal" rel="modal:close" id="adrsAddPop_close" class="close-modal">Close</a>
+	</div>
+	<!-- //배송지수정_팝업 -->
+	
+	<!-- daum 우편번호_팝업 -->
+	<!-- 2021.04.02 다음우편번호 공통화 작업 -->
+	<!-- 다음우편번호 팝업 -->
+	<div class="modal pop_full couponModify_pop" id="daumZipcodePop" tabindex="-1" role="dialog" aria-labelledby="couponModifyLabel" aria-hidden="true" style="z-index:3000;">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<div id="zipcode_layer"></div>
+			</div>
+		</div>
+	</div>
 
 <script th:inline="javascript">
 /*<![CDATA[*/
@@ -72,6 +112,99 @@
 /*]]>*/
 </script>
 
+<script th:inline="javascript">
+/*<![CDATA[*/
+var element_layer = document.getElementById('zipcode_layer');
+var cfnGetDaumRoadAddr = function(data) {
+	// 팝업에서 검색결과 항목을 클릭했을 때 실행할 코드를 작성하는 부분입니다.
+	// 예제를 참고하여 다양한 활용법을 확인해 보세요.
+	// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분
+
+	// 도로명 주소의 노출 규칙에 따라 주소를 조합한다.
+	// 내려오는 변수가 값이 없는 경우엔 공백('') 값을 가지므로, 이를 참고하여 분기한다.
+	let fullRoadAddr = data.roadAddress; // 도로명 주소 변수
+	let extraRoadAddr = ''; // 도로명 조합형 주소 변수
+
+	// 법정동명이 있을 경우 추가한다. (법정리는 제외)
+	// 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다.
+	if (data.bname !== '' && /[동|로|가]$/g.test(data.bname)) {
+		extraRoadAddr += data.bname;
+	}
+
+	// 건물명이 있고, 공동주택일 경우 추가한다.
+	if (data.buildingName !== '' && data.apartment === 'Y') {
+		extraRoadAddr += (extraRoadAddr !== '' ? ', ' + data.buildingName : data.buildingName);
+	}
+	
+	// 도로명, 지번 조합형 주소가 있을 경우, 괄호까지 추가한 최종 문자열을 만든다.
+	if (extraRoadAddr !== '') {
+		extraRoadAddr = ' (' + extraRoadAddr + ')';
+	}
+	
+	// 도로명, 지번 주소의 유무에 따라 해당 조합형 주소를 추가한다.
+	if (fullRoadAddr !== '') {
+		fullRoadAddr += extraRoadAddr;
+	}
+	
+	return fullRoadAddr;
+}
+
+var cfnOpenDaumAddr = function(daumZip) {
+	// 다은우편번호팝업 노출
+	$("#daumZipcodePop").modal("show");
+	
+	if ($('html').hasClass('is-ie')) {
+		daumZip.open();
+	} else {
+		daumZip.embed(element_layer);
+		
+		// iframe을 넣은 element를 보이게 한다.
+		element_layer.style.display = 'block';
+
+		// iframe을 넣은 element의 위치를 화면의 가운데로 이동시킨다.
+		cfnInitLayerPosition();
+	}
+}
+
+var cfnCloseDaumAddr = function() {
+	
+	// iframe을 넣은 element를 안보이게 한다.
+	element_layer.style.display = 'none';
+	
+	// 다음우편번호팝업 닫기
+	$("#daumZipcodePop").modal("hide");
+}
+
+// 브라우저의 크기 변경에 따라 레이어를 가운데로 이동시키고자 하실때에는
+// resize이벤트나, orientationchange이벤트를 이용하여 값이 변경될때마다 아래 함수를 실행 시켜 주시거나,
+// 직접 element_layer의 top,left값을 수정해 주시면 됩니다.
+var cfnInitLayerPosition = function() {
+	//let width = 420; //우편번호서비스가 들어갈 element의 width
+	//let height = 502; //우편번호서비스가 들어갈 element의 height
+	let borderWidth = 1; //샘플에서 사용하는 border의 두께
+
+	// 위에서 선언한 값들을 실제 element에 넣는다.
+	//element_layer.style.width = width + 'px';
+	//element_layer.style.height = height + 'px';
+	element_layer.style.border = borderWidth + 'px solid';
+	
+	// 실행되는 순간의 화면 너비와 높이 값을 가져와서 중앙에 뜰 수 있도록 위치를 계산한다.
+	/*
+	element_layer.style.left = (((window.innerWidth || document.documentElement.clientWidth) - width) / 2 - borderWidth) + 'px';
+	element_layer.style.top = (((window.innerHeight || document.documentElement.clientHeight) - height) / 2 - borderWidth) + 'px';
+	*/
+	
+	// 다음 레이어 적용
+	$("#__daum__layer_1").css("z-index", 3000);
+}
+
+// 다음우편번호팝업 닫기
+$("#daumZipcodePop_close").on("click", function(){
+	$("#daumZipcodePop").hide();
+});
+/*]]>*/
+</script>
+
 </th:block>
 
 </html>

+ 2 - 1
src/main/webapp/WEB-INF/views/mob/common/fragments/HeadMob.html

@@ -61,6 +61,7 @@
 	<script src="/ux/plugins/jquery.serializeObject.min.js"></script>
 	<script src="/ux/plugins/mcxdialog/mcxdialog_ui.js"></script>
 	<script type="text/javascript" src="https://ssl.daumcdn.net/dmaps/map_js_init/postcode.v2.js"></script>
+	<script src="/ux/plugins/lazyload.min.js"></script>
 
 	<!-- Global site tag (gtag.js) - Google Analytics -->
 <!-- 	<script async src="https://www.googletagmanager.com/gtag/js?id=UA-168660512-1"></script> -->
@@ -117,4 +118,4 @@
 	</script>
 </head>
 
-</html>
+</html>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/common/layout/GoodsLayoutMob.html

@@ -20,7 +20,7 @@
 						<i class="gl3"></i>
 					</span>
 				</button>
-				<h1 id="htopTitle">PAGE TITLE</h1>
+				<h1 id="htopTitle">상품상세</h1>
 			</section>
 		</header>
 

Diferenças do arquivo suprimidas por serem muito extensas
+ 442 - 1724
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html


+ 151 - 317
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailQnaFormMob.html

@@ -14,342 +14,176 @@
  * 1.0  2021.04.04   eskim	   최초 작성
  *******************************************************************************
  -->
-	<!-- 상품문의 리스트 내용 -->
+<!-- 상품문의 리스트 내용 -->
 <div class="pd_qnalist">
-    <div class="info_txt">
-        <ul>
-            <li>상품에 대해 궁금한 점이 있으시다면 문의해주세요.</li>
-            <li>배송, 주문/결제, 취소/반품/교환/환불, 회원, 쿠폰/포인트, 이벤트 등의 자세한 문의사항은 고객센터 &gt; 1:1문의를 이용하여 주시기 바랍니다.</li>
-        </ul>              
-        <div class="btn_group_flex">
-            <div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_GOODS_QNA);"><span>고객센터 1:1문의</span></button></div>
-        </div>     
-    </div>
-    <div class="qna_list">
-        <!-- 나열조건결과 있을 때 노출 내용 -->
-        <div class="yesdata">
-            <div class="form_field check_secret">
-                <input id="except_secret" type="checkbox"><label for="except_secret"><span>비밀글제외</span></label>
-            </div>
-            <div class="ui_row">
-                <div class="foldGroup case2">
-                    <!-- list2 -->
-                    <ul>
-                        <li class="my_qna"><!-- 내가 쓴 글에 클래스 my_qna 추가 -->
-                            <div class="fold_head">
-                                <a href="javascript:void(0)">
-                                    <div>
-                                        <div class="fold_tit">
-                                            <div class="lap1">
-                                                <span class="fold_state done">답변완료</span> <!-- 답변완료 : done / 처리중 : doing -->
-                                                <span class="prod"><i class="ico ico_myqna"></i><i class="ico ico_secret"></i></span>
-                                            </div>
-                                            <div class="lap2"><span>상품을 받았는데, 옷의 색상이 화면과 다릅니다. </span></div>
-                                        </div>
-                                        <span class="id">**nana</span><span class="data">2020.12.02</span>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="fold_cont">
-                                <!-- 내 1대1문의 내용 -->
-                                <div class="fold_detail">
-                                    <div>
-                                        <p>
-                                            PC에서 남성 분또 맨투맨 (T203TS120P)<br>
-                                            오렌지 컬러 선물하려고 하는데 선물을 할 수 없다고 나오네요.<br>
-                                            다른 컬러는 선물이 가능한 것 같은데 오렌지 컬러는 왜 안 되는건가요?<br>
-                                            바쁘시겠지만 확인 부탁드립니다.
-                                        </p>
-                                    </div>
-                                </div>
-                                <!-- //내 1대1문의 내용 -->
-                                <!-- 내 1대1문의 답변 -->
-                                <div class="fold_answer">
-                                    <div>
-                                        <div class="answer_body">
-                                            안녕하세요, 고객님. 스타일24 담당자 배수지 입니다. <br>
-                                            문의주신 해당 상품의 선물하기는 모바일에서만 사용이 가능합니다. <br>
-                                            이외 궁금하신 사항이 있으시면 1:1문의나 고객센터(1544-5336)로 문의 부탁 드립니다. <br>
-                                            고객 만족을 위해 더욱 더 노력하는 스타일24가 되겠습니다. <br>
-                                            좋은 하루 보내세요, 감사합니다.
-                                        </div>
-                                        <div class="answer_foot">
-                                            <span class="id">**nana</span><span class="data">2020.12.02</span>
-                                            <button type="button" class="btn_delete"><span>삭제</span></button>
-                                        </div>
-                                    </div>
-                                </div>
-                                <!-- //내 1대1문의 답변 -->
-                            </div>
-                        </li>
-                        <li>
-                            <div class="fold_head">
-                                <a href="javascript:void(0)">
-                                    <div>
-                                        <div class="fold_tit">
-                                            <div class="lap1">
-                                                <span class="fold_state done">답변완료</span> <!-- 답변완료 : done / 처리중 : doing -->
-                                                <span class="prod"></span>
-                                            </div>
-                                            <div class="lap2"><span>상품을 받았는데, 옷의 색상이 화면과 다릅니다. </span></div>
-                                        </div>
-                                        <span class="id">**nana</span><span class="data">2020.12.02</span>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="fold_cont">
-                                <!-- 내 1대1문의 내용 -->
-                                <div class="fold_detail">
-                                    <div>
-                                        <p>
-                                            PC에서 남성 분또 맨투맨 (T203TS120P)<br>
-                                            오렌지 컬러 선물하려고 하는데 선물을 할 수 없다고 나오네요.<br>
-                                            다른 컬러는 선물이 가능한 것 같은데 오렌지 컬러는 왜 안 되는건가요?<br>
-                                            바쁘시겠지만 확인 부탁드립니다.
-                                        </p>
-                                    </div>
-                                </div>
-                                <!-- //내 1대1문의 내용 -->
-                                <!-- 내 1대1문의 답변 -->
-                                <div class="fold_answer">
-                                    <div>
-                                        <div class="answer_body">
-                                            안녕하세요, 고객님. 스타일24 담당자 배수지 입니다. <br>
-                                            문의주신 해당 상품의 선물하기는 모바일에서만 사용이 가능합니다. <br>
-                                            이외 궁금하신 사항이 있으시면 1:1문의나 고객센터(1544-5336)로 문의 부탁 드립니다. <br>
-                                            고객 만족을 위해 더욱 더 노력하는 스타일24가 되겠습니다. <br>
-                                            좋은 하루 보내세요, 감사합니다.
-                                        </div>
-                                        <div class="answer_foot">
-                                            <span class="id">**nana</span><span class="data">2020.12.02</span>
-                                            <button type="button" class="btn_delete"><span>삭제</span></button>
-                                        </div>
-                                    </div>
-                                </div>
-                                <!-- //내 1대1문의 답변 -->
-                            </div>
-                        </li>
-                        <li>
-                            <div class="fold_head">
-                                <a href="javascript:void(0)">
-                                    <div>
-                                        <div class="fold_tit">
-                                            <div class="lap1">
-                                                <span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-                                                <span class="prod"></span>
-                                            </div>
-                                            <div class="lap2"><span>상품을 받았는데, 옷의 색상이 화면과 다릅니다. </span></div>
-                                        </div>
-                                        <span class="id">**nana</span><span class="data">2020.12.02</span>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="fold_cont">
-                                <!-- 내 1대1문의 내용 -->
-                                <div class="fold_detail">
-                                    <div>
-                                        <p>
-                                            PC에서 남성 분또 맨투맨 (T203TS120P)<br>
-                                            오렌지 컬러 선물하려고 하는데 선물을 할 수 없다고 나오네요.<br>
-                                            다른 컬러는 선물이 가능한 것 같은데 오렌지 컬러는 왜 안 되는건가요?<br>
-                                            바쁘시겠지만 확인 부탁드립니다.
-                                        </p>
-                                    </div>
-                                </div>
-                                <!-- //내 1대1문의 내용 -->
-                            </div>
-                        </li>		
-                        <li>
-                            <div class="fold_head">
-                                <a href="javascript:void(0)">
-                                    <div>
-                                        <div class="fold_tit">
-                                            <div class="lap1">
-                                                <span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-                                                <span class="prod"></span>
-                                            </div>
-                                            <div class="lap2"><span>상품을 받았는데, 옷의 색상이 화면과 다릅니다. </span></div>
-                                        </div>
-                                        <span class="id">**nana</span><span class="data">2020.12.02</span>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="fold_cont">
-                                <!-- 내 1대1문의 내용 -->
-                                <div class="fold_detail">
-                                    <div>
-                                        <p>
-                                            PC에서 남성 분또 맨투맨 (T203TS120P)<br>
-                                            오렌지 컬러 선물하려고 하는데 선물을 할 수 없다고 나오네요.<br>
-                                            다른 컬러는 선물이 가능한 것 같은데 오렌지 컬러는 왜 안 되는건가요?<br>
-                                            바쁘시겠지만 확인 부탁드립니다.
-                                        </p>
-                                    </div>
-                                </div>
-                                <!-- //내 1대1문의 내용 -->
-                            </div>
-                        </li>	
-                        <li>
-                            <div class="fold_head">
-                                <a href="javascript:void(0)">
-                                    <div>
-                                        <div class="fold_tit">
-                                            <div class="lap1">
-                                                <span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-                                                <span class="prod"></span>
-                                            </div>
-                                            <div class="lap2"><span>상품을 받았는데, 옷의 색상이 화면과 다릅니다. </span></div>
-                                        </div>
-                                        <span class="id">**nana</span><span class="data">2020.12.02</span>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="fold_cont">
-                                <!-- 내 1대1문의 내용 -->
-                                <div class="fold_detail">
-                                    <div>
-                                        <p>
-                                            PC에서 남성 분또 맨투맨 (T203TS120P)<br>
-                                            오렌지 컬러 선물하려고 하는데 선물을 할 수 없다고 나오네요.<br>
-                                            다른 컬러는 선물이 가능한 것 같은데 오렌지 컬러는 왜 안 되는건가요?<br>
-                                            바쁘시겠지만 확인 부탁드립니다.
-                                        </p>
-                                    </div>
-                                </div>
-                                <!-- //내 1대1문의 내용 -->
-                            </div>
-                        </li>
-                        <li>
-                            <div class="fold_head">
-                                <a href="javascript:void(0)">
-                                    <div>
-                                        <div class="fold_tit">
-                                            <div class="lap1">
-                                                <span class="fold_state done">답변완료</span> <!-- 답변완료 : done / 처리중 : doing -->
-                                                <span class="prod"><i class="ico ico_secret"></i></span>
-                                            </div>
-                                            <div class="lap2"><span>비밀글입니다.</span></div>
-                                        </div>
-                                        <span class="id">**nana</span><span class="data">2020.12.02</span>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="fold_cont">
-                                <!-- 내 1대1문의 내용 -->
-                                <div class="fold_detail">
-                                    <div>
-                                        <p>
-                                            PC에서 남성 분또 맨투맨 (T203TS120P)<br>
-                                            오렌지 컬러 선물하려고 하는데 선물을 할 수 없다고 나오네요.<br>
-                                            다른 컬러는 선물이 가능한 것 같은데 오렌지 컬러는 왜 안 되는건가요?<br>
-                                            바쁘시겠지만 확인 부탁드립니다.
-                                        </p>
-                                    </div>
-                                </div>
-                                <!-- //내 1대1문의 내용 -->
-                            </div>
-                        </li>	
-                    </ul>
-                    <!-- //list2 -->
-                </div>
-            </div>
-        </div>
-        <!-- //나열조건결과 있을 때 노출 내용 -->
-        <!-- 나열조건결과 없을 때 노출 내용 -->
-        <div class="nodata">
-            <div class="txt_box">
-                <p>
-                    등록된 상품문의가 없습니다.
-                </p>
-            </div>
-        </div>
-        <!-- //나열조건결과 없을 때 노출 내용 -->
-    </div>
-    <div class="btn_group_flex">
-        <div><button type="button" class="btn btn_dark" id="btn_pdQnaWrite_pop" th:onclick="cfGoodsQngCreate([[${goodsInfo.goodsCd}]] )"><span>상품 문의하기</span></button></div>
-    </div>
+	<div class="info_txt">
+		<ul>
+			<li>상품에 대해 궁금한 점이 있으시다면 문의해주세요.</li>
+			<li>배송, 주문/결제, 취소/반품/교환/환불, 회원, 쿠폰/포인트, 이벤트 등의 자세한 문의사항은 고객센터 &gt; 1:1문의를 이용하여 주시기 바랍니다.</li>
+		</ul>			  
+		<div class="btn_group_flex">
+			<div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_GOODS_QNA);"><span>고객센터 1:1문의</span></button></div>
+		</div>	 
+	</div>
+	<div class="qna_list">
+		<!-- 나열조건결과 있을 때 노출 내용 -->
+		<div class="yesdata">
+			<div class="form_field check_secret">
+				<input id="except_secret" type="checkbox"><label for="except_secret" onclick="fnGetList();"><span>비밀글제외</span></label>
+				<input  type="hidden" name="secretYn" >
+			</div>
+			<div class="ui_row" id="infiniteContainer">
+				<div class="foldGroup case2" id="listBoxOuter">
+					<!-- list2 -->
+					<ul  id="listBox">
+					</ul>
+					<!-- //list2 -->
+				</div>
+			</div>
+		</div>
+		<!-- //나열조건결과 있을 때 노출 내용 -->
+		<!-- 나열조건결과 없을 때 노출 내용 -->
+		<div class="nodata"  style="display:none;">
+			<div class="txt_box">
+				<p>
+					등록된 상품문의가 없습니다.
+				</p>
+			</div>
+		</div>
+		<!-- //나열조건결과 없을 때 노출 내용 -->
+	</div>
+	<div class="btn_group_flex">
+		<div><button type="button" class="btn btn_dark" id="btn_pdQnaWrite_pop" th:onclick="cfGoodsQngCreate([[${goodsInfo.goodsCd}]] )"><span>상품 문의하기</span></button></div>
+	</div>
 </div>
+<form id="goodsQnaForm" name="goodsQnaForm" action="#" th:action="@{'/goods/qna/list'}">
+<input type="hidden" name="pageNo"  value ="1"/>
+<input type="hidden" name="pageSize" value ="20"/>
+<input type="hidden" name="relGoodsCd" th:value ="${goodsInfo.goodsCd}"/>
+</form>
+<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
+<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
 <script th:inline="javascript">
 /*<![CDATA[*/
 	
-	var fnGetList = function() {
-
+	// 상품 검색
+	var fnGetInfiniteScrollDataList = function(pageNum) {
+	
 		$('#goodsQnaForm  input[name="secretYn"]').val('');
 		if ($("#goodsQnaForm input:checkbox[name=except_secret]").is(':checked')){
 			$('#goodsQnaForm  input[name="secretYn"]').val('N');
 		}
-		// Initialize a pagination
-		gagaPaging.init('goodsQnaForm', fnGetListCallback, 'pageNav', 20);
-
-		// Load data
-		gagaPaging.load(1);
+		
+		$("#goodsQnaForm input[name=pageNo]").val(pageNum+1);
+		// 콜백함수인 gagaInfiniteScroll.jsonToHtml 에서는 fnDrawInfiniteScrollData 함수를 호출한다.
+		gagajf.ajaxFormSubmit("/goods/qna/list", document.goodsQnaForm,  gagaInfiniteScroll.jsonToHtml);
 	}
 	
-	var fnGetListCallback = function(result) {
-		$('#ulGoodsQna').html('');
-		$('#goodsQnaForm').find('.nodata').hide();
-		// 목록
+	var fnDrawInfiniteScrollData = function(result, pageNum){
+
 		if (result.dataList != null && result.dataList.length > 0) {
+			var htm = fnCreateGoodsQnaList(result);
+			gagaInfiniteScroll.draw(htm);
+		}else {
+			if($("#goodsQnaForm input[name=pageNo]").val()==1){
+				$('#goodsQnaForm').find('.nodata').show();
+			}
+			gagaInfiniteScroll.draw('not');
+		}
+	}
+
+	var fnGoodsQnaListSearch = function() {
+		gagaInfiniteScroll.getHistory();
+	}
+
+	var fnCreateGoodsQnaList = function(result) {
+
+		let tag = '';
+		$.each(result.dataList, function(idx, item) {
 			
-			$.each(result.dataList, function(idx, item) {
-				let tag = '<li class="';  // <!-- 내가 쓴 글에 클래스 my_qna 추가 -->
-				if (item.selfGb == 1){
-					tag += ' my_qna';	
-				}else if (item.secretYn == "Y"){
-					tag += ' secret_qna';
-				}
-				tag += ' ">\n';  // <!-- 내가 쓴 글에 클래스 my_qna 추가 -->
-				tag += '	<div class="fold_head">\n';
-				tag += '		<a href="javascript:void(0)">\n';
-				tag += '			<div>\n';
-				tag += '				<span class="fold_state ' + (item.ansStat == "G060_10" ? "doing" : "done") + '">' + item.ansStatNm + '</span>\n'; //답변완료 : done / 처리중 : doing
-				tag += '				<div class="fold_tit">\n';
-				tag += '					<span>' + item.questContent + '</span>\n';
-				if (item.selfGb == 1){
-				tag += '					<i class="ico ico_myqna"></i>\n';	//내가 쓴 글에 추가되는 아이콘
-				}
-				if (item.secretYn == "Y"){
-				tag += '					<i class="ico ico_secret"></i>\n';	//비밀글에 추가되는 아이콘
-				}
-				tag += '				</div>\n';
-				tag += '				<div class="data">\n';
-				tag += '					<span class="wr_id">'+ item.maskingCustId+'</span>\n';
-				tag += '					<span class="wr_data">' + item.questDt + '</span>\n';
-				tag += '				</div>\n';
-				tag += '			</div>\n';
-				tag += '		</a>\n';
-				tag += '	</div>\n';
-				tag += '	<div class="fold_cont" style="display: none;">\n';
-				tag += '		<div class="fold_detail">\n'; //문의 내용
-				tag += '			<div>\n';
-				tag += '				<p>' + item.questContent + '</p>\n';
+			tag += '<li class="';  // <!-- 내가 쓴 글에 클래스 my_qna 추가 -->
+			if (item.selfGb == 1){
+				tag += ' my_qna';	
+			}else if (item.secretYn == "Y"){
+				tag += ' secret_qna';
+			}
+			tag += ' ">\n';  // <!-- 내가 쓴 글에 클래스 my_qna 추가 -->
+			tag += '	<div class="fold_head">\n';
+			tag += '		<a href="javascript:void(0)">\n';
+			tag += '			<div>\n';
+			tag += '				<div class="fold_tit">\n';
+			tag += '					<div class="lap1">\n';
+			tag += '						<span class="fold_state ' + (item.ansStat == "G060_10" ? "doing" : "done") + '">' + item.ansStatNm + '</span>\n'; //답변완료 : done / 처리중 : doing
+			tag += '						<span class="prod">\n';
+			if (item.selfGb == 1){
+			tag += '						<i class="ico ico_myqna"></i>';	//내가 쓴 글에 추가되는 아이콘
+			}
+			if (item.secretYn == "Y"){
+			tag += '						<i class="ico ico_secret"></i>';	//비밀글에 추가되는 아이콘
+			}
+			tag += '						</span>\n';
+			tag += '					</div>\n';
+			tag += '					<div class="lap2"><span>' + item.questContent + '</span></div>\n';
+			tag += '					<span class="id">'+ item.maskingCustId+'</span><span class="data">' + item.questDt + '</span>\n';
+			tag += '				</div>\n';
+			tag += '			</div>\n';
+			tag += '		</a>\n';
+			tag += '	</div>\n';
+			tag += '	<div class="fold_cont">\n';
+			tag += '		<div class="fold_detail">\n'; //문의 내용
+			tag += '			<div>\n';
+			tag += '				<p>' + item.questContent.replaceAll("\n", "</br>") + '</p>\n';
+			tag += '			</div>\n';
+			tag += '		</div>\n';
+			
+			if (item.ansStat == 'G060_20') { // 답변완료 상태일 때
+				tag += '	<div class="fold_answer">\n'; //문의 답변
+				tag += '		<div>\n';
+				tag += '			<div class="answer_body">' + item.ansContent.replaceAll("\n", "</br>") + '</div>\n';
+				tag += '			<div class="answer_foot"><span class="data">' + item.ansDt + '</span>\n';
 				tag += '			</div>\n';
 				tag += '		</div>\n';
-				
-				if (item.ansStat == 'G060_20') { // 답변완료 상태일 때
-					tag += '	<div class="fold_answer">\n'; //문의 답변
-					tag += '		<div class="answer_head">답변이 등록되었습니다.</div>\n';
-					tag += '		<div class="answer_body">' + item.ansContent + '</div>\n';
-					tag += '		<span class="data">' + item.ansDt + '</span>\n';
-					tag += '	</div>\n';
-				}
-				
 				tag += '	</div>\n';
-				tag += '</li>\n';
-				
-				$('#ulGoodsQna').append(tag);
-			});
-		} else {
-			$('#goodsQnaForm').find('.nodata').show();
-			$('#goodsQnaForm').find('.ui_foot').hide();
-		}
+			}
+			tag += '	</div>\n';
+			tag += '</li>\n';
+			
+		});
+		
+		
+		return tag;
+	}
+	
 
-		// Create pagination
-		gagaPaging.createPagination(result.paging.pageable);
+	// 인피니트 스크롤 초기화
+	var fnGoodsQnaInfiniteScrollInit = function(){
+		 sessionStorage.removeItem(document.location.href);
+		//History 초기화
+		$("#listBox").html("");
 	}
 	
-	$(document).ready(function() {
-	//	fnGetList();
+	// 왜 안될가?
+	// 사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
+	$(window).on("pageshow", function(event) {
+		if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
+			var historyData = sessionStorage.getItem(document.location.href);
+			if(historyData!=null){
+				historyData = JSON.parse(historyData);
+			}else{
+				historyData = {};
+			}
+			fnGoodsQnaListSearch();
+		}else{
+			fnGoodsQnaInfiniteScrollInit();
+			fnGoodsQnaListSearch();
+		}
+
+	});
+	
+	
+	$(document).ready( function() {
+		fnGoodsQnaListSearch();
+		
 	});
 	
 /*]]>*/

+ 18 - 15
src/main/webapp/WEB-INF/views/mob/goods/GoodsQnaDetailFormMob.html

@@ -15,6 +15,8 @@
  *******************************************************************************
  -->
 <div class="modal-dialog" role="document">
+<form id="goodsQnaDetailForm" name="goodsQnaDetailForm" action="#" th:action="@{'/callcenter/goods/qna/create'}">
+		<input type="hidden" name="relGoodsCd" th:value ="${goodsCd}"/>
 	<div class="modal-content">
 		<div class="modal-header">
 			<h5 class="modal-title" id="exampleFullLabel">상품 문의하기</h5>
@@ -31,13 +33,13 @@
 				<div class="form_field">
 					<div class="input_box">
 						<div class="lap">
-							<textarea class="doc_itemqna" name="" id="" cols="30" rows="10" placeholder="문의내용 입력(500자 이내)" style="resize: none;"></textarea>
+							<textarea class="doc_itemqna"  name="questContent" cols="30" rows="10" placeholder="문의내용 입력(500자 이내)" style="resize: none;"></textarea>
 							<p class="txt_cnt">
-								<span id="itemqna_cnt" class="itemqna_cnt"><em class="c_primary">0</em>/500자</span>
+								<span id="itemqna_cnt" class="itemqna_cnt" ><em class="c_primary">0</em>/500자</span>
 							</p>   
 						</div>           
 						<div class="secret_box">
-							<input id="wr_secret" type="checkbox"><label for="wr_secret"><span>비밀글설정</span></label>
+							<input id="wr_secret" type="checkbox" name="secretYn" value="Y"><label for="wr_secret"><span>비밀글설정</span></label>
 						</div>
 					</div> 
 				</div>
@@ -47,11 +49,11 @@
 						<dd>
 							<div class="form_field">
 								<div>
-									<input type="radio" name="rdi-push" id="rdi-push1" value="" checked="">
+									<input type="radio" name="smsReqYn" id="rdi-push1" value="Y"  checked="checked">
 									<label for="rdi-push1"><span>수신</span></label>
 								</div>
 								<div>
-									<input type="radio" name="rdi-push" id="rdi-push2" value="">
+									<input type="radio" name="smsReqYn" id="rdi-push2" value="N">
 									<label for="rdi-push2"><span>미수신</span></label>
 								</div>
 							</div>
@@ -62,10 +64,11 @@
 		</div>	
 		<div class="modal-footer">
 			<div class="btn_group_flex">
-				<div><button type="button" class="btn btn_dark"><span>등록</span></button></div>
+				<div><button type="button" class="btn btn_dark"  onclick="fnGoodsQnaSave();"><span>등록</span></button></div>
 			</div>
 		</div>
 	</div>
+</form>	
 </div>
 <a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_goods_qna_reg')" class="close-modal">Close</a> 	
 <script th:inline="javascript">
@@ -74,24 +77,24 @@
 	// 상품문의 작성 > 글자수 체크
 	$('.pd_qnawrite_pop .doc_itemqna').keyup(function (e){
 		let contentQna = $(this).val();
-		$('#itemqna_cnt').html("(<em class='c_primary'>"+contentQna.length+"</em>/500자)");  
+		$('.itemqna_cnt').html("(<em class='c_primary'>"+contentQna.length+"</em>/500자)");
+		
 		if (contentQna.length > 500){
 			alert("최대 500자까지 입력 가능합니다.");
 			$(this).val(contentQna.substring(0, 500));
-			$('#itemqna_cnt').html("(<em class='c_primary'>500</em>/500자)");
+			$('.itemqna_cnt').html("(<em class='c_primary'>500</em>/500자)");
 		}
 	});
 	
 	// 저장
-	$('#btnGoodsQnaSave').on('click', function() {
-		
-		// 테스트용
-/* 		gagajf.ajaxFormSubmit($('#goodsQnaDetailForm').prop('action')
+	var fnGoodsQnaSave = function() {
+		/*// 테스트용
+		 		gagajf.ajaxFormSubmit($('#goodsQnaDetailForm').prop('action')
 				, $('#goodsQnaDetailForm')
 				, function() {
 					mcxDialog.alert("상품 문의가 등록되었습니다. 빠른 시일 내에 답변드리겠습니다.");
 				}
-		); */
+		);*/ 
 		
 		// 입력 값 체크
 		if (gagajf.isNull($("#goodsQnaDetailForm  textarea[name=questContent]").val())){
@@ -111,8 +114,8 @@
 				);
 			}
 		});
-	
-	});
+		
+	}
 
 /*]]>*/
 </script>

+ 6 - 6
src/main/webapp/WEB-INF/views/mob/goods/GoodsQnaFormMob.html

@@ -19,14 +19,14 @@
 		<div class="modal-header">
 			<!-- 해당상품 -->
 			<div class="item_blk">
-				<div class="item_prod">
+				<div class="item_prod" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}">
 					<div class="item_state">
-						<a href="#none" class="itemLink">
+						<a href="javascript:void(0);" class="itemLink">
 							<div class="itemPic">
-								<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdDetail1.jpg">
+								<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 							</div>
-							<p class="itemBrand">NBA</p>
-							<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+							<p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">NBA</p>
+							<div class="itemName" th:text="${goodsInfo.goodsFullNm}">남성</div>
 						</a>
 					</div>
 				</div>
@@ -34,7 +34,6 @@
 			<!-- //해당상품 -->
 		</div>
 		<div class="modal-body" id="goodsDealQna">
-			
 		</div>
 		<div class="modal-footer">
 			
@@ -44,6 +43,7 @@
 <a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_goods_qna')" class="close-modal">Close</a>
 <script th:inline="javascript">
 /*<![CDATA[*/
+	
 	// 구성 상품 상세 문의
 	var fnGoodsDetailQna = function(params) {
 		gagajf.ajaxSubmit("/goods/detail/qna/frame", "html", "goodsDealQna", params);

Diferenças do arquivo suprimidas por serem muito extensas
+ 76 - 876
src/main/webapp/WEB-INF/views/mob/goods/GoodsSizeInfoFormMob.html


Diferenças do arquivo suprimidas por serem muito extensas
+ 431 - 456
src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html


+ 50 - 124
src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html

@@ -69,13 +69,13 @@
 								<li data-id="tap08" th:if="${filterColorList!=null and !filterColorList.empty}">
 									<a href="javascript:void(0)">컬러</a>
 								</li>
-								<li data-id="tap09">
+								<li data-id="tap09" th:if="${filterBenefitList!=null and !filterBenefitList.empty}">
 									<a href="javascript:void(0)">혜택</a>
 								</li>
 							</ul>
 							<div class="form_field">
 								<div>
-									<input id="price" type="checkbox"><label for="price"> <span>남여 공용만 보기</span> </label>
+									<input id="price" type="checkbox" ><label for="price"> <span>남여 공용만 보기</span> </label>
 								</div>
 								<div>
 									<input id="chk-2" type="checkbox" checked=""><label for="chk-2"> <span>신상품만 보기</span> </label>
@@ -89,7 +89,7 @@
 									<th:block th:each="filterBrandData, filterBrandStat : ${filterBrandList}">
 									<li>
 										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" th:id="${'chkFilterBrand'+filterBrandStat.count}" name="filterBrandCds" th:value="${filterBrandData.brandGroupNo}"><span th:text="${filterBrandData.brandGroupNm}"></span>
+											<input type="checkbox" group="filterValue" th:id="${'chkFilterBrand'+filterBrandStat.count}" name="filterBrandCds" th:value="${filterBrandData.filterCd}"><span th:text="${filterBrandData.filterNm}"></span>
 										</label>
 									</li>
 									</th:block>
@@ -102,25 +102,25 @@
 								<ul>
 									<li>
 										<strong>상의</strong>
-										<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.sizeGb == 'T'}">
+										<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.filterCd == 'T'}">
 											<label class="size_btn" onclick="filterSel();">
-												<input type="checkbox" group="filterValue" th:id="${'chkFilterTSize'+filterSizeStat.count}" name="filterSizeCds" th:vale="${filterSizeData.optCd2}"><span th:text="${filterSizeData.optCd2}">80</span>
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterTSize'+filterSizeStat.count}" name="filterSizeCds" th:vale="${filterSizeData.filterNm}"><span th:text="${filterSizeData.filterNm}">80</span>
 											</label>
 										</th:block>
 									</li>
 									<li>
 										<strong>하의</strong>
-										<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.sizeGb == 'B'}">
+										<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.filterCd == 'B'}">
 											<label class="size_btn" onclick="filterSel();">
-												<input type="checkbox" group="filterValue" th:id="${'chkFilterBSize'+filterSizeStat.count}" name="filterSizeCds" th:vale="${filterSizeData.optCd2}"><span th:text="${filterSizeData.optCd2}">80</span>
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterBSize'+filterSizeStat.count}" name="filterSizeCds" th:vale="${filterSizeData.filterNm}"><span th:text="${filterSizeData.filterNm}">80</span>
 											</label>
 										</th:block>
 									</li>
 									<li>
 										<strong>신발</strong>
-										<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.sizeGb == 'S'}">
+										<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.filterCd == 'S'}">
 											<label class="size_btn" onclick="filterSel();">
-												<input type="checkbox" group="filterValue" th:id="${'chkFilterSSize'+filterSizeStat.count}" name="filterSizeCds" th:vale="${filterSizeData.optCd2}"><span th:text="${filterSizeData.optCd2}">80</span>
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterSSize'+filterSizeStat.count}" name="filterSizeCds" th:vale="${filterSizeData.filterNm}"><span th:text="${filterSizeData.filterNm}">80</span>
 											</label>
 										</th:block>
 									</li>
@@ -162,7 +162,7 @@
 									<th:block th:each="filterAgeData, filterAgeStat : ${filterAgeList}">
 										<li>
 											<label class="Age_btn" onclick="filterSel();">
-												<input type="checkbox" group="filterValue" th:id="${'chkFilterAge'+filterAgeStat.count}" name="filterAgeCds" th:value="${filterAgeData.agesCd}"><span th:text="${filterAgeData.agesNm}">베이비(0~18개월)</span>
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterAge'+filterAgeStat.count}" name="filterAgeCds" th:value="${filterAgeData.filterCd}"><span th:text="${filterAgeData.filterNm}">베이비(0~18개월)</span>
 											</label>
 										</li>
 									</th:block>
@@ -176,7 +176,7 @@
 									<th:block th:each="filterSeasonData, filterSeasonStat : ${filterSeasonList}">
 										<li>
 											<label class="Season_btn" onclick="filterSel();">
-												<input type="checkbox" group="filterValue"  th:id="${'chkFilterSeason'+filterAgeStat.count}" name="filterSeasonCds" th:value="${filterSeasonData.seasonCd}"><span th:text="${filterSeasonData.seasonNm}">봄</span>
+												<input type="checkbox" group="filterValue"  th:id="${'chkFilterSeason'+filterSeasonStat.count}" name="filterSeasonCds" th:value="${filterSeasonData.filterCd}"><span th:text="${filterSeasonData.filterNm}">봄</span>
 											</label>
 										</li>
 									</th:block>
@@ -190,9 +190,9 @@
 									<th:block th:each="filterColorData, filterColorStat : ${filterColorList}">
 										<li>
 											<label class="color-check" onclick="filterSel();">
-												<input type="checkbox" group="filterValue" th:id="${'chkFilterColor'+filterColorStat.count}" name="filterColorCds" th:value="${filterColorData.colorChip}" >
-												<span class="pdColor-color" th:if="${filterColorData.colorChip=='#FFFFFF'}" th:style="${'background-color:'+filterColorData.colorChip+';'+' border:1px solid #aaa;'}"></span>
-												<span class="pdColor-color" th:if="${filterColorData.colorChip!='#FFFFFF'}" th:style="${'background-color:'+filterColorData.colorChip}"></span>
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterColor'+filterColorStat.count}" name="filterColorCds" th:value="${filterColorData.filterNm}" >
+												<span class="pdColor-color" th:if="${filterColorData.filterNm=='#FFFFFF'}" th:style="${'background-color:'+filterColorData.filterNm+';'+' border:1px solid #aaa;'}"></span>
+												<span class="pdColor-color" th:if="${filterColorData.filterNm!='#FFFFFF'}" th:style="${'background-color:'+filterColorData.filterNm}"></span>
 											</label>
 										</li>
 									</th:block>
@@ -206,7 +206,7 @@
 									<th:block th:each="filterBenefitData, filterBenefitStat : ${filterBenefitList}">
 										<li>
 											<label class="Benefits_btn" onclick="filterSel();">
-												<input type="checkbox" group="filterValue" th:id="${'chkFilterBenefits'+filterBenefitStat.count}" name="filterBenefitsCds" th:value="${filterBenefitData.benefitCd}"><span th:text="${filterBenefitData.benefitNm}"></span>
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterBenefits'+filterBenefitStat.count}" name="filterBenefitsCds" th:value="${filterBenefitData.filterCd}"><span th:text="${filterBenefitData.filterNm}"></span>
 											</label>
 										</li>
 									</th:block>
@@ -220,87 +220,11 @@
                                     <span>
                                         모이몰른
                                         <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        85
-                                        <a href="javascript:;" class="filter_delete"></a>
-                                    </span>
-									<span>
-                                        버커루
-                                        <a href="javascript:;" class="filter_delete"></a>
-                                    </span>
-									<span>
-                                        TBJ
-                                        <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        ANDEW
-                                        <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        모이몰른
-                                        <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        85
-                                        <a href="javascript:;" class="filter_delete"></a>
-                                    </span>
-									<span>
-                                        버커루
-                                        <a href="javascript:;" class="filter_delete"></a>
-                                    </span>
-									<span>
-                                        TBJ
-                                        <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        ANDEW
-                                        <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        모이몰른
-                                        <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        85
-                                        <a href="javascript:;" class="filter_delete"></a>
-                                    </span>
-									<span>
-                                        버커루
-                                        <a href="javascript:;" class="filter_delete"></a>
-                                    </span>
-									<span>
-                                        TBJ
-                                        <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        ANDEW
-                                        <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        모이몰른
-                                        <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        85
-                                        <a href="javascript:;" class="filter_delete"></a>
-                                    </span>
-									<span>
-                                        버커루
-                                        <a href="javascript:;" class="filter_delete"></a>
-                                    </span>
-									<span>
-                                        TBJ
-                                        <a href="javascript:;" class="filter_delete"></a >
                                     </span>
 									<!-- 컬러 표시 -->
 									<span>
                                         <span class="pdColor-color12"></span>
                                         <a href="javascript:;" class="filter_delete"></a >
-                                    </span>
-									<span>
-                                        <span class="pdColor-color13"></span>
-                                        <a href="javascript:;" class="filter_delete"></a >
                                     </span>
 									<!-- 컬러 표시 -->
 								</div>
@@ -506,14 +430,14 @@
 	<form id="searchGoodsForm" name="searchGoodsForm">
 		<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
 		<input type="hidden" name="pageSize" value ="32"/>
-		<input type="hidden" name="cateNo"/>
-		<input type="hidden" name="cateGb" th:value="${cateGb}"/>
-		<input type="hidden" name="brandGroupNo" th:value="${brandGroupNo}"/>
-		<input type="hidden" name="formalGb" th:value="${formalGb}"/>
-		<input type="hidden" name="cate1No" th:value="${cate1No}"/>
-		<input type="hidden" name="cate2No" th:value="${cate2No}"/>
-		<input type="hidden" name="cate3No" th:value="${cate3No}"/>
-		<input type="hidden" name="cate4No" th:value="${cate4No}"/>
+		<input type="hidden" name="cateNo" th:value="${cateInfo.cateNo}"/>
+		<input type="hidden" name="cateGb" th:value="${cateInfo.cateGb}"/>
+		<input type="hidden" name="brandGroupNo" th:value="${cateInfo.brandGroupNo}"/>
+		<input type="hidden" name="formalGb" th:value="${cateInfo.formalGb}"/>
+		<input type="hidden" name="cate1No" th:value="${cateInfo.cate1No}"/>
+		<input type="hidden" name="cate2No" th:value="${cateInfo.cate2No}"/>
+		<input type="hidden" name="cate3No" th:value="${cateInfo.cate3No}"/>
+		<input type="hidden" name="cate4No" th:value="${cateInfo.cate4No}"/>
 		<input type="hidden" name="sortGb"/>
 	</form>
 
@@ -525,33 +449,35 @@
 		$(document).ready( function() {
 			//가격 슬라이드
 			//var custom_values = ['9,000원', '230,000원', '487,000원', '700,000원', '1,360,000원', '1,799,000원'];
-			var custom_values = [];
-			$.each(filterPriceList, function (priceIdx, priceItem){
-				custom_values[0] = priceItem.price1;
-				custom_values[1] = priceItem.price2;
-				custom_values[2] = priceItem.price3;
-				custom_values[3] = priceItem.price4;
-				custom_values[4] = priceItem.price5;
-				custom_values[5] = priceItem.price6;
-			});
+			if(!gagajf.isNull(filterPriceList)){
+				var custom_values = [];
+				$.each(filterPriceList, function (priceIdx, priceItem){
+					custom_values[0] = priceItem.price1;
+					custom_values[1] = priceItem.price2;
+					custom_values[2] = priceItem.price3;
+					custom_values[3] = priceItem.price4;
+					custom_values[4] = priceItem.price5;
+					custom_values[5] = priceItem.price6;
+				});
 
-			var my_from = custom_values.indexOf(custom_values[0]); //custom_values.indexOf('9,000원');
-			var my_to = custom_values.indexOf(custom_values[5]); //custom_values.indexOf('230,000원');
-			var minValue = custom_values[0];
-			var maxValue = custom_values[5];
+				var my_from = custom_values.indexOf(custom_values[0]); //custom_values.indexOf('9,000원');
+				var my_to = custom_values.indexOf(custom_values[5]); //custom_values.indexOf('230,000원');
+				var minValue = custom_values[0];
+				var maxValue = custom_values[5];
 
-			$(".dp .js-range-slider01, .sch_result .js-range-slider01").ionRangeSlider({
-				type: "double",
-				min: minValue,
-				max: maxValue,
-				from: my_from,
-				to: my_to,
-				grid: true,
-				skin: "round",
-				postfix: "원",
-				prettify_separator: ",",
-				values: custom_values
-			});
+				$(".dp .js-range-slider01, .sch_result .js-range-slider01").ionRangeSlider({
+					type: "double",
+					min: minValue,
+					max: maxValue,
+					from: my_from,
+					to: my_to,
+					grid: true,
+					skin: "round",
+					postfix: "원",
+					prettify_separator: ",",
+					values: custom_values
+				});
+			}
 
 			//할인율
 			var custom_values02 = ['0%', '10%', '20%', '30%', '40%', '50%', '60%', '70%', '80%', '90%', '100%'];

+ 1 - 1
src/main/webapp/WEB-INF/views/web/display/LookbookMainFormWeb.html

@@ -110,7 +110,7 @@
 						tag2 += '<ul class="clear event_con" id="lookbookArea" style="display: block;">';
 						$.each(result, function(idx, item) {
 							tag2 += '<li>';
-							tag2 += '	<a href="javascript:void(0);">';
+							tag2 += '	<a href="javascript:void(0);" onclick="cfnGoToLookbookDetail('+item.lookbookSq+','+item.brandCd+')">';
 							tag2 += '		<div class="ev_img">';
 							tag2 += '			<img src="' + _imgUrl + item.orgTnfileNm + '" alt="" style="height:100%">';
 							tag2 += '		</div>';

+ 28 - 23
src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html

@@ -349,36 +349,40 @@
 						<div class="cont_body">
 							<div class="sec_head">
 								<div class="filter action tag_list">
-									<th:block th:each="titleData, titleStat : ${mainLayoutData.mdPickList}">
-										<button class="btn" th:classappend="${titleStat.count} == 1? active" th:attr="data-tab=${'tag'+titleStat.count}" th:text="${titleData.mdTitle}">따뜻한 무드2</button>
+									<th:block th:each="titleData, titleStat : ${mainLayoutData.mdPickList}" >
+										<th:block th:if="${titleData.goodsList!=null and !titleData.goodsList.empty}" >
+											<button class="btn" th:attr="data-tab=${'tag'+titleStat.count}" th:text="${titleData.mdTitle}">따뜻한 무드2</button>
+										</th:block>
 									</th:block>
 								</div>
 							</div>
 							<div class="sec_body">
 								<th:block th:each="titleData, titleStat : ${mainLayoutData.mdPickList}">
-									<div th:id="${'tag'+titleStat.count}" class="tagitem" th:classappend="${titleStat.count} == 1? active">
+									<div th:id="${'tag'+titleStat.count}" class="tagitem" > <!--th:classappend="${titleStat.count} == 1? active"-->
 										<div class="swiper-container post-recomm">
 											<div class="swiper-wrapper">
-												<th:block th:each="goodsData, goodsStat : ${titleData.goodsList}">
-													<div class="swiper-slide">
-														<div class="item_prod">
-															<div class="item_state">
-																<button type="button" class="itemLike" th:classappend="${goodsData.likeIt}">관심상품 추가</button>
-																<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SMM009');">
-																	<div class="itemPic">
-																		<img alt="" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
-																	</div>
-																	<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
-																	<div class=" itemName" th:text="${goodsData.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-																	<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}">80,100
-																		<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
-																		<span class=" itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
-																	</p>
-																	<div class="itemComment">#주문 폭주 상품</div>
-																</a>
+												<th:block th:if="${titleData.goodsList!=null and !titleData.goodsList.empty}">
+													<th:block th:each="goodsData, goodsStat : ${titleData.goodsList}">
+														<div class="swiper-slide">
+															<div class="item_prod">
+																<div class="item_state">
+																	<button type="button" class="itemLike" th:classappend="${goodsData.likeIt}">관심상품 추가</button>
+																	<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SMM009');">
+																		<div class="itemPic">
+																			<img alt="" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+																		</div>
+																		<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
+																		<div class=" itemName" th:text="${goodsData.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
+																		<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}">80,100
+																			<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
+																			<span class=" itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
+																		</p>
+																		<div class="itemComment">#주문 폭주 상품</div>
+																	</a>
+																</div>
 															</div>
 														</div>
-													</div>
+													</th:block>
 												</th:block>
 											</div>
 											<div class="swiper-controls">
@@ -448,8 +452,9 @@ if(targetTime != null && targetTime != ''){
 
 // 컨텐츠 호출
 $(document).ready( function() {
-	$("#header").load("head.html");
-	$("#footer").load("foot.html");
+	//$("#header").load("head.html");
+	//$("#footer").load("foot.html");
+	$(".tag_list .btn").eq(0).trigger('click');
 });
 
 /* SLIDE - MAIN_VISUAL */

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

@@ -547,7 +547,7 @@
 			}
 
 			if (minOrdQty > itemCnt) {
-				alert("무슨작업을 해야할가요?");
+				//alert("무슨작업을 해야할가요?");
 				return false;		 //무슨작업을 해야하나?
 			}
 			

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

@@ -288,7 +288,7 @@
 										<span class="title">수량</span>
 									</div>
 									<div class="number_count">
-										<span class="minus" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">감소</em></a></span>
+										<span class="minus" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">감소</em></span>
 										<input type="text" name="cea" maxlength="3" style="ime-mode:disabled" th:value="${goodsInfo.minOrdQty}" onblur="fnChangeOrderEa(this)" data-valid-type="numeric">
 										<input type="hidden" name="coption" value=""   th:attr="price=${goodsInfo.currPrice}">
 										<span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">추가</em></span>
@@ -552,12 +552,12 @@
 							어린이제품 안전인증 / 한국건설생활시험연구원(KCL)
 						</p>
 						<p class="normal" >
-							<th:block th:if="${not #strings.isEmpty(goodsSafeNo.isCertNum)}" >
-							 인증번호: :CB123A123-1234
-							<a th:href="@{http://www.safetykorea.kr/search/searchPop(certNum=${goodsSafeNo.certNum})}" target="_blank" class="linktxt3">상세보기</a>
+							<th:block th:if="${#strings.contains(goodsSafeNo.isCertNum, '해당')}" >
+							해당 없음 
 							</th:block>
-							<th:block th:unless="${goodsSafeNo.isCertNum}">
-							해당사항 없음
+							<th:block th:unless="${#strings.contains(goodsSafeNo.isCertNum, '해당')}" >
+							인증번호: : <th:block th:text="${goodsSafeNo.isCertNum}"></th:block>
+							<a th:href="@{http://www.safetykorea.kr/search/searchPop(certNum=${goodsSafeNo.certNum})}" target="_blank" class="linktxt3">상세보기</a>
 							</th:block>
 						</p>
 						<p class="t_info dot_info">

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

@@ -115,14 +115,14 @@
 				tag += '	<div class="fold_cont" style="display: none;">\n';
 				tag += '		<div class="fold_detail">\n'; //문의 내용
 				tag += '			<div>\n';
-				tag += '				<p>' + item.questContent + '</p>\n';
+				tag += '				<p>' + item.questContent.replaceAll("\n", "</br>") + '</p>\n';
 				tag += '			</div>\n';
 				tag += '		</div>\n';
 				
 				if (item.ansStat == 'G060_20') { // 답변완료 상태일 때
 					tag += '	<div class="fold_answer">\n'; //문의 답변
 					tag += '		<div class="answer_head">답변이 등록되었습니다.</div>\n';
-					tag += '		<div class="answer_body">' + item.ansContent + '</div>\n';
+					tag += '		<div class="answer_body">' + item.ansContent.replaceAll("\n", "</br>") + '</div>\n';
 					tag += '		<span class="data">' + item.ansDt + '</span>\n';
 					tag += '	</div>\n';
 				}

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

@@ -64,7 +64,7 @@
 	</div>
 	<!-- // CONT-BODY -->
 </div>
-</th:block>
+
 
 
 <script th:inline="javascript">
@@ -123,5 +123,6 @@
 		},
 	});	  
 /*]]>*/
-</script>	
+</script>
+</th:block>	
 </html>

+ 47 - 231
src/main/webapp/WEB-INF/views/web/mypage/ChangeOptionPopupFormWeb.html

@@ -5,61 +5,44 @@
 <div class="modal-body">
 	<div class="pop_cont">
 		<form class="form_wrap">
-			<div class="select_option_area">
-				<h6>옵션 변경 상품 선택</h6>
-				<div class="form_field">
-					<div th:if="${exchangeOptionInfo}" th:each="oneData, status : ${exchangeOptionInfo}">
-						<input th:id="|chk_exchange_item_${oneData.ordDtlItemSq}|" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}" type="checkbox" onclick="fnSelectOptionChange(this);"><label th:for="|chk_exchange_item_${oneData.ordDtlItemSq}|"><span th:text="|${oneData.itemNm} / ${oneData.colorNm} / ${oneData.optCd2}|"></span></label>
-					</div>
-				</div>
-			</div>
-			<div class="modify_option_area" id="modifyOptionArea" style="display:none">
+			<div class="modify_option_area" id="modifyOptionArea">
 				<th:block th:if="${exchangeOptionInfo}" th:each="oneData, status : ${exchangeOptionInfo}">
-					<th:block th:if="${chgQty > 0}" th:each="num, index  : ${#numbers.sequence(1,chgQty)}">
-						<div class="modify_box" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, num=${num}" style="display:none">
-							<div class="name_blk" th:text="|${oneData.itemNm} / ${oneData.colorNm}|"></div>
-							<div class="select_blk">
-								<!-- 옵션교환 라디오 형태 -->
-								<div class="sel_radio" th:if="${oneData.selfGoodsYn == 'Y'}">
-									<input type="hidden" name="chgOptCd2" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, itemNm=${oneData.itemNm}, colorNm=${oneData.colorNm}, orgOptCd2=${oneData.optCd2}, goodsType=${oneData.goodsType}">
-									<div th:class="|form_field ${oneData.ordDtlItemSq}|">
-										<div th:if="${oneData.optCd2Arr.length > 0}" th:each="option, idx : ${oneData.optCd2Arr}">
-											<input type="radio" th:name="|${oneData.ordDtlItemSq}_${num}|" th:id="|${oneData.ordDtlItemSq}_${option}_${num}|" th:value="${option}" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, num=${num}" th:disabled="${#numbers.formatInteger(oneData.currStockQtyArr[idx.index], 0)} <= 0 or ${oneData.soldoutYnArr[idx.index] == 'Y'}" onclick="fnRadioOption(this);">
-											<label th:for="|${oneData.ordDtlItemSq}_${option}_${num}|"><span th:text="${option}"></span></label>
-										</div>
-									</div>
-								</div>
-								<!-- //옵션교환 라디오 형태 -->
-								<!-- 옵션교환 셀렉트박스 형태 -->
-								<div class="sel_select" th:unless="${oneData.selfGoodsYn == 'Y'}">
-									<div class="form_field">
-										<div class="select_custom exchange_option">
-											<div class="combo">
-												<input type="hidden" name="chgOptCd2" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, itemNm=${oneData.itemNm}, colorNm=${oneData.colorNm}, orgOptCd2=${oneData.optCd2}, goodsType=${oneData.goodsType}">
-												<div class="select">옵션 선택</div>
-												<ul class="list">
-													<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" / 품절표기 data-soldout="true" 추가  -->
-													<li class="selected" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, num=${num}, optCd2=''" onclick="fnSelectOption(this);">옵션 선택</li>
-													<th:block th:each="option, idx : ${oneData.optCd2Arr}">
-														<li th:if="${oneData.optCd2Arr.length} > 0 and (${#numbers.formatInteger(oneData.currStockQtyArr[idx.index],0)} <= 0 or ${oneData.soldoutYnArr[idx.index]} == 'Y')" th:text="${option}" aria-disabled="true" data-soldout="true" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, num=${num}, optCd2=''" onclick="fnSelectOption(this);"></li>
-														<li th:if="${oneData.optCd2Arr.length} > 0 and ${#numbers.formatInteger(oneData.currStockQtyArr[idx.index],0)} > 0 and ${oneData.soldoutYnArr[idx.index]} == 'N'" th:text="${option}" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, num=${num}, optCd2=${option}" onclick="fnSelectOption(this);"></li>
-													</th:block>
-												</ul>
-											</div>
-										</div>
+					<div class="modify_box" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, num=${num}">
+						<div class="name_blk" th:text="|${oneData.itemNm} / ${oneData.colorNm}|"></div>
+						<div class="select_blk">
+							<!-- 옵션교환 라디오 형태 -->
+							<div class="sel_radio" th:if="${oneData.selfGoodsYn == 'Y'}">
+								<input type="hidden" name="chgOptCd2" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, itemNm=${oneData.itemNm}, colorNm=${oneData.colorNm}, orgOptCd2=${oneData.optCd2}, goodsType=${oneData.goodsType}" th:value="${oneData.optCd2}">
+								<div th:class="|form_field ${oneData.ordDtlItemSq}|">
+									<div th:if="${oneData.optCd2Arr.length > 0}" th:each="option, idx : ${oneData.optCd2Arr}">
+										<input type="radio" th:name="${oneData.ordDtlItemSq}" th:id="|${oneData.ordDtlItemSq}_${option}|" th:value="${option}" th:disabled="${#numbers.formatInteger(oneData.currStockQtyArr[idx.index], 0)} <= 0 or ${oneData.soldoutYnArr[idx.index] == 'Y'}" th:checked="${option == oneData.optCd2}" onclick="fnRadioOption(this);">
+										<label th:for="|${oneData.ordDtlItemSq}_${option}|"><span th:text="${option}"></span></label>
 									</div>
 								</div>
-								<!-- //옵션교환 셀렉트박스 형태 -->
 							</div>
-							<div class="allcheck_blk" th:if="${num} == 1">
+							<!-- //옵션교환 라디오 형태 -->
+							<!-- 옵션교환 셀렉트박스 형태 -->
+							<div class="sel_select" th:unless="${oneData.selfGoodsYn == 'Y'}">
 								<div class="form_field">
-									<div>
-										<input th:id="|${oneData.ordDtlItemSq}_checkAll|" name="chk_exchange_all1" type="checkbox" checked="" onclick="fnSelectOptionChange();"><label th:for="|${oneData.ordDtlItemSq}_checkAll|"><span>선택 옵션으로 전체 교환</span></label>
+									<div class="select_custom exchange_option">
+										<div class="combo">
+											<input type="hidden" name="chgOptCd2" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, itemNm=${oneData.itemNm}, colorNm=${oneData.colorNm}, orgOptCd2=${oneData.optCd2}, goodsType=${oneData.goodsType}" th:value="${oneData.optCd2}">
+											<div class="select" th:text="${oneData.optCd2}"></div>
+											<ul class="list">
+												<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" / 품절표기 data-soldout="true" 추가  -->
+<!--												<li class="selected" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, optCd2=''" onclick="fnSelectOption(this);">옵션 선택</li>-->
+												<th:block th:each="option, idx : ${oneData.optCd2Arr}">
+													<li th:if="${oneData.optCd2Arr.length} > 0 and (${#numbers.formatInteger(oneData.currStockQtyArr[idx.index],0)} <= 0 or ${oneData.soldoutYnArr[idx.index]} == 'Y')" th:classappend="${option == oneData.optCd2} ? 'selected'" th:text="${option}" aria-disabled="true" data-soldout="true" th:attr="optCd2=''" onclick="fnSelectOption(this);"></li>
+													<li th:if="${oneData.optCd2Arr.length} > 0 and ${#numbers.formatInteger(oneData.currStockQtyArr[idx.index],0)} > 0 and ${oneData.soldoutYnArr[idx.index]} == 'N'" th:classappend="${option == oneData.optCd2} ? 'selected'" th:text="${option}" th:attr="optCd2=${option}" onclick="fnSelectOption(this);"></li>
+												</th:block>
+											</ul>
+										</div>
 									</div>
 								</div>
 							</div>
+							<!-- //옵션교환 셀렉트박스 형태 -->
 						</div>
-					</th:block>
+					</div>
 				</th:block>
 			</div>
 		</form>
@@ -69,10 +52,8 @@
 	<button type="button" id="" class="btn btn_dark" onclick="fnSaveOption();"><span>옵션 저장</span></button>
 </div>
 <script th:inline="javascript">
-	let exchangeOptionInfo = [[${exchangeOptionInfo}]];
 	let oneData = [[${oneData}]];
 	let chgQty = [[${chgQty}]];
-	let checkedOrdDtlItemSqArr = [];
 
 	$(document).ready( function() {
 		// 셀렉트박스 활성화
@@ -81,206 +62,41 @@
 		});
 	});
 
-	// 구성상품 선택 및 전체 적용 클릭 이벤트
-	var fnSelectOptionChange = function() {
-		checkedOrdDtlItemSqArr = [];
-		let cnt = 0;
-		
-		// 체크 수량 조회
-		$.each($('.select_option_area .form_field input:checkbox'), function(idx, item) {
-			if ($(item).is(':checked')) {
-				checkedOrdDtlItemSqArr.push($(item).attr('ordDtlItemSq'));
-				cnt++;
-			}
-		});
-
-		// 옵션변경영역 처리
-		if (cnt > 0) {
-			$('#modifyOptionArea').css('display', '');
-		} else {
-			$('#modifyOptionArea').css('display', 'none');
-		}
-
-		$.each($('.modify_box'), function(idx, item) {
-			let ordDtlItemSq = $(item).attr('ordDtlItemSq');
-			let num = $(item).attr('num');
-			let id = '#' + ordDtlItemSq + '_checkAll';
-
-			if (checkedOrdDtlItemSqArr.includes(ordDtlItemSq)) {
-				if (num == 1) {
-					$(item).css('display', '');
-
-					if (oneData.selfGoodsYn == 'Y') {
-						$.each($(item).find('input:radio'), function (index, radio) {
-							if ($(radio).is(':checked')) {
-								$(radio).click();
-							}
-						});
-					} else {
-						$.each($(item).find('li'), function (index, radio) {
-							if ($(radio).hasClass('selected')) {
-								$(radio).click();
-							}
-						});
-					}
-				} else if ($(id).is(':checked')) {
-					$(item).css('display', 'none');
-				} else {
-					$(item).css('display', '');
-				}
-			} else {
-				$(item).css('display', 'none');
-			}
-		});
-
-		fnChangeCss();
-	}
-
 	// 라디오 클릭 이벤트
 	var fnRadioOption = function(param) {
-		let ordDtlItemSq = $(param).attr('ordDtlItemSq');
-		let num = $(param).attr('num');
-		let optCd2 = $(param).val();
-		let checkAllId = '#' + ordDtlItemSq + '_checkAll';
-		let radioId = '.' + ordDtlItemSq + ' input:radio';
-
-		$(param).parent().parent().parent().find('input[name=chgOptCd2]').val(optCd2);
-
-		if (num == 1 && $(checkAllId).is(':checked')) {
-			$.each($(radioId), function(idx, item) {
-				if ($(item).attr('num') != 1 && optCd2 == $(item).val()) {
-					$(item).click();
-				}
-			});
-		}
+		$(param).parent().parent().parent().find('input[name=chgOptCd2]').val($(param).val());
 	}
 
 	// 셀렉트박스 클릭 이벤트
 	var fnSelectOption = function(param) {
-		let ordDtlItemSq = $(param).attr('ordDtlItemSq');
-		let num = $(param).attr('num');
-		let optCd2 = $(param).attr('optCd2');
-		let checkAllId = '#' + ordDtlItemSq + '_checkAll';
-
-		$(param).parent().parent().find('input[name=chgOptCd2]').val(optCd2);
-
-		if (num == 1 && $(checkAllId).is(':checked')) {
-			$.each($('.exchange_option li'), function(idx, item) {
-				if ($(item).attr('num') != 1 && optCd2 == $(item).attr('optCd2')) {
-					$(item).click();
-				}
-			});
-		}
+		$(param).parent().parent().find('input[name=chgOptCd2]').val($(param).attr('optCd2'));
 	}
 	
 	// 옵션 저장 버튼 클릭 이벤트
 	var fnSaveOption = function() {
-		// 옵션 선택 여부 확인
-		if (checkedOrdDtlItemSqArr.length <= 0) {
-			mcxDialog.alert('교환 옵션을 선택해주세요.');
-			return false;
-		}
-
 		// 변경 옵션 처리
 		let dataArr = [];
-		let ordDtlItemSq = 0;
-		let colorNm = '';
-		let itemNm = '';
-		let goodsType = '';
-		let index = 0;
-		let chgOptCd2Arr = [];
-		let selectOptionCheck = true;
 
 		$.each($('input[name=chgOptCd2]'), function(idx, item) {
-			let chgOrdDtlItemSq = $(item).attr('ordDtlItemSq');
-			colorNm = $(item).attr('colorNm');
-			itemNm = $(item).attr('itemNm');
-			goodsType = $(item).attr('goodsType');
-			let changeYn = checkedOrdDtlItemSqArr.includes(chgOrdDtlItemSq)
-			let chgOptCd2 = changeYn ? $(item).val() : $(item).attr('orgOptCd2');
-			let chgOptCd2Obj = {};
-			chgOptCd2Obj.chgOptCd2 = chgOptCd2;
-			chgOptCd2Obj.qty = 1;
-
-			if (ordDtlItemSq != Number(chgOrdDtlItemSq)) {
-				if (index > 0) {
-					let data = {};
-					data.ordDtlNo = oneData.ordDtlNo;
-					data.ordDtlItemSq = ordDtlItemSq;
-					data.chgQty = chgQty;
-					data.colorNm = colorNm;
-					data.itemNm = itemNm;
-					data.goodsType = goodsType;
-					data.chgOptCd2Arr = fnOptionCount(chgOptCd2Arr);
-					dataArr.push(data);
-				}
-
-				ordDtlItemSq = chgOrdDtlItemSq;
-				chgOptCd2Arr = [];
-			}
-
-			chgOptCd2Arr.push(chgOptCd2Obj);
-
-			index++;
-
-			// 옵션 선택 여부 설정
-			if (changeYn && gagajf.isNull($(item).val())) {
-				selectOptionCheck = false;
-			}
+			let ordDtlItemSq = $(item).attr('ordDtlItemSq');
+			let colorNm = $(item).attr('colorNm');
+			let itemNm = $(item).attr('itemNm');
+			let goodsType = $(item).attr('goodsType');
+			let chgOptCd2 = $(item).val();
+
+			let data = {};
+			data.ordDtlNo = oneData.ordDtlNo;
+			data.ordDtlItemSq = ordDtlItemSq;
+			data.chgQty = chgQty;
+			data.colorNm = colorNm;
+			data.itemNm = itemNm;
+			data.goodsType = goodsType;
+			data.chgOptCd2 = chgOptCd2;
+			dataArr.push(data);
 		});
-
-		// 옵션 선택 여부 체크
-		if (!selectOptionCheck) {
-			mcxDialog.alert('교환 옵션을 선택해주세요.');
-			return false;
-		}
-
-		let data = {};
-		data.ordDtlNo = oneData.ordDtlNo;
-		data.ordDtlItemSq = ordDtlItemSq;
-		data.chgQty = chgQty;
-		data.colorNm = colorNm;
-		data.itemNm = itemNm;
-		data.goodsType = goodsType;
-		data.chgOptCd2Arr = fnOptionCount(chgOptCd2Arr);
-		dataArr.push(data);
-
+console.log(dataArr);
 		fnChangeOptionCallback(dataArr)
 
 		$('.close-modal').trigger('click');
 	}
-
-	// 변경 옵션별 수량 처리
-	var fnOptionCount = function(param) {
-		var result = [];
-		param.reduce(function(res, value) {
-			if (!res[value.chgOptCd2]) {
-				res[value.chgOptCd2] = { chgOptCd2: value.chgOptCd2, qty: 0 };
-				result.push(res[value.chgOptCd2])
-			}
-			res[value.chgOptCd2].qty += value.qty;
-			return res;
-		}, {});
-		
-		return result;
-	}
-
-	// 옵션 선택 영역 CSS 수정
-	var fnChangeCss = function() {
-		let index = 0;
-		$.each($('.modify_box'), function(idx, item) {
-			if ($(item).css('display') == 'block') {
-				index++;
-				if (index == 1) {
-					$(item).css('margin-top', '0');
-					$(item).css('padding-top', '0');
-					$(item).css('border-top', 'none');
-				} else {
-					$(item).css('margin-top', '30px');
-					$(item).css('padding-top', '30px');
-					$(item).css('border-top', '1px dashed #ddd');
-				}
-			}
-		});
-	}
 </script>

+ 39 - 2
src/main/webapp/WEB-INF/views/web/mypage/MypageCustDeliveryAddrFormWeb.html

@@ -114,12 +114,12 @@
 			html +=	'    <td>\n';
 			html +=	'        <div class="button_box">\n';
 			html +=	'            <p>';
-			html +=	'                <button type="button" class="btn btn_default btn_sm" onclick="fnChangeDeliveryAddr(custDeliveryAddr.custDelvAddrSq)">';
+			html +=	'                <button type="button" class="btn btn_default btn_sm" onclick="fnModiFyCustDelvAddr(\''+custDeliveryAddr.custDelvAddrSq+'\')">';
 			html +=	'                    <span>수정</span>';
 			html +=	'                </button>';
 			html +=	'            </p>';
 			html +=	'            <p>';
-			html +=	'                <button type="button" class="btn btn_dark btn_sm">';
+			html +=	'                <button type="button" class="btn btn_dark btn_sm" onclick="fnDeleteCustDelvAddr(\''+custDeliveryAddr.custDelvAddrSq+'\')">';
 			html +=	'                   <span>삭제</span>';
 			html +=	'                </button>';
 			html +=	'            </p>';
@@ -154,8 +154,45 @@
 		if(!gagajf.isNull(delvObj.custDelvAddrSq)) {
 			fnCustDeliveryAddList();
 		}
+	};
+
+	var fnModiFyCustDelvAddr = function (custDelvAddrSq) {
+		let params = {}
+		params.custDelvAddrSq = custDelvAddrSq;
+
+		$.ajax( {
+			type		: "POST",
+			url 		: '/common/delvAddrModifyPop',
+			data		: JSON.stringify(params),
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+				gagajf.showProgressbar(true);
+			},
+			success 	: function(result) {
+				$("#adrsModifyPop .modal-dialog .modal-content").html(result);
+				$("#adrsModifyPop").modal("show");
+			}
+		});
+	};
+	
+	var fnDeleteCustDelvAddr = function (custDelvAddrSq) {
+		let params = {}
+		params.custDelvAddrSq = custDelvAddrSq;
+		let jsonData = JSON.stringify(params);
+		gagajf.ajaxJsonSubmit("/mypage/customer/delivery/addr/delete", jsonData, function (result) {
+			if (result.isSuccess) {
+				fnCustDeliveryAddList();
+			} else {
+				mcxDialog.alert("배송지 삭제를 실패 하였습니다.");
+				return;
+			}
+		})
 	}
 
+
 	$(document).ready(function() {
 
 		// 마이페이지 LNB 설정

+ 86 - 42
src/main/webapp/WEB-INF/views/web/mypage/MypageExchangeFormWeb.html

@@ -70,7 +70,6 @@
 													<span class="option" th:if="${exchange.goodsType == 'G056_S'}" th:each="option, status : ${exchange.colorNmArr}" th:text="|${exchange.itemNmArr[status.index]} / ${option} / ${exchange.optCd2Arr[status.index]}|"></span>
 													<span class="option" th:unless="${exchange.goodsType == 'G056_S'}" th:text="|${exchange.colorNm} / ${exchange.optCd2}|"></span>
 												</div>
-												<div class="option_wrap exchangeOption" style="display:none" th:attr="ordDtlNo=${exchange.ordDtlNo}"></div>
 											</div>
 											<div class="gd_calc">
 												<p>
@@ -81,6 +80,9 @@
 													<span class="price_sale"><em th:text="${#numbers.formatInteger(exchange.realOrdAmt + exchange.pntDcAmt + exchange.gfcdUseAmt, 1, 'COMMA')}"></em>원</span>
 												</p>
 											</div>
+											<div class="gd_opt exchangeOption" style="display:none" th:attr="ordDtlNo=${exchange.ordDtlNo}">
+												<div class="option_wrap"></div>
+											</div>
 										</div>
 										<div class="button_box">
 											<div class="count_modify">
@@ -146,8 +148,8 @@
 								</tbody>
 							</table>
 						</div>
-						<h4 class="subH3">반품 방식 선택</h4>
-						<div class="tbl type1">
+						<h4 class="subH3 wdGb">반품 방식 선택</h4>
+						<div class="tbl type1 wdGb">
 							<table>
 								<tbody>
 								<tr>
@@ -297,7 +299,7 @@
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 	var isLogin = [[${isLogin}]];
-	let ordNo = [[${oneData.ordNo}]];
+	//let ordNo = [[${oneData.ordNo}]];
 	let oneData = [[${oneData}]];
 	let isCustomer = true;
 	let addrGb = '';
@@ -315,9 +317,9 @@
 		});
 
 		// 입점업체의 경우 회수방식 직접배송 처리
-		if (oneData.selfGoodsYn == 'Y') {
+		if (oneData.selfGoodsYn != 'Y') {
 			$('#direct').click();
-			$('#wdGb').css('display','none');
+			$('.wdGb').css('display','none');
 		}
 	});
 
@@ -365,57 +367,99 @@
 	// 교환 옵션 변경 팝업 콜백 처리
 	var fnChangeOptionCallback = function(param) {
 		let ordDtlNo;
-		let chgOptionList = [];
-		let chgOptDisp = [];
-		$.each(param, function(idx, item) {
-			chgOptionList.push(item);
-			chgOptDisp.push(item.chgOptCd2Arr);
-		});
 
 		// 교환옵션 HTML 처리
 		let html = '												<span class="title">교환 옵션</span>\n';
-		$.each(chgOptionList, function(idx, item) {
+		$.each(param, function(idx, item) {
+			ordDtlNo = item.ordDtlNo;
 			let colorNm = item.colorNm;
 			let itemNm = item.itemNm;
 			let goodsType = item.goodsType;
+			let optCd2 = item.chgOptCd2;
+			let qty = item.chgQty;
 
-			$.each(item.chgOptCd2Arr, function (index, option) {
-				let optCd2 = option.chgOptCd2;
-				let qty = option.qty;
-				
-				if (goodsType == 'G056_S') {
-					html += '												<span class="option">' + itemNm + ' / ' + colorNm + ' / ' + optCd2 + ' / ' + qty + '개</span>\n';
-				} else {
-					html += '												<span class="option">' + colorNm + ' / ' + optCd2 + ' / ' + qty + '개</span>\n';
-				}
-			});
+			if (goodsType == 'G056_S') {
+				html += '												<span class="option">' + itemNm + ' / ' + colorNm + ' / ' + optCd2 + ' / ' + qty + '개</span>\n';
+			} else {
+				html += '												<span class="option">' + colorNm + ' / ' + optCd2 + ' / ' + qty + '개</span>\n';
+			}
 		});
 
 		$.each($('.exchangeOption'), function(idx, item) {
 			if (ordDtlNo == $(item).attr('ordDtlNo')) {
 				$(item).css('display', '');
-				$(item).html(html);
+				$(item).find('.option_wrap').html(html);
 			}
 		});
 
 		// 교환옵션 값 JSON 형태로 설정
 		$.each($('#exchangeForm input[name=chgOptionList]'), function(idx, item) {
 			if (ordDtlNo == $(item).attr('ordDtlNo')) {
-				$(item).val(JSON.stringify(chgOptionList));
+				$(item).val(JSON.stringify(param));
 			}
 		});
+	}
+
+	// 교환 처리
+	var fnExchange = function() {
+		// TODO
+		// 교환신청 처리
+
+		let url = '/mypage/exchange';
+		let delvFeeCd = oneData.delvFeeCd;
+		let ordDtlNo = oneData.ordDtlNo;
+		let supplyCompCd = oneData.supplyCompCd;
+		let excDelvFee = oneData.excDelvFee;
+		let rtnDelvFee = oneData.rtnDelvFee;
 
 		// 교환옵션 값 파싱 처리 예제
+		let cancelReqList = [];
 		$.each($('#exchangeForm input[name=chgOptionList]'), function(idx, item) {
 			let json = $(item).val();
 			let jsonData = JSON.parse(json);
+			$.each(jsonData, function(index, chgOpt) {
+				let cancelReq = {};
+				cancelReq.ordDtlNo = ordDtlNo;
+				cancelReq.ordDtlItemSq = chgOpt.ordDtlItemSq;
+				cancelReq.delvFeeCd = delvFeeCd;
+				cancelReq.supplyCompCd = supplyCompCd;
+				cancelReq.excDelvFee = excDelvFee;
+				cancelReq.rtnDelvFee = rtnDelvFee;
+				cancelReq.ordChgOpt = chgOpt.chgOptCd2;
+				cancelReq.chgQty = chgOpt.chgQty;
+				cancelReqList.push(cancelReq);
+			});
 		});
-	}
+		
+		let data = {};
+		data.ordNo = oneData.ordNo;
+		data.isCustomer = isCustomer;
+		data.wdGb = $('#exchangeForm input[name=wdGb]:radio:checked').val();
+		data.recipNm = $('#exchangeForm input[name=recipNm]').val();
+		data.recipPhnno = $('#exchangeForm input[name=recipPhnno]').val();
+		data.recipTelno = $('#exchangeForm input[name=recipTelno]').val();
+		data.recipZipcode = $('#exchangeForm input[name=recipZipcode]').val();
+		data.recipBaseAddr = $('#exchangeForm input[name=recipBaseAddr]').val();
+		data.recipDtlAddr = $('#exchangeForm input[name=recipDtlAddr]').val();
+		data.delvMemo = $('#exchangeForm input[name=delvMemo]').val();
+		data.chgReason = $('#exchangeForm input[name=chgReason]').val();
+		data.chgMemo = $('#exchangeForm textarea[name=chgMemo]').val();
+		data.chgerNm = $('#exchangeForm input[name=chgerNm]').val();
+		data.chgerPhnno = $('#exchangeForm input[name=chgerPhnno]').val();
+		data.chgerTelno = $('#exchangeForm input[name=chgerTelno]').val();
+		data.chgerEmail = $('#exchangeForm input[name=chgerEmail]').val();
+		data.chgerZipcode = $('#exchangeForm input[name=chgerZipcode]').val();
+		data.chgerBaseAddr = $('#exchangeForm input[name=chgerBaseAddr]').val();
+		data.chgerDtlAddr = $('#exchangeForm input[name=chgerDtlAddr]').val();
+		data.chgerRtnMemo = $('#exchangeForm input[name=chgerRtnMemo]').val();
+		data.addPayAmt = 0;
+		data.cancelReqList = cancelReqList;
+		
+		let jsonData = JSON.stringify(data);
 
-	// 교환 처리
-	var fnExchange = function() {
-		// TODO
-		// 교환신청 처리
+		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+			console.log(result);
+		});
 	}
 
 	// 반품 방식 변경 이벤트
@@ -508,22 +552,22 @@
 			$('#recipAddr').text(recipBaseAddr + ' ' + recipDtlAddr);
 			$('#delvMemo').text(delvMemo);
 
-			$('input[name=recipNm]').val(recipNm);
-			$('input[name=recipPhnno]').val(recipPhnno);
-			$('input[name=recipZipcode]').val(recipZipcode);
-			$('input[name=recipBaseAddr]').val(recipBaseAddr);
-			$('input[name=recipDtlAddr]').val(recipDtlAddr);
-			$('input[name=delvMemo]').val(delvMemo);
+			$('#exchangeForm input[name=recipNm]').val(recipNm);
+			$('#exchangeForm input[name=recipPhnno]').val(recipPhnno);
+			$('#exchangeForm input[name=recipZipcode]').val(recipZipcode);
+			$('#exchangeForm input[name=recipBaseAddr]').val(recipBaseAddr);
+			$('#exchangeForm input[name=recipDtlAddr]').val(recipDtlAddr);
+			$('#exchangeForm input[name=delvMemo]').val(delvMemo);
 		} else {
 			let chgerAddr = recipBaseAddr + ' ' + recipDtlAddr + '\n';
 			chgerAddr += '<button type="button" class="btn btn_default btn_sm" onclick="fnChangeAddr(\'chger\');"><span>회수지 변경</span></button>';
 
-			$('input[name=chgerNm]').val(recipNm);
-			$('input[name=chgerPhnno]').val(recipPhnno);
-			$('input[name=chgerZipcode]').val(recipZipcode);
-			$('input[name=chgerBaseAddr]').val(recipBaseAddr);
-			$('input[name=chgerDtlAddr]').val(recipDtlAddr);
-			$('input[name=chgerRtnMemo]').val(delvMemo);
+			$('#exchangeForm input[name=chgerNm]').val(recipNm);
+			$('#exchangeForm input[name=chgerPhnno]').val(recipPhnno);
+			$('#exchangeForm input[name=chgerZipcode]').val(recipZipcode);
+			$('#exchangeForm input[name=chgerBaseAddr]').val(recipBaseAddr);
+			$('#exchangeForm input[name=chgerDtlAddr]').val(recipDtlAddr);
+			$('#exchangeForm input[name=chgerRtnMemo]').val(delvMemo);
 
 			$('#chgerNm').text(recipNm);
 			$('#chgerPhnno').text(recipPhnno);

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

@@ -148,8 +148,8 @@
 								</tbody>
 							</table>
 						</div>
-						<h4 class="subH3">반품 방식 선택</h4>
-						<div class="tbl type1">
+						<h4 class="subH3 wdGb">반품 방식 선택</h4>
+						<div class="tbl type1 wdGb">
 							<table>
 								<tbody>
 									<tr>
@@ -364,9 +364,9 @@
 		var return_reason_selecter = new sCombo('.myOrderView .tbl.type1 td .select_custom.select_reason');
 
 		// 입점업체의 경우 회수방식 직접배송 처리
-		if (oneData.selfGoodsYn == 'Y') {
+		if (oneData.selfGoodsYn != 'Y') {
 			$('#direct').click();
-			$('#wdGb').css('display','none');
+			$('.wdGb').css('display','none');
 		}
 	});
 

+ 6 - 12
src/main/webapp/WEB-INF/views/web/order/OrderDeliveryAddrInfoWeb.html

@@ -13,6 +13,7 @@
  * 1.0  2021.02.01   jsh77b     최초 작성
  *******************************************************************************
  -->
+
 <!-- 배송지정보 -->
 <input type="hidden" name="recipNm" 		th:value="${deliveryAddrInfo.recipNm}"/>
 <input type="hidden" name="recipPhnno" 		th:value="${deliveryAddrInfo.recipPhnno}"/>
@@ -26,9 +27,7 @@
 <div class="fold_head">
 	<a href="javascript:void(0)">
 		<div>
-			<div class="fold_tit">
-				<span>배송지 정보</span>
-			</div>
+			<div class="fold_tit"><span>배송지 정보</span></div>
 			<div class="data" id="recipAddr" th:text="${deliveryAddrInfo.recipBaseAddr} + '   ' + ${deliveryAddrInfo.recipDtlAddr}"></div>
 		</div>
 	</a>
@@ -37,9 +36,7 @@
 	<div class="area_receiveinfo">
 		<dl>
 			<div>
-				<dt>
-					<span>배송지명</span>
-				</dt>
+				<dt><span>배송지명</span></dt>
 				<dd>
 					<th:block th:text="${deliveryAddrInfo.recipNm}"></th:block>
 					<span class="icon_tag"> 
@@ -51,9 +48,7 @@
 				</dd>
 			</div>
 			<div>
-				<dt>
-					<span>배송주소</span>
-				</dt>
+				<dt><span>배송주소</span></dt>
 				<dd>
 					<th:block th:text="${deliveryAddrInfo.recipBaseAddr} + '    ' + ${deliveryAddrInfo.recipDtlAddr}"></th:block>
 					<button type="button" class="btn btn_default btn_sm" id="btn_adrsChange_pop">
@@ -62,9 +57,7 @@
 				</dd>
 			</div>
 			<div>
-				<dt>
-					<span>휴대폰 번호</span>
-				</dt>
+				<dt><span>휴대폰 번호</span></dt>
 				<dd th:text="${deliveryAddrInfo.recipPhnno}"></dd>
 			</div>
 			<div>
@@ -150,6 +143,7 @@
 	<!-- //주문제작상품일 경우 노출 -->
 </div> <!-- //배송지정보 -->
 
+
 <script th:inline="javascript">
 var dispYn = [[${order.dispYn}]]; // 노출여부
 

+ 206 - 204
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -25,211 +25,213 @@
 <script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
 <script type="text/javascript" src="/biz/payment.js"></script>
 
+<!-- 주문정보form -->
 <form id="order_info" name="order_info" method="post" action="/order/pay/result/response" ></form>
-
-<!-- 주문고객정보 -->
-<form id="orderForm" name="orderForm">
-<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderInfo" id="orderInfo">
-	<tbody>
+<!-- //주문정보form -->
+
+<!-- 주문금액정보표현 -->
+<form id="orderAmtForm" name="orderAmtForm">
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderInfo" id="orderInfo">
+		<tbody>
+			<tr style="height:30px;">
+				<th>custNm</th>
+				<th>email</th>
+				<th>cellPhnno</th>
+				<th>recipNm</th>
+				<th>recipPhnno</th>
+				<th>recipZipcode</th>
+				<th>recipBaseAddr</th>
+				<th>recipDtlAddr</th>
+				<th>delvMemo</th>
+			</tr>
+			<tr style="height:30px;">
+				<td class="custNm"></td>
+				<td class="email"></td>
+				<td class="cellPhnno"></td>
+				<td class="recipNm"></td>
+				<td class="recipPhnno"></td>
+				<td class="recipZipcode"></td>
+				<td class="recipBaseAddr"></td>
+				<td class="recipDtlAddr"></td>
+				<td class="delvMemo"></td>
+			</tr>
+		</tbody>
+	</table>
+	
+	<!-- 사은품정보 -->
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="freegiftInfo">
 		<tr style="height:30px;">
-			<th>custNm</th>
-			<th>email</th>
-			<th>cellPhnno</th>
-			<th>recipNm</th>
-			<th>recipPhnno</th>
-			<th>recipZipcode</th>
-			<th>recipBaseAddr</th>
-			<th>recipDtlAddr</th>
-			<th>delvMemo</th>
-			<th>foreignBuyYn</th>
-			<th>orderMadeYn</th>
+			<th>freegiftValArr</th>
+			<th>freegiftUsePointArr</th>
+			<th>freegiftSqArr</th>
+			<th>freegiftGoodsArr</th>
+		</tr>
+		<tr style="height:30px;">
+			<td class="freegiftValArr"></td>
+			<td class="freegiftUsePointArr"></td>
+			<td class="freegiftSqArr"></td>
+			<td class="freegiftGoodsArr"></td>
 		</tr>
+	</table>
+	
+	<!-- 주문상세금액 -->
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderDetailInfo" id="orderDetailInfo">
 		<tr style="height:30px;">
-			<td class="custNm"></td>
-			<td class="email"></td>
-			<td class="cellPhnno"></td>
-			<td class="recipNm"></td>
-			<td class="recipPhnno"></td>
-			<td class="recipZipcode"></td>
-			<td class="recipBaseAddr"></td>
-			<td class="recipDtlAddr"></td>
-			<td class="delvMemo"></td>
-			<td class="foreignBuyYn"></td>
-			<td class="orderMadeYn"></td>
+			<th>cartSq</th>
+			<th style="display:none">goodsNm</th>
+			<th>goodsCd</th>
+			<th>goodsType</th>
+			<th>itemCd</th>
+			<th>optCd</th>
+			<th style="display:none">optCd1</th>
+			<th style="display:none">optCd2</th>
+			<th style="display:none">itemQtyr</th>
+			<th>orgCurrPrice</th>
+			<th>cpn1DcSq</th>
+			<th>cpn1DcAmt</th>
+			<th>optAddPrice</th>
+			<th>goodsQty</th>
+			<th>ordAmt</th>
+			<th>tmtb1Sq</th>
+			<th>tmtb1DcAmt</th>
+			<th>tmtb2Sq</th>
+			<th>tmtb2DcAmt</th>
+			<th>goodsCpnSq</th>
+			<th>goodsCpnDcAmt</th>
+			<th>cartCpnSq</th>
+			<th>cartCpnDcAmt</th>
+			<th>prePntDcAmt1</th>
+			<th>dcSumAmt</th>
+			<th>pntDcAmt1</th>
+			<th>gfcdUseAmt1</th>
+			<th>realOrdAmt1</th>
+			<th>savePntAmt1</th>
+			<th>shotDelvYn</th>
+			<th>foreignYn</th>
+			<th>orderMadeYn</th>
+			<th>delvFeeCd</th>
 		</tr>
-	</tbody>
-</table>
-
-<!-- 사은품정보 -->
-<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="freegiftInfo">
-	<tr style="height:30px;">
-		<th>freegiftValArr</th>
-		<th>freegiftUsePointArr</th>
-		<th>freegiftSqArr</th>
-		<th>freegiftGoodsArr</th>
-	</tr>
-	<tr style="height:30px;">
-		<td class="freegiftValArr"></td>
-		<td class="freegiftUsePointArr"></td>
-		<td class="freegiftSqArr"></td>
-		<td class="freegiftGoodsArr"></td>
-	</tr>
-</table>
-
-<!-- 주문상세금액 -->
-<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderDetailInfo" id="orderDetailInfo">
-	<tr style="height:30px;">
-		<th>cartSq</th>
-		<th style="display:none">goodsNm</th>
-		<th>goodsCd</th>
-		<th>goodsType</th>
-		<th>itemCd</th>
-		<th>optCd</th>
-		<th style="display:none">optCd1</th>
-		<th style="display:none">optCd2</th>
-		<th style="display:none">itemQtyr</th>
-		<th>orgCurrPrice</th>
-		<th>cpn1DcSq</th>
-		<th>cpn1DcAmt</th>
-		<th>optAddPrice</th>
-		<th>goodsQty</th>
-		<th>ordAmt</th>
-		<th>tmtb1Sq</th>
-		<th>tmtb1DcAmt</th>
-		<th>tmtb2Sq</th>
-		<th>tmtb2DcAmt</th>
-		<th>goodsCpnSq</th>
-		<th>goodsCpnDcAmt</th>
-		<th>cartCpnSq</th>
-		<th>cartCpnDcAmt</th>
-		<th>prePntDcAmt1</th>
-		<th>dcSumAmt</th>
-		<th>pntDcAmt1</th>
-		<th>gfcdUseAmt1</th>
-		<th>realOrdAmt1</th>
-		<th>savePntAmt1</th>
-		<th>shotDelvYn</th>
-		<th>foreignYn</th>
-		<th>orderMadeYn</th>
-		<th>delvFeeCd</th>
-	</tr>
-	<th:block th:each="delvAllCart, index : ${delvAllCartList}">
-		<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-			<th:block th:each="goods, i : ${delvAllCart}">
-				<tr style="height:30px;">
-					<td class="cartSq" 			th:text="${goods.cartSq}"></td>
-					<td class="goodsNm" 		th:text="${goods.goodsNm}" style="display:none"></td>
-					<td class="goodsCd"			th:text="${goods.goodsCd}"></td>
-					<td class="goodsType"		th:text="${goods.goodsType}"></td>
-					<td class="itemCd"			th:text="${goods.itemCd}"></td>
-					<td class="optCd"			th:text="${goods.optCd}"></td>
-					<td class="optCd1"			th:text="${goods.optCd1}" style="display:none"></td>
-					<td class="optCd2"			th:text="${goods.optCd2}" style="display:none"></td>
-					<td class="itemQtyr"		th:text="${goods.itemQtyr}" style="display:none"></td>
-					<td class="orgCurrPrice" 	th:text="${goods.orgCurrPrice}"></td>
-					<td class="cpn1CpnSq" 		th:text="${goods.cpn1CpnSq}"></td>
-					<td class="cpn1DcAmt" 		th:text="${goods.orgCurrPrice} - ${goods.currPrice}"></td>
-					<td class="optAddPrice" 	th:text="${goods.optAddPrice}"></td>
-					<td class="goodsQty" 		th:text="${goods.goodsQty}"></td>
-					<td class="ordAmt">0</td>
-					<th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
-						<td class="tmtb1Sq" 	th:text="${goods.qtyTmtbSq}"></td>
-						<td class="tmtb1DcAmt" 	th:text="${goods.tmtb1DcAmt}"></td>
-					</th:block>
-					<th:block th:if="${goods.applyQtySectionYn} != 'Y'">
-						<td class="tmtb1Sq">0</td>
-						<td class="tmtb1DcAmt">0</td>
-					</th:block>
-					<th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
-						<td class="tmtb2Sq" 	th:text="${goods.amtTmtbSq}"></td>
-						<td class="tmtb2DcAmt" 	th:text="${goods.tmtb2DcAmt}"></td>
-					</th:block>
-					<th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
-						<td class="tmtb2Sq" >0</td>
-						<td class="tmtb2DcAmt" >0</td>
-					</th:block>
-					<td class="goodsCpnSq">0</td>
-					<td class="goodsCpnDcAmt">0</td>
-					<td class="cartCpnSq">0</td>
-					<td class="cartCpnDcAmt">0</td>
-					<td class="prePntDcAmt1" 	th:text="${goods.prePntDcAmt}"></td>
-					<td class="dcSumAmt">0</td>
-					<td class="pntDcAmt1">0</td>
-					<td class="gfcdUseAmt1">0</td>
-					<td class="realOrdAmt1">0</td>
-					<td class="savePntAmt1" 	th:text="${goods.savePntAmt}"></td>
-					<td class="shotDelvYn" 		th:text="${goods.shotDelvYn}"></td>
-					<td class="foreignBuyYn" 	th:text="${goods.foreignBuyYn}"></td>
-					<td class="orderMadeYn" 	th:text="${goods.orderMadeYn}"></td>
-					<td class="delvFeeCd" 		th:text="${goods.delvFeeCd}"></td>
-				</tr>
+		<th:block th:each="delvAllCart, index : ${delvAllCartList}">
+			<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
+				<th:block th:each="goods, i : ${delvAllCart}">
+					<tr style="height:30px;">
+						<td class="cartSq" 			th:text="${goods.cartSq}"></td>
+						<td class="goodsNm" 		th:text="${goods.goodsNm}" style="display:none"></td>
+						<td class="goodsCd"			th:text="${goods.goodsCd}"></td>
+						<td class="goodsType"		th:text="${goods.goodsType}"></td>
+						<td class="itemCd"			th:text="${goods.itemCd}"></td>
+						<td class="optCd"			th:text="${goods.optCd}"></td>
+						<td class="optCd1"			th:text="${goods.optCd1}" style="display:none"></td>
+						<td class="optCd2"			th:text="${goods.optCd2}" style="display:none"></td>
+						<td class="itemQtyr"		th:text="${goods.itemQtyr}" style="display:none"></td>
+						<td class="orgCurrPrice" 	th:text="${goods.orgCurrPrice}"></td>
+						<td class="cpn1CpnSq" 		th:text="${goods.cpn1CpnSq}"></td>
+						<td class="cpn1DcAmt" 		th:text="${goods.orgCurrPrice} - ${goods.currPrice}"></td>
+						<td class="optAddPrice" 	th:text="${goods.optAddPrice}"></td>
+						<td class="goodsQty" 		th:text="${goods.goodsQty}"></td>
+						<td class="ordAmt">0</td>
+						<th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
+							<td class="tmtb1Sq" 	th:text="${goods.qtyTmtbSq}"></td>
+							<td class="tmtb1DcAmt" 	th:text="${goods.tmtb1DcAmt}"></td>
+						</th:block>
+						<th:block th:if="${goods.applyQtySectionYn} != 'Y'">
+							<td class="tmtb1Sq">0</td>
+							<td class="tmtb1DcAmt">0</td>
+						</th:block>
+						<th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
+							<td class="tmtb2Sq" 	th:text="${goods.amtTmtbSq}"></td>
+							<td class="tmtb2DcAmt" 	th:text="${goods.tmtb2DcAmt}"></td>
+						</th:block>
+						<th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
+							<td class="tmtb2Sq" >0</td>
+							<td class="tmtb2DcAmt" >0</td>
+						</th:block>
+						<td class="goodsCpnSq">0</td>
+						<td class="goodsCpnDcAmt">0</td>
+						<td class="cartCpnSq">0</td>
+						<td class="cartCpnDcAmt">0</td>
+						<td class="prePntDcAmt1" 	th:text="${goods.prePntDcAmt}"></td>
+						<td class="dcSumAmt">0</td>
+						<td class="pntDcAmt1">0</td>
+						<td class="gfcdUseAmt1">0</td>
+						<td class="realOrdAmt1">0</td>
+						<td class="savePntAmt1" 	th:text="${goods.savePntAmt}"></td>
+						<td class="shotDelvYn" 		th:text="${goods.shotDelvYn}"></td>
+						<td class="foreignBuyYn" 	th:text="${goods.foreignBuyYn}"></td>
+						<td class="orderMadeYn" 	th:text="${goods.orderMadeYn}"></td>
+						<td class="delvFeeCd" 		th:text="${goods.delvFeeCd}"></td>
+					</tr>
+				</th:block>
 			</th:block>
 		</th:block>
-	</th:block>
-</table>
-
-<!-- 배송단위목록 -->
-<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none;" name="delvFeeCdInfo" id="delvFeeCdInfo">
-	<tr style="height:30px;">
-		<th>supplyCompCd</th>
-		<th>delvFeeCd</th>
-		<th>delvFee</th>
-		<th>delvCpnSq</th>
-		<th>delvCpnDcAmt</th>
-	</tr>
-	<th:block th:each="delvFeeCd, index : ${delvFeeCdList}">
+	</table>
+	
+	<!-- 배송단위목록 -->
+	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none; width:100%;" name="delvFeeCdInfo" id="delvFeeCdInfo">
 		<tr style="height:30px;">
-			<td class="supplyCompCd" th:text="${delvFeeCd.supplyCompCd}"></td>
-			<td class="delvFeeCd" th:text="${delvFeeCd.delvFeeCd}"></td>
-			<td class="delvFee" th:text="${delvFeeCd.delvFee}"></td>
-			<td class="delvCpnSq">0</td>
-			<td class="delvCpnDcAmt">0</td>
+			<th>supplyCompCd</th>
+			<th>delvFeeCd</th>
+			<th>delvFee</th>
+			<th>delvCpnSq</th>
+			<th>delvCpnDcAmt</th>
 		</tr>
-	</th:block>
-</table>
-
-<!-- 주문금액합계 -->
-<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none;" name="orderSumAmtInfo" id="orderSumAmtInfo">
-	<tr style="height:30px;">
-		<th>orgGoodsSumAmt</th>
-		<th>delvSumAmt</th>
-		<th>freegiftUsePnt</th>
-		<th>cpn1DcSumAmt</th>
-		<th>ordSumAmt</th>
-		<th>tmtb1DcSumAmt</th>
-		<th>tmtb2DcSumAmt</th>
-		<th>tmtbDcSumAmt</th>
-		<th>goodsCpnDcSumAmt</th>
-		<th>cartCpnDcSumAmt</th>
-		<th>delvCpnDcSumAmt</th>
-		<th>cpnDcSumAmt</th>
-		<th>prePntDcAmt</th>
-		<th>pntDcSumAmt</th>
-		<th>gfcdUseSumAmt</th>
-		<th>realOrdSumAmt</th>
-		<th>savePntSumAmt</th>
-	</tr>
-	<tr style="height:30px;">
-		<td class="orgGoodsSumAmt">0</td>
-		<td class="delvSumAmt" th:text="${sumDelvFee}"></td>
-		<td class="freegiftUsePnt">0</td>
-		<td class="cpn1DcSumAmt">0</td>
-		<td class="ordSumAmt">0</td>
-		<td class="tmtb1DcSumAmt">0</td>
-		<td class="tmtb2DcSumAmt">0</td>
-		<td class="tmtbDcSumAmt">0</td>
-		<td class="goodsCpnDcSumAmt">0</td>
-		<td class="cartCpnDcSumAmt">0</td>
-		<td class="delvCpnDcSumAmt">0</td>
-		<td class="cpnDcSumAmt">0</td>
-		<td class="prePntDcSumAmt">0</td>
-		<td class="pntDcSumAmt">0</td>
-		<td class="gfcdUseSumAmt">0</td>
-		<td class="realOrdSumAmt">0</td>
-		<td class="savePntSumAmt">0</td>
-	</tr>
-</table>
+		<th:block th:each="delvFeeCd, index : ${delvFeeCdList}">
+			<tr style="height:30px;">
+				<td class="supplyCompCd" th:text="${delvFeeCd.supplyCompCd}"></td>
+				<td class="delvFeeCd" th:text="${delvFeeCd.delvFeeCd}"></td>
+				<td class="delvFee" th:text="${delvFeeCd.delvFee}"></td>
+				<td class="delvCpnSq">0</td>
+				<td class="delvCpnDcAmt">0</td>
+			</tr>
+		</th:block>
+	</table>
+	
+	<!-- 주문금액합계 -->
+	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none; width:100%;" name="orderSumAmtInfo" id="orderSumAmtInfo">
+		<tr style="height:30px;">
+			<th>orgGoodsSumAmt</th>
+			<th>delvSumAmt</th>
+			<th>freegiftUsePnt</th>
+			<th>cpn1DcSumAmt</th>
+			<th>ordSumAmt</th>
+			<th>tmtb1DcSumAmt</th>
+			<th>tmtb2DcSumAmt</th>
+			<th>tmtbDcSumAmt</th>
+			<th>goodsCpnDcSumAmt</th>
+			<th>cartCpnDcSumAmt</th>
+			<th>delvCpnDcSumAmt</th>
+			<th>cpnDcSumAmt</th>
+			<th>prePntDcAmt</th>
+			<th>pntDcSumAmt</th>
+			<th>gfcdUseSumAmt</th>
+			<th>realOrdSumAmt</th>
+			<th>savePntSumAmt</th>
+		</tr>
+		<tr style="height:30px;">
+			<td class="orgGoodsSumAmt">0</td>
+			<td class="delvSumAmt" th:text="${sumDelvFee}"></td>
+			<td class="freegiftUsePnt">0</td>
+			<td class="cpn1DcSumAmt">0</td>
+			<td class="ordSumAmt">0</td>
+			<td class="tmtb1DcSumAmt">0</td>
+			<td class="tmtb2DcSumAmt">0</td>
+			<td class="tmtbDcSumAmt">0</td>
+			<td class="goodsCpnDcSumAmt">0</td>
+			<td class="cartCpnDcSumAmt">0</td>
+			<td class="delvCpnDcSumAmt">0</td>
+			<td class="cpnDcSumAmt">0</td>
+			<td class="prePntDcSumAmt">0</td>
+			<td class="pntDcSumAmt">0</td>
+			<td class="gfcdUseSumAmt">0</td>
+			<td class="realOrdSumAmt">0</td>
+			<td class="savePntSumAmt">0</td>
+		</tr>
+	</table>
+</form>
+<!-- //주문금액정보표현 -->
 
+<!-- 주문고객정보 -->
+<form id="orderForm" name="orderForm">
 <div id="container" class="container od">
 	<div class="wrap">
 		<div class="content odPayment">
@@ -532,7 +534,7 @@ $(document).ready( function() {
 	custemerInfoSet();
 	
 	// 999. 개발화면정보설정
-	var devTemp = false;
+	var devTemp = true;
 	var arr = []
 	arr[0] = "orderInfo";
 	arr[1] = "freegiftInfo";
@@ -1993,14 +1995,14 @@ var custCpnSumAmtCal = function() {
 			if ($(this).attr("allYn") == "Y" ) {
 				freegiftValArr.push($(this).val());
 				freegiftUsePointArr.push($(this).attr("usepoint"));
-			}
-			
-			// 라디오버튼 선택 사은품 체크
-			if ($(this).is(":checked")) {
-				// 수령거부가 아닐때 체크
-				if ($(this).val() != "noSel") {
-					freegiftValArr.push($(this).val());
-					freegiftUsePointArr.push($(this).attr("usepoint"));
+			} else {
+				// 라디오버튼 선택 사은품 체크
+				if ($(this).is(":checked")) {
+					// 수령거부가 아닐때 체크
+					if ($(this).val() != "noSel") {
+						freegiftValArr.push($(this).val());
+						freegiftUsePointArr.push($(this).attr("usepoint"));
+					}
 				}
 			}
 		});

+ 4 - 5
src/main/webapp/WEB-INF/views/web/order/OrderListInfoWeb.html

@@ -46,8 +46,7 @@
 					<th:block th:each="goods, i : ${delvAllCart}">
 						<div class="item_gd">
 							<figure>
-								<span class="thumb"><img
-									src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+								<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
 								<figcaption>
 									<div class="brand" th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></div>
 									<div class="name" th:text="${goods.goodsNm}"></div>									
@@ -59,10 +58,10 @@
 									</div>
 									<div class="price">
 										<th:block th:if="${goods.tmtbDcAmt} > 0">
-											<span class="selling_price"  th:text="${#numbers.formatInteger(goods.tmtbDcAmt, 1, 'COMMA')}"></span>
+											<span class="selling_price" th:text="${#numbers.formatInteger(goods.tmtbDcAmt, 1, 'COMMA')}"></span>
 										</th:block>
 										<th:block th:if="${goods.tmtbDcAmt} < 1">
-											<span class="selling_price"  th:text="${#numbers.formatInteger((goods.currPrice + goods.optAddPrice) * goods.goodsQty, 1, 'COMMA')}"></span>
+											<span class="selling_price" th:text="${#numbers.formatInteger((goods.currPrice + goods.optAddPrice) * goods.goodsQty, 1, 'COMMA')}"></span>
 										</th:block>
 									</div>
 								</figcaption>
@@ -79,4 +78,4 @@
 			
 		</th:block>
 	</th:block>
-</html>
+</div>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/order/OrderPaymentInfoWeb.html

@@ -13,7 +13,7 @@
  * 1.0  2021.02.01   jsh77b     최초 작성
  *******************************************************************************
  -->
- <!-- 결제수단 선택 -->
+<!-- 결제수단 선택 -->
 <div class="fold_head">
 	<a href="javascript:void(0)">
 		<div>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/planning/PlanningEventMainFormWeb.html

@@ -36,7 +36,7 @@
 						<div class="txt">
 							<strong>STYLE24 BENEFIT</strong>
 							<p>STYLE24 회원등급에 따라<br>제공되는 혜택 정보를 확인해 보세요.</p>
-							<a href="javascript:;" class="btn btn_dark">회원등급 혜택 보기</a>
+							<a href="javascript:void(0);" class="btn btn_dark" onclick="cfnGoToPage(_PAGE_CUSTOMER_GRADE_BENEFIT);">회원등급 혜택 보기</a>
 						</div>
 						<div class="mem_rank_list">
 							<ul class="clear">

+ 3 - 3
src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html

@@ -22,7 +22,7 @@
 	<div id="container" class="container dp">
 		<div class="breadcrumb"> 
 			<ul>
-				<li class="bread_home"><a href="index.html">홈</a></li>
+				<li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
 				<li class="bread_2depth">총알배송</li>
 			</ul> 
 		</div>
@@ -33,7 +33,7 @@
                         <h3>총알배송</h3>
                     </div>
 				</div>
-				<div class="cont_body" th:utext="${#strings.replace(#strings.replace(shotHtml.fsrcPc,'&amplt;','<'),'&ampgt;','>')}">
+				<div class="cont_body" th:utext="${#strings.replace(#strings.replace(shotHtml.fsrcPc,'<','<'),'>','>')}">
                      <div class="bulletship">
                         <div class="bulletship_head">
                             <img src="/images/pc/thumb/bullet_bg1.png" alt="10시까지 주문하면 당일도착">
@@ -221,7 +221,7 @@ $(document).ready(function() {
    
 });
  /*]]>*/
-</script> 
+</script>
 
 </th:block>
 

+ 33 - 33
src/main/webapp/WEB-INF/views/web/popup/DelvAddrAddPopWeb.html

@@ -1,9 +1,9 @@
-<div class="modal-header">
-	<h5 class="modal-title" id="adrsAddLabel">배송지 등록</h5>
-</div>
-<div class="modal-body">
-	<div class="pop_cont">
-		<form class="form_wrap form_full" name="deliveryAddForm" id="deliveryAddForm">
+<form class="form_wrap form_full" name="deliveryAddForm" id="deliveryAddForm">
+	<div class="modal-header">
+		<h5 class="modal-title" id="adrsAddLabel">배송지 등록</h5>
+	</div>
+	<div class="modal-body">
+		<div class="pop_cont">
 			<div class="area_adrsinfo">
 				<h6>배송지 정보</h6>
 				<div class="default_addrs">
@@ -16,7 +16,7 @@
 					<label class="input_label sr-only">받는 분</label>
 					<div class="ui_col_12">
 						<div class="input_wrap"> 
-							<input type="text" class="form_control" name="recipNm" placeholder="받는 분" id="">
+							<input type="text" class="form_control" name="recipNm" placeholder="받는 분">
 						</div>
 					</div>
 				</div>	
@@ -24,7 +24,7 @@
 					<label class="input_label sr-only">휴대폰 번호</label>
 					<div class="ui_col_12">
 						<div class="input_wrap"> 
-							<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호" id="">
+							<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호">
 						</div>
 					</div>
 				</div>
@@ -52,8 +52,8 @@
 				<h6>배송요청 사항</h6> 
 					<div class="form_field">
 					<div>
-						<input type="radio" name="rdi-request1" id="rdi-request11" value="문앞" >
-						<label for="rdi-request11"><span>문앞</span></label>
+						<input type="radio" name="rdi-request1" id="rdi-request11" value="문 앞" >
+						<label for="rdi-request11"><span>문 앞</span></label>
 					</div>
 					<div>
 						<input type="radio" name="rdi-request1" id="rdi-request12" value="직접받고 부재시 문 앞" checked>
@@ -72,19 +72,19 @@
 						<label for="rdi-request15"><span>기타사항</span></label>
 						<div class="info_box">
 							<div class="input_wrap">
-								<input type="text" name="delvMemoText" class="form_control" maxlength="30" placeholder="보관장소만 입력 (필수)">
+								<input type="text" name="delvMemoText" class="form_control" maxlength="30" placeholder="보관장소만 입력 (필수)" disabled>
 								<p>보관 장소 외 다른 내용 입력시 통보없이 삭제 될 수 있습니다.</p>
 							</div>
 						</div>
 					</div>
 				</div>
 			</div>
-		</form>
+		</div>
+	</div>
+	<div class="modal-footer">
+		<button type="button" class="btn btn_dark" id="btn_delivery_addr_save"><span>배송지 등록</span></button>
 	</div>
-</div>
-<div class="modal-footer">
-	<button type="button" class="btn btn_dark" id="btn_delivery_addr_save"><span>배송지 등록</span></button>
-</div>
+</form>
 
 <script th:inline="javascript">
 var isLogin				= [[${isLogin}]];				// 로그인여부
@@ -107,21 +107,6 @@ $(document).ready( function() {
 	});
 });
 
-// 우편번호 DAUM을 이용한 우편번호 팝업 레이어
-var fnOpenDaumAddr = function() {
-	let daumZip = new daum.Postcode({
-		oncomplete: function(data) {
-			$('#deliveryAddForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
-			$('#deliveryAddForm input[name=recipZipcode]').val(data.zonecode);
-			$('#deliveryAddForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
-			$('#deliveryAddForm input[name=recipDtlAddr]').focus();
-			cfnCloseDaumAddr();
-		},
-		width: '100%'
-	});
-	cfnOpenDaumAddr(daumZip);
-}
-
 // 배송지등록버튼
 $("#btn_delivery_addr_save").on("click", function(){
 	
@@ -139,7 +124,7 @@ $("#btn_delivery_addr_save").on("click", function(){
 	// 기타사항일때 텍스트 등록
 	var delvMemo = $("#deliveryAddForm input[name=rdi-request1]:checked").parent().find('span').text();
 	if ("기타사항" == delvMemo) {
-		delvMemo = $("input[name=delvMemoText]").val();
+		delvMemo = $("#deliveryAddForm input[name=delvMemoText]").val();
 	}
 	
 	// custDelvAddrSq 부모창으로 전달
@@ -225,7 +210,22 @@ var deliveryAddFormCheck = function() {
 	}
 	
 	return true;
-} 
+}
+
+//우편번호 DAUM을 이용한 우편번호 팝업 레이어
+var fnOpenDaumAddr = function() {
+	let daumZip = new daum.Postcode({
+		oncomplete: function(data) {
+			$('#deliveryAddForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
+			$('#deliveryAddForm input[name=recipZipcode]').val(data.zonecode);
+			$('#deliveryAddForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
+			$('#deliveryAddForm input[name=recipDtlAddr]').focus();
+			cfnCloseDaumAddr();
+		},
+		width: '100%'
+	});
+	cfnOpenDaumAddr(daumZip);
+}
 </script>
 
 

+ 55 - 55
src/main/webapp/WEB-INF/views/web/popup/DelvAddrChangePopWeb.html

@@ -1,61 +1,61 @@
 <!-- 배송지변경 팝업 -->
 <form name="delvAddrChangeForm" id="delvAddrChangeForm">
-<div class="modal-header">
-	<h5 class="modal-title" id="adrsChangeLabel">배송지 선택</h5>
-</div>
-<div class="modal-body">
-	<div class="pop_cont">
-		<ul>
-			<!-- 배송지목록 -->
-			<th:block th:each="deliveryAddr, index : ${deliveryAddrList}">
-				<li>
-					<div class="adrs_box">
-						<dl>
-							<div>
-								<dt><span class="sr-only">배송지명</span></dt>
-								<dd>
-									<th:block th:text="${deliveryAddr.recipNm}"></th:block>
-									<span class="icon_tag">
-										<th:block th:if="${deliveryAddr.defaultYn} == 'Y'">
-											<em class="tag">기본 배송지</em>
-										</th:block>
-										<th:block th:if="${deliveryAddr.shotDelvUseYn} == 'Y'">
-											<em class="tag primary_line">총알배송</em>
-										</th:block>
-									</span>
-								</dd>
-							</div>
-							<div>
-								<dt><span class="sr-only">휴대폰 번호</span></dt>
-								<dd th:text="${deliveryAddr.recipPhnno}"></dd>
-							</div>
-							<div>
-								<dt><span class="sr-only">배송주소</span></dt>
-								<dd th:text="${deliveryAddr.recipBaseAddr} + ' ' + ${deliveryAddr.recipDtlAddr}"></dd>
-							</div>
-							<div>
-								<dt>배송요청 사항&nbsp;:&nbsp;</dt>
-								<dd th:text="${deliveryAddr.delvMemo}"></dd>
-							</div>
-						</dl>
-						<button type="button" class="btn btn_default btn_sm btn_addrModify_pop" th:value="${deliveryAddr.custDelvAddrSq}"><span>수정</span></button>
-						<button type="button" class="btn btn_dark btn_sm btn_sel_delvAddr" th:value="${deliveryAddr.custDelvAddrSq}"><span>선택</span></button>
-						
-						<input type="hidden" name="recipNm" 			th:value="${deliveryAddr.recipNm}"/>
-						<input type="hidden" name="recipPhnno" 			th:value="${deliveryAddr.recipPhnno}"/>
-						<input type="hidden" name="recipZipcode" 		th:value="${deliveryAddr.recipZipcode}"/>
-						<input type="hidden" name="recipBaseAddr" 		th:value="${deliveryAddr.recipBaseAddr}"/>
-						<input type="hidden" name="recipDtlAddr" 		th:value="${deliveryAddr.recipDtlAddr}"/>
-						<input type="hidden" name="delvMemo" 			th:value="${deliveryAddr.delvMemo}"/>
-					</div>
-				</li>
-			</th:block>
-		</ul>
+	<div class="modal-header">
+		<h5 class="modal-title" id="adrsChangeLabel">배송지 선택</h5>
+	</div>
+	<div class="modal-body">
+		<div class="pop_cont">
+			<ul>
+				<!-- 배송지목록 -->
+				<th:block th:each="deliveryAddr, index : ${deliveryAddrList}">
+					<li>
+						<div class="adrs_box">
+							<dl>
+								<div>
+									<dt><span class="sr-only">배송지명</span></dt>
+									<dd>
+										<th:block th:text="${deliveryAddr.recipNm}"></th:block>
+										<span class="icon_tag">
+											<th:block th:if="${deliveryAddr.defaultYn} == 'Y'">
+												<em class="tag">기본 배송지</em>
+											</th:block>
+											<th:block th:if="${deliveryAddr.shotDelvUseYn} == 'Y'">
+												<em class="tag primary_line">총알배송</em>
+											</th:block>
+										</span>
+									</dd>
+								</div>
+								<div>
+									<dt><span class="sr-only">휴대폰 번호</span></dt>
+									<dd th:text="${deliveryAddr.recipPhnno}"></dd>
+								</div>
+								<div>
+									<dt><span class="sr-only">배송주소</span></dt>
+									<dd th:text="${deliveryAddr.recipBaseAddr} + ' ' + ${deliveryAddr.recipDtlAddr}"></dd>
+								</div>
+								<div>
+									<dt>배송요청 사항&nbsp;:&nbsp;</dt>
+									<dd th:text="${deliveryAddr.delvMemo}"></dd>
+								</div>
+							</dl>
+							<button type="button" class="btn btn_default btn_sm btn_addrModify_pop" th:value="${deliveryAddr.custDelvAddrSq}"><span>수정</span></button>
+							<button type="button" class="btn btn_dark btn_sm btn_sel_delvAddr" th:value="${deliveryAddr.custDelvAddrSq}"><span>선택</span></button>
+							
+							<input type="hidden" name="recipNm" 			th:value="${deliveryAddr.recipNm}"/>
+							<input type="hidden" name="recipPhnno" 			th:value="${deliveryAddr.recipPhnno}"/>
+							<input type="hidden" name="recipZipcode" 		th:value="${deliveryAddr.recipZipcode}"/>
+							<input type="hidden" name="recipBaseAddr" 		th:value="${deliveryAddr.recipBaseAddr}"/>
+							<input type="hidden" name="recipDtlAddr" 		th:value="${deliveryAddr.recipDtlAddr}"/>
+							<input type="hidden" name="delvMemo" 			th:value="${deliveryAddr.delvMemo}"/>
+						</div>
+					</li>
+				</th:block>
+			</ul>
+		</div>
+	</div>
+	<div class="modal-footer">
+		<button type="button" class="btn btn_dark" id="btn_adrsAdd_pop"><span>배송지 추가</span></button>
 	</div>
-</div>
-<div class="modal-footer">
-	<button type="button" class="btn btn_dark" id="btn_adrsAdd_pop"><span>배송지 추가</span></button>
-</div>
 </form>
 
 <script th:inline="javascript">

+ 42 - 42
src/main/webapp/WEB-INF/views/web/popup/DelvAddrModifyPopWeb.html

@@ -1,11 +1,11 @@
-<div class="modal-header">
-	<h5 class="modal-title" id="adrsModifyLabel">배송지 수정</h5>
-</div>
-<div class="modal-body">
-	<div class="pop_cont">
-		<form class="form_wrap form_full" name="deliveryModifyForm" id="deliveryModifyForm">
-			<input type="hidden" class="form_control" name="custDelvAddrSq" th:value="${deliveryAddrInfo.custDelvAddrSq}">
-			
+<form class="form_wrap form_full" name="deliveryModifyForm" id="deliveryModifyForm">
+	<input type="hidden" class="form_control" name="custDelvAddrSq" th:value="${deliveryAddrInfo.custDelvAddrSq}">
+	
+	<div class="modal-header">
+		<h5 class="modal-title" id="adrsModifyLabel">배송지 수정</h5>
+	</div>
+	<div class="modal-body">
+		<div class="pop_cont">
 			<div class="area_adrsinfo">
 				<h6>배송지 정보</h6>
 				<div class="default_addrs">
@@ -23,7 +23,7 @@
 					<label class="input_label sr-only">받는 분</label>
 					<div class="ui_col_12">
 						<div class="input_wrap"> 
-							<input type="text" class="form_control" name="recipNm" placeholder="받는 분" id="" th:value="${deliveryAddrInfo.recipNm}">
+							<input type="text" class="form_control" name="recipNm" placeholder="받는 분" th:value="${deliveryAddrInfo.recipNm}">
 						</div>
 					</div>
 				</div>	
@@ -31,7 +31,7 @@
 					<label class="input_label sr-only">휴대폰 번호</label>
 					<div class="ui_col_12">
 						<div class="input_wrap"> 
-							<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호" id="" th:value="${deliveryAddrInfo.recipPhnno}">
+							<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호" th:value="${deliveryAddrInfo.recipPhnno}">
 						</div>
 					</div>
 				</div>
@@ -40,8 +40,8 @@
 					<div class="ui_col_12">
 						<div class="input_wrap"> 
 							<input type="hidden" name="recipZipcode" placeholder="우편번호" th:value="${deliveryAddrInfo.recipZipcode}" readonly="readonly">
-							<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소"th:value="${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
-							<input type="text" class="form_control" name="recipAddr" placeholder="배송주소" th:value="${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
+							<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" th:value="${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
+							<input type="text" class="form_control" name="recipAddr" placeholder="배송주소" th:value="${deliveryAddrInfo.recipZipcode} + '    '+ ${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
 						</div>
 						<button type="button" class="btn btn_dark btn_sm" onclick="fnOpenDaumAddr();">
 							<span>우편번호 찾기</span>
@@ -57,12 +57,12 @@
 					</div>
 				</div>
 			</div>
-			<div class="area_request">       
+			<div class="area_request">
 				<h6>배송요청 사항</h6> 
 				<div class="form_field">
 					<div>
-						<input type="radio" name="rdi-request1" id="rdi-request11" value="문앞">
-						<label for="rdi-request11"><span>문앞</span></label>
+						<input type="radio" name="rdi-request1" id="rdi-request11" value="문 앞">
+						<label for="rdi-request11"><span>문 앞</span></label>
 					</div>
 					<div>
 						<input type="radio" name="rdi-request1" id="rdi-request12" value="직접받고 부재시 문 앞">
@@ -88,19 +88,19 @@
 					</div>
 				</div>
 			</div>
-		</form>
+		</div>
 	</div>
-</div>
-<div class="modal-footer">
-	<button type="button" class="btn btn_dark" id="btn_delivery_addr_save"><span>배송지 등록</span></button>
-</div>
+	<div class="modal-footer">
+		<button type="button" class="btn btn_dark" id="btn_delivery_modi_save"><span>배송지 등록</span></button>
+	</div>
+</form>
 
 <script th:inline="javascript">
 var delvMemo = [[${deliveryAddrInfo.delvMemo}]];
 //컨텐츠 호출
 $(document).ready( function() {
 	
-	var delvMemoArr = ["문앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
+	var delvMemoArr = ["문 앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
 	var tempMemo = true;
 	
 	// 배송요청사항설정
@@ -112,8 +112,8 @@ $(document).ready( function() {
 	
 	if (tempMemo) {
 		$("#deliveryModifyForm input[name=rdi-request1]").eq(4).attr("checked", true);
-		$("input[name=delvMemoText]").attr("disabled", false);
-		$("input[name=delvMemoText]").val(delvMemo);
+		$("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", false);
+		$("#deliveryModifyForm input[name=delvMemoText]").val(delvMemo);
 	}
 	
 	$("#deliveryModifyForm input[name=rdi-request1]").each(function(){
@@ -138,27 +138,11 @@ $(document).ready( function() {
 	});
 });
 
-// 우편번호 DAUM을 이용한 우편번호 팝업 레이어
-var fnOpenDaumAddr = function() {
-	let daumZip = new daum.Postcode({
-		oncomplete: function(data) {
-			$('#deliveryModifyForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
-			$('#deliveryModifyForm input[name=recipZipcode]').val(data.zonecode);
-			$('#deliveryModifyForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
-			$('#deliveryModifyForm input[name=recipDtlAddr]').focus();
-			cfnCloseDaumAddr();
-		},
-		width: '100%'
-	});
-	
-	cfnOpenDaumAddr(daumZip);
-}
-
 // 배송지등록버튼
-$("#btn_delivery_addr_save").on("click", function(){
+$("#btn_delivery_modi_save").on("click", function(){
 	
 	// 유효성체크
-	if (!deliveryAddFormCheck()){
+	if (!deliveryModifyFormCheck()){
 		return false;
 	}
 	
@@ -222,7 +206,7 @@ $("#btn_delivery_addr_save").on("click", function(){
 });
 
 // 유효성체크 함수
-var deliveryAddFormCheck = function() {
+var deliveryModifyFormCheck = function() {
 	// TODO 유효성 체크 추가
 	if (gagajf.isNull($("#deliveryModifyForm input[name=recipNm]").val())) {
 		mcxDialog.alert("이름을 입력해주세요.");
@@ -250,4 +234,20 @@ var deliveryAddFormCheck = function() {
 	
 	return true;
 } 
+
+//우편번호 DAUM을 이용한 우편번호 팝업 레이어
+var fnOpenDaumAddr = function() {
+	let daumZip = new daum.Postcode({
+		oncomplete: function(data) {
+			$('#deliveryModifyForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
+			$('#deliveryModifyForm input[name=recipZipcode]').val(data.zonecode);
+			$('#deliveryModifyForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
+			$('#deliveryModifyForm input[name=recipDtlAddr]').focus();
+			cfnCloseDaumAddr();
+		},
+		width: '100%'
+	});
+	
+	cfnOpenDaumAddr(daumZip);
+}
 </script>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/popup/DelvMemoChangePopWeb.html

@@ -9,7 +9,7 @@
 				<div class="form_field">
 					<div>
 						<input type="radio" name="rdi-request3" id="rdi-request31">
-						<label for="rdi-request31"><span>문앞</span></label>
+						<label for="rdi-request31"><span>문 앞</span></label>
 					</div>
 					<div>
 						<input type="radio" name="rdi-request3" id="rdi-request32">
@@ -47,7 +47,7 @@ var delvMemo				= [[${delvMemo}]];				// 로그인여부
 
 // 초기배송메모설정
 $(document).ready( function() {
-	var delvMemoArr = ["문앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
+	var delvMemoArr = ["문 앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
 	var tempMemo = true;
 	
 	// 배송요청사항설정

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

@@ -62,7 +62,7 @@
                                         </div>
                                          -->
                                         <div class="shopBagBtn">
-                                            <button class="btn btn_defalt">
+                                            <button class="btn btn_defalt" onclick="cfnAddCart()">
                                                 <span>쇼핑백 담기</span>
                                             </button>
                                         </div>

+ 1 - 1
src/main/webapp/biz/mypage.js

@@ -291,7 +291,7 @@ var fnChangeDeliveryAddr = function(param) {
 var fnChangeDeliveryMemo = function() {
 	var data = {};
 	data.delvMemo = $('input[name=delvMemo]').val();
-	data.ordNo = ordNo;
+	data.ordNo = oneData.ordNo;
 	
 	$.ajax({
 		type		: "POST",

BIN
src/main/webapp/images/mo/ico_like.png


BIN
src/main/webapp/images/mo/ico_pop_cls.png


+ 8 - 7
src/main/webapp/ux/mo/css/common_m.css

@@ -249,7 +249,7 @@ input[type="reset"], input[type="button"], input[type="submit"], button {line-he
 
 /* 체크박스 */
 .form_field input[type="checkbox"]{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; } 
-.form_field input[type="checkbox"] + label{ display:inline-block; position:relative; padding-left:26px; cursor:pointer; font-size: 12px; line-height: 1.4;font-weight: 300;letter-spacing: 0;} 
+.form_field input[type="checkbox"] + label{ display:inline-block; position:relative; padding-left:2.6rem; cursor:pointer; font-size: 1.2rem; line-height: 2.0;font-weight: 300;letter-spacing: 0;} 
 .form_field input[type="checkbox"] + label:before{ 
   content:''; position:absolute; left:0; top:50%; margin-top:-10px; width:20px; height:20px; text-align:center; background:#fff; /*border:1px solid #ccc;*/ border-radius: 100%; box-sizing:border-box; 
   background: url('/images/mo/ico_chk_rdi.png') no-repeat;
@@ -811,12 +811,12 @@ main.container .inner:last-child{padding-bottom: 6.0rem; margin-bottom: 0;}
 .tabbar{-webkit-transform: translate(0, 55px);-ms-transform: translate(0, 55px);-moz-transform: translate(0, 55px); transform: translate(0, 55px);transition-duration: 0.3s; position: fixed;width: 100%;bottom: 0;background-color: #f8f8f8;z-index: 10; padding-bottom: constant(safe-area-inset-bottom);padding-bottom: env(safe-area-inset-bottom);}
 .tabbar.fixed{-webkit-transform: translate(0, 0);-ms-transform: translate(0, 0);-moz-transform: translate(0, 0);transform: translate(0, 0);}
 .tabbar .tabbar-inner{display: -webkit-box;display: -moz-box;display: -webkit-flex;display: -ms-flexbox;display: flex; -webkit-box-pack: justify;-moz-box-pack: justify;-ms-flex-pack: justify;-webkit-justify-content: space-between;justify-content: space-between; padding: 10px 20px;}
-.tabbar .tabbar-inner [class*=btn-]{display: block; width: 35px; height: 35px; font-size: 0;position: relative;}
-.tabbar .tabbar-inner [class*=btn-].btn-menu{background: url(/images/mo/ico_tabbar_menu.png) no-repeat center; background-size: 30px 25px;}
-.tabbar .tabbar-inner [class*=btn-].btn-my{background: url(/images/mo/ico_tabbar_my.png) no-repeat center; background-size: 30px 25px;}
-.tabbar .tabbar-inner [class*=btn-].btn-home{background: url(/images/mo/ico_tabbar_home.png) no-repeat center; background-size: 30px 25px;}
-.tabbar .tabbar-inner [class*=btn-].btn-wish{background: url(/images/mo/ico_tabbar_wish.png) no-repeat center; background-size: 30px 25px;}
-.tabbar .tabbar-inner [class*=btn-].btn-history{background: url(/images/mo/ico_tabbar_history.png) no-repeat center; background-size: 30px 25px;}
+.tabbar .tabbar-inner [class*=btn-]{display: block;width: 2.50rem; height: 2.2666rem; font-size: 0;position: relative;background: url(/images/mo/ico_tabbar.png) no-repeat center;background-size: 18.0rem 2.16rem;}
+.tabbar .tabbar-inner [class*=btn-].btn-menu{background-position: 0.1rem;}
+.tabbar .tabbar-inner [class*=btn-].btn-my{background-position: -3.7rem;}
+.tabbar .tabbar-inner [class*=btn-].btn-home{background-position: -7.5rem;}
+.tabbar .tabbar-inner [class*=btn-].btn-wish{background-position: -11.5rem;}
+.tabbar .tabbar-inner [class*=btn-].btn-history{background-position: -15.6rem;}
 
 
 /* Full메뉴 */
@@ -1342,6 +1342,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 
 /* 닫기 아이콘 */
 .dialog-close-btn {
+	display: none;
 	position:absolute;
 	top:0;
 	right:0;

+ 133 - 130
src/main/webapp/ux/mo/css/layout_m.css

@@ -34,14 +34,14 @@
 .cs .faq .quick_list ul li:nth-child(10) {border-bottom: none;}
 .cs .quick_list ul li a {display: flex; display: -ms-flexbox; justify-content: center; width:100%; height: 100%; line-height:2.6rem; font-size:1.6rem; font-weight: 200; align-items: center; color:#222; letter-spacing:-0.025em;}
 .cs .search_wrap .faq_search {height:19rem; background:#f5f5f5; padding:5rem; box-sizing:border-box; text-align:center;}
-.cs .search_wrap .faq_search .search_box {display:inline-block; position:relative; width:600px; padding-right:5rem; border-bottom:0.2rem solid #222; box-sizing: border-box; text-align:left;}
+.cs .search_wrap .faq_search .search_box {display:inline-block; position:relative; width:60.0rem; padding-right:5rem; border-bottom:0.2rem solid #222; box-sizing: border-box; text-align:left;}
 .cs .search_wrap .faq_search .search_box input[type='text'] {display:inline-block; width:100%; height:5rem; padding-left:0; border:none; background:none; color:#222; font-size:3rem; font-weight:200; letter-spacing:-0.025em; line-height:1;}
 .cs .search_wrap .faq_search .search_box input[type='text']::placeholder {color:#888;}
 .cs .search_wrap .faq_search .search_box .btn_search {display:inline-block; position:absolute; right:0; top:1.1rem; width:2.8rem; height:2.8rem; overflow:hidden; background:url('/images/pc/ico_search_faq.png') no-repeat 50% 50%; font-size:0.1rem; text-indent:-9999px; z-index:2}
 .cs .search_wrap .faq_search .t_info {width:60rem; margin:1.5rem auto 0; font-weight:200; text-align:left;}
 .cs .search_wrap p{margin-top:0.8rem; font-size:1.2rem; color:#666666;}
 .cs .fold_nav {width:100%;}
-.cs .fold_nav ul {display: flex; display: -ms-flexbox; flex-wrap: wrap; /*margin-top:-12px*/}
+.cs .fold_nav ul {display: flex; display: -ms-flexbox; flex-wrap: wrap; /*margin-top:-1.2rem*/}
 .cs .fold_nav ul li {margin:0.4rem 0.4rem 0 0;}
 .cs .fold_nav ul li a {display:inline-block;padding:1rem 1.6rem;border: 0.1rem solid #ddd;font-size:1.2rem;font-weight: 300;line-height: 1; letter-spacing:-0.025em; border-radius:2rem;}
 .cs .fold_nav ul li a.on {position: relative; background: #222; color:#fff; border: 0.1rem solid #222;}
@@ -82,7 +82,7 @@
 .cs .cs_contactUs_1{background-color:#f5f5f5}
 .cs .cs_contactUs_1 .inner{margin-bottom:1.2rem; padding-top:2.5rem; padding-bottom:2.5rem; background-color:#fff;}
 .cs .cs_contactUs_1 .inner:last-child{padding-top:0; margin-bottom:0;}
-.cs .cs_contactUs_1 .inner.m_pb45{padding-bottom:45px;}
+.cs .cs_contactUs_1 .inner.m_pb45{padding-bottom:4.5rem;}
 .cs .cs_contactUs_1 .qna_list{transition:0.4s;}
 .cs .cs_contactUs_1 .qna_list > li{display:flex; justify-content:space-between; padding:2.6rem 2.0rem; border-bottom:1px solid #e1e1e1; position:relative; margin:0 -2.0rem;}
 .cs .cs_contactUs_1 .qna_list > li > div.title{width:90%; overflow:hidden;}
@@ -121,7 +121,7 @@
 .cs_contactUs_my {}
 .cs_contactUs_my .header { height: 2rem; padding: 0 2rem; display: flex; justify-content: space-between; align-items: center; font-size: 2rem; font-weight: bold; margin: 1.6rem 0;}
 .cs_contactUs_my .header .close{position: relative; height:5.2rem;}
-.cs_contactUs_my .header .close span{position:absolute; left:50%; margin-left:-0.5px; display:inline-block; width:1px; height:18px; background-color:#000; transform:rotate(45deg);}
+.cs_contactUs_my .header .close span{position:absolute; left:50%; margin-left:-0.5px; display:inline-block; width:1px; height:1.8rem; background-color:#000; transform:rotate(45deg);}
 .cs_contactUs_my .header .close span:first-child{transform:rotate(-45deg);}
 .cs_contactUs_my .header .close a{position:absolute; top:50%; right:0; margin-top:-0.8rem; width:1.8rem; height:1.8rem; font-size:0; background-color:#fff;}
 .cs_contactUs_my .inner { padding-bottom: 0;}
@@ -150,7 +150,7 @@
 .cs_contactUs_my .contactus_cnt {color:#888}
 .cs_contactUs_my .select {height:4.2rem; font-size:1.2rem;}
 .cs_contactUs_my .select .select_dress {color:#222; font-weight:200;}
-.cs_contactUs_my .select .select_dress:after {top:16px; right:1.5rem; border-color:#888 transparent transparent transparent;}
+.cs_contactUs_my .select .select_dress:after {top:1.6rem; right:1.5rem; border-color:#888 transparent transparent transparent;}
 .cs_contactUs_my .select .select_dress.active:after {top:1rem; border-color: transparent transparent #888 transparent;}
 .cs_contactUs_my .select .select_options {color:#666}
 .cs_contactUs_my .help_block {margin-top:1rem; text-indent:0;}
@@ -228,7 +228,7 @@
 .mb .form_wrap .form_info {text-align:center;}
 .mb .form_wrap .form_info p {font-size:1.4rem; font-weight:300; letter-spacing:-0.025em; line-height:1.6;}
 .mb .form_wrap .form_info p.t_info {font-size:1.2rem; color:#888; font-weight:300; line-height:1.625;}
-.mb .find_result {padding:0px 0px 40px; font-weight:200;}
+.mb .find_result {padding:0px 0px 4.0rem; font-weight:200;}
 .mb .find_result .help_block {text-align:left}
 .mb .find_result input {font-size:1.2rem;}
 .mb .find_result .form_print_bar {padding:3.4rem 0; margin-top:2.5rem; display: flex; display: -ms-flexbox; justify-content: center; align-items: center; background: #f5f5f5; text-align: left; color:#222; font-size:1.2rem;}
@@ -261,7 +261,7 @@
 .mb .mb_login .captcha .captcha_btn_dual button:first-child {margin-bottom:0.6rem;}
 .mb .mb_login .captcha .captcha_btn_dual button:last-child {background-position:center -3.1rem;}    
 .mb .mb_login .captcha .captcha_area {margin-top:0.6rem;}
-.mb .mb_login .captcha .captcha_area input {padding:1.3rem 0 15px 1.3rem;}
+.mb .mb_login .captcha .captcha_area input {padding:1.3rem 0 1.5rem 1.3rem;}
 .mb .mb_login .captcha .captcha_area label { display: block; width: 100%; margin:-0.8rem 0 0.4rem 0;}
 .mb .mb_login .btn{width:100%; height:4.5rem;}
 
@@ -312,7 +312,7 @@
 
 /* mb_join_2 */
 .mb .mb_join_2 .form_field{display:block;}
-.mb .mb_join_2 .form_wrap .desc_wrap p {font-size:12px; line-height:1.75; font-weight:200; color:#888;}
+.mb .mb_join_2 .form_wrap .desc_wrap p {font-size:1.2rem; line-height:1.75; font-weight:200; color:#888;}
 .mb .mb_join_2 .form_wrap .desc_wrap p a {color:#666; font-weight:300;}
 .mb .mb_join_2 .help_block::after {clear:both; display:block; width:100%;}
 .mb .mb_join_2 .help_block .btn.btn_sm {float:left; margin-right:0.4rem; border-color:#222; font-size:1.2rem;}
@@ -329,7 +329,7 @@
 /* common으로 이사갈것들 */
 .pb0{padding-bottom:0!important;}
 .ico_besttag{height:1.5rem; vertical-align:middle;}
-.ico_besttag::before {content: ""; width: 31px; height: 15px; background: url(/images/mo/ico_besttag.png) no-repeat 50% 50%; background-size: cover;}
+.ico_besttag::before {content: ""; width: 3.1rem; height: 1.4rem; background: url(/images/mo/ico_besttag.png) no-repeat 50% 50%; background-size: cover;}
 
 /* button*/
 .pd_detail .btn_coupon,
@@ -339,7 +339,7 @@
 .pd_detail .btn_brandHome{border-color:#a7a7a7;}
 
 /* 슬라이드아이템*/
-.item_prod {display: inline-block;font-size: 0px;vertical-align: top;color: rgb(31, 31, 31);position: relative;letter-spacing: -0.2px;}
+.item_prod {display: inline-block;font-size: 0px;vertical-align: top;color: rgb(31, 31, 31);position: relative;letter-spacing: -0.025em;}
 .item_prod .item_state {position: relative; padding:0; box-sizing: border-box;}
 .item_prod .itemLike {position: absolute;top:1rem;right:1rem;font-size: 0px;z-index: 2;width: 1.7rem;height: 1.7rem; background: url('/images/mo/ico_like.png');background-size: 3.4rem;background-position:0px 0px;background-repeat: no-repeat;}
 .item_prod .itemLike::before, 
@@ -351,10 +351,10 @@
 /* .item_prod .itemLike.active::before {opacity: 1;} */
 .itemLike.likeit::before {opacity: 1;}
 .item_prod .itemLink {position: relative;text-decoration: none;color: rgb(102, 102, 102);cursor: pointer;display: block;}
-.item_prod .itemPic {position: relative;width: 100%;margin-bottom: 15px;padding-top: 150%;font-size: 0px;overflow: hidden;}
+.item_prod .itemPic {position: relative;width: 100%;margin-bottom: 1.5rem;padding-top: 150%;font-size: 0px;overflow: hidden;}
 .item_prod .itemPic::after {content: "";display: block;position: absolute;top: 0px;left: 0px;width: 100%;height: 100%;opacity: 0.03;background-color: rgb(0, 0, 0);}
 .item_prod .itemPic .pd_img {position: absolute;width: 100%;height: auto;top: 50%;left: 0px;transform: translateY(-50%);}
-.item_prod .itemBrand {display: inline-block; margin: 0px 0.5rem 0.3rem; font-size: 1rem;font-weight: 300;color: rgb(137, 137, 137);}
+.item_prod .itemBrand {display: inline-block; margin: 0px 0.5rem 0.3rem; font-size: 1rem;font-weight: 300;color: rgb(137, 137, 137); text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;width:10rem;overflow:hidden;}
 .item_prod .itemComment{margin: 0.8rem 0.5rem 0px;line-height: 1; font-size: 1.1rem;font-weight: 300;color: #fd4802;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
 .item_prod .itemName {margin: 0px 0.5rem 0.8rem; font-size: 1.1rem; font-weight:300; color: rgb(31, 31, 31); max-height: 3rem; position: relative; overflow: hidden; white-space: normal; overflow-wrap: break-word; display: block;}
 .item_prod .itemName {display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}
@@ -363,13 +363,13 @@
 .item_prod .itemPrice_original {position: relative; margin-bottom:0.5rem; display:block; line-height:1; font-size: 1rem; font-weight: 300; color: rgb(204, 204, 204); text-decoration:line-through;}
 .item_prod .itemText{margin-top:0.5rem; font-size:1.1rem; color:#888888; font-weight:300;} 
 /* .item_prod .itemPrice_original::after{content: ''; display: inline-block; position: absolute; top: 50%; left: 0; bottom:auto; right:auto; width: 100%; height: 1px; background: rgb(204, 204, 204) ; transform: translateY(-50%);} */
-.item_prod .itemPercent {position: absolute;top: auto;right: 0px;bottom: 0;left: auto;margin-left: 15px;line-height:1;font-size: 1.5rem;font-weight: 300;color: #fd4802;}
-.rank {position: absolute; z-index: 1; font-size: 14px; color: #ffffff; top: 0; left: 0; width: auto; height: auto; min-width: 40px; max-height: 40px; text-align: center; line-height: 0.9; padding: 14px 0px;}
+.item_prod .itemPercent {position: absolute;top: auto;right: 0px;bottom: 0;left: auto;margin-left: 1.5rem;line-height:1;font-size: 1.5rem;font-weight: 300;color: #fd4802;}
+.rank {position: absolute; z-index: 1; font-size: 1.4rem; color: #ffffff; top: 0; left: 0; width: auto; height: auto; min-width: 4.0rem; max-height: 4.0rem; text-align: center; line-height: 0.9; padding: 1.4rem 0px;}
 .rank::after {content: ""; z-index: -1; position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: block; background: currentColor; background: #222222; clip-path: polygon(40px 0, 40px 30px, 30px 40px, 0 40px, 0 0); clip-path: polygon(100% 0, 100% 75%, 75% 100%, 0 100%, 0 0); clip-path: polygon(100% 0, 100% calc( 100% - 10px), calc( 100% - 10px) 100%, 0 100%, 0 0);}
 
 /* pd 상품상세 공통 */
 .pd .swiper-container{overflow:visible;}
-.pd .tit{margin-bottom:1.5rem; font-size:1.4rem; font-weight:500; color:#222}
+.pd .tit{margin-bottom:1.5rem; font-size:1.5rem; font-weight:500; color:#222}
 .pd .ptok{padding-top:3rem!important;}
 .pd .ptok2{padding-top:4rem!important; padding-bottom:4rem!important;}
 .pd .area_slider{text-align:left;}
@@ -419,14 +419,14 @@
 /* 2 */
 .pd_detail .desc_status{padding:1.5rem 2rem; margin-bottom:-1.2rem; color: #fd4802; border-bottom:1px solid #dddddd;}
 .pd_detail .timer_box{position: absolute; height:3.6rem; line-height:3.6rem; font-size:1.2rem; color:#fff; text-align:center; background-color: #000; left: 2rem; right: 2rem; top: -5.5rem; z-index: 10;}
-/* .pd_detail .timer_box::after{content:''; position:absolute; right:-12px; bottom:-18px; border:12px solid transparent; border-top:12px solid #fff; transform:rotate(-45deg);} */
+/* .pd_detail .timer_box::after{content:''; position:absolute; right:-1.2rem; bottom:-1.8rem; border:1.2rem solid transparent; border-top:1.2rem solid #fff; transform:rotate(-45deg);} */
 .pd_detail .timer_box::after{content:''; position:absolute; right:0; bottom:0; display:block; width:0px; border:0.5rem solid transparent; border-bottom-color:#fff; border-right-color:#fff;}
 .pd_detail .timer_box p::after {content:''; clear:both; display:block;}
 .pd_detail .timer_box p span {display:inline-block; position:relative; }
-.pd_detail .timer_box p .tt {position:relative; padding-left:28px; color:#fff; font-size:1.3rem;}
-.pd_detail .timer_box p .tt::before {content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:18px; height:18px; background:url('/images/mo/ico_timer2.png') no-repeat 0 50%;}
+.pd_detail .timer_box p .tt {position:relative; padding-left:2.8rem; color:#fff; font-size:1.3rem;}
+.pd_detail .timer_box p .tt::before {content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1.8rem; height:1.8rem; background:url('/images/mo/ico_timer2.png') no-repeat 0 50%;}
 .pd_detail .timer_box p .timer {color:#fff; font-size:1.4rem; font-weight:300;}
-.pd_detail .timer_box p .timer em {display:inline-block; position:relative; padding-left:6px;}
+.pd_detail .timer_box p .timer em {display:inline-block; position:relative; padding-left:0.6rem;}
 .pd_detail .timer_box p .timer em::before {content:':'; position:absolute; left:-1px; top:50%; transform:translateY(-50%);}
 .pd_detail .timer_box p .timer em:first-of-type {padding-left:0.8rem;}
 .pd_detail .timer_box p .timer em:first-of-type::before {display:none;}
@@ -458,7 +458,7 @@
 .pd_detail .option_box .opt_result .result_item .opt_header .bundle{margin-bottom:1.5rem;}
 .pd_detail .option_box .opt_result .result_item .opt_header .bundle:last-child{margin-bottom:0;}
 .pd_detail .option_box .opt_result .result_item .opt_header .bundle .item_name {margin-bottom:0.5rem; color:#222; font-size:1.3rem; font-weight:300;}
-.pd_detail .option_box .opt_result .result_item .opt_header .bundle .item_option {font-size:1.1rem; color:#666;}
+.pd_detail .option_box .opt_result .result_item .opt_header .bundle .item_option {font-size:1.1rem; color:#666; text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;width:30rem;overflow:hidden;}
 .pd_detail .option_box .opt_result .result_item .item_price {position:absolute; right:2rem; bottom:3.2rem; color:#222; font-size:1.5rem; font-weight:500;}
 .pd_detail .option_box .opt_result .result_item .item_price em{font-weight:600;}
 .pd_detail .option_box .opt_result .result_item .btn_delete_item {position:absolute; right:2rem; top:2rem; width:1.3rem; height:1.3rem; font-size:0; overflow:hidden; background:url('/images/mo/btn_delete_item.png') no-repeat 50% 50%;}
@@ -467,34 +467,34 @@
 .pd_detail .option_box .opt_result .result_item .number_count span,
 .pd_detail .option_box .opt_result .result_item .number_count input[type='text']{float:left;}
 .pd_detail .option_box .opt_result .result_item .number_count span {cursor:pointer; position:relative; display:inline-block; width:3.2rem; height:3.2rem; text-align:center;}
-.pd_detail .option_box .opt_result .result_item .number_count span::after {content:''; position:absolute; left:50%; top:50%; transform: translate(-50%, -50%);; width:12px; height:12px; background:url('/images/pc/btn_count.png') no-repeat 100% 0; image-rendering:pixelated;}
+.pd_detail .option_box .opt_result .result_item .number_count span::after {content:''; position:absolute; left:50%; top:50%; transform: translate(-50%, -50%);; width:1.2rem; height:1.2rem; background:url('/images/pc/btn_count.png') no-repeat 100% 0; image-rendering:pixelated;}
 .pd_detail .option_box .opt_result .result_item .number_count .plus::after {content:''; background-position:100% 0;}
 .pd_detail .option_box .opt_result .result_item .number_count .minus::after {content:''; background-position:0 0;}
-.pd_detail .option_box .opt_result .result_item .number_count input[type='text'] {width:32px; height:32px; padding:0; text-align:center; color:#222; font-size:1.3rem; font-weight:300; border:none; font-family:'LATO','Noto Sans CJK kr','Noto Sans kr',sans-serif;}
+.pd_detail .option_box .opt_result .result_item .number_count input[type='text'] {width:3.2rem; height:3.2rem; padding:0; text-align:center; color:#222; font-size:1.3rem; font-weight:300; border:none; font-family:'LATO','Noto Sans CJK kr','Noto Sans kr',sans-serif;}
 .option_box .opt_size .form_field2 {display:block;}
 .option_box .opt_size .form_field2 .lap{margin:-0.25rem -0.25rem 0; overflow:hidden;}
 .option_box .opt_size .form_field2 .lap > div {margin:0.25rem; float:left; width:auto;}
 .option_box .opt_size .form_field2 label > span{position:relative; display:block; width:6rem; height:3.4rem; padding:0; line-height:3.4rem; text-align:center; background:#fff; box-sizing:border-box; color:#222; font-weight:200; font-size:1.2rem; border:1px solid #ddd; cursor: pointer;}
 .option_box .opt_size .form_field2 label input[type="radio"]{position:absolute; width:0; height:0; visibility:hidden;}
-.option_box .opt_size .form_field2 label input[type="radio"]:checked + span{border:1px solid #fd4802;}
+.option_box .opt_size .form_field2 label input[type="radio"]:checked + span{border:1px solid #000;}
 .option_box .opt_size .form_field2 label input[type="radio"]:disabled + span{text-decoration:line-through; background:#f5f5f5; border-color:#f5f5f5; color:#bbb; opacity:1;}
 .pd_detail .option_box .info_restock{margin-top:1rem;}
 .pd_detail .option_box .info_restock a.btn_popup {position:relative; padding-left:1.9rem; padding-right:1.2rem; color:#666; font-size:1.3rem; font-weight:300; border:none;}
 .pd_detail .option_box .info_restock a.btn_popup::before {content:''; position:absolute; left:0; top:50%; margin-top:-1px; transform:translateY(-50%); width:1.3rem; height:1.3rem; background:url('/images/mo/ico_bell.png') no-repeat 0 0;}
-.pd_detail .option_box .info_restock a.btn_popup::after {content:''; position:absolute; right:0px; top:50%; margin-top:-1px; transform:translateY(-50%); width:5px; height:9px; background:url('/images/mo/ico_more_lg.png') no-repeat 100% 50%; background-size:contain;}
+.pd_detail .option_box .info_restock a.btn_popup::after {content:''; position:absolute; right:0px; top:50%; margin-top:-1px; transform:translateY(-50%); width:0.5rem; height:0.9rem; background:url('/images/mo/ico_more_lg.png') no-repeat 100% 50%; background-size:contain;}
 .pd_detail .option_box .opt_count {padding-bottom:0; margin-top:2.8rem; overflow:hidden;}
 .pd_detail .option_box .opt_count .number_count {display:inline-block; border:1px solid #ddd}
 .pd_detail .option_box .opt_count .number_count::after {content:''; clear:both; display:block;}
 .pd_detail .option_box .opt_count .number_count span,
 .pd_detail .option_box .opt_count .number_count input[type='text']{float:left;}
 .pd_detail .option_box .opt_count .number_count span {cursor:pointer; position:relative; display:inline-block; width:3.2rem; height:3.2rem; text-align:center;}
-.pd_detail .option_box .opt_count .number_count span::after {content:''; position:absolute; left:50%; top:50%; transform: translate(-50%, -50%);; width:12px; height:12px; background:url('/images/pc/btn_count.png') no-repeat 100% 0; image-rendering:pixelated;}
+.pd_detail .option_box .opt_count .number_count span::after {content:''; position:absolute; left:50%; top:50%; transform: translate(-50%, -50%);; width:1.2rem; height:1.2rem; background:url('/images/pc/btn_count.png') no-repeat 100% 0; image-rendering:pixelated;}
 .pd_detail .option_box .opt_count .number_count .plus::after {content:''; background-position:100% 0;}
 .pd_detail .option_box .opt_count .number_count .minus::after {content:''; background-position:0 0;}
-.pd_detail .option_box .opt_count .number_count input[type='text'] {width:3.2rem; height:3.2rem; padding:0; text-align:center; color:#222; font-size:15px; font-weight:200; border:none; font-family:'LATO','Noto Sans kr',sans-serif;}
+.pd_detail .option_box .opt_count .number_count input[type='text'] {width:3.2rem; height:3.2rem; padding:0; text-align:center; color:#222; font-size:1.5rem; font-weight:200; border:none; font-family:'LATO','Noto Sans kr',sans-serif;}
 .pd_detail .price_box {padding:1rem 2rem; border-top:1px solid #222;}
 .pd_detail .price_box::after {content:''; clear:both; display:block;}
-.pd_detail .price_box .number {float:left; color:#666; font-size:1.2rem; font-weight:200; margin-top:3px}
+.pd_detail .price_box .number {float:left; color:#666; font-size:1.2rem; font-weight:200; margin-top:0.3rem}
 .pd_detail .price_box .price {float:right; color:#222; font-size:1.5rem; font-weight:500;}
 .pd_detail .price_box .price em {font-size:1.5rem;}
 /* 3 */
@@ -521,7 +521,7 @@
 .pd_detail .content.pd_descrp{padding-top:3rem;}
 [class*="pd_descrp"] .btn_group_flex button{border: 1px solid #fd4802; color: #fd4802; background: #fff;}
 [class*="pd_descrp"] .btn_group_flex button span{position:relative; padding-right:2rem;}
-[class*="pd_descrp"] .btn_group_flex button span::after {content:""; position:absolute; right:4px; top:1px; transform:rotate(90deg); width:7px; height:13px; background:url(/images/mo/ico_mb_arrow2.png) no-repeat 0 0; background-size:auto 100%;} 
+[class*="pd_descrp"] .btn_group_flex button span::after {content:""; position:absolute; right:0.4rem; top:0.1rem; transform:rotate(90deg); width:0.7rem; height:1.3rem; background:url(/images/mo/ico_mb_arrow2.png) no-repeat 0 0; background-size:auto 100%;} 
 [class*="pd_descrp"] .btn_group_flex button.active span::after {transform:rotate(-90deg);}
 [class*="pd_descrp"] {width:100%;}
 [class*="pd_descrp"] .cont_body {max-height:58rem; overflow:hidden;}
@@ -542,7 +542,7 @@
 [class*="pd_descrp"] [class^="view_"] .tit_view {display:block; color:#222; font-size:2.1rem; font-weight:400; text-align:center;}
 [class*="pd_descrp"] [class^="view_"] .model_info {display:block; margin-top:1rem; color:#666; font-size:1.2rem; font-weight:200; text-align:center;}
 [class*="pd_descrp"] [class^="view_"] .view {margin-top:2rem}
-[class*="pd_descrp"] [class^="view_"] .view img {display:block; margin:5px auto 0}
+[class*="pd_descrp"] [class^="view_"] .view img {display:block; margin:0.5rem auto 0}
 [class*="pd_descrp"] [class^="view_"] .view img:first-child {margin-top:0}
 [class*="pd_descrp"] .view_label_box .view span {display:block; margin:0 -0.5rem; overflow:hidden;}
 [class*="pd_descrp"] .view_label_box .view span img {float:left; width:50%; margin-top:0; padding:0 0.5rem; box-sizing:border-box;}
@@ -552,7 +552,7 @@
 [class*="pd_descrp"] .brand_box {padding:3rem 2rem; margin:6rem -2rem 0; width:auto!important; border-top:1px solid #ddd; border-bottom:1px solid #ddd; text-align:center; box-sizing:border-box;}
 [class*="pd_descrp"] .brand_box .name {margin-bottom:1rem; color:#222; font-size:1.8rem; font-weight:bold;}
 [class*="pd_descrp"] .brand_box a {display:inline-block; border:1px solid #ddd; font-size:1.3rem; color:#222; font-weight:300; line-height: 4.3rem; width: 100%;}
-[class*="pd_descrp"] .required_box {margin-bottom:40px}
+[class*="pd_descrp"] .required_box {margin-bottom:4.0rem;}
 [class*="pd_descrp"] .required_box .area_detail {text-align:center;} 
 [class*="pd_descrp"] .required_box .area_detail img {max-width:100%;}
 [class*="pd_descrp"] .required_box .area_infotbl {margin-top:4rem;}
@@ -564,7 +564,7 @@
 [class*="pd_descrp"] .required_box .area_kcl p a{position:relative; color:#666; cursor: pointer;}
 [class*="pd_descrp"] .required_box .area_kcl p a:after{display:block; content:''; position:absolute; left:0; bottom:-0.2rem; width:100%; height:1px; background:#666666;}
 [class*="pd_descrp"] .required_box .area_kcl .tit {margin-top:0; margin-bottom:0.5rem; font-size:1.3rem;}
-[class*="pd_descrp"] .required_box .area_kcl a.linktxt3 {margin-left:20px; color:#888; font-weight:200; text-decoration:none !important;}
+[class*="pd_descrp"] .required_box .area_kcl a.linktxt3 {margin-left:2.0rem; color:#888; font-weight:200; text-decoration:none !important;}
 [class*="pd_descrp"] .required_box .area_kcl .ico_kcl {position:relative;}
 [class*="pd_descrp"] .required_box .tbl.type1 {border-top:1px solid #000; border-bottom:1px solid #ddd;} 
 [class*="pd_descrp"] .required_box .tbl.type1 table {width:100%; text-align:left; word-break:keep-all;}
@@ -581,26 +581,26 @@
 [class*="pd_descrp"] .btn_more_box {position:relative; width:100%; background:#fff; text-align:center; z-index:2;}
 [class*="pd_descrp"] .btn_more_box.covered::after {content:''; position:absolute; left:0; right:0; top:-8rem; width:100%; height:8rem; background:linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255,255,255,1) 50%, rgba(255, 255, 255, 0) 100%); z-index:2; }
 [class*="pd_descrp"] .btn_more_box .btnL {border:1px solid #fd4802; color:#fd4802;}
-[class*="pd_descrp"] .btn_more_box .btnL span {position:relative; padding-right:35px;}
-[class*="pd_descrp"] .btn_more_box .btnL .ico {margin-left:20px; margin-right:0;}
+[class*="pd_descrp"] .btn_more_box .btnL span {position:relative; padding-right:3.5rem;}
+[class*="pd_descrp"] .btn_more_box .btnL .ico {margin-left:2.0rem; margin-right:0;}
 /* 6 */
 .riview_box .swiper-pagination {display:inline-block; width:auto; padding:0.2rem 1rem; border-radius:2rem; font-size:1.2rem; color:#fff; background-color:rgba(34,34,34,.5);}
-.riview_box .area_slider{margin-bottom:3rem; text-align:center;}
+.riview_box .area_slider{margin-bottom:1.5rem; text-align:center;}
 .riview_box .ex_review {padding:1.8rem 0;}
 .riview_box .ex_review a:after{content:''; clear:both; display:block;}
 .riview_box .ex_review .tit{float:left; margin-bottom:0;}
 .riview_box .ex_review .tit .number{color:#888; font-weight:300;}
-.riview_box .ex_review .star_score {float:right; padding-right:2.5rem; height:14px; margin-bottom:0.7rem; vertical-align: middle; background:url('/images/mo/ico_more_lg.png') right center no-repeat; image-rendering:pixelated;}
-.riview_box .ex_review .star_score .star {display:inline-block; position:relative; width:95px; height:14px; background:#ddd;}
-.riview_box .ex_review .star_score .star::after {content:''; position:absolute; left:0; top:0; z-index:3; width:100%; height:14px; background:url('/images/mo/star_empty.png') no-repeat 0 0; background-size:100% 100%; image-rendering:pixelated;}
-.riview_box .ex_review .star_score .star .progbar {display:inline-block; height:14px; background:#fd4802}
+.riview_box .ex_review .star_score {float:right; padding-right:2.5rem; height:1.4rem; margin-bottom:0.7rem; vertical-align: middle; background:url('/images/mo/pd_arrow.png') right center no-repeat; image-rendering:pixelated;}
+.riview_box .ex_review .star_score .star {display:inline-block; position:relative; width:9.5rem; height:1.4rem; background:#ddd;}
+.riview_box .ex_review .star_score .star::after {content:''; position:absolute; left:0; top:0; z-index:3; width:100%; height:1.4rem; background:url('/images/mo/star_empty.png') no-repeat 0 0; background-size:100% 100%; image-rendering:pixelated;}
+.riview_box .ex_review .star_score .star .progbar {display:inline-block; height:1.4rem; background:#fd4802}
 .riview_box .ex_review .star_score .score {color:#222; font-size:1.4rem; font-weight:500;}
 .riview_box .best_review {margin-bottom:1.4rem; text-align:left;}
 .riview_box .best_review a {display:block; position:relative; padding:2rem; border:1px solid #eee;}
-.riview_box .best_review a .star_score .star {display:inline-block; position:relative; width:83px; height:14px; background:#ddd;}
-.riview_box .best_review a .star_score .star::after {content:''; position:absolute; left:0; top:0; z-index:3; width:100%; height:1.5rem; background:url('/images/mo/star_empty.png') no-repeat 0 0; background-size:100% 100%; image-rendering:pixelated;}
-.riview_box .best_review a .star_score .star .progbar {display:inline-block; height:14px; background:#fd4802; vertical-align:top;}
-.riview_box .best_review a .star_score .ico {margin-left:10px}
+.riview_box .best_review a .star_score .star {display:inline-block; position:relative; width:8.3rem; height:1.4rem; background:#ddd;}
+.riview_box .best_review a .star_score .star::after {content:''; position:absolute; left:0; top:0; z-index:3; width:100%; height:1.4rem; background:url('/images/mo/star_empty.png') no-repeat 0 0; background-size:100% 100%; image-rendering:pixelated;}
+.riview_box .best_review a .star_score .star .progbar {display:inline-block; height:1.4rem; background:#fd4802; vertical-align:top;}
+.riview_box .best_review a .star_score .ico {margin-left:1.0rem}
 .riview_box .best_review a .star_score .ico::before {vertical-align:inherit;}
 .riview_box .best_review a .lap{display:table; width:100%;}
 .riview_box .best_review a .lap > div{display:table-cell; vertical-align:middle;}
@@ -617,11 +617,11 @@
 .pd_detail .exinfo_box ul {border-top:1px solid #ddd}
 .pd_detail .exinfo_box ul li {padding:1.8rem 2rem; border-bottom:1px solid #ddd}
 .pd_detail .exinfo_box ul li:last-child {border-bottom:0}
-.pd_detail .exinfo_box ul li [class^="ex_"] > a {display:block; background:url('/images/mo/ico_more_lg.png') right center no-repeat; image-rendering:pixelated;}
+.pd_detail .exinfo_box ul li [class^="ex_"] > a {display:block; background:url('/images/mo/pd_arrow.png') right center no-repeat; image-rendering:pixelated;}
 .pd_detail .exinfo_box ul li [class^="ex_"] > a::after {content:''; clear:both; display:block;}
-.pd_detail .exinfo_box ul li [class^="ex_"] > a .tit {color:#222; font-size:14px; font-weight:300;}
-.pd_detail .exinfo_box ul li [class^="ex_"] > a .tit em.number {margin-left:4px; color:#666; font-weight:200;}
-.pd_detail .exinfo_box ul li .ex_shipping {color:#666; font-size:14px; font-weight:200;}
+.pd_detail .exinfo_box ul li [class^="ex_"] > a .tit {color:#222; font-size:1.4rem; font-weight:300;}
+.pd_detail .exinfo_box ul li [class^="ex_"] > a .tit em.number {margin-left:0.4rem; color:#666; font-weight:200;}
+.pd_detail .exinfo_box ul li .ex_shipping {color:#666; font-size:1.4rem; font-weight:200;}
 .pd_detail .exinfo_box ul li .ex_shipping span {display:block;}
 .pd_detail .exinfo_box ul li .ex_shipping .a{margin-bottom:0.9rem;}
 /* 7 */
@@ -631,7 +631,7 @@
 .pd_detail .recommendedArea > div[class*="pd_"] .tit{text-align:center;}
 .pd_detail .pd_clickother {}
 .pd_detail .pd_clickother .area_slider {}
-.pd_detail .pd_clickother .area_slider .itemName {height:32px}
+.pd_detail .pd_clickother .area_slider .itemName {height:3.2rem;}
 .pd_detail .pd_recommend {}
 .pd_detail .pd_recommend .area_slider {}
 .pd_detail .pd_recommend .area_slider .swiper-pagination {display:inline-block; width:auto; margin:0; padding:0.2rem 1rem; border-radius:2rem; font-size:1.2rem; color:#fff; background-color:rgba(34,34,34,.5);position:absolute; left:50%; bottom:2rem; -webkit-transform:translateX(-50%); transform:translateX(-50%);}
@@ -640,21 +640,21 @@
 .pd_detail .pd_recommend .area_slider .page .pic {position:relative;}
 .pd_detail .pd_recommend .area_slider .page .pic span.thumb {display:block; width:100%; height:0; padding-top:100%; background-color:#f5f5f5; background-repeat:no-repeat; background-position:50% 50%; background-size:contain;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap {}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area {position:relative; display:block; height:100%; width:100%; padding:10px; box-sizing:border-box; vertical-align:middle;}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area h5 {margin: 0 0 30px;color:#222;font-size:20px;font-weight:500;}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area {position:relative; display:block; height:100%; width:100%; padding:1.0rem; box-sizing:border-box; vertical-align:middle;}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area h5 {margin: 0 0 3.0rem;color:#222;font-size:2.0rem;font-weight:500;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area h5 span {color:#666; font-weight:200;}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item {height:calc(100% - 140px); overflow-y:auto;}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item::-webkit-scrollbar {width: 2px;}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item {height:calc(100% - 14.0rem); overflow-y:auto;}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item::-webkit-scrollbar {width: 0.2rem;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item::-webkit-scrollbar-thumb {background-color:#888888; border-radius: 0px; background-clip: padding-box;border: 0px solid transparent;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item::-webkit-scrollbar-track {background-color: #dddddd;border-radius: 0px;}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li {position:relative; height:150px; margin-top:20px}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li {position:relative; height:15.0rem; margin-top:2.0rem;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li:first-child {margin-top:0;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li .item_prod {display:block; width:100%;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li .item_prod .item_state {display:table; width:100%;}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li .item_prod .item_state a {display:table-cell; position:relative; width:100%; height:150px; padding-left:130px; box-sizing:border-box; vertical-align:middle;}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li .item_prod .item_state .itemPic {position:absolute; left:0; top:0; width:100px; height:0; padding-top:150px; margin-bottom:0}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li .item_prod .item_state a {display:table-cell; position:relative; width:100%; height:15.0rem; padding-left:13.0rem; box-sizing:border-box; vertical-align:middle;}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li .item_prod .item_state .itemPic {position:absolute; left:0; top:0; width:10.0rem; height:0; padding-top:15.0rem; margin-bottom:0}
 .pd_detail .pd_recommend .item_area .itemPrice .itemPercent {position:relative;}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .btn {margin-top:30px; border-color:#fd4802; color:#fd4802;}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .btn {margin-top:3.0rem; border-color:#fd4802; color:#fd4802;}
 .pd_detail .pd_recommend .item_picker{position:absolute; width:8.33%;}
 .pd_detail .pd_recommend .item_picker > div{padding-top:100%; background:#000; border-radius:50%; background:url(/images/pc/ico_picker.png) no-repeat 50% 50%; background-size:cover;}
 .pd_detail .pd_recommend .item_picker > div button{position: absolute; width: 100%; height: 100%; top: 0; left: 0;}
@@ -664,7 +664,10 @@
 .pd_detail .pd_recommend .pic_list .btn_group_flex button{border: 1px solid #fd4802; color: #fd4802; background-color:#fff;}
 .pd_detail .pd_samebrand{}
 .pd_detail .pd_relate{}
-.pd_detail .pd_relate .area_slider .itemName {height:32px}
+.pd_detail .pd_relate .area_slider .itemName {height:3.2rem}
+/* 210405 */
+header .htop.trans{position:absolute; background:transparent !important;}
+.pd_qnalist_pop .btn_group_flex > div > .btn{height:5.5rem;}
 
 /* 플롯팅 메뉴 > 구매하기 */
 .product_floormenu{position:fixed; bottom:0; left:0; width:100%; height:5.8rem; line-height:5.8rem; z-index:20;}
@@ -694,8 +697,8 @@
 .pd_pop.Purchase_pop .option_box .opt_color{padding-top:0}
 .pd_pop.Purchase_pop .btn_box{}
 .pd_pop.Purchase_pop .btn_box:after{content:''; display:block; clear:both;}
-.pd_pop.Purchase_pop .btn_box button {display: block; width: 100%; height: 5.8rem; line-height: 5.8rem; font-size: 1.6rem; font-weight: 500; float:left; width:33.33%; color:#fff; border-top:1px solid #ddd; box-sizing:border-box;}
-.pd_pop.Purchase_pop .btn_box button.gift{position:relative; background:#444 url(/images/mo/ico_present_purchase.png) center center no-repeat; background-size:1.8rem; font-size:0;}
+.pd_pop.Purchase_pop .btn_box button {display: block; height: 5.8rem; line-height: 5.8rem; font-size: 1.6rem; font-weight: 500; float:left; width:43%; color:#fff; border-top:1px solid #ddd; box-sizing:border-box;}
+.pd_pop.Purchase_pop .btn_box button.gift{position:relative; background:#444 url(/images/mo/ico_present_purchase.png) center center no-repeat; background-size:1.8rem; font-size:0; width:14%;}
 .pd_pop.Purchase_pop .btn_box button.gift > span{position:relative; display:inline-block; width:1.8rem; height:1.9rem;}
 .pd_pop.Purchase_pop .btn_box button.gift > span > span{position:absolute; left:0; top:0; display:inline-block; padding:0.3rem 1rem; font-size:1.2rem; color:#fff; background-color:#fd4801; -webkit-transform:translate(0 ,-125%); transform:translateX(0 ,-125%);}
 .pd_pop.Purchase_pop .btn_box button.gift > span > span{
@@ -737,10 +740,10 @@
 .pd_pop.Purchase_pop .pop_option_select .setOption .form_wrap:first-child{margin-top:0;}
 
 /* pd_popup 공통 */
-.modal.pd_pop .opt_select .form_field {margin-top:5px;}
-.modal.pd_pop .info_txt ul li {position:relative; font-size:1.1rem; color:#888; padding-left:0.8rem; margin-bottom:3px;}
+.modal.pd_pop .opt_select .form_field {margin-top:0.5rem;}
+.modal.pd_pop .info_txt ul li {position:relative; font-size:1.1rem; color:#888; padding-left:0.8rem; margin-bottom:0.3rem;}
 .modal.pd_pop .info_txt ul li:last-child {margin-bottom:0;}
-.modal.pd_pop .info_txt ul li:after {content:''; position: absolute; display:inline-block; top:6px; left:0; background:#858585; width:2px; height:2px;}
+.modal.pd_pop .info_txt ul li:after {content:''; position: absolute; display:inline-block; top:0.6rem; left:0; background:#858585; width:0.2rem; height:0.2rem;}
 
 /* 테이블 type1 수평 행,열별 구분선 없음*/
 /* .tbl.type1 {border-top:1px solid #000; border-bottom:1px solid #ddd;} 
@@ -769,18 +772,18 @@
 .modal.pd_pop.salecoupon_pop .coupon_list li:first-child {margin-top:0}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon {position:relative; border:1px solid #ddd; box-sizing:border-box; background:#fff;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon > div {position:relative; padding:3rem 0;}
-.modal.pd_pop.salecoupon_pop .coupon_list li .coupon > div::after {content:''; position:absolute; top:50%; right:-1px; transform:translateY(-50%); width:15px; height:30px; background:#fff; z-index:2; border:1px solid #ddd; border-right:none; border-top-left-radius:15px; border-bottom-left-radius:15px; overflow:hidden;}
-.modal.pd_pop.salecoupon_pop .coupon_list li .coupon p {padding:0 20px;}
+.modal.pd_pop.salecoupon_pop .coupon_list li .coupon > div::after {content:''; position:absolute; top:50%; right:-1px; transform:translateY(-50%); width:1.5rem; height:3.0rem; background:#fff; z-index:2; border:1px solid #ddd; border-right:none; border-top-left-radius:1.5rem; border-bottom-left-radius:1.5rem; overflow:hidden;}
+.modal.pd_pop.salecoupon_pop .coupon_list li .coupon p {padding:0 2.0rem;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon .cp_name {color:#222; font-size:1.4rem; font-weight:300;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon .cp_cont {margin-top:0.7rem;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon .cp_cont span {color:#fd4802; font-size:1.8rem; font-weight:500;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon .cp_cont span em {font-size:1.8rem; font-weight:600;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon .cp_condition {margin-top:1rem; color:#888; font-size:1.2rem; font-weight:300; line-height:1.3;}
-.modal.pd_pop.salecoupon_pop .coupon_list li .coupon .cp_condition span {display:block; margin-top:5px}
+.modal.pd_pop.salecoupon_pop .coupon_list li .coupon .cp_condition span {display:block; margin-top:0.5rem;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon .btn_group_flex{margin-top:0; padding:0;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon .btn_group_flex::after{display:none;}
-.modal.pd_pop.salecoupon_pop button span:first-child{position:relative; display:inline-block; padding-right:24px;}
-.modal.pd_pop.salecoupon_pop button span:first-child::after {content:''; position:absolute; right:0; top:50%; transform:translateY(-50%); width:14px; height:15px; margin-left:10px; background:url('/images/mo/ico_cp_down.png') no-repeat 0 0;}
+.modal.pd_pop.salecoupon_pop button span:first-child{position:relative; display:inline-block; padding-right:2.4rem;}
+.modal.pd_pop.salecoupon_pop button span:first-child::after {content:''; position:absolute; right:0; top:50%; transform:translateY(-50%); width:1.4rem; height:1.5rem; margin-left:1.0rem; background:url('/images/mo/ico_cp_down.png') no-repeat 0 0;}
 .modal.pd_pop.salecoupon_pop button span:nth-child(1){display:inline-block;}
 .modal.pd_pop.salecoupon_pop button span:nth-child(2){display:none;}
 .modal.pd_pop.salecoupon_pop button:disabled span:nth-child(1){display:none;}
@@ -792,14 +795,14 @@
 .modal.pd_pop.epcoupon_pop .modal-body{padding:0rem 2rem;}
 .modal.pd_pop.epcoupon_pop .ep_coupon {position:relative; max-width:60rem; margin:auto; border:1px solid #222;  background:#fff; padding:4rem 0; text-align:center; line-height:1;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div {position:relative;}
-.modal.pd_pop.epcoupon_pop .ep_coupon > div::after {content:''; position:absolute; top:50%; right:-1px; transform:translateY(-50%); width:15px; height:30px; background:#fff; z-index:2; border:1px solid #222; border-right:none; border-top-left-radius:15px; border-bottom-left-radius:15px; overflow:hidden;}
-.modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_title {color:#222; font-size:1.2rem; font-weight:600; letter-spacing:4px;}
+.modal.pd_pop.epcoupon_pop .ep_coupon > div::after {content:''; position:absolute; top:50%; right:-1px; transform:translateY(-50%); width:1.5rem; height:3.0rem; background:#fff; z-index:2; border:1px solid #222; border-right:none; border-top-left-radius:1.5rem; border-bottom-left-radius:1.5rem; overflow:hidden;}
+.modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_title {color:#222; font-size:1.2rem; font-weight:600; letter-spacing:0.4rem;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_cont {margin-top:1rem;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_cont span {display:block; color:#222;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_cont span em.number {font-size:3rem; font-weight:600;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_cont span em.unit {font-size:2.4rem; font-weight:500;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_cont span.unit_won {}
-.modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_cont span.unit_percent {font-size:16px; font-weight:500;}
+.modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_cont span.unit_percent {font-size:1.6rem; font-weight:500;}
 .modal.pd_pop.epcoupon_pop .info_txt {margin-top:1.5rem; font-size:1.2rem;}
 .modal.pd_pop.epcoupon_pop .info_txt ul li{position:relative; padding-left:1rem;}
 .modal.pd_pop.epcoupon_pop .info_txt ul li:before{content:'·'; display:inline-block; position:absolute; left:0; top:0; font-weight:bold;}
@@ -838,7 +841,7 @@
 .modal.pd_pop.bnf_card_pop table .info_card p:first-child {margin-top:0}
 .modal.pd_pop.bnf_card_pop table tr td {color:#666;}
 .modal.pd_pop.bnf_card_pop table a.link {display:inline-block; position:relative; margin-top:1rem; padding-right:1.2rem; color:#888;}
-.modal.pd_pop.bnf_card_pop table a.link:after {content:''; display:block; position:absolute; top:6px; right:0; width:5px; height:5px; border:1px solid #888; border-width:1px 1px 0 0; transform:rotate(45deg); -webkit-transform:rotate(45deg);}
+.modal.pd_pop.bnf_card_pop table a.link:after {content:''; display:block; position:absolute; top:0.6rem; right:0; width:0.5rem; height:0.5rem; border:1px solid #888; border-width:1px 1px 0 0; transform:rotate(45deg); -webkit-transform:rotate(45deg);}
 .modal.pd_pop.bnf_card_pop .info_txt {margin-top:2rem;}
 
 /* pd_popup > 사이즈정보 */
@@ -850,7 +853,7 @@
 .modal.pd_pop.info_size_pop .tab_nav ul li {float:left; width:33.33%; text-align:center; background:#fff; box-sizing:border-box;}
 .modal.pd_pop.info_size_pop .tab_nav ul li.active {background:#fff;}
 .modal.pd_pop.info_size_pop .tab_nav ul li a {position:relative; display:block; color:#888; font-size:1.4rem; font-weight:300; padding:1.2rem 0;}
-.modal.pd_pop.info_size_pop .tab_nav ul li a:after{display:block; content:''; position:absolute; left:0; bottom:0; width:0; height:3px; background-color:#fd4802;}
+.modal.pd_pop.info_size_pop .tab_nav ul li a:after{display:block; content:''; position:absolute; left:0; bottom:0; width:0; height:0.3rem; background-color:#fd4802;}
 .modal.pd_pop.info_size_pop .tab_nav ul li.active a {color:#fd4802; font-weight:500;}
 .modal.pd_pop.info_size_pop .tab_nav ul li.active a:after {width:100%;}
 .modal.pd_pop.info_size_pop .tab_cont_wrap {display:block; margin-top:3rem}
@@ -860,7 +863,7 @@
 .modal.pd_pop.info_size_pop .size_head .tit_sub {display:block; margin-bottom:1rem; font-size:1.3rem; font-weight:300;}
 .modal.pd_pop.info_size_pop .size_head .tit_header {display:block; color:#222; font-size:1.4rem; font-weight:500;}
 .modal.pd_pop.info_size_pop .size_cont {}
-.modal.pd_pop.info_size_pop .size_cont .size_tbl_box {margin-top:40px; position:relative;}
+.modal.pd_pop.info_size_pop .size_cont .size_tbl_box {margin-top:4.0rem; position:relative;}
 .modal.pd_pop.info_size_pop .size_cont .size_tbl_box:first-of-type {margin-top:0;}
 .modal.pd_pop.info_size_pop .size_cont .size_tbl_box h6 {margin-bottom:1.6rem; font-size:1.4rem; color:#222; font-weight:500;}
 .modal.pd_pop.info_size_pop .size_cont .size_tbl_box .size_unit {position:absolute; right:0; color:#888; font-size:1.1rem; -webkit-transform: translateY(-2.5rem); transform: translateY(-2.5rem);}
@@ -880,7 +883,7 @@
 .modal.pd_pop.info_size_pop .sub_tab_nav ul li a {display:inline-block; color:#666; font-size:1.3rem; font-weight:300; color:inherit;}
 .modal.pd_pop.info_size_pop .sub_tab_nav ul li.active{border-color:#fd4802; color:#fd4802; font-weight:500;}
 .modal.pd_pop.info_size_pop .category_open{position:relative; padding: 1.1rem 1.5rem; font-size:1.3rem; color:#222; font-weight: 300; text-align:left; background-color: #ffffff; border: 1px solid #dddddd; box-sizing: border-box;}
-.modal.pd_pop.info_size_pop .category_open:after {content: ""; width: 0; height: 0; box-sizing: border-box; position: absolute; top: 1.8rem; right: 1.5rem; border: 6px solid transparent; border-color: #888888 transparent transparent transparent;}
+.modal.pd_pop.info_size_pop .category_open:after {content: ""; width: 0; height: 0; box-sizing: border-box; position: absolute; top: 1.8rem; right: 1.5rem; border: 0.6rem solid transparent; border-color: #888888 transparent transparent transparent;}
 .modal.pd_pop.info_size_pop .category_box{display:none; position:fixed; width:100%; height:100%; top:0; left:0; background:rgba(0,0,0,.5); z-index:500;}
 .modal.pd_pop.info_size_pop .category_box .lap{position:absolute; bottom:0; left:0; padding:3rem 0; width:100%; background:#fff;}
 .modal.pd_pop.info_size_pop .category_box .category_list{min-height:25rem; max-height:40rem; overflow-y:auto;}
@@ -909,8 +912,8 @@
 .modal.pd_pop.push_restock_pop .item_blk {padding-bottom:2rem; border-bottom:1px solid #dddddd;}
 .modal.pd_pop.push_restock_pop .item_blk .item_prod {width:100%; display:block; line-height: 1.4;}
 .modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state {padding:0;}
-.modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink {display:table-cell; width:100%; height:105px; padding-left:90px; vertical-align:middle;}
-.modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink .itemPic {position:absolute; left:0; top:0; width:70px; height:105px; padding:0; margin-bottom:0; z-index:2;}
+.modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink {display:table-cell; width:100%; height:10.5rem; padding-left:9.0rem; vertical-align:middle;}
+.modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink .itemPic {position:absolute; left:0; top:0; width:7.0rem; height:10.5rem; padding:0; margin-bottom:0; z-index:2;}
 .modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink .itemBrand {display:block; margin:0;}
 .modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink .itemName {display:block; margin-left:0;}
 .modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink .itemPrice {margin:0;}
@@ -918,16 +921,16 @@
 .modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink .itemPrice .lap .itemPercent {position:relative;}
 .modal.pd_pop.push_restock_pop .select_blk {margin-top:3rem;}
 .modal.pd_pop.push_restock_pop .select_blk h6 {margin-bottom:1rem; font-size:1.4rem; font-weight:500;}
-.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field {display:block; margin-top:-8px;}
-.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field > div {margin-left:8px; margin-top:8px;}
+.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field {display:block; margin-top:-0.8rem;}
+.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field > div {margin-left:0.8rem; margin-top:0.8rem;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field > div:nth-child(7n-6) {margin-left:0px;}
-.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"] + label {display:block; width:66px; height:42px; padding:0; line-height:42px; text-align:center; background:#fff; box-sizing:border-box; border:1px solid #ddd; color:#222; font-weight:200; font-size:14px;}
+.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"] + label {display:block; width:6.6rem; height:4.2rem; padding:0; line-height:4.2rem; text-align:center; background:#fff; box-sizing:border-box; border:1px solid #ddd; color:#222; font-weight:200; font-size:1.4rem;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"] + label::before,
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"] + label::after {display:none;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"]:checked + label {border:1px solid #222;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"]:disabled + label {text-decoration:line-through; background:#f5f5f5; border-color:#f5f5f5; color:#bbb; opacity:1;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field > div {float:left; width:auto;}
-.modal.pd_pop.push_restock_pop .select_blk .opt_select .select_blk {display:block; max-height:300px; overflow-y:scroll;}
+.modal.pd_pop.push_restock_pop .select_blk .opt_select .select_blk {display:block; max-height:30.0rem; overflow-y:scroll;}
 .modal.pd_pop.push_restock_pop .modal-footer {position:fixed; width:100%; bottom:0; margin-top:0;}
 
 /* pd_pop > 상품문의 페이지 */
@@ -942,8 +945,8 @@
 .pd_qnalist .qna_list .form_field input[type="checkbox"] + label:after {top:50%; transform:translateY(-50%); margin-top:0;}
 .pd_qnalist .qna_list .foldGroup .fold_head a{padding: 1.4rem 1.33rem;}
 .pd_qnalist .qna_list .foldGroup .fold_head .fold_tit .ico {display:inline-block; width:auto; height:auto; vertical-align:middle;}
-.pd_qnalist .qna_list .foldGroup .fold_head .fold_tit .ico_myqna::after {content:'내문의'; display:inline-block; margin-right:1rem; color:#fd4802; font-size:11px; text-align:center; box-sizing:border-box; line-height:20px;}
-.pd_qnalist .qna_list .foldGroup .fold_head .fold_tit .ico_secret::after {content:''; display:inline-block; margin-right:1rem; width:12px; height:12px; background:url('/images/mo/ico_secret.png') no-repeat 50% 50%; background-size:contain;}
+.pd_qnalist .qna_list .foldGroup .fold_head .fold_tit .ico_myqna::after {content:'내문의'; display:inline-block; margin-right:1rem; color:#fd4802; font-size:1.1rem; text-align:center; box-sizing:border-box; line-height:20px;}
+.pd_qnalist .qna_list .foldGroup .fold_head .fold_tit .ico_secret::after {content:''; display:inline-block; margin-right:1rem; width:1.2rem; height:1.2rem; background:url('/images/mo/ico_secret.png') no-repeat 50% 50%; background-size:contain;}
 .pd_qnalist .qna_list .foldGroup .fold_head .fold_tit span{vertical-align:middle;}
 .pd_qnalist .qna_list .foldGroup .my_qna .fold_head {background-color:#fff6f2;}
 .pd_qnalist .qna_list .foldGroup .fold_head .fold_state{font-size:1.1rem;}
@@ -953,9 +956,9 @@
 .pd_qnalist .qna_list .nodata .txt_box {color:#666; font-size:1.3rem; font-weight:300; color:#888;}
 .pd_qnalist .info_txt{padding:0 1.33rem; margin-top:3rem;}
 .pd_qnalist .info_txt::after {content:''; clear:both; display:block;}
-.pd_qnalist .info_txt ul li {position:relative; font-size:11px; color:#888; padding-left:0.8rem; margin-bottom:0.5rem;}
+.pd_qnalist .info_txt ul li {position:relative; font-size:1.1rem; color:#888; padding-left:0.8rem; margin-bottom:0.5rem;}
 .pd_qnalist .info_txt ul li:last-child {margin-bottom:0;}
-.pd_qnalist .info_txt ul li:after {content:''; position: absolute; top:5px; left:0; background:#858585; width:2px; height:2px;}
+.pd_qnalist .info_txt ul li:after {content:''; position: absolute; top:0.5rem; left:0; background:#858585; width:0.2rem; height:0.2rem;}
 .pd_qnalist .info_txt .btn_group_flex{margin-top:2rem;}
 .pd_qnalist .info_txt .btn_group_flex button{font-size:1.3rem; color:#222; border:1px solid #a7a7a7;}
 .pd_qnalist > .btn_group_flex{margin-top:0;}
@@ -1048,7 +1051,7 @@
 .pd_review .area_rv_average .average .part_average .pa_body{display:none; margin-top:1.3rem;}
 .pd_review .area_rv_average .average .btn_group_flex{margin-top:2.4rem;}
 .pd_review .area_rv_average .average .btn_group_flex button{border:1px solid #a7a7a7; color:#222;}
-.pd_review .area_rv_average .average .btn_group_flex button span:after{content:''; display:inline-block; margin-left:0.8rem; width:10px; height:7px; background: url(/images/mo/ico_btn_more.png) center center no-repeat; background-size:contain; vertical-align:middle;}
+.pd_review .area_rv_average .average .btn_group_flex button span:after{content:''; display:inline-block; margin-left:0.8rem; width:1.0rem; height:7px; background: url(/images/mo/ico_btn_more.png) center center no-repeat; background-size:contain; vertical-align:middle;}
 .pd_review .area_rv_average .average .btn_group_flex button span:before{display:"inline-block"; content:'자세히보기'; vertical-align:middle;}
 .pd_review .area_rv_average .average .btn_group_flex button.active span:before{display:"inline-block"; content:'접기'; }
 .pd_review .area_rv_average .average .btn_group_flex button.active span:after{transform:rotate(180deg);}
@@ -1063,7 +1066,7 @@
 .pd_review .area_rv_average .average .part_average dl dd .ratio .progbar {display:inline-block; position:relative; height:8px; background:#ddd; vertical-align:top; margin-left:0}
 .pd_review .area_rv_average .average .part_average dl dd .ratio .progbar::after {content:''; position:absolute; right:-8px; top:0; width:0; height:0; border:4px solid #ddd; border-bottom-color:transparent;border-right-color:transparent;}
 .pd_review .area_rv_average .average .part_average dl dd .percent {position:absolute; right:0; font-size:1.4rem;}
-.pd_review .area_rv_average .average .part_average dl dd .line {width:100%; height:0px; margin-top:10px; border-top:2px dashed #ddd;}
+.pd_review .area_rv_average .average .part_average dl dd .line {width:100%; height:0px; margin-top:1.0rem; border-top:2px dashed #ddd;}
 .pd_review .area_rv_average .average .part_average dl.on dt,
 .pd_review .area_rv_average .average .part_average dl.on dd {color:#222; font-weight:300;}
 .pd_review .area_rv_average .average .part_average dl.on dd .ratio .progbar {background:#222;}
@@ -1085,7 +1088,7 @@
 .pd_review .area_rv_photo .photo_list ul li {float:left; position:relative; padding:0.4rem; width:25%; box-sizing:border-box;}
 .pd_review .area_rv_photo .photo_list > div{position:absolute; right:0; bottom:0; width:25%; padding:0.4rem; box-sizing:border-box }
 .pd_review .area_rv_photo .photo_list > div > div{position:relative; width:100%; padding-bottom:100%;}
-.pd_review .area_rv_photo .photo_list button {position:absolute; width:100%; height:100%; background:rgba(0,0,0,0.6); color:#fff; font-size:14px; z-index:1; text-align:center; box-sizing:border-box; z-index:2;}
+.pd_review .area_rv_photo .photo_list button {position:absolute; width:100%; height:100%; background:rgba(0,0,0,0.6); color:#fff; font-size:1.4rem; z-index:1; text-align:center; box-sizing:border-box; z-index:2;}
 .pd_review .area_rv_photo .photo_list button::before {content:''; display:block; margin:0 auto; width:2rem; height:2rem; background:url('/images/mo/ico_plus_white.png') no-repeat 50% 50%; z-index:1;}
 .pd_review .area_rv_photo .photo_list button span{margin-top:0.5vw; display:block; font-size:1rem;}
 .pd_review .area_rv_all {}
@@ -1095,7 +1098,7 @@
 .pd_review .area_rv_all .review_list > ul > li .review {}
 .pd_review .area_rv_all .review_list .review .info_box {}
 .pd_review .area_rv_all .review_list .review .info_box .star_score {float:left}
-.pd_review .area_rv_all .review_list .review .info_box .star_score .star {display:inline-block; position:relative; width:83px; height:13px; background:#ddd;}
+.pd_review .area_rv_all .review_list .review .info_box .star_score .star {display:inline-block; position:relative; width:83px; height:1.3rem; background:#ddd;}
 .pd_review .area_rv_all .review_list .review .info_box .star_score .star::after {content:''; position:absolute; left:0; top:0; z-index:3; width:100%; height:100%; background:url('/images/mo/star_empty_big.png') no-repeat 0 0; background-size:contain; image-rendering:pixelated;}
 .pd_review .area_rv_all .review_list .review .info_box .star_score .star .progbar {display:inline-block; height:100%; background:#fd4802; vertical-align:top;}
 .pd_review .area_rv_all .review_list .review .info_box .writer {float:right;}
@@ -1107,13 +1110,13 @@
 .pd_review .area_rv_all .review_list .review .response_box > div:first-child {margin-top:0}
 .pd_review .area_rv_all .review_list .review .response_box > div dl div {display:flex; font-size:1.1rem;}
 .pd_review .area_rv_all .review_list .review .response_box > div dl div dt {width:4.5rem; color:#888}
-.pd_review .area_rv_all .review_list .review .response_box > div dl div dd {margin-left:12px; color:#fd4802}
+.pd_review .area_rv_all .review_list .review .response_box > div dl div dd {margin-left:1.2rem; color:#fd4802}
 .pd_review .area_rv_all .review_list .review .response_box2 {margin-top:1.4rem;}
 .pd_review .area_rv_all .review_list .review .response_box2 > div:first-child {margin-top:0; overflow:hidden;}
 .pd_review .area_rv_all .review_list .review .response_box2 > div dl div {float:left; width:50%; max-width:400px; display:flex; font-size:1.1rem;}
 .pd_review .area_rv_all .review_list .review .response_box2 > div dl div dt {position:relative; padding-left:0.8rem; color:#888}
 .pd_review .area_rv_all .review_list .review .response_box2 > div dl div dt:before{content:''; position:absolute; left:0; top:0.6rem; display:block; width:2px; height:2px; background-color:#888;}
-.pd_review .area_rv_all .review_list .review .response_box2 > div dl div dd {margin-left:12px; color:#222}
+.pd_review .area_rv_all .review_list .review .response_box2 > div dl div dd {margin-left:1.2rem; color:#222}
 .pd_review .area_rv_all .review_list .review .info_box{line-height:1;}
 .pd_review .area_rv_all .review_list .review .photo_box {margin: 1rem -1.33rem 0;}
 .pd_review .area_rv_all .review_list .review .photo_box .photo_list {font-size:0; white-space:nowrap; overflow-x:auto;}
@@ -1123,19 +1126,19 @@
 .pd_review .area_rv_all .review_list .review .txt_review_box {margin-top:1.6rem; font-size:1.3rem; overflow:hidden;}
 .pd_review .area_rv_all .review_list .review .reply_box {margin-top:1.5rem; padding-top:1.5rem;}
 .pd_review .area_rv_all .review_list .review .reply_box .reply {position:relative; padding:2rem; background:#f5f5f5;}
-.pd_review .area_rv_all .review_list .review .reply_box .reply::after {content:''; position:absolute; left:0px; top:-15px; width:0px; height:0px; border:15px solid #f5f5f5; border-top-color:transparent; border-right-color:transparent;}
+.pd_review .area_rv_all .review_list .review .reply_box .reply::after {content:''; position:absolute; left:0px; top:-1.5rem; width:0px; height:0px; border:1.5rem solid #f5f5f5; border-top-color:transparent; border-right-color:transparent;}
 .pd_review .area_rv_all .review_list .review .reply_box .reply .reply_writer {}
 .pd_review .area_rv_all .review_list .review .reply_box .reply .reply_writer span {display:inline-block; position:relative;}
 .pd_review .area_rv_all .review_list .review .reply_box .reply .reply_writer .wr_name {padding-left:2.2rem; font-size:1.3rem; font-weight:300;}
 .pd_review .area_rv_all .review_list .review .reply_box .reply .reply_writer .wr_name::after {content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1.5rem; height:1.5rem; background:url('/images/mo/ico_admin.png') no-repeat 0 0; background-size:contain;}
 .pd_review .area_rv_all .review_list .review .reply_box .reply .reply_writer .wr_date {padding-left:1rem; margin-left:1rem; font-size:1.1rem; color:#888; font-size:200;}
-.pd_review .area_rv_all .review_list .review .reply_box .reply .reply_writer .wr_date::after {content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); height:12px; width:1px; background:#ddd;}
+.pd_review .area_rv_all .review_list .review .reply_box .reply .reply_writer .wr_date::after {content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); height:1.2rem; width:1px; background:#ddd;}
 .pd_review .area_rv_all .review_list .review .reply_box .reply .reply_txt {margin-top:1.2rem; color:#666; font-size:1.3rem;}
 .pd_review .area_rv_all .review_last{padding:2.5rem 0; font-size:1.1rem; color:#888888; font-weight:300; text-align:center;}
 .pd_review .area_rv_all .nodata {padding:10rem 0; border-top:1px solid #ddd; text-align:center;}
 .pd_review .area_rv_all .nodata .txt_box {color:#666; font-size:1.3rem; font-weight:300;}
 .pd_review .area_rv_all .nodata .btn_box {margin-top:1.5rem;}
-.pd_review .area_rv_all .nodata .btn_box .btn span {color:#222; font-size:14px; font-weight:300;}
+.pd_review .area_rv_all .nodata .btn_box .btn span {color:#222; font-size:1.4rem; font-weight:300;}
 .pd_review .category_open {position:relative; margin:-1.2rem -1.33rem -1px; border-bottom: 1px solid #ddd; overflow-x:auto;}
 .pd_review .category_open {font-size:0; white-space:nowrap;}
 .pd_review .category_open > li {position:relative; display:inline-block; padding:0 2rem; font-size:1.1rem; color:#222; line-height: 4.5rem;}
@@ -1154,7 +1157,7 @@
 .pd_review .category_box .category_list .category ul.n1 li{width:100%;}
 .pd_review .category_box .category_list .category ul.n2 li{float:left; width:50%;}
 .pd_review .category_box .category_close{opacity: 1; position: absolute; z-index: 98; top: -3.8rem; left: 50%; transform: translate(-50%); display: block; border: 0; width: 1.6rem; height: 1.6rem; text-indent: -9999px; background-size: contain; background-repeat: no-repeat; background-position: center center; background-image: url(/images/mo/ico_pop_cls_w.png); background-color: transparent;}
-.pd_review .area_rv_all .nodata .btn_group_flex button{margin:0 auto; padding:0; width:10.8rem; height:3rem; line-height:3rem!important; font-size:11px; border:1px solid #ddd;}
+.pd_review .area_rv_all .nodata .btn_group_flex button{margin:0 auto; padding:0; width:10.8rem; height:3rem; line-height:3rem!important; font-size:1.1rem; border:1px solid #ddd;}
 
 /* pd_popup > 포토영상 리뷰 리스트 */
 .modal.pd_pop.pd_photoreviewlist_pop {}
@@ -1237,24 +1240,24 @@
 
 /* 옵션셀렉트 */
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item,
-.pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .select {height:110px; background:transparent;}
+.pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .select {height:11.0rem; background:transparent;}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod {width:100%; z-index:-1;}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state {display:table; width:100%; height:70px; padding:0; margin:0}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a {display:table-cell; position:relative; width:100%; height:70px; padding-left:70px; padding-right:40px; vertical-align:middle;}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a .itemPic {position:absolute; left:0; top:0; width:50px; height:70px; padding:0; margin:0}
-.pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a .itemName {max-width:100%; height:20px; margin-bottom:0px; line-height:20px; font-size:14px; -webkit-line-clamp:1;}
+.pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a .itemName {max-width:100%; height:20px; margin-bottom:0px; line-height:20px; font-size:1.4rem; -webkit-line-clamp:1;}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a .itemName .tit_option {font-weight:500;}
-.pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a .itemPrice {margin-top:13px}
+.pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a .itemPrice {margin-top:1.3rem}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a .itemPercent {position:relative;}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a .itemPrice_original {margin-right:0;}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a .itemPercent {margin-right:0;}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .item_prod .item_state a > [class^="item"] {margin-left:0; margin-right:0;} 
-.pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .combo .list {top:110px}
+.pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .combo .list {top:11.0rem}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .combo .list > li {border-bottom:1px solid #eee;}
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .combo .list > li[aria-disabled="true"] a [class^="item"] {color:#bbb; text-decoration:line-through;} 
 .pd_detail .area_desc .desc_wrap .option_box .opt_select .select_custom.deal_opt_item .combo .list > li[aria-disabled="true"] a img {opacity:0.3;}
 .pd.deal .tab_detail_cont .select_custom.deal_opt_item,
-.pd.deal .tab_detail_cont .select_custom.deal_opt_item .select {height:110px}
+.pd.deal .tab_detail_cont .select_custom.deal_opt_item .select {height:11.0rem}
 .pd.deal .tab_detail_cont .select_custom.deal_opt_item .item_prod {width:100%;}
 .pd.deal .tab_detail_cont .select_custom.deal_opt_item .item_prod .item_state {padding:0; margin:0}
 .pd.deal .tab_detail_cont .select_custom.deal_opt_item .item_prod .item_state a {position:relative; padding-left:70px}
@@ -1271,7 +1274,7 @@
 .pd_pop[class*="pd_list"].pd_listDescrp_pop{top:5.2rem;}
 .pd_pop[class*="pd_list"].pd_listDescrp_pop .modal_content{top:0; background-color:#646464;}
 .pd_pop[class*="pd_list"].pd_listDescrp_pop .modal_content:after{}
-.deal_list_select .select {cursor: pointer;display: inline-block; position: relative;font-size: 16px;color: #333333;width: 100%; height:66px;}
+.deal_list_select .select {cursor: pointer;display: inline-block; position: relative;font-size: 1.6rem;color: #333333;width: 100%; height:66px;}
 .deal_list_select .list{background-color:#fff;}
 .deal_list_select .list li{position: relative; border-bottom:1px solid #eeeeee;}
 .deal_list_select .list li:first-child{margin-top:0;}
@@ -1310,7 +1313,7 @@
 .item_blk .item_prod .item_state {position: relative; display:table; width:100%; box-sizing: border-box;}
 .item_blk .item_prod .itemLink{position: relative; display:table-cell; width: 100%; height:60px; padding-left:56px; vertical-align: middle;}
 .item_blk .item_prod .item_state .itemLink .itemPic {position:absolute; left:0; top:0; padding: 0; width:40px; height:60px; z-index:2;}
-.item_blk .item_prod .item_state .itemLink .itemBrand {display:block; font-size:1rem; color:#888888; font-weight:300; margin-left:0; margin-right:0;}
+.item_blk .item_prod .item_state .itemLink .itemBrand {display:block; font-size:1rem; color:#888888; font-weight:300; margin-left:0; margin-right:0; text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;width:30rem;overflow:hidden;}
 .item_blk .item_prod .item_state .itemLink .itemName {display:block; margin-top:0.5rem; font-size:1.3rem; max-height: 3.3rem; margin-left:0; margin-right:0; display: -webkit-box; text-overflow: ellipsis; -webkit-line-clamp: 2; -webkit-box-orient: vertical; max-height: 3.3rem; overflow: hidden; white-space: normal; overflow-wrap: break-word;}
 .item_blk .item_prod .item_state .itemLink .itemPrice{margin-left:0; margin-right:0;}
 /*select_custom > item_prod*/
@@ -1320,7 +1323,7 @@
 .select_custom .select .item_prod .item_state .itemLink .itemPic{display:none;}
 .select_custom .select .item_prod .item_state .itemLink .itemPrice{display:none;}
 .select_custom .select .item_prod .item_state .itemLink .itemName{-webkit-line-clamp:1; font-size:1.3rem; padding-right:1rem;}
-.select_custom .item_prod {margin:15px 0; padding-right:4rem; line-height: 1.4;}
+.select_custom .item_prod {margin:1.5rem 0; padding-right:4rem; line-height: 1.4;}
 .select_custom .item_prod .item_state {position: relative; display:table; width:100%; box-sizing: border-box;}
 .select_custom .item_prod .itemLink{position: relative; display:table-cell; width: 100%; height:60px; padding-left:59px; vertical-align: middle;}
 .select_custom .item_prod .item_state .itemLink .itemPic {position:absolute; left:0; top:0; padding: 0; margin-bottom:0; width:44px; height:66px; z-index:2;}
@@ -1342,10 +1345,10 @@
 .deal_list_select .item_prod .item_state .itemLink .itemBrand{padding-right:0; margin:0; margin-bottom:0.3rem;}
 .deal_list_select .item_prod .item_state .itemLink .itemName{-webkit-line-clamp:1; padding-right:0; margin:0;}
 
-.odPayment .paymentinfo .payinfo_blk .infotxt {display:none; max-height:190px; margin-top:20px; color:#888; font-size:14px; line-height:26px; overflow-y:scroll;}
+.odPayment .paymentinfo .payinfo_blk .infotxt {display:none; max-height:190px; margin-top:20px; color:#888; font-size:1.4rem; line-height:26px; overflow-y:scroll;}
 .odPayment .paymentinfo .payinfo_blk.on .infotxt {display:block; margin:0px 40px 40px;}
-.odPayment .area_paymentinfo .agree_payment {margin:40px 0 30px; color:#666; font-size:16px; font-weight:200;}
-.odPayment .area_paybtn .btn {height:80px; font-size:18px; font-weight:300;}
+.odPayment .area_paymentinfo .agree_payment {margin:40px 0 30px; color:#666; font-size:1.6rem; font-weight:200;}
+.odPayment .area_paybtn .btn {height:80px; font-size:1.8rem; font-weight:300;}
 
 
 /* ============================================ 전시 ============================================ */
@@ -1574,8 +1577,8 @@
 .dp .coupon_list li .cp_detail .sale_t.won_t {font-size:2.1rem; line-height: 1;}
 .dp .coupon_list li .cp_detail .sale_t.won_t span {font-size: 30px;}
 .dp .coupon_list li .cp_detail .cp_cont {margin-bottom: 0; font-weight: 300; color: #888; font-size:1.2rem; line-height: 1.5; min-height: 36px; word-break: keep-all;}
-.dp .coupon_list li .cp_detail .cp_cnt {display: none; background: #fff5f3; margin-top:0.5rem; padding:5px 8px; border:1px solid #fd4802; font-size: 10px; color: #fd4802 !important; font-weight: 500;}
-.dp .coupon_list li .cp_shape {position: absolute; top: 50%; right: -13px; z-index: 101; width: 26px; height: 26px; margin-top: -13px; border:1px solid #ddd; background: #fff; border-radius: 50%; z-index: 96;}
+.dp .coupon_list li .cp_detail .cp_cnt {display: none; background: #fff5f3; margin-top:0.5rem; padding:5px 8px; border:1px solid #fd4802; font-size: 1.0rem; color: #fd4802 !important; font-weight: 500;}
+.dp .coupon_list li .cp_shape {position: absolute; top: 50%; right: -1.3rem; z-index: 101; width: 26px; height: 26px; margin-top: -1.3rem; border:1px solid #ddd; background: #fff; border-radius: 50%; z-index: 96;}
 .dp .coupon_list li .cp_date {border:1px solid #222; background: #222; font-weight: 300; text-align: center;}
 .dp .coupon_list li .cp_date button {display: block; width: 100%; padding:1.1rem 5px; font-size: 1.2rem; font-weight: 300; color: #fff;}
 .dp .coupon_list li .cp_date button span {background: url(/images/mo/ico_cp_down.png) no-repeat right top; padding-right: 28px;}
@@ -1588,7 +1591,7 @@
 .dp .dp_coupon_wrap .dp_coupon_tip .dp_coupon_notice::before {content:''; display: block; width:36px; height: 46px; margin: 0 auto; background: url(/images/pc/ico_null.png)no-repeat;}
 .dp .dp_coupon_wrap .dp_coupon_tip .dp_coupon_notice::after {content:'유의사항'; display: inline-block; margin-top: 20px; color:#888;}
 .dp .dp_coupon_wrap .dp_coupon_tip ul {margin-left: 90px;}
-.dp .dp_coupon_wrap .dp_coupon_tip ul li {position: relative; padding-left: 12px; margin-bottom: 12px; color:#888;}
+.dp .dp_coupon_wrap .dp_coupon_tip ul li {position: relative; padding-left: 1.2rem; margin-bottom: 1.2rem; color:#888;}
 .dp .dp_coupon_wrap .dp_coupon_tip ul li:last-child {margin-bottom: 0;}
 .dp .dp_coupon_wrap .dp_coupon_tip ul li::before {content:''; position: absolute; width:2px; height: 2px; top:46%; left:0; transform: scaleY(-50%); background: #888;}
 .dp .dp_coupon_wrap .announce_txt {position: relative; margin: 0 auto; padding-top: 30px; border-top:1px solid #dddddd;}
@@ -1607,10 +1610,10 @@
 .dp .dp_exhibition .review .best_review {position:relative; text-align:center;}
 .dp .dp_exhibition .review .best_review:after{content:''; display:block; position:absolute; bottom:0; left:2rem; right:2rem; height:1px; background-color:#eee;}
 .dp .dp_exhibition .review .best_review a {display:block; position:relative; background-color:#fff;}
-.dp .dp_exhibition .review .best_review a .info .star_score .star {display:inline-block; position:relative; width:83px; height:14px; background:#ddd;}
+.dp .dp_exhibition .review .best_review a .info .star_score .star {display:inline-block; position:relative; width:83px; height:1.4rem; background:#ddd;}
 .dp .dp_exhibition .review .best_review a .info .star_score .star::after {content:''; position:absolute; left:0; top:0; z-index:3; width:100%; height:1.5rem; background:url('/images/mo/star_empty.png') no-repeat 0 0; background-size:100% 100%; image-rendering:pixelated;}
-.dp .dp_exhibition .review .best_review a .info .star_score .star .progbar {display:inline-block; height:14px; background:#fd4802; vertical-align:top;}
-.dp .dp_exhibition .review .best_review a .info .star_score .ico {margin-left:10px}
+.dp .dp_exhibition .review .best_review a .info .star_score .star .progbar {display:inline-block; height:1.4rem; background:#fd4802; vertical-align:top;}
+.dp .dp_exhibition .review .best_review a .info .star_score .ico {margin-left:1.0rem}
 .dp .dp_exhibition .review .best_review a .info .star_score .ico::before {vertical-align:inherit;}
 .dp .dp_exhibition .review .best_review a .info .star_score{margin-bottom:1rem;}
 .dp .dp_exhibition .review .best_review a .info .star_score .star{vertical-align:middle;}
@@ -1634,16 +1637,16 @@
 .dp .dp_exhibition .review .product_view .item_prod .item_state .itemLink .itemName {display:block; margin-top:0.5rem; font-size:1.3rem; max-height: 3.3rem; margin-left:0; margin-right:0; display: -webkit-box; text-overflow: ellipsis; -webkit-line-clamp: 1; -webkit-box-orient: vertical; max-height: 3.3rem; overflow: hidden; white-space: normal; overflow-wrap: break-word;}
 .dp .dp_exhibition .review .product_view .item_prod .item_state .itemLink .itemPrice{margin-left:0; margin-right:0;}
 .dp .dp_exhibition .review .product_view .item_prod .item_state .itemLink .itemPrice .itemPrice_sale{font-weight:700;}
-.dp .dp_exhibition .review .swiper-container .swiper-slide{box-shadow:0 0 10px rgba(0,0,0,0.2);}
+.dp .dp_exhibition .review .swiper-container .swiper-slide{box-shadow:0 0 1.0rem rgba(0,0,0,0.2);}
 .dp .dp_exhibition .review .swiper-container .swiper-pagination-fraction {position: relative; display:inline-block; margin-top:2rem; bottom:0; width:auto; background: rgba(34,34,34,.5); color: #fff; font-weight: 300; padding:0.5rem 0.7rem; line-height: 1; font-size: 1.2rem; border-radius:2rem;}
 .dp .dp_exhibition .review .swiper-container .swiper-pagination-current {font-weight: 600;}
 
 /* .dp > .dp_util > select 커스텀 (전시공통) */
 .dp .dp_util .select {cursor: pointer;display: inline-block;position: relative;top:-1px; font-size: 1.2rem;color: #333333;width: 100%;height:1.6rem; line-height:1.6rem;}
-.dp .dp_util .select+.select{margin-left: 10px;}
-.dp .dp_util .select_hidden {display: none;visibility: hidden;padding-right: 10px;}
+.dp .dp_util .select+.select{margin-left: 1.0rem;}
+.dp .dp_util .select_hidden {display: none;visibility: hidden;padding-right: 1.0rem;}
 .dp .dp_util .select_dress {
-  position: relative;top: 0;right: 0;bottom: 0;left: 0;padding:0 15px 0 3px;
+  position: relative;top: 0;right: 0;bottom: 0;left: 0;padding:0 1.5rem 0 3px;
   background-color: #ffffff;border: 1px solid #fff;box-sizing: border-box;
   -moz-transition: all 0.05s ease-in;-o-transition: all 0.05s ease-in;
   -webkit-transition: all 0.05s ease-in;transition: all 0.05s ease-in;
@@ -1721,7 +1724,7 @@
 .filter_list{font-size:1.4rem; background:#fff; position:fixed; top:0; right:-80%; width:80%; height:100%; transition:right 0.4s;}
 .filter_list::after{content:''; display: block; clear:both;}
 .filter_list .form_field{display:block;}
-.filter_list .form_field input[type="checkbox"] + label {display: block; position: relative; padding-left:0; padding-right: 26px; cursor: pointer; font-size: 12px; line-height: 1.4; font-weight: 300; letter-spacing: 0;}
+.filter_list .form_field input[type="checkbox"] + label {display: block; position: relative; padding-left:0; padding-right: 26px; cursor: pointer; font-size: 1.2rem; line-height: 1.4; font-weight: 300; letter-spacing: 0;}
 .filter_list .form_field div label span{color:#222!important;}
 .filter_list .form_field input[type="checkbox"] + label:before{left:auto; right:0}
 .filter_list .form_field input[type="checkbox"]:checked + label:after{left:auto; right:0}
@@ -1730,7 +1733,7 @@
 .filter_top > div:nth-child(1){float:left;}
 .filter_top > div:nth-child(2){float:right;}
 .filter_top .fillter_reset {position:relative; padding-left:1.5rem; vertical-align:middle;}
-.filter_top .fillter_reset::before { content:''; position: absolute; top:50%; left:0; transform: translateY(-50%); width:12px; height:12px; background: url(/images/mo/ico_filter_reset.png)no-repeat; background-size:contain;}
+.filter_top .fillter_reset::before { content:''; position: absolute; top:50%; left:0; transform: translateY(-50%); width:1.2rem; height:1.2rem; background: url(/images/mo/ico_filter_reset.png)no-repeat; background-size:contain;}
 .filter_top .tt{font-size:1.6rem; font-weight:500; color:#222;}
 .filter_top .close{display:inline-block; margin-left:1.8rem; width:1.6rem; height:1.6rem; background:url(/images/mo/ico_pop_cls.png) center center no-repeat; background-size:contain; font-size:0; vertical-align:middle;}
 .filter_con{position:absolute; top:5rem; left:0; width:100%; height:calc(100% - 5rem); overflow-y:auto;}
@@ -1872,7 +1875,7 @@
 
 /*===================== item_prod쪽으로 이동 예정===================*/
 /* 아이템컬러칩 */
-.itemcolorchip {margin:1.5rem 5px 0px;}
+.itemcolorchip {margin:1.5rem 0.5rem 0;}
 .itemcolorchip [class*="chip_"] {position: relative;display: inline-block;width:1rem; height:1rem; font-size: 0; vertical-align: middle; margin:0 0 0 2px;}
 .itemcolorchip [class*="chip_"]:before {content: "";display: inline-block;width: 100%;height: 100%;border-radius: 50%;box-sizing: border-box;}
 .itemcolorchip [class*="chip_"]:first-child {margin-left:0}
@@ -1881,8 +1884,8 @@
 .chip_color35::before {background-color: #cbaf6f;}
 
 /* 상품아이콘*/
-.itemBadge {margin:20px 5px 0; margin-top:1rem; font-size: 0px; overflow:hidden;}
-.itemBadge [class*="badge"] {display:inline-block; height:22px; margin:0 0 0 5px; padding:0 8px; border:1px solid #888888; background: #fff; color:#888888; font-size: 11px; font-weight: 300; line-height: 21px;}
+.itemBadge {margin:2.0rem 0.5rem 0; margin-top:1rem; font-size: 0px; overflow:hidden;}
+.itemBadge [class*="badge"] {display:inline-block; height:2.2rem; margin:0 0 0 0.5rem; padding:0 0.8rem; border:1px solid #888888; background: #fff; color:#888888; font-size: 1.1rem; font-weight: 300; line-height: 21px;}
 .itemBadge [class*="badge"]:first-child {margin-left:0}
 .itemBadge .badge13 {background:#f5f5f5; border-color:#f5f5f5;}
 
@@ -1999,7 +2002,7 @@
 /* br_main - brand_product */
 .br .br_main .brand_product{margin-top:2rem;}
 .br .br_main .brand_product .swiper-container{overflow:visible;}
-.br .br_main .brand_product .btn:after{content: ''; display: inline-block; margin-left: 8px; width: 11px; height: 11px; background-position: center center; background-repeat: no-repeat; background-size: contain; background-image: url(/images/mo/ico_more_lg.png);}
+.br .br_main .brand_product .btn:after{content: ''; display: inline-block; margin-left: 8px; width: 1.1rem; height: 1.1rem; background-position: center center; background-repeat: no-repeat; background-size: contain; background-image: url(/images/mo/ico_more_lg.png);}
 /* 브랜드 - 룩북 */
 .htop.br_lookbook { overflow: hidden; border: none !important;}
 .htop.br_lookbook .btn_back span i { background: #fff;}
@@ -2044,7 +2047,7 @@
 .br .br_otherbrand .thumb img {position:absolute; left:0; top:50%; transform:translateY(-50%); width:100%; z-index:1}
 .br .br_otherbrand .txt {margin-top:1rem; padding:0px 0.5rem 0px}
 .br .br_otherbrand .txt .tt {display:block; display: -webkit-box; text-overflow:ellipsis; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:#222; font-weight:500; font-size:1.3rem; word-break:keep-all; white-space:normal;}
-.br .br_otherbrand .txt .date {display:block; margin-top:15px; color:#888; font-size:14px; font-weight:300;}
+.br .br_otherbrand .txt .date {display:block; margin-top:1.5rem; color:#888; font-size:1.4rem; font-weight:300;}
 /* 브랜드 - br_search */
 .br_search_wrap .swiper-pagination{margin:0;}
 .br_search_wrap .swiper-container { width: 100%; height: 21.4rem; margin-left: auto; margin-right: auto; }
@@ -2077,7 +2080,7 @@
 .htop.br { overflow: hidden;}
 .htop.br .button_wrap {height: 5.5rem; display: inline-block; float: right; padding: 1.6rem 0 0; margin: 0 2.5rem 0 0; box-sizing: border-box;}
 .htop.br .button_wrap .br_search { margin: 0 2.5rem 0 0; }
-.htop.br .button_wrap .br_store img:nth-child(1) { width: 1.6rem; height: 2rem; }
+.htop.br .button_wrap .br_store img:nth-child(1) { height: 2rem; }
 .htop.br .button_wrap .br_store span { width: 2.1rem; height: 1.5rem; position: absolute; top: 1.2rem; right: 1.5rem; background: #fd4802; border-radius: 0.8rem; font-size: 0.8rem; color: #fff; line-height: 1.6rem;}
 
 
@@ -2268,25 +2271,25 @@
 
 /* select 커스텀 (필터용) */
 .sch .sch_util .select {cursor: pointer;display: inline-block;position: relative;top:-1px; font-size: 1.2rem;color: #333333;width: 100%;height:1.6rem; line-height:1.6rem;}
-.sch .sch_util .select+.select{margin-left: 10px;}
-.sch .sch_util .select_hidden {display: none;visibility: hidden;padding-right: 10px;}
+.sch .sch_util .select+.select{margin-left: 1.0rem;}
+.sch .sch_util .select_hidden {display: none;visibility: hidden;padding-right: 1.0rem;}
 .sch .sch_util .select_dress {
-  position: relative;top: 0;right: 0;bottom: 0;left: 0;padding:0 15px 0 3px;
+  position: relative;top: 0;right: 0;bottom: 0;left: 0;padding:0 1.5rem 0 0.3rem;
   background-color: #ffffff;border: 1px solid #fff;box-sizing: border-box;
   -moz-transition: all 0.05s ease-in;-o-transition: all 0.05s ease-in;
   -webkit-transition: all 0.05s ease-in;transition: all 0.05s ease-in;
 }
 .sch .sch_util .select_dress:after {
-  content: "";width: 0;height: 0;box-sizing: border-box;position: absolute;top:5px;right:0;
-  border: 5px solid transparent; border-color: #222222 transparent transparent transparent;  
+  content: "";width: 0;height: 0;box-sizing: border-box;position: absolute;top:0.5rem;right:0;
+  border: 0.5rem solid transparent; border-color: #222222 transparent transparent transparent;  
 }
 .sch .sch_util .select_options {
   display: none;position: absolute;top:2rem;right: 0;left: 0;z-index: 2;
   margin: 0;padding: 0;list-style: none;background-color: #ffffff;
-  box-sizing: border-box;border:0;border-top: 0px solid #222222;
+  box-sizing: border-box;border:0;border-top: 0 solid #222222;
 }
 .sch .sch_util .select_options li {
-  margin: 0;padding:3px 3px;text-indent:0; display:block; text-align:left;
+  margin: 0;padding:0.3rem 0.3rem;text-indent:0; display:block; text-align:left;
   -moz-transition: all 0.08s ease-in;-o-transition: all 0.08s ease-in;
   -webkit-transition: all 0.08s ease-in;transition: all 0.08s ease-in;
 }
@@ -2299,7 +2302,7 @@
 
 /* 전시 카테고리 공통 */
 .sch .category_open{position:relative; padding: 1.1rem 1.5rem; font-size:1.3rem; color:#222; font-weight: 300; text-align:left; background-color: #ffffff; border: 1px solid #dddddd; box-sizing: border-box;}
-.sch .category_open:after {content: ""; width: 0; height: 0; box-sizing: border-box; position: absolute; top: 1.8rem; right: 1.5rem; border: 6px solid transparent; border-color: #888888 transparent transparent transparent;}
+.sch .category_open:after {content: ""; width: 0; height: 0; box-sizing: border-box; position: absolute; top: 1.8rem; right: 1.5rem; border: 0.6rem solid transparent; border-color: #888888 transparent transparent transparent;}
 .sch .category_box{visibility:hidden; position:fixed; width:100%; height:100%; top:0; left:0; background:rgba(0,0,0,.5); z-index:500;}
 .sch .category_box.active{visibility:visible;}
 .sch .category_box .lap{position:absolute; bottom:0; left:0; padding:3rem 0; width:100%; background:#fff;}

+ 107 - 86
src/main/webapp/ux/mo/css/style24_m.css

@@ -475,57 +475,51 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 /* main.container .inner:last-child {padding-bottom: 0;} */
 /* .select_custom .combo .select > div {position: relative; z-index: -1;} */
 
-
-
-
-	/* 이용약관,개인정보취급방침,업체리스트 */
-	.ps p {font-size:1.2rem;color:#666666;line-height:2.2rem;letter-spacing:-0.025em;}
-	.ps {padding:0;} 
-	.ps table {word-break:keep-all;margin-top: 3.0rem;width: 100%;border-top: 1px solid #222222;}
-	.ps table th,
-	.ps table td {position:relative; padding:1.0rem 1.0rem; font-size:1.1rem;line-height: 1.4;color: #222222;letter-spacing:-0.025em;}
-	.ps table td {border-bottom:1px solid #ddd;border-right: 1px solid #ddd;font-weight:200;}
-	.ps table td:last-child {border-right: 1px solid transparent;}
-	.ps table th {border-top: 0;border-bottom: 0;border-right: 0;font-weight: 600;text-align: center;background: #f5f5f5;}
-  .ptn, #partnersPop .pop_cont {height: auto;background: #ffffff;}
-  .ps.ptn table {margin-top:0;}
-  .ps.ptn table th, .ps.ptn table td {text-align: center;padding: 1.6rem 0;}
-  .ps.ptn table th {font-size: 1.3rem; font-weight: 500; line-height:1.3rem;}
-  .ps.ptn table td {font-size: 1.2rem; font-weight: 300; line-height: 1.2rem;}
-  .hookGrp{margin-top: 1.333rem;}
-	.hookGrp .hook_list{border: 1px solid #f5f5f5;padding: 1.333rem;}
-	.hookGrp .hook_list ul{}
-	.hookGrp .hook_list ul:after{content: ''; clear:both; display: block;}
-	/* .hookGrp .hook_list ul li{float: left;width: 33.333%;} */
-	.hookGrp .hook_list ul li a{display: table; color: #222222;}
-	.hookGrp .hook_list ul li a span{margin: 0px 0px 0.5rem 0;display: block;font-size: 1.1rem;font-weight: 300;}
-	.hookGrp .hook_list ul li a span::after{content: ''; display: block; box-sizing: border-box; border: 1px solid transparent;}
-	.hookGrp .hook_list ul li a:hover,
-	.hookGrp .hook_list ul li a:focus{color: #fd4802;}
-	.hookGrp .hook_list ul li a:hover span:after,
-	.hookGrp .hook_list ul li a:focus span:after{content: '';display: block; color: #fd4802; box-sizing: border-box; border-bottom: 1px solid #fd4802;}
-	.hookGrp .hook_cont {font-size:1.6rem;color:#666666;line-height:2.6rem;letter-spacing:-0.025em;}
-	.hookGrp .hook_cont div{margin-top: 2.6rem;}
-	.hookGrp .hook_cont div:last-child{margin-bottom: 5.0rem;}
-	.hookGrp .hook_cont h4 {font-size:1.4rem;font-weight:500;color:#222222;line-height:1.6rem;letter-spacing:-0.025em;}
-	.hookGrp .hook_cont p {font-size:1.2rem;color:#666666;line-height:2.2rem;letter-spacing:-0.025em;}
-	.hookGrp .hook_cont p em{font-size:1.2rem;font-weight:400;color:#222222;line-height:2.2rem;letter-spacing:-0.025em;}
-	.hookGrp .hook_cont ol li {font-size:1.2rem;padding-left: 0.3rem;}
-
-  .pager {height: 100%;margin-top: 2.0rem;margin-bottom: 2.0rem;}
-  .pager .pageNav {display: table;margin-left: auto;margin-right: auto;}
-  .pager .pageNav > li {display: inline;}
-  .pager .pageNav > li::after {content: '';clear: both; display: inline-block;}
-  .pager .pageNav > li > a, .pager .pageNav > li > span {position: relative;float: left;font-size: 1.6rem;font-weight: 400;padding: 0.6rem 0.2rem;line-height: 1.42857143;color: #666666;text-decoration: none;background-color: #ffffff;}
-  .pager .pageNav .prev a , .pager .pageNav .next a {width: 3.4rem;height: 3.4rem;margin-left: 0;border: 1px solid #888888;background: url('/images/mo/ico_paging.png')no-repeat;background-size: 6.8rem 2.866rem;text-indent: -999.9rem;}
-  .pager .pageNav .prev a {background-position: 0rem 0rem;}
-  .pager .pageNav .next a {background-position: -3.5rem 0rem;}
-  .pager .pageNav .active a {color: #222222;margin-left: 1.5rem;}
-  .pager .pageNav .lastpage a {color: #888888;margin-right: 1.5rem;}
-  .pager .pageNav .lastpage a::before {content: '/';padding-right: 0.3rem;}
-
-
-
+/* 이용약관,개인정보취급방침,업체리스트 */
+.ps p {font-size:1.2rem;color:#666666;line-height:2.2rem;letter-spacing:-0.025em;}
+.ps {padding:0;} 
+.ps table {word-break:keep-all;margin-top: 3.0rem;width: 100%;border-top: 1px solid #222222;}
+.ps table th,
+.ps table td {position:relative; padding:1.0rem 1.0rem; font-size:1.1rem;line-height: 1.4;color: #222222;letter-spacing:-0.025em;}
+.ps table td {border-bottom:1px solid #ddd;border-right: 1px solid #ddd;font-weight:200;}
+.ps table td:last-child {border-right: 1px solid transparent;}
+.ps table th {border-top: 0;border-bottom: 0;border-right: 0;font-weight: 600;text-align: center;background: #f5f5f5;}
+.ptn, #partnersPop .pop_cont {height: auto;background: #ffffff;}
+.ps.ptn table {margin-top:0;}
+.ps.ptn table th, .ps.ptn table td {text-align: center;padding: 1.6rem 0;}
+.ps.ptn table th {font-size: 1.3rem; font-weight: 500; line-height:1.3rem;}
+.ps.ptn table td {font-size: 1.2rem; font-weight: 300; line-height: 1.2rem;}
+.hookGrp{margin-top: 1.333rem;}
+.hookGrp .hook_list{border: 1px solid #f5f5f5;padding: 1.333rem;}
+.hookGrp .hook_list ul{}
+.hookGrp .hook_list ul:after{content: ''; clear:both; display: block;}
+/* .hookGrp .hook_list ul li{float: left;width: 33.333%;} */
+.hookGrp .hook_list ul li a{display: table; color: #222222;}
+.hookGrp .hook_list ul li a span{margin: 0px 0px 0.5rem 0;display: block;font-size: 1.1rem;font-weight: 300;}
+.hookGrp .hook_list ul li a span::after{content: ''; display: block; box-sizing: border-box; border: 1px solid transparent;}
+.hookGrp .hook_list ul li a:hover,
+.hookGrp .hook_list ul li a:focus{color: #fd4802;}
+.hookGrp .hook_list ul li a:hover span:after,
+.hookGrp .hook_list ul li a:focus span:after{content: '';display: block; color: #fd4802; box-sizing: border-box; border-bottom: 1px solid #fd4802;}
+.hookGrp .hook_cont {font-size:1.6rem;color:#666666;line-height:2.6rem;letter-spacing:-0.025em;}
+.hookGrp .hook_cont div{margin-top: 2.6rem;}
+.hookGrp .hook_cont div:last-child{margin-bottom: 5.0rem;}
+.hookGrp .hook_cont h4 {font-size:1.4rem;font-weight:500;color:#222222;line-height:1.6rem;letter-spacing:-0.025em;}
+.hookGrp .hook_cont p {font-size:1.2rem;color:#666666;line-height:2.2rem;letter-spacing:-0.025em;}
+.hookGrp .hook_cont p em{font-size:1.2rem;font-weight:400;color:#222222;line-height:2.2rem;letter-spacing:-0.025em;}
+.hookGrp .hook_cont ol li {font-size:1.2rem;padding-left: 0.3rem;}
+
+.pager {height: 100%;margin-top: 2.0rem;margin-bottom: 2.0rem;}
+.pager .pageNav {display: table;margin-left: auto;margin-right: auto;}
+.pager .pageNav > li {display: inline;}
+.pager .pageNav > li::after {content: '';clear: both; display: inline-block;}
+.pager .pageNav > li > a, .pager .pageNav > li > span {position: relative;float: left;font-size: 1.6rem;font-weight: 400;padding: 0.6rem 0.2rem;line-height: 1.42857143;color: #666666;text-decoration: none;background-color: #ffffff;}
+.pager .pageNav .prev a , .pager .pageNav .next a {width: 3.4rem;height: 3.4rem;margin-left: 0;border: 1px solid #888888;background: url('/images/mo/ico_paging.png')no-repeat;background-size: 6.8rem 2.866rem;text-indent: -999.9rem;}
+.pager .pageNav .prev a {background-position: 0rem 0rem;}
+.pager .pageNav .next a {background-position: -3.5rem 0rem;}
+.pager .pageNav .active a {color: #222222;margin-left: 1.5rem;}
+.pager .pageNav .lastpage a {color: #888888;margin-right: 1.5rem;}
+.pager .pageNav .lastpage a::before {content: '/';padding-right: 0.3rem;}
 
 /* ev_공통 */
 .ev .inner {background: #fff; padding-bottom: 0;}
@@ -1004,6 +998,7 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 
 .part_goods .point {margin-bottom: 0.7rem; font-size: 1.1rem; color: #888; background: url(/images/mo/ico_point.png) no-repeat left top 1px; background-size:1.2rem; padding-left: 1.6rem;}
 .part_goods .od_calc .sale_price {font-size: 1.1rem; color: #888; font-weight: 300;}
+.part_goods .od_calc .sale_percent {font-size: 1.3rem; color:#fd4802;}
 .part_goods .od_calc .price {font-size: 0;}
 .part_goods .od_calc .price .selling_price {display:inline-block; color:#222; font-size:1.3rem; font-weight:600;}
 .part_goods .od_calc .price .selling_price em {font-size:1.6rem;}
@@ -1585,9 +1580,16 @@ background-size:100%;}
 .od .info_txt ul li:last-child {margin-bottom: 0;}
 .od .info_txt ul li:after {content:''; position: absolute; top:0.6rem; left: 0; background: #858585; width: 0.2rem; height: 0.2rem;}
 
-.od .inner:last-child .btn_group_flex {margin-top: -1.2rem;}
+.od .inner .area_paybtn {margin-top: -1.2rem;}
+.od .inner .area_paybtn .btn_group_flex {margin-top: 0;}
 .od .inner .shipfold .btn_group_flex {margin-top: 3rem;}
 
+.ship_etc {display:none; margin-top: 0.5rem;}
+.ship_etc input[type="text"] {width: 100%; height: 4.5rem; font-size: 1.3rem; color: #888; font-weight: 300;}
+.ship_etc input[type="text"]::placeholder {}
+.ship_etc .desc_txt {position: relative; padding-left: 0.8rem; margin-top: 1rem; font-size: 1.1rem; }
+.ship_etc .desc_txt:after {content:''; position: absolute; top: 0.6rem; left: 0; background: #888; width: 0.2rem; height: 0.2rem;}
+
 /* od_테이블 */
 .od .pay_wrap {padding-top: 4rem;}
 .od .goods_top {position: relative; padding: 1.5rem 0; border-bottom: 1px solid #ddd; font-size: 0; margin-bottom: 2.5rem;}
@@ -1711,6 +1713,8 @@ background-size:100%;}
 .odPayment .fold_cont .area_overseas .info_box {font-size:16px;}
 .odPayment .fold_cont .area_overseas .info_box .t_err {margin-top:5px; font-size:1.1rem;}
 .odPayment .fold_cont .area_overseas .info_box.overs1 {margin-right:0}
+.odPayment .fold_cont .area_overseas .info_box.overs1 .recipient {margin-bottom: 0.5rem; font-size: 1.3rem;}
+.odPayment .fold_cont .area_overseas .info_box.overs1 .recipient em {font-weight: 200;}
 .odPayment .fold_cont .area_overseas .info_box.overs1 .input_wrap {display: block; width: 100%;}
 .odPayment .fold_cont .area_overseas .info_box.overs1 .input_wrap .form_control {width: 100%; color: #222;}
 .odPayment .fold_cont .area_overseas .info_box.overs2 {margin-top:0; margin-right:0; color:#666; font-size: 1.4rem;}
@@ -1719,6 +1723,9 @@ background-size:100%;}
 .odPayment .fold_cont .area_overseas .info_box .agree_overs label::before,
 .odPayment .fold_cont .area_overseas .info_box .agree_overs label::after {top:10px !important; transform:translateY(0%) !important;}
 .odPayment .agree_insurance, .od .agree_insurance {display:none; margin:1rem 0 0;}
+.odPayment .agree_insurance .form_field .agree_insurance label, .od .form_field .agree_insurance label {font-size: 1.3rem;}
+.od .agree_insurance p {margin:1rem 0; font-weight: 200; font-size: 1.2rem;}
+.od .agree_insurance .btn {height:auto; padding:1rem 1.3rem; font-weight: 300; font-size: 1.3rem;}
 .od .foldGroup .fold_head .data .total_gift,
 .od .foldGroup .fold_head .data .total_deduct {color:#fd4802; font-weight:500;}
 
@@ -1852,7 +1859,7 @@ background-size:100%;}
 .adrsModify_pop .default_addrs {margin-top: 1.5rem;}
 /* //주문결제_배송지수정 팝업 */
 
-/* 주문결제_할인쿠폰변경 팝업 */	
+/* 주문결제_할인쿠폰변경 팝업 */
 .modal .modal-footer .btn.btn_primary {background: #fd4802;}
 .modal.couponModify_pop .modal-body .pop_cont {line-height:1; font-size: 1.3rem;}
 .modal.couponModify_pop .modal-footer {margin-top:0;}
@@ -1887,7 +1894,7 @@ background-size:100%;}
 .modal.couponModify_pop .area_cart_coupon {margin-bottom:6rem;}
 .modal.couponModify_pop .area_cart_coupon .form_field > div {border-bottom:1px solid #ddd}
 .modal.couponModify_pop .area_cart_coupon .form_field > div:first-child {border-top:1px solid #ddd;}
-.modal.couponModify_pop .area_cart_coupon .form_field > div label {width:100%;}
+.modal.couponModify_pop .area_cart_coupon .form_field > div label {width:100%; color:#222;}
 .modal.couponModify_pop .area_cart_coupon .cart_coupon {padding:20px 0px;}
 .modal.couponModify_pop .area_cart_coupon .cart_coupon .name {color:#222; font-size:14px; font-weight:300;}
 .modal.couponModify_pop .area_cart_coupon .cart_coupon .txt {margin-top:10px; color:#888; font-size:14px; font-weight:200;}
@@ -1920,7 +1927,8 @@ background-size:100%;}
 .od .area_selgift .agree_gift .txt {font-size: 1.3rem; margin:1rem 0;}
 .od .area_selgift .agree_gift .btn_link_popup {font-size: 1.1rem; color:#666; border-bottom: 1px solid #666;}
 .od .area_selgift .agree_gift_con {display: none; width: 100%; border:1px solid #ddd; border-top: 0; padding:1.8rem;}
-.od .area_selgift .agree_gift_con p {height: 10rem; overflow-y: auto; padding-right: 0.5rem;}
+.od .area_selgift .agree_gift_con p {position: relative; padding-left: 1rem; font-size: 1.2rem; color: #888;}
+.od .area_selgift .agree_gift_con p:before {content:'-'; position: absolute; left: 0; top: 0;}
 
 .od .area_selpoint dl > div {margin-top: 2.4rem; padding-top: 2.4rem; border-top: 1px solid #ddd;}
 .od .area_selpoint dl > div:first-child {margin-top: 0;}
@@ -1929,8 +1937,9 @@ background-size:100%;}
 .od .area_seldiscount dl > div {border-bottom: 1px solid #eee; margin-bottom: 1.5rem; padding-bottom: 1.5rem;}
 .od .area_seldiscount dl > div:last-child {border-bottom: 0;}
 .od .area_seldiscount dl > div:first-child {}
-.od .area_seldiscount #btn_couponModify_pop {width: 100%; display: block; height: 4.5rem; margin:1.5rem 0; border:1px solid #a7a7a7;}
-.od .area_seldiscount dt {position: relative; font-size: 1.4rem; color: #222; font-weight: 300;}
+.od .area_seldiscount dl > div:nth-child(2) {border-bottom: 1px dashed #eee;}
+.od .area_seldiscount #btn_couponModify_pop {width: 100%; display: block; height: 4.5rem; margin:0 0 1.5rem; border:1px solid #a7a7a7;}
+.od .area_seldiscount dt {position: relative; margin-bottom: 1.5rem; font-size: 1.4rem; color: #222; font-weight: 500;}
 .od .area_seldiscount dt .maxdisc_amount {position: absolute; top: 0; right: 0;}
 
 .od .area_seldiscount .input_wrap, .od .area_selpoint .input_wrap {display: block;}
@@ -1950,10 +1959,10 @@ background-size:100%;}
 .od .area_seldiscount .dlvr_fee_box .select_custom .combo .dlvr_coupon .empty {margin-top:2rem; color:#888; font-size:1.3rem; font-weight:300;}
 .od .area_seldiscount .dlvr_fee_box .select_custom .combo .list > li[aria-disabled="true"] .dlvr_coupon p {color:#888;}
 
-.od .tmark_required {color:#fd4802; font-size:1.3rem; font-weight:300;}
+.od .tmark_required {color:#fd4802; font-size:1.2rem; font-weight:300;}
 
 .od .area_selpoint {}
-.od .area_selpoint dl > div dt {font-size: 1.4rem; color: #222;}
+.od .area_selpoint dl > div dt {font-size: 1.4rem; color: #222; font-weight: 500;}
 .od .area_selpoint dl > div dt span {font-size: 1.2rem; color:#888; margin-left: 0.5rem;}
 .od .area_selpoint .form_field > div {margin:1rem 0;}
 .od .area_selpoint .form_field > div.input_wrap {float:none; margin-right:0;}
@@ -1985,8 +1994,8 @@ background-size:100%;}
 .od .paymentinfo .payinfo_blk.on {background:#f5f5f5;}
 .od .paymentinfo .payinfo_blk.on a span::after {top:3px; transform:rotate(-180deg);}
 .od .paymentinfo .payinfo_blk.on .infotxt {display:block; margin:0px 1.9rem 1.9rem;}
-.od .area_paymentinfo .agree_payment {margin:4rem 0 4.2rem; color:#222; font-size:1.4rem; font-weight:200; text-align:center;}
-.od .area_paybtn .btn {height:80px; font-size:20px; font-weight:300;}
+.od .area_paymentinfo .agree_payment {margin:4rem 0 4.8rem; color:#222; font-size:1.4rem; font-weight:200; text-align:center;}
+.od .area_paybtn .btn {height:6rem; font-size:1.6rem; font-weight:500;}
 .od .area_paybtn .btn em {font-weight:500;}
 
 .od .extra_pay {padding:0px 30px 40px; margin-bottom: 20px; border-top:1px solid #222; border-bottom:1px solid #ddd;}
@@ -2022,12 +2031,8 @@ background-size:100%;}
 .od .completed .info_complete .report_box div.closedate dt,
 .od .completed .info_complete .report_box div.closedate dd {margin:0; color:#888; font-size:16px; font-weight:200;}
 .od .completed .info_complete .report_box div.closedate dd span {font-weight:300;}
-.od .completed .od_cont {width:100%;}
-.od .completed .od_cont h3 {margin-bottom:20px; font-size:18px; font-weight:500;}
-.od .completed .od_cont .order_amount dl div {margin-top:20px;}
-.od .completed .od_cont .order_amount dl div:first-child {margin-top:0}
-.od .completed .od_cont [class^='area_']{margin-top:60px}
-.od .completed .od_cont .sec_foot {margin-top:60px}
+
+.od .completed .btn_group_flex {margin-top: 0;}
 .od .completed .btn_group_md {text-align:center;}
 .od .completed .btn_group_md::after {}
 .od .completed .btn_group_md .btn {margin:0px 3px; width:230px;}
@@ -2092,10 +2097,8 @@ background-size:100%;}
 .nonMBorder .cont_head h3 {margin-bottom:40px; font-size:40px; font-weight:500;} 
 .nonMBorder input[type="text"] {float:none; width:100%; height:4.5rem; padding:1.7rem 1.5rem; color:#222; font-size:1.3rem; font-weight:300;}
 .nonMBorder input[type="text"]::placeholder {color:#888; font-weight:200;}
-.nonMBorder .form_field {display:block; margin-top:10px;}
+.nonMBorder .form_field {display:block; margin-top:1rem;}
 .nonMBorder .form_field:first-of-type {margin-top:0px;}
-.nonMBorder .form_field .ui_col_9 input[type="text"] {width:388px;}
-.nonMBorder .form_field .ui_col_3 .btn {width:132px; height:52px; padding:17px 0px 17px; font-weight:200;}
 .nonMBorder .cont_foot {position:relative; width:530px; margin:40px auto 0; color:#888; font-size:16px; line-height:1;}
 .nonMBorder .cont_foot::after {content:''; clear:both; display:block;}
 .nonMBorder .cont_foot p span {display:block;}
@@ -2106,17 +2109,22 @@ background-size:100%;}
 .nonMBorder .btn_group_md .btn {padding:19px; font-weight:300; height:60px;}
 .nonMBorder .btn_group_md .btn_default {border-color:#a7a7a7;}
 .nonMBorder .agree_nombPrivacy {}
-.nonMBorder .agree_nombPrivacy label span {font-size:18px;}
-.nonMBorder .agree_nombPrivacy label span .tmark_required {display:inline-block; margin-top:2px; font-size:14px; vertical-align:top;}
+.nonMBorder .agree_nombPrivacy label span {font-size:1.3rem;}
+.nonMBorder .agree_nombPrivacy label span .tmark_required {display:inline-block; font-size:1.3rem; vertical-align:top;}
 .nonMBorder .agree_nomb_txt_box {margin-bottom:40px; padding:1.5rem; border:1px solid #ddd;}
 .nonMBorder .agree_nomb_txt_box > div {overflow:auto; max-height:160px; color:#888; font-size:14px; line-height:1.5; font-weight:200;}
+.nonMBorder .agree_nomb_txt_box > div.agree_nombPrivacy {margin-bottom: 1rem;}
 .nonMBorder .adress_area {}
 .nonMBorder .adress_area dl {padding:20px 0 0}
 .nonMBorder .adress_area dl div {margin-top:15px;} 
 .nonMBorder .adress_area dl div:first-of-type {margin-top:0}
-.nonMBorder .adress_area dl div dt {float:left;}
-.nonMBorder .adress_area dl div dt span {display:inline-block; width:46px; height:22px; padding:4px 0; margin-top:-4px; margin-right:10px; border:1px solid #ddd; font-size:12px; text-align:center; vertical-align:top;}
+.nonMBorder .adress_area dl div dt {float:left; margin-top:-0.4rem;}
+.nonMBorder .adress_area dl div dt span {display:inline-block; width:46px; height:22px; padding:4px 0; margin-right:10px; border:1px solid #ddd; font-size:12px; text-align:center; vertical-align:top;}
 .nonMBorder .adress_area dl div dd {padding-left:53px; color:#666; font-size:14px;}
+.nonMBorder input[type="text"] {color:#222;}
+.nonMBorder input[type="text"]:read-only {background: #f5f5f5;}
+.nonMBorder .input_wrap .btn_hp_certi {position: absolute; top: 0; right: 0; height: 4.5rem; margin-left: 0; font-size: 1.4rem; font-weight: 300;}
+.nonMBorder .detail_addr {margin-top: -1.1rem;}
 .nonMBorder .btn_addr_sch {position: absolute; right: 0; top: 0; padding: 0; border:none; width: 4.5rem; height: 4.5rem; background: url(/images/mo/ico_search_btn.png) no-repeat center; background-size:1.7rem;}
 
 
@@ -2147,7 +2155,7 @@ main.container .shopping_bag .inner:last-child {padding-bottom: 0;}
 .shopping_bag .goods_dlvr_save {margin-top: 1.8rem; text-align: center;}
 .shopping_bag .goods_dlvr_save a.btn_popup_save {display:inline-block; padding-right:20px; text-align: center; color:#fd4802; font-size:1.1rem; font-weight:200; line-height:14px; text-decoration:underline; background:url('/images/mo/ico_go_save.png') no-repeat 98% 45%; background-size:1.1rem;}
 
-.shopping_bag .od_calc_wrap {font-size: 0; width: 100%;}
+.shopping_bag .od_calc_wrap {position: fixed; left: 0; bottom: 0; z-index: 99; font-size: 0; width: 100%;}
 .shopping_bag .od_calc_wrap button {width: 60%;}
 .shopping_bag .od_calc_wrap button:first-child {width: 40%;}
 
@@ -2185,7 +2193,7 @@ main.container .shopping_bag .inner:last-child {padding-bottom: 0;}
 .shopping_bag .area_order .od_amount_box .btn_link {display:inline-block; padding:0px 13px; height:40px; line-height:38px; color:#222; font-size:14px; font-weight:300; border:1px solid #a7a7a7; box-sizing:border-box;}
 .shopping_bag .info_box .od_exinfo {margin-top: 0.9rem;}
 .shopping_bag .info_box .od_exinfo a {}
-.shopping_bag .info_box .od_exinfo a:after {content:''; border:2px solid transparent; border-left:2px solid #fd4802;} 
+.shopping_bag .info_box .od_exinfo a:after {content:''; display: inline-block; border-top: 0.3rem solid transparent; border-bottom: 0.3rem solid transparent; border-left: 0.3rem solid #fd4802; margin-left: 0.6rem;} 
 .shopping_bag .part_goods .goods_section > .od_calc {margin: 1rem 0 0 3rem; padding:1.3rem 0 0 0; position: relative; line-height: 1; border-top: 1px solid #ddd;}
 
 .od .area_order .od_amount_box .btn_link::after {display:none;}
@@ -2244,23 +2252,27 @@ main.container .shopping_bag .inner:last-child {padding-bottom: 0;}
 .optModifyPop .area_order > div .color {}
 .optModifyPop .select_custom .combo .list {position: static;}
 .optModifyPop .opt_header:after {content:''; display: block; clear:both;}
-.optModifyPop .opt_header {margin-bottom: 1rem;}
+.optModifyPop .opt_header {margin-bottom: 1rem; position: relative;}
 .optModifyPop .opt_header > span {float:left;}
 .optModifyPop .opt_header .color {margin-left: 2rem; color: #666;}
+.optModifyPop .opt_header .form_field {position: absolute; top: 0; right: 0; width:auto;}
+.optModifyPop .area_order .opt_color::before {content: ''; display: block; width:100%;border-top: 1px solid #dddddd;position: relative;top: -1.2rem;left: auto;right: auto;}
 .optModifyPop .area_order .opt_color ul {font-size: 0; width: 100%; white-space: nowrap; overflow-x: auto;}
 .optModifyPop .area_order .opt_color ul li {display: inline-block; margin:0 3px; margin-top:6px}
 .optModifyPop .area_order .opt_color ul li a {display:block; box-sizing:border-box; width:70px; height:105px;}
 .optModifyPop .area_order .opt_color ul li a.on img {border:1px solid #fd4802}
 .optModifyPop .area_order .opt_size {padding-bottom:40px; border-bottom:1px solid #ddd;}
 .optModifyPop .area_order .opt_size .form_field {display:block; width:100%; font-size: 0;}
-.optModifyPop .area_order .opt_size .form_field > div {margin:6px 3px 0;}
-.optModifyPop .area_order .opt_size .form_field > div {float:none; width:auto; display: inline-block;}
+.optModifyPop .area_order .opt_size .form_field > div {float:none; width:20%; display: inline-block; margin:6px 0 0; padding:0 0.78%;}
+.optModifyPop .area_order .opt_size .form_field > div {}
 /* .optModifyPop .area_order .opt_size .form_field > div:nth-child(6n-5) {margin-left:0px;} */
-.optModifyPop .area_order .opt_size .form_field input[type="radio"] + label {display:block; width:50px; height:40px; padding:0; line-height:40px; text-align:center; background:#fff; box-sizing:border-box; border:1px solid #ddd; color:#222; font-weight:200; font-size:14px;}
+.optModifyPop .area_order .opt_size .form_field input[type="radio"] + label {position: relative; display:block; width:100%; height:40px; padding:0; line-height:40px; text-align:center; background:#fff; box-sizing:border-box; border:1px solid #ddd; color:#222; font-weight:200; font-size:14px;}
+.optModifyPop .area_order .opt_size .form_field input[type="radio"] + label span {position:absolute; top:50%; left:0%; width:100%; padding:0 6px; line-height:1.2; transform:translateY(-50%); display:inline-block; text-overflow:ellipsis; overflow:hidden;}
 .optModifyPop .area_order .opt_size .form_field input[type="radio"] + label::before,
 .optModifyPop .area_order .opt_size .form_field input[type="radio"] + label::after {display:none;}
 .optModifyPop .area_order .opt_size .form_field input[type="radio"]:checked + label {border:1px solid #fd4802;}
-.optModifyPop .area_order .opt_size .form_field input[type="radio"]:disabled + label {text-decoration:line-through; background:#f5f5f5; border-color:#f5f5f5; color:#bbb; opacity:1;}
+.optModifyPop .area_order .opt_size .form_field input[type="radio"]:disabled + label {background:#f5f5f5; border-color:#f5f5f5; color:#bbb; opacity:1;}
+.optModifyPop .area_order .opt_size .form_field input[type="radio"]:disabled + label span {text-decoration:line-through;}
 
 .optModifyPop .area_order .opt_select .select_custom .combo .select {height:45px; padding:15px;}
 .optModifyPop .area_order .opt_select .select_custom .combo .list > li {height:45px; padding:15px; font-size:14px; line-height:1;}
@@ -2282,22 +2294,28 @@ main.container .shopping_bag .inner:last-child {padding-bottom: 0;}
 .popup_box .part_goods .od_calc .price {position: static;}
 
 /* popup_다다익선 */
-.moresalePop .area_benefit {padding-top:4px; color:#fd4802; font-size:14px;}
+.moresalePop .area_benefit {padding-top:2.4rem; color:#fd4802; font-size:14px;}
 .moresalePop .area_benefit::after {content:''; clear:both; display:block;}
-.moresalePop .area_benefit .tag {float:left; width:55px; margin-top:-4px;}
+.moresalePop .area_benefit .tag {float:left; width:3.2rem; font-size: 1rem; padding: 0.5rem 0; text-align: center; height:auto;}
 .moresalePop .area_benefit p {float:left;}
-.moresalePop .area_benefit p span {float:left;  position:relative; padding:0px 12px;}
-.moresalePop .area_benefit p span::before {content:''; position:absolute; width:1px; height:14px; left:0px; top:50%; transform:translateY(-50%); background:#ddd;}
+.moresalePop .area_benefit p span {position:relative; display: block; padding:0px 1rem; display: block; line-height: 2.2rem;}
 .moresalePop .area_benefit p span:first-child::before {display:none;}
 .moresalePop .popup_con {padding:0 2rem;}
 .moresalePop .part_goods ul {border-top: 1px solid #eeeeee;}
 .moresalePop .part_goods li {border-bottom: 1px solid #eeeeee; padding:2rem 0;}
 .moresalePop .part_goods li:last-child {border-bottom: 0;}
+.moresalePop .part_goods .sale_price {margin-left: 1rem;}
+.moresalePop .part_goods .sale_percent {margin-left: 1.5rem;}
+.moresalePop .part_goods .od_shoppingbag {margin-top: 1rem;}
 
 /* popup_배송비 SAVE */
+.dlvrSavePop .popup_head {padding-bottom: 0;}
 .dlvrSavePop .popup_con {padding: 0 2rem;}
 .dlvrSavePop .part_goods li {border-bottom: 1px solid #eeeeee; padding:2rem 0;}
 .dlvrSavePop .part_goods li:last-child {border-bottom: 0;}
+.dlvrSavePop .part_goods .sale_price {margin-left: 1rem;}
+.dlvrSavePop .part_goods .sale_percent {margin-left: 1.5rem;}
+.dlvrSavePop .part_goods .od_shoppingbag {margin-top: 1rem;}
 
 /* od_gift_1 */
 main.container .od_gift .inner:last-child {padding-bottom: 0;}
@@ -2365,4 +2383,7 @@ main.container .od_extra .inner:last-child {padding-bottom: 0;}
 .couponSelectPop .list li {border:1px solid #eee; border-bottom: 1px solid transparent;}
 .couponSelectPop .list li:last-child {border-bottom: 1px solid #eee;}
 .couponSelectPop .list li:hover, .couponSelectPop01 .list li:active {border:1px solid #fd4802;}
-.couponSelectPop .list > li[aria-disabled="true"] .dlvr_coupon p {color:#888;}
+.couponSelectPop .list > li[aria-disabled="true"] .dlvr_coupon p {color:#888;}
+
+/* 다음우편번호 api */
+#daumZipcodePop .modal-content {margin-top:5rem;}

+ 20 - 0
src/main/webapp/ux/style24_link.js

@@ -88,6 +88,8 @@ const _PAGE_SOCIAL_MAIN = _frontUrl + "/social/main/form";						// 소설(핫딜
 //== 이벤트 ==/
 const _PAGE_EVENT_MAIN = _frontUrl + "/planning/event/main/form"; 					// 이벤트 메인
 const _PAGE_EVENT_POLL = _frontUrl + "/planning/event/poll/form"; 					// 이벤트 > 설문조사
+const _PAGE_CUSTOMER_GRADE_BENEFIT = _frontUrl + "/planning/event/custgrade/benefit/form"; // 이벤트 회원등급혜택
+
 
 //== 고객센터 ==/
 const _PAGE_FAQ = _frontUrl + "/callcenter/faq/form";									// 고객센터 > FAQ
@@ -1020,6 +1022,24 @@ var cfnGoToPlanDetail = function (planSq) {
     cfnGoToPage(_PAGE_PLANNING_DETAIL + '?planSq=' + planSq);
 }
 
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 룩북상세로 이동
+ * <pre>
+ *        cfnGoToLookbookDetail(22);
+ * </pre>
+ * @param  : lookbookSq - 룩북 번호. 필수
+ * @since  : 2021/04/06
+ * @author : bin2107
+ */
+var cfnGoToLookbookDetail = function (lookbookSq, brandGroupNo) {
+	var params = '?lookbookSq=' + lookbookSq;
+	if (typeof (brandGroupNo) != 'undefined') params += '&brandGroupNo=' + brandGroupNo;
+
+	cfnGoToPage(_PAGE_LOOKBOOK_DETAIL + params);
+}
+
 /**
  * @type   : function
  * @access : public

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