| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815 |
- <!DOCTYPE html>
- <html lang="ko"
- xmlns:th="http://www.thymeleaf.org"
- xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
- layout:decorator="web/common/layout/DefaultLayoutWeb">
- <!--
- *******************************************************************************
- * @source : GoodsDetailFormWeb.html
- * @desc : 상품상세 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER DATE AUTHOR DESCRIPTION
- * === =========== ========== =============================================
- * 1.0 2021.03.02 eskim 최초 작성
- *******************************************************************************
- -->
- <body>
- <th:block layout:fragment="content">
- <div id="container" class="container pd" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
- <script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
- <!-- <th:block th:include="~{web/goods/GoodsIncludeFormWeb :: goodsNaviForm}"></th:block> -->
-
- <div class="wrap">
- <!-- 상품 대표설명 -->
- <div class="content pd_detail">
- <div class="cont_head">
- <h3 class="sr-only">상품 대표설명</h3>
- </div>
- <div class="cont_body">
- <!-- CONT-BODY -->
- <div class="item_detail">
- <div class="area_pic" th:if="${(goodsImgList != null and !goodsImgList.empty) or (goodsVideoList != null and !goodsVideoList.empty)}"
- th:with="videoYn=${(goodsVideoList != null and !goodsVideoList.empty)? 'Y' :'N'}">
- <div class="thumb_nav_wrap" >
- <div class="thumbnav">
- <div class="swiper-container" >
- <div class="swiper-wrapper">
- <th:block th:each="goodsVideo, status : ${goodsVideoList}">
- <div class="swiper-slide" th:classappend="${status.first}? 'on' : ''" >
- <a th:href="${'#navLocate'+ status.count}">
- <span class="thumb mov">
- <th:block th:if="${goodsVideo.videoGb == 'Y'}">
- <img th:src="${'https://img.youtube.com/vi/'+goodsVideo.kmcKey+'/default.jpg'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
- </th:block>
- <th:block th:unless="${goodsVideo.videoGb == 'Y'}">
- <iframe width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?enable_initialize_focus=false&controls_activation=none'}" frameborder="0" allowfullscreen></iframe>
- </th:block>
- </span>
- </a>
- </div>
- </th:block>
- <th:block th:each="goodsImg, status : ${goodsImgList}">
- <div class="swiper-slide" th:classappend="${status.first and videoYn == 'N'}? 'on' : ''" th:with="count=${(videoYn == 'Y')? (status.count +1): status.count }"
- th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_S1')
- or #strings.contains(goodsImg.sysImgNm,'_L1')
- or #strings.contains(goodsImg.sysImgNm,'_L2'))}">
- <a th:href="${'#navLocate'+ count}">
- <span class="thumb">
- <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=48'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
- </span>
- </a>
- </div>
- </th:block>
- </div>
- </div>
- <div class="swiper-button-next"></div>
- <div class="swiper-button-prev"></div>
- </div>
- </div>
- <div class="thumb_list_wrap">
- <ul>
- <th:block th:each="goodsVideo, status : ${goodsVideoList}">
- <li th:id="${'navLocate'+ status.count}" th:classappend="${status.first}? 'on' : ''">
- <div class="movbox">
- <th:block th:if="${goodsVideo.videoGb == 'Y'}">
- <iframe id="prodctThumbVideo" class="pd_mov" width="100%" height="100%" th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0&autoplay=1&mute=1'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
- </th:block>
- <th:block th:unless="${goodsVideo.videoGb == 'Y'}">
- <iframe id="prodctThumbVideo" class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?enable_initialize_focus=false&autoplay&mute&controls_activation=none'}" frameborder="0" allowfullscreen></iframe>
- </th:block>
- </div>
- </li>
- </th:block>
- <th:block th:each="goodsImg, status : ${goodsImgList}" >
- <th:block th:with="count=${(videoYn == 'Y')? (status.count +1): status.count }">
- <li th:id="${'navLocate'+ count}" th:classappend="${status.first and videoYn == 'N'}? 'on' : ''"
- th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_S1')
- or #strings.contains(goodsImg.sysImgNm,'_L1')
- or #strings.contains(goodsImg.sysImgNm,'_L2'))}">
- <a href="javascript:void(0);">
- <span class="thumb">
- <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=1080'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
- </span>
- </a>
- </li>
- </th:block>
- </th:block>
- </ul>
- </div>
- </div>
- <form name="cartForm" id="cartForm" method="post">
- <input type="hidden" name="mode">
- <input type="hidden" name="goodsCd" th:value="${params.goodsCd}" />
- <input type="hidden" name="contentsLoc" th:value="${params.contentsLoc}" />
- <input type="hidden" name="ithrCd" th:value="${params.ithrCd}" />
- <input type="hidden" name="planDtlSq" th:value="${params.planDtlSq}" />
- <input type="hidden" name="adminYn" th:value="${params.adminYn}" />
- <input type="hidden" name="optCd" />
- <input type="hidden" name="optCd1" />
- <input type="hidden" name="optCd2" />
- <input type="hidden" name="addPrice" />
- <input type="hidden" name="ordQty" />
- <input type="hidden" name="stock" />
- <input type="hidden" name="minOrdQty"/>
- <input type="hidden" name="maxOrdQty"/>
- <input type="hidden" name="goodsType" th:value="${goodsInfo.goodsType}"/>
- <input type="hidden" name="selfGoodsYn" th:value="${goodsInfo.selfGoodsYn}"/>
- <div class="area_desc">
- <div class="desc_wrap">
- <div class="timer_box" style="display:none;">
- <p>
- <span class="tit">남은시간</span>
- <span class="timer">
- <em id="d-hours">0</em>
- <em id="d-minutes">0</em>
- <em id="d-seconds">0</em>
- </span>
- </p>
- </div>
- <div class="descript_box">
- <div class="desc_top">
- <a href="javascript:void(0);" class="btn_brand" th:onclick="cfnGoToBrandMain([[${goodsInfo.brandGroupNo}]])" th:text="${goodsInfo.brandGroupNm}">NBA 키즈</a>
- <div class="shareSet">
- <button class="btn_share" data-name="openShare">공유하기</button>
- <th:block th:include="~{web/goods/GoodsIncludeFormWeb :: goodsSnsForm}"></th:block>
- </div>
- <button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'likeit' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${params.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=${params.planDtlSq}">관심상품 추가</button>
- </div>
- <div class="desc_info">
- <div class="title_blk">
- <span class="codenumber" th:text="${goodsInfo.goodsCd}">
- N204TJ112P
- </span>
- <span class="comment" th:text="${goodsInfo.goodsTnm}">
- #가을 느낌 물씬!
- </span>
- <span class="name" th:text="${goodsInfo.goodsFullNm}">
- 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업
- </span>
- </div>
- <div class="price_blk">
- <span class="sale_percent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">
- 5%
- </span>
- <span class="sale_price" >
- <em th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}">134,100</em>원
- </span>
- <del class="org_price" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}" >
- <em th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">149,000</em>원
- </del>
- <span class="save_point" th:if="${goodsInfo.pntAmt > 0}">
- 스타일포인트 <th:block th:text="${#numbers.formatInteger(goodsInfo.pntAmt, 0,'COMMA')}"></th:block>P 적립예정
- </span>
- <button type="button" id="btn_saleCoupon_pop" class="btn btn_primary btn_sm btn_coupon" th:if="${goodsCouponList != null and !goodsCouponList.empty}" th:onclick="cfGoodsCouponInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.goodsType}]])"><span>쿠폰받기</span></button>
- </div>
- </div>
- <div class="desc_status" th:if="${not #strings.isEmpty(goodsInfo.delvResDt) }">
- <p>예약판매 상품 - <th:block th:text="${goodsInfo.delvResDt}"></th:block> 출고예정</p>
- </div>
- </div>
- <div class="benefit_box" th:if="${(cardInfoList != null and !cardInfoList.empty) or
- (goodsCouponList != null and !goodsCouponList.empty) or
- (tmtbList != null and !tmtbList.empty) or
- (freeGoodsList != null and !freeGoodsList.empty)}" >
- <dl>
- <div class="bnf_shopping" th:if="${(goodsCouponList != null and !goodsCouponList.empty) or
- (tmtbList != null and !tmtbList.empty) or
- (freeGoodsList != null and !freeGoodsList.empty)}" >
- <dt>쇼핑혜택</dt>
- <dd>
- <span th:if="${goodsCouponList != null and !goodsCouponList.empty}">
- <th:block th:each="goodsCoupon, status : ${goodsCouponList}" th:if="${status.first}">
- 최대 <em class="c_primary" >
- <th:block th:if="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${#numbers.formatInteger(goodsCoupon.dcVal, 0,'COMMA')}원|"></th:block>
- <th:block th:unless="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${goodsCoupon.dcVal}%|"></th:block>
- </em> 쿠폰 할인
- </th:block>
- </span>
- <span th:if="${tmtbList != null and !tmtbList.empty}">
- <th:block th:each="tmtb, status : ${tmtbList}" th:if="${status.first}">
- <em class="c_primary"><th:block th:text="${#numbers.formatInteger(tmtb.sectionVal, 0,'COMMA')}"></th:block><th:block th:text="${(tmtb.sectionGb == 'G810_10')? '개':'금액'}"></th:block></em> 이상 구매 시
- <em class="c_primary"><th:block th:text="${#numbers.formatInteger(tmtb.dcVal, 0,'COMMA')}"></th:block><th:block th:text="${(tmtb.dcWay == 'G240_10')? '원':'%'}"></th:block></em></em> 할인
- </th:block>
- </span>
- <span th:if="${freeGoodsList != null and !freeGoodsList.empty}">
- <th:block th:each="freeGoods, status : ${freeGoodsList}" th:if="${status.first}">
- <th:block th:text="${freeGoods.goodsNm}"></th:block> 증정 <th:block th:if="${freeGoods.allYn == 'N'}" th:text="${'외 택1'}"></th:block></span>
- <button type="button" id="btn_bnfShopping_pop" class="btn_popup" th:onclick="cfGoodsShopBenefitInfo([[${goodsInfo.goodsCd}]])"><span>자세히</span></button>
- </dd>
- </div>
- <div class="bnf_card" th:if="${cardInfoList != null and !cardInfoList.empty}">
- <dt>카드혜택</dt>
- <dd>
- <th:block th:each="cardInfo, status : ${cardInfoList}">
- <span th:if="${cardInfo.prmtGb == 'A' and cardInfo.dcGb != '3'}"><th:block th:text="${cardInfo.prmtTargetNm}"></th:block> <em class="c_primary"><th:block th:text="${#numbers.formatInteger(cardInfo.dcVal, 0,'COMMA')+ cardInfo.dcWayNm}"></th:block></em> <th:block th:text="${cardInfo.prmtGbNm}"></span>
- <span th:if="${cardInfo.prmtGb == 'A' and cardInfo.dcGb == '3'}" th:text="${cardInfo.prmtNm}">프로모션명</span>
- <span th:if="${cardInfo.prmtGb == 'B'}">신용카드 무이자 혜택</span>
- </th:block>
- <button type="button" id="btn_bnfCard_pop" class="btn_popup" onclick="cfCardInfo();return false;"><span>자세히</span></button>
- </dd>
- </div>
- </dl>
- </div>
- <div class="option_box">
- <th:block th:if="${goodsInfo.selfGoodsYn =='Y' }"> <!-- 자사상품 -->
- <th:block th:if="${goodsInfo.goodsType =='G056_N' }"> <!-- 일반상품 -->
- <div class="opt_color" th:if="${goodsOption1List != null and !goodsOption1List.empty}" >
- <div class="opt_header">
- <span class="title">컬러</span>
- <span class="color" th:text="${goodsInfo.colorNm}">그레이</span>
- </div>
- <ul >
- <li th:each="goodsOption1, status : ${goodsOption1List}">
- <a href="javascript:void(0);" th:class="${params.colorCd == goodsOption1.optCd1}? 'on':''" th:onclick="cfnGoToGoodsDetail([[${goodsInfo.goodsCd}]], [[${goodsOption1.optCd1}]])"> <!-- 해당 컬러 상품페이지로 이동 -->
- <img th:src="${imgGoodsUrl+'/'+goodsOption1.sysImgNm +'?RS=64'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
- </a>
- </li>
- </ul>
- </div>
- <div class="opt_size" th:if="${goodsOption2List != null and !goodsOption2List.empty}" >
- <div class="opt_header">
- <span class="title">사이즈</span>
- <span class="size">
- <em id="selectOptCd1"></em>
- <em id="selectOptCd1addPrice"></em>
- </span>
- <button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.colorCd}]] )"><span>사이즈정보</span></button>
- </div>
- <div class="form_field">
- <div th:each="goodsOption2, status : ${goodsOption2List}">
- <input type="radio" name="opt" th:id="${goodsOption2.optCd}" th:disabled="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}"
- th:attr="addPrice=${goodsOption2.addPrice}, optCd1=${goodsOption2.optCd1}, optCd2=${goodsOption2.optCd2}, optCd=${goodsOption2.optCd}"
- th:onclick="fnViewStock(this, [[${goodsInfo.goodsCd}]],[[${goodsOption2.optCd}]],[[${goodsOption2.optCd1}]],[[${goodsOption2.optCd2}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]] )" />
- <label th:for="${goodsOption2.optCd}"><span th:text="${goodsOption2.optCd2}" >100</span></label>
- </div>
- </div>
- </div>
- </th:block>
- <th:block th:if="${goodsInfo.goodsType =='G056_S' }"> <!-- 세트상품 -->
- <div class="opt_set_select" th:if="${goodsComposeList != null and !goodsComposeList.empty}" >
- <th:block th:each="goodsCompose, status : ${goodsComposeList}">
- <div class="set_option">
- <div class="opt_header">
- <span class="title" th:text="${goodsCompose.compsGoodsFullNm}">옵션</span>
- <button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsCompose.compsGoodsCd}]],[[${goodsCompose.colorCd}]] )"><span>사이즈정보</span></button>
- </div>
- <div class="form_field">
- <div class="select_custom item_opt1" th:classappend="${'item_opt1_'+status.count +' '+goodsCompose.compsGoodsCd}"
- th:if="${goodsCompose.goodsOption1List != null and !goodsCompose.goodsOption1List.empty}" >
- <div class="combo">
- <div class="select">옵션1선택</div>
- <ul class="list">
- <th:block th:each="goodsOption, optionStatus : ${goodsCompose.goodsOption1List}" >
- <li th:onclick="fnOption2([[${status.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],[[${goodsCompose.qty}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])"
- th:attr="aria-disabled=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}, data-soldout=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}"
- >
- <div th:text="${goodsOption.optCd1Nm}">상품옵션</div>
- <div th:if="${goodsOption.addPrice > 0}" th:text="|+${#numbers.formatInteger(goodsOption.addPrice, 0,'COMMA')}원|">0원</div>
- <input type="hidden" name="opt" th:attr="addPrice=${goodsOption.addPrice}, optCd1=${goodsOption.optCd1},optCd2=${goodsOption.optCd2}, optCd=${goodsOption.optCd}"/>
- </li>
- </th:block>
- </ul>
- </div>
- </div>
- </div>
- <div class="form_field">
- <div class="select_custom item_opt2" th:classappend="${'item_opt2_'+status.count +' '+goodsCompose.compsGoodsCd}" disabled>
- <div class="combo">
- <div class="select">옵션2선택</div>
- <ul class="list" th:id="|goodsOpt2${goodsCompose.compsGoodsCd}|" >
- <!-- 옵션2 -->
- </ul>
- </div>
- </div>
- </div>
- </div>
- </th:block>
- </div>
- </th:block>
- </th:block>
- <th:block th:if="${goodsInfo.selfGoodsYn =='N' }"> <!-- 입점상품 -->
- <div class="opt_select" th:if="${goodsOption1List != null and !goodsOption1List.empty}">
- <div class="opt_header">
- <span class="title">옵션</span>
- <button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.colorCd}]] )"><span>사이즈정보</span></button>
- </div>
- <div class="form_field">
- <div class="select_custom item_opt1 item_opt1_1" th:classappend="${goodsInfo.goodsCd}" >
- <div class="combo">
- <div class="select">옵션1선택</div>
- <ul class="list">
- <th:block th:each="goodsOption, optionStatus : ${goodsOption1List}" >
- <li th:onclick="fnOption2([[${optionStatus.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],1,[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])">
- <div th:text="${goodsOption.optCd1}">상품옵션</div>
- <div th:if="${goodsOption.addPrice > 0}" th:text="|+${#numbers.formatInteger(goodsOption.addPrice, 0,'COMMA')}원|">0원</div>
- <input type="hidden" name="opt" th:attr="addPrice=${goodsOption.addPrice}, optCd1=${goodsOption.optCd1},optCd2=${goodsOption.optCd2}, optCd=${goodsOption.optCd}"/>
- </li>
- </th:block>
- </ul>
- </div>
- </div>
- </div>
- <div class="form_field">
- <div class="select_custom item_opt2 item_opt2_1" th:classappend="${goodsInfo.goodsCd}" disabled>
- <div class="combo">
- <div class="select">옵션2선택</div>
- <ul class="list" th:id="|goodsOpt2${goodsInfo.goodsCd}|" >
- <!-- 옵션2 -->
- </ul>
- </div>
- </div>
- </div>
- </div>
- </th:block>
- <!-- 해당 상품 품절시 노출 -->
- <div class="info_restock" style="display:none;">
- <a href="javascript:void(0);" id="btn_pushRestock_pop" class="btn_popup" th:onclick="cfGoodsInstockAlarmInfo([[${goodsInfo.goodsCd}]], [[${goodsInfo.colorCd}]])">재입고 시 알림을 받아보세요</a>
- </div>
- <!-- //해당 상품 품절시 노출 -->
- <div class="opt_count">
- <div class="opt_header">
- <span class="title">수량</span>
- </div>
- <div class="number_count">
- <span class="minus min_val" 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}" readonly >
- <input type="hidden" name="coption" value="" th:attr="price=${goodsInfo.currPrice}">
- <span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">추가</em></span>
- </div>
- </div>
- </div>
- <div class="price_box" style="display:none;">
- <p class="number">
- 총 <span id="goodsTotalQty">0</span>개
- </p>
- <p class="price">
- <span>
- <b id="goodsTotalPrice">0</b><em>원</em>
- </span>
- </p>
- </div>
- <div class="btn_box">
- <div class="btn_group_block ui_row">
- <th:block th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
- <div class="ui_col_6">
- <button type="button" class="btn btn_dark btn_block" id="btnGoodsWish" onclick="fnAddCart('C');"><span>쇼핑백</span></button>
- </div>
- <div class="ui_col_6">
- <button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="fnAddCart('O');"><span>바로구매</span></button>
- </div>
- </th:block>
- <th:block th:unless="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
- <div class="ui_col_12">
- <button type="button" class="btn btn_dark btn_block" disabled=""><span>SOLD OUT</span></button>
- </div>
- </th:block>
- </div>
- </div>
- <div class="npay_box" style="display:none;">
- <a href="">네이버id로 간편구매~</a>
- </div>
- <div class="exinfo_box">
- <ul>
- <li th:if="${reviewDisplayYn == 'Y'}">
- <div class="ex_review">
- <a href="javascript:void(0);" id="btn_pdReview_pop" th:onclick="cfGoodsReview([[${goodsInfo.goodsCd}]])">
- <span class="tit">리뷰<em class="number">(<th:block th:text="${(goodsInfo.reviewRegCnt <= 9999) ? #numbers.formatInteger(goodsInfo.reviewRegCnt, 0,'COMMA') : '9,999+'}"></th:block>)</em></span>
- <div class="star_score" th:if="${goodsInfo.reviewRegCnt > 0 }">
- <span class="star" th:with="starScore=${#numbers.formatDecimal((goodsInfo.score*100/5), 0,0)}">
- <em class="progbar" th:style="${'width:'+starScore+'%;' }"></em> <!-- 평점 style로 표기 -->
- </span>
- <span class="score"><em th:text="${goodsInfo.score}">4.3</em>점</span>
- </div>
- </a>
- </div>
- <!-- 베스트 리뷰 등록시 노출 -->
- <div class="best_review" th:if="${bestReviewList != null and !bestReviewList.empty}">
- <th:block th:each="bestReview, status : ${bestReviewList}" th:if="${status.first}">
- <a href="javascript:void(0);" id="btn_pdBestReview_pop" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]],'Y', '',[[${bestReview.reviewSq}]])" >
- <div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
- <th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
- <span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
- </th:block>
- </div>
- <div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.iscore*100/5), 0,0)}">
- <span class="star">
- <em class="progbar" th:style="${'width:'+starScore+'%;' }"></em> <!-- 평점 style로 표기 -->
- </span>
- <em class="ico ico_besttag"></em>
- </div>
- <div class="txt_best_review">
- <p th:text="${bestReview.reviewContent}">옷</p>
- </div>
- </a>
- </th:block>
- </div>
- <!-- //베스트 리뷰 등록시 노출 -->
- </li>
- <li>
- <div class="ex_qna">
- <a href="javascript:void(0);" id="btn_pdQnaList_pop" th:onclick="cfGoodsQng([[${goodsInfo.goodsCd}]])" >
- <span class="tit">문의<em class="number">(<th:block th:text="${(goodsInfo.goodsQnaCnt <= 9999) ? #numbers.formatInteger(goodsInfo.goodsQnaCnt, 0,'COMMA') : '9,999+'}"></th:block>)</em></span>
- </a>
- </div>
- </li>
- <li>
- <div class="ex_shipping">
- <a href="javascript:void(0);" id="btn_pdDeliveryPop" th:onclick="cfGoodsDelivery([[${goodsInfo.goodsCd}]])">
- <span class="tit">배송/교환/반품</span>
- <!-- 해당 배송정보 선택노출 -->
- <span class="txt_shippingfee" th:if="${goodsInfo.delvFee > 0}">배송비 <th:block th:text="${#numbers.formatInteger(goodsInfo.delvFee, 0,'COMMA')}" ></th:block>원
- <th:block th:if="${goodsInfo.minOrdAmt > 0}">(<th:block th:text="${#numbers.formatInteger(goodsInfo.minOrdAmt, 0,'COMMA')}" ></th:block>원 이상 무료배송)</th:block>
- </span>
- <span class="txt_shippingfee" th:if="${goodsInfo.delvFee <= 0}">무료배송</span>
- <span class="txt_shippingfee" th:if="${goodsInfo.quikDelvYn = 'Y'}">총알배송(오전 10시까지 주문 시)</span>
- <!-- //해당 배송정보 선택노출 -->
- </a>
- </div>
- </li>
- </ul>
- </div>
- </div>
- </div>
- </form>
- </div>
- </div>
- </div>
- <!-- 상품 대표설명 -->
- <!-- 함께하면 할인되는 다다익선 상품 -->
- <div class="content pd_together" id="goodsTmtbArea">
-
- </div>
- <!-- // 함께하면 할인되는 다다익선 상품 -->
- <!-- 상품상세정보 -->
- <div class="content pd_descrp">
- <div class="cont_head">
- <h3 class="sr-only">상품상세정보</h3>
- </div>
- <div class="cont_body">
- <!-- 상품설명 노출 -->
- <div class="descrp_box" th:if="${goodsInfo.tobeFormYn == 'Y'}">
- <div class="desc_simple"> <!-- 상품 간략설명-->
- <span class="tit_desc" th:if="${goodsInfo.goodsTitle != null and !goodsInfo.goodsTitle.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTitle))}">사이드 밴딩으로 편안한 만능 슬랙스!</span>
- <p class="ptxt01"th:if="${goodsInfo.goodsTitleDesc}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTitleDesc))}">
- 슬림핏에 사이드 밴딩으로 편안함을 더해준 슬랙스입니다.
- </p>
- </div>
- <div class="desc_character" th:if="${goodsInfo.goodsSpecialDesc != null and !goodsInfo.goodsSpecialDesc.empty}"> <!-- 상품특징 -->
- <span class="tit_desc">상품특징</span>
- <p class="ptxt01">
- <th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsSpecialDesc))}"></th:block>
- </p>
- </div>
- </div>
- <!-- //상품설명 노출 -->
- <!-- 관리자 에디터입력 내용 공지 html -->
- <div class="mdhtml_box">
- <th:block th:if="${goodsNoticeList != null and !goodsNoticeList.empty}" >
- <th:block th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
- </th:block>
- <!-- 관리자 에디터입력 내용 공지 html -->
- <th:block th:each="goodsVideo, status : ${goodsVideoList}">
- <div class="movblock">
- <th:block th:if="${goodsVideo.videoGb == 'Y'}">
- <iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
- </th:block>
- <th:block th:unless="${goodsVideo.videoGb == 'Y'}">
- <iframe width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?player_version=html5'}" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
- </th:block>
- </div>
- </th:block>
- <!-- 공통상품베너 -->
- <th:block th:if="${goodsBannerList != null and !goodsBannerList.empty}">
- <th:block th:each="goodsBanner, status : ${goodsBannerList}" >
- <th:block th:if="${goodsBanner.strVar1 != null and not #strings.equals(goodsBanner.strVar1, '#')}">
- <a th:href="${goodsBanner.strVar1}" target="_blank">
- <img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
- </a>
- </th:block>
- <th:block th:unless="${goodsBanner.strVar1 != null and not #strings.equals(goodsBanner.strVar1, '#')}">
- <img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
- </th:block>
- </th:block>
- </th:block>
-
- <!-- 관리자 에디터입력 내용 노출 상단 html -->
- <th:block th:if="${goodsInfo.goodsTopDesc != null and !goodsInfo.goodsTopDesc.empty and goodsInfo.selfGoodsYn =='Y'}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block >
-
- <th:block th:if="${goodsInfo.goodsDesc != null and !goodsInfo.goodsDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}"></th:block>
- </div>
-
- <th:block th:if="${goodsInfo.tobeFormYn == 'Y'}">
-
- <!-- 착용컷 노출 -->
- <div class="view_outfit_box" th:if="${#strings.contains(goodsImgList,'_M1')
- or #strings.contains(goodsImgList,'_M2')
- or #strings.contains(goodsImgList,'_M3')
- or #strings.contains(goodsImgList,'_M4')
- or #strings.contains(goodsImgList,'_M5')}">
- <span class="tit_view">OUTFIT VIEW</span>
- <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${status.first}">
- <span class="model_info" th:text="${goodsImg.modelInfo}">(모델정보 : 185cm / 78kg / XL 착용)</span>
- </th:block>
- <div class="view">
- <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_M1')
- or #strings.contains(goodsImg.sysImgNm,'_M2')
- or #strings.contains(goodsImg.sysImgNm,'_M3')
- or #strings.contains(goodsImg.sysImgNm,'_M4')
- or #strings.contains(goodsImg.sysImgNm,'_M5')}">
- <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
- </th:block>
- </div>
- </div>
-
- <!-- //착용컷 노출 -->
- <!-- 상품컷 노출 -->
- <div class="view_detail_box" th:if="${#strings.contains(goodsImgList,'_01')
- or #strings.contains(goodsImgList,'_02')
- or #strings.contains(goodsImgList,'_D1')
- or #strings.contains(goodsImgList,'_D2')
- or #strings.contains(goodsImgList,'_D3')
- or #strings.contains(goodsImgList,'_D4')
- or #strings.contains(goodsImgList,'_D5')}">
- <span class="tit_view">PRODUCT VIEW</span>
- <div class="view">
- <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01.')
- or #strings.contains(goodsImg.sysImgNm,'_02.')
- or #strings.contains(goodsImg.sysImgNm,'_D1.')
- or #strings.contains(goodsImg.sysImgNm,'_D2.')
- or #strings.contains(goodsImg.sysImgNm,'_D3.')
- or #strings.contains(goodsImg.sysImgNm,'_D4.')
- or #strings.contains(goodsImg.sysImgNm,'_D5.')}">
- <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
- </th:block>
- </div>
- </div>
- <!-- //상품컷 노출 -->
- <!-- 원단 노출 -->
- <div class="view_fabric_box" th:if="${#strings.contains(goodsImgList,'_S1')}">
- <span class="tit_view">FABRIC</span>
- <div class="view">
- <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_S1')}">
- <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
- </th:block>
- </div>
- </div>
- <!-- //원단 노출 -->
- <!-- 라벨 노출 -->
- <div class="view_label_box" th:if="${#strings.contains(goodsImgList,'_L1')
- or #strings.contains(goodsImgList,'_L2')}">
- <span class="tit_view">LABEL INFO</span>
- <div class="view">
- <span>
- <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1')
- or #strings.contains(goodsImg.sysImgNm,'_L2')}">
- <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=250'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
- </th:block>
- </span>
- </div>
- </div>
- <!-- //라벨 노출 -->
- </th:block>
-
- <!-- 관리자 에디터입력 내용 노출 하다단 html -->
- <div class="mdhtml_box" th:if="${goodsInfo.goodsDownDesc != null and !goodsInfo.goodsDownDesc.empty and goodsInfo.selfGoodsYn =='Y'}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
-
- <!-- 브랜드 노출 -->
- <div class="brand_box">
- <p class="name" th:text="${goodsInfo.brandGroupNm}">TBJ 티비제이</p>
- <a href="javascript:void(0);" class="btn btn_default" th:onclick="cfnGoToBrandMain([[${goodsInfo.brandGroupNo}]])" ><span>브랜드 홈 바로가기</span></a>
- </div>
- <!-- //브랜드 노출 -->
- <!-- 상품필수정보 노출 -->
- <div class="required_box" >
- <div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_N' and goodsNotiList != null and !goodsNotiList.empty}">
- <span class="title">상품고시정보</span>
- <div class="tbl type1 mt30">
- <table>
- <tbody>
- <tr th:each="goodsNoti, status : ${goodsNotiList}" >
- <th th:text="${goodsNoti.niItemNm}">스타일</th>
- <td th:text="${goodsNoti.niContent}">F94U-MD01XA60F0</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_S' and goodsComposeList != null and !goodsComposeList.empty}">
- <span class="title">상품고시정보</span>
- <th:block th:each="goodsCompose, status : ${goodsComposeList}">
- <div class="tbl type1 mt30">
- <table>
- <tbody>
- <tr th:each="goodsNoti, status : ${goodsCompose.goodsNotiList}" >
- <th th:text="${goodsNoti.niItemNm}">스타일</th>
- <td th:text="${goodsNoti.niContent}">F94U-MD01XA60F0</td>
- </tr>
- </tbody>
- </table>
- </div>
- </th:block>
- </div>
- <div class="area_kcl" th:if="${goodsInfo.goodsType == 'G056_N' and goodsSafeNo != null}">
- <i class="ico ico_kcl"></i>
- <th:block th:if="${not #strings.contains(goodsSafeNo.certNum, '해당')}" >
- <p class="tit normal" th:text="${goodsSafeNo.certDiv + ' / ' + goodsSafeNo.certOrganName}">
- 어린이제품 안전인증 / 한국건설생활시험연구원(KCL)
- </p>
- </th:block>
- <p class="normal" >
- <th:block th:if="${#strings.contains(goodsSafeNo.certNum, '해당')}" >
- 해당 없음
- </th:block>
- <th:block th:unless="${#strings.contains(goodsSafeNo.certNum, '해당')}" >
- 인증번호: <th:block th:text="${goodsSafeNo.certNum}"></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">
- 해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.
- </p>
- </div>
- <th:block th:if="${goodsInfo.goodsType == 'G056_S'}">
- <th:block th:each="goodsCompose, status : ${goodsComposeList}">
- <th:block th:if="${goodsCompose.goodsSafeNo != null}">
- <div class="area_kcl" >
- <i class="ico ico_kcl"></i>
- <th:block th:if="${not #strings.contains(goodsCompose.goodsSafeNo.certNum, '해당')}" >
- <p class="tit normal" th:text="${goodsCompose.goodsSafeNo.certDiv + ' / ' + goodsCompose.goodsSafeNo.certOrganName}">
- 어린이제품 안전인증 / 한국건설생활시험연구원(KCL)
- </p>
- </th:block>
- <p class="normal" >
- <th:block th:if="${#strings.contains(goodsCompose.goodsSafeNo.certNum, '해당')}" >
- 해당 없음
- </th:block>
- <th:block th:unless="${#strings.contains(goodsCompose.goodsSafeNo.certNum, '해당')}" >
- 인증번호: <th:block th:text="${goodsCompose.goodsSafeNo.certNum}"></th:block>
- <a th:href="@{http://www.safetykorea.kr/search/searchPop(certNum=${goodsCompose.goodsSafeNo.certNum})}" target="_blank" class="linktxt3">상세보기</a>
- </th:block>
- </p>
- <p class="t_info dot_info">
- 해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.
- </p>
- </div>
- </th:block>
- </th:block>
- </th:block>
- <div class="area_infotbl">
- <span class="title">상품기본정보</span>
- <th:block th:if="${goodsInfo.goodsType == 'G056_N'} ">
- <div class="tbl type1 mt30">
- <table>
- <tbody>
- <tr>
- <th>상품코드</th>
- <td th:text="${goodsInfo.goodsCd}">14443216</td>
- </tr>
- <tr>
- <th>상품구분</th>
- <td th:text="${goodsInfo.goodsGbNm}">병행수입</td>
- </tr>
- <tr>
- <th>브랜드</th>
- <td th:text="${goodsInfo.brandGroupNm}">TBJ</td>
- </tr>
- <tr>
- <th>상품명</th>
- <td th:text="${goodsInfo.goodsNm}">남성 테이퍼드 핏 겨울 기모면 스판 올 밴딩 팬츠</td>
- </tr>
- <th:block th:if="${goodsNotiList != null and !goodsNotiList.empty}">
- <th:block th:each="goodsNoti, status : ${goodsNotiList}" th:if="${goodsNoti.niItemCd == 'G005_005'}">
- <tr>
- <th th:text="${goodsNoti.niItemNm}">제조사</th>
- <td th:text="${goodsNoti.niContent}"></td>
- </tr>
- </th:block>
- </th:block>
- <tr>
- <th>제조국</th>
- <td th:text="${goodsInfo.originNm}">베트남</td>
- </tr>
- </tbody>
- </table>
- </div>
- </th:block>
- <th:block th:unless="${goodsInfo.goodsType == 'G056_N'} ">
- <th:block th:if="${goodsComposeList != null and !goodsComposeList.empty}">
- <th:block th:each="goodsCompose, status : ${goodsComposeList}">
- <div class="tbl type1 mt30">
- <table>
- <tbody>
- <tr>
- <th>상품코드</th>
- <td th:text="${goodsCompose.compsGoodsCd}">14443216</td>
- </tr>
- <tr>
- <th>상품구분</th>
- <td th:text="${goodsCompose.goodsGbNm}">병행수입</td>
- </tr>
- <tr>
- <th>브랜드</th>
- <td th:text="${goodsCompose.brandGroupNm}">TBJ</td>
- </tr>
- <tr>
- <th>상품명</th>
- <td th:text="${goodsCompose.compsGoodsNm}">남성 테이퍼드 핏 겨울 기모면 스판 올 밴딩 팬츠</td>
- </tr>
- <th:block th:if="${goodsCompose.goodsNotiList != null and !goodsCompose.goodsNotiList.empty}">
- <th:block th:each="goodsNoti, status : ${goodsCompose.goodsNotiList}" th:if="${goodsNoti.niItemCd == 'G005_005'}">
- <tr>
- <th th:text="${goodsNoti.niItemNm}">제조사</th>
- <td th:text="${goodsNoti.niContent}"></td>
- </tr>
- </th:block>
- </th:block>
- <tr>
- <th>제조국</th>
- <td th:text="${goodsCompose.originNm}">베트남</td>
- </tr>
- </tbody>
- </table>
- </div>
- </th:block>
- </th:block>
- </th:block>
- <p class="t_info dot_info mt20">
- 주문제작 상품의 경우 주문 후 제작되어 판매되는 상품으로 제작 시점부터 반품/교환이 어려울 수 있습니다.
- </p>
- </div>
- </div>
- <!-- //상품필수정보 노출 -->
- </div>
- <div class="btn_more_box covered">
- <button type="button" class="btn btn_default btn_md">
- <span>상세정보 더보기</span>
- </button>
- </div>
- </div>
- <!-- //상품상세정보 -->
- <!-- 이 상품과 함께 본 상품 -->
- <div class="content wide pd_clickother" id="goodsTogetherbArea">
- </div>
- <!-- // 이 상품과 함께 본 상품 -->
- <!-- STYLE24의 스타일링 추천 -->
- <div class="content wide pd_recommend" th:if="${lookbookList != null and !lookbookList.empty}">
- <div class="cont_head">
- <h3 class="subH1 t_c mb40">STYLE24의 스타일링 추천</h3>
- </div>
- <div class="cont_body" th:with="ithrCd=aa , contentsLoc=bb ">
- <!-- CONT-BODY -->
- <div class="area_slider">
- <div class="swiper-container">
- <div class="swiper-wrapper" >
- <div class="swiper-slide" th:each="lookbook, status : ${lookbookList}">
- <div class="page">
- <div class="pic">
- <span class="thumb" th:style="${'background-image:url(' + imgUrl+ lookbook.sysFileNm+');'}"></span>
- <!-- 상품피커 -->
- <th:block th:if="${lookbook.lookbookGoodsList != null and !lookbook.lookbookGoodsList.empty}"
- th:each="lookbookGoods, goodsStatus : ${lookbook.lookbookGoodsList}">
- <div class="item_picker" th:style="${'left:'+lookbookGoods.xlim+'%; top:'+lookbookGoods.ylim+'%;'}">
- <button type="button" th:onclick="fnLookbookPicker(this,[[${lookbookGoods.goodsCd}]]);"><span class="ico ico_picker"></span></button>
- <div class="pick_descr" >
- <a href="javascript:void(0);" >
- </a>
- </div>
- </div>
- </th:block>
- <!-- //상품피커 -->
- </div>
- <div class="item_wrap">
- <div class="item_area" th:if="${lookbook.lookbookGoodsList != null and !lookbook.lookbookGoodsList.empty}">
- <h5>
- 룩북 속 상품
- <span data-font="lato">(<th:block th:text="${#lists.size(lookbook.lookbookGoodsList)}"></th:block>)</span>
- </h5>
- <div class="li_item">
- <ul >
- <li th:each="lookbookGoods, status : ${lookbook.lookbookGoodsList}">
- <div class="item_prod" th:classappend="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}? 'unable' : ''"
- th:attr="goodsCd=${lookbookGoods.goodsCd}, optCdInfo=${lookbookGoods.optCdInfo},
- minOrdQty=${lookbookGoods.minOrdQty}, goodsType=${lookbookGoods.goodsType},
- ithrCd=${ithrCd}, contentsLoc=${contentsLoc}"> <!-- 판매불가 상품에 unable 추가 -->
- <div class="item_state">
- <th:block th:each="optCd : ${#strings.arraySplit(lookbookGoods.optCdInfo,',')}">
- <input type="hidden" name="lookbookGoodsOptCd" th:value="${optCd}"/>
- </th:block>
- <th:block th:if="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}">
- <a href="javascript:void(0);" class="itemLink" >
- </th:block>
- <th:block th:unless="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}">
- <a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${lookbookGoods.goodsCd}]], '',[[${ithrCd}]],[[${contentsLoc}]] )">
- </th:block>
- <div class="itemPic">
- <img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+lookbookGoods.sysImgNm+'?RS=100'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
- </div>
- <p class="itemBrand" th:text="${lookbookGoods.brandGroupNm}">CURLYSUE 컬리수</p>
- <div class="itemName" th:text="${lookbookGoods.goodsFullNm}">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
- <p class="itemPrice">
- <span id="itemCurrprice" th:text="${#numbers.formatInteger(lookbookGoods.currPrice, 0,'COMMA')}">1,000,000</span>
- <span class="itemPrice_original" th:if="${lookbookGoods.listPrice > lookbookGoods.currPrice}" th:text="${#numbers.formatInteger(lookbookGoods.listPrice, 0,'COMMA')}">1,000,000</span>
- <span class="itemPercent" th:if="${lookbookGoods.dcRate > 0}" th:text="|${#numbers.formatDecimal(lookbookGoods.dcRate,0,0)}%|">30%</span>
- </p>
- </a>
- </div>
- </div>
- </li>
- </ul>
- </div>
- <button type="button" class="btn btn_block btn_md" onclick="fnAddCartLookBookGoods(this);"><span>모두 쇼핑백 담기</span></button>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- Add Pagination -->
- <div class="swiper-pagination"></div>
- <!-- Add Arrows -->
- <div class="swiper-button-next"></div>
- <div class="swiper-button-prev"></div>
- </div>
- <!-- // CONT-BODY -->
- </div>
- </div>
- <!-- // STYLE24의 스타일링 추천 -->
- <!-- 브랜드 추천상품 -->
- <div class="content wide pd_brand" id="goodsRecommendbArea">
- </div>
- <!-- // 브랜드 추천상품 -->
- <!-- 이 상품과 비슷한 상품 -->
- <div class="content wide pd_relate" id="goodsLikebArea">
- </div>
- <!-- // 이 상품과 비슷한 상품 -->
- </div>
- <!-- 상품썸네일 크게보기 팝업 -->
- <div class="pd_pop full_pop pd_itemthumb_pop" id="pdItemThumbPop">
- <div class="full_popup_wrap">
- <h5 class="sr-only">상품썸네일 크게보기</h5>
- <div class="btn_close">
- <a href="" id="btn_close_itemThumbPop">닫기버튼</a>
- </div>
- <div class="full_pop_container">
- <!-- 배송교환반품안내 리스트 내용 -->
- </div>
- </div>
- </div>
- <!-- //상품썸네일 크게보기 팝업 -->
- </div>
- <!-- 바로구매 장바구니 등록 정보 저장을 위한 form -->
- <form id="directOrderForm" method="POST" action="/order/noMember"></form>
- <script th:src="@{'/biz/goods.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/goods.js"></script>
- <script th:inline="javascript">
- /*<![CDATA[*/
-
- var cateNm = "";
- // 다다익선 상품
- var fnGoodsTmtbSearch = function(params) {
- gagajf.ajaxSubmit("/goods/detail/tmtb/frame", "html", "goodsTmtbArea", params);
- }
-
- //세트 사이즈 클릭시
- function fnViewStockSet(obj, goodsCd, optCd1, optCd2, minOrdQty, maxOrdQty) {
-
- let target=$('.select_custom.item_opt2');
- let targetSize = target.length; //구성품 갯수
-
- let cnt = 0;
- let itemSize = 0;
- target.each(function(){
- if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
- if (goodsCd != $(this).find('.select').find('input[name=opt2]').attr('goodscd')){
- itemSize ++;
- }
- }
- });
-
- //내가 선택한 상품
- if (typeof ($(obj).find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(obj).find('input[name=opt2]').val())){
- itemSize ++;
- }
-
- let mGoodsCd = $("#cartForm input[name=goodsCd]").val();
- let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
- let goodsOption = [];
- if (targetSize == itemSize){
- target.each(function() {
- if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
- if (goodsCd != $(this).find('.select').find('input[name=opt2]').val()){
- goodsOption.push($(this).find('input[name=opt2]').val());
- }
- }
-
- });
-
- //내가 선택하 옵션
- goodsOption.push($(obj).find('input[name=opt2]').val()); //goodsCd|optCd|qty
-
- var maxCnt = maxOrdQty;
- var data = {arrGoodsOption : goodsOption
- ,minOrdQty : minOrdQty
- ,maxOrdQty : maxOrdQty
- ,goodsCd : mGoodsCd
- ,selfGoodsYn : selfGoodsYn
- };
- var jsonData = JSON.stringify(data);
-
- gagajf.ajaxJsonSubmit('/goods/detail/ajaxGoodsSetStockQty', jsonData, function(result) {
- var itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
- //console.log("itemCnt : "+itemCnt);
- if (maxCnt > itemCnt) {
- maxCnt = itemCnt;
- }
- if (minOrdQty > itemCnt) {
- //alert("무슨작업을 해야할가요?");
- return false; //무슨작업을 해야하나?
- }
-
- $("#cartForm input[name=ordQty]").val(minOrdQty);
- $("#cartForm input[name=maxOrdQty]").val(maxCnt);
- $("#cartForm input[name=minOrdQty]").val(minOrdQty);
- $("#cartForm input[name=cea]").val(minOrdQty);
- $("#cartForm input[name=cea]").attr("readonly",false);
- $("#cartForm input[name=stock]").val(itemCnt);
-
-
- fnSetTotalPrice();
- });
- }
- }
-
- // 수량 변경 클릭
- var fnAdjustOrderEa = function(obj) {
- if("G056_N" == $("#cartForm input[name=goodsType]").val() && "Y" == $("#cartForm input[name=selfGoodsYn]").val()){
- if(gagajf.isNull($("#cartForm input[name=optCd2]").val())){
- mcxDialog.alert("사이즈를 선택해 주세요.");
- return false;
- }
- }else{
- let target=$('.select_custom.item_opt2');
- let targetSize = target.length; //구성품 갯수
- let itemSize = 0;
- target.each(function(){
- if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
- itemSize ++;
- }
- });
-
- if (targetSize != itemSize){
- mcxDialog.alert("옵션을 선택해 주세요.");
- return false;
- }
- }
- let $obj = $(obj);
- let $target = $obj.parent().children('input[name="cea"]');
- let minOrdQty = parseInt($("#cartForm input[name=minOrdQty]").val());
- let ea =parseInt($target.val());
- if ($obj.attr('adjust') == '-') --ea;
- else ++ea;
- //var maxOrdQty = $("#cartForm input[name=maxOrdQty]").val();
- //if (maxOrdQty && ea > maxOrdQty) ea = maxOrdQty;
- if (ea.toString().length > parseInt($target.attr('maxlength'))) --ea;
- if (ea < 1) ea = minOrdQty;
- $target.val(ea);
- fnChangeOrderEa();
- }
- //옵션 갯수 변경
- var fnChangeOrderEa = function() {
- if("G056_N" == $("#cartForm input[name=goodsType]").val() && "Y" == $("#cartForm input[name=selfGoodsYn]").val()){
- if(gagajf.isNull($("#cartForm input[name=optCd2]").val())){
- mcxDialog.alert("사이즈를 선택해 주세요.");
- return false;
- }
- }else{
-
- let target=$('.select_custom.item_opt2');
- let targetSize = target.length; //구성품 갯수
- let itemSize = 0;
- target.each(function(){
- if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
- itemSize ++;
- }
- });
-
- if (targetSize != itemSize){
- mcxDialog.alert("옵션을 선택해 주세요.");
- return false;
- }
- }
- //let f = document.cartForm;
- let ea = parseInt($("#cartForm input[name=cea]").val());
- let buymin = parseInt($("#cartForm input[name=minOrdQty]").val());
- let buymax = parseInt($("#cartForm input[name=maxOrdQty]").val());
- let alertMsg = '';
- if (ea < buymin) {
- alertMsg = buymin+"개 부터 구매 가능합니다.";
- ea = buymin;
- }
- if (ea > buymax) {
- alertMsg = buymax+"개 까지만 구매 가능합니다.";
- ea = buymax;
- }
- $("#cartForm input[name=cea]").val(ea);
- $("#cartForm input[name=ordQty]").val(ea);
- if (alertMsg != ''){
- mcxDialog.alert(alertMsg);
- //return;
- }
-
- if (ea <= 1){
- $('.number_count').find('.minus').addClass('min_val');
- }else{
- $('.number_count').find('.minus').removeClass('min_val');
- }
- fnSetTotalPrice();
- }
-
- //합계 계산
- var fnSetTotalPrice = function() {
- //let f = document.cartForm;
- $('.price_box').show();
-
- let totalEa = 0;
- let totalPrice = 0;
-
- $('input[name="cea"]').each(function() {
- let ea = parseInt($(this).val());
- let addPrice = 0;
-
- if("G056_N" == $("#cartForm input[name=goodsType]").val() && "Y" == $("#cartForm input[name=selfGoodsYn]").val()){
- let target=$('.opt_size').find('input[name=opt]');
- target.each(function() {
- if ($(this).is(":checked")){
- addPrice += Number($(this).attr('addPrice'));
- }
- });
- }else{
-
- let target=$('.select_custom.item_opt2');
- target.each(function() {
- if (typeof ($(this).find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('input[name=opt2]').val())){
- addPrice += Number($(this).find('input[name=opt2]').attr('addPrice'));
- }
- });
- }
- let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
- totalEa += ea;
- if (goodsPrice > 0) {
- totalPrice += ((goodsPrice+addPrice) * ea);
- }
- });
- $('#goodsTotalQty').html(totalEa.addComma());
- $('#goodsTotalPrice').html(totalPrice.addComma());
-
- }
-
- //장바구니담기
- var fnAddCart = function(btnType){
-
- let goodsType = $("#cartForm input[name=goodsType]").val();
- if (goodsType == 'G056_N'){
- if (gagajf.isNull($("#cartForm input[name=optCd2]").val())) {
- if("Y" == $("#cartForm input[name=selfGoodsYn]").val()){
- mcxDialog.alert("사이즈를 선택해 주세요.");
- return false;
- }else{
- mcxDialog.alert("옵션을 선택해 주세요.");
- return false;
- }
-
- }
-
- let compsList = [];
- let obj = new Object();
- obj.goodsCd = $("#cartForm input[name=goodsCd]").val();
- obj.optCd = $("#cartForm input[name=optCd]").val();
- obj.goodsQty = $("#cartForm input[name=ordQty]").val();
- obj.goodsType = $("#cartForm input[name=goodsType]").val();
- obj.cartGb = btnType;
- obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
- obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
- obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
- obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
- compsList.push(obj);
-
- // 장바구니담기
- cfnAddCart(compsList);
- }else if (goodsType == 'G056_S'){ //수정요
-
- let target=$('.select_custom.item_opt2');
- let targetSize = target.length; //구성품 갯수
- let itemSize = 0;
- target.each(function(){
- if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
- itemSize ++;
- }
- });
-
- if (targetSize != itemSize){
- mcxDialog.alert("옵션을 선택해 주세요.");
- return false;
- }
-
- let cartGoodsList = [];
- let compsList = [];
- let goodsList = {
- cartCompsList : new Array()
- }
- target.each(function() {
- var arrInfo = $(this).find('input[name=opt2]').val().split('|'); // 상품코드|사이즈|구성수량
-
- var obj = new Object();
- obj.cartGb = btnType;
- obj.goodsType = $("#cartForm input[name=goodsType]").val();
- obj.goodsCd = $("#cartForm input[name=goodsCd]").val();
- obj.itemCd = arrInfo[0];
- obj.optCd = arrInfo[1];
- obj.goodsQty = $("#cartForm input[name=ordQty]").val();
- obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
- obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
- obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
- obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
- compsList.push(obj);
-
- });
-
- goodsList.cartCompsList = compsList;
- cartGoodsList.push(goodsList);
-
- // 장바구니담기
- cfnAddCart(cartGoodsList);
- }
-
- }
- // 룩북속 상품 쇼핑백 담기
- var fnAddCartLookBookGoods = function(obj){
-
- let $obj = $(obj);
- let $target = $obj.parent().find('.li_item').find('.item_prod');
- let goodsSize = $target.length;
- let btnType = "C";
- let params = [];
- let goodsIdx = 0;
- $target.each(function(){
- goodsIdx ++;
- if ($(this).hasClass('unable')) {
-
- }else{
-
- // 옵션확인
- let goodsCnt = $(this).find('input[name=lookbookGoodsOptCd]').length;
- if (goodsCnt == 1){
- let arrOpt = $(this).find('input[name=lookbookGoodsOptCd]').val();
- let arrOptInfo = arrOpt.split(':');
-
- let obj = new Object();
- obj.goodsCd = $(this).attr("goodsCd");
- //obj.optCd = $(this).attr("optCd");
- obj.optCd = arrOptInfo[1];
- obj.goodsQty = $(this).attr("minOrdQty");
- obj.goodsType = $(this).attr("goodsType");
- obj.cartGb = btnType;
- obj.afLinkCd = '';
- obj.ithrCd = $(this).attr("ithrCd");
- obj.contentsLoc = $(this).attr("contentsLoc");
- obj.planDtlSq = '';
- obj.multiGoodsGb = 'O' // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
- if (goodsIdx == goodsSize){
- obj.multiGoodsGb = 'E' // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
- }
- params.push(obj);
-
- // 장바구니담기
- cfnAddCart(params);
- }else{
- let $goods = $(this);
- let cartGoodsList = [];
- let compsList = [];
- let goodsList = {
- cartCompsList : new Array()
- }
-
- let arrInfo = $(this).find('input[name=lookbookGoodsOptCd]').val().split(','); // 상품코드단위
-
-
- $.each(arrInfo, function(idx, item) {
- let arrOptInfo = item.split(':');
-
- let obj = new Object();
- obj.cartGb = btnType;
- obj.goodsType = $goods.attr("goodsType");
- obj.goodsCd = $goods.attr("goodsCd");
- obj.itemCd =arrOptInfo[0];
- obj.optCd = arrOptInfo[1];
- obj.goodsQty = $goods.attr("minOrdQty");
- obj.afLinkCd = '';
- obj.ithrCd = $goods.attr("ithrCd");
- obj.contentsLoc = $goods.attr("contentsLoc");
- obj.planDtlSq = ''
- obj.multiGoodsGb = 'O' // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
- if (goodsIdx == goodsSize){
- obj.multiGoodsGb = 'E' // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
- }
- compsList.push(obj);
-
- });
- goodsList.cartCompsList = compsList;
- cartGoodsList.push(goodsList);
-
- // 장바구니담기
- cfnAddCart(cartGoodsList);
- }
-
- }
- });
-
- // 장바구니담기
- /* if (params.length > 0){
- cfnAddCart(params);
- } */
- }
-
- // 품절처리
- var fnOptionSoldout = function(){
- let $target=$("#cartForm").find('.form_field');
- let soldout = false;
- for(var i=0;i<$target.find('input[name="opt"]').length;i++){
-
- if($target.find('input[name="opt"]').eq(i).attr('disabled')) {
- soldout = true;
- }
- }
- let goodsType = [[${goodsInfo.goodsType}]];
- if (soldout && goodsType == 'G056_N'&& $("#cartForm input[name=selfGoodsYn]").val() == 'Y') {
- $(".info_restock").show();
- }
- }
-
- // 옵션2 조회
- var fnOption2 = function(ridx, goodsCd, optCd1, qty, minOrdQty, maxOrdQty ){
- let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
- let data = {goodsCd : goodsCd
- ,optCd1 : optCd1
- ,adminYn : $("#cartForm input[name=adminYn]").val()
- };
- let jsonData = JSON.stringify(data);
-
- gagajf.ajaxJsonSubmit('/goods/detail/option2/list', jsonData, function(result) {
-
- if (result.dataList != null && result.dataList.length > 0) {
- let tag = "";
- let $obj = null;
-
- if (selfGoodsYn == "Y"){
- if (ridx == 1){
- $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_1');
- }else if (ridx == 2){
- $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_2');
- }else if (ridx == 3){
- $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_3');
- }else if (ridx == 4){
- $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_4');
- }else{
- $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_5');
- }
-
- }else{
- $obj = $('.form_field .select_custom.item_opt2.item_opt2_1');
- }
-
- $.each(result.dataList, function(idx, item) {
- if (idx == 0){
- //$obj = $('#goodsOpt2'+item.goodsCd);
- //$obj = $('.form_field .select_custom.item_opt2.item_opt2_1');
-
- $obj.html('');
- $('.form_field .select_custom.item_opt2.' +item.goodsCd ).attr('disabled', false)
- //------
- tag += '<div class="combo">\n';
- tag += '<div class="select">옵션2선택</div>\n';
- tag += '<ul class="list">\n';
- //------
- //tag += '<li class="selected" id="goodsOpt2'+item.goodsCd+'">선택</li>\n';
- }
- let soldoutYn = "";
- let saleQty = (Number(qty) * Number(minOrdQty));
- if ("Y" == item.soldoutYn || Number(item.stockQty) <= Number(saleQty))soldoutYn = "true";
- if (selfGoodsYn == "Y"){
- tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSet(this, \''+ item.goodsCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';
- }else{
- tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \''+ item.goodsCd+'\' , \''+ item.optCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';
- }
- tag += '<div class="opt_name">'+ item.optCd2+'</div>\n';
- if (item.addPrice > 0){
- tag += '<div class="opt_price">+'+ item.addPrice.addComma() +'원</div>\n';
- }
- tag += '<input type="hidden" name="opt2" value="'+ item.goodsCd+'|'+item.optCd +'|'+qty +'" goodsCd="'+item.goodsCd+'" id="'+item.optCd+'" addPrice="'+item.addPrice+'" optCd="'+item.optCd+'" optCd1="'+item.optCd1+'" optCd2="'+item.optCd2+'" />\n';
- tag += '</li>\n';
- });
-
- if (!gagajf.isNull(tag)){
- //------
- tag += '</ul>\n';
- tag += '</div>\n';
- //------
- }
-
-
- $obj.append(tag);
- if (selfGoodsYn == "Y"){
- if (ridx == 1){
- var opt_selecter02_1 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_1');
- //$('.opt_set_select .select_custom.item_opt2.item_opt2_1').find('.combo .select').trigger('click');
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_1").addClass("on");
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_1").children(".combo").children(".list").css("display", "block");
- }else if (ridx == 2){
- var opt_selecter02_2 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_2');
- //$('.opt_set_select .select_custom.item_opt2.item_opt2_2').find('.combo .select').trigger('click');
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_2").addClass("on");
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_2").children(".combo").children(".list").css("display", "block");
- }else if (ridx == 3){
- var opt_selecter02_3 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_3');
- //$('.opt_set_select .select_custom.item_opt2.item_opt2_3').find('.combo .select').trigger('click');
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_3").addClass("on");
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_3").children(".combo").children(".list").css("display", "block");
- }else if (ridx == 4){
- var opt_selecter02_4 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_4');
- //$('.opt_set_select .select_custom.item_opt2.item_opt2_4').find('.combo .select').trigger('click');
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_4").addClass("on");
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_4").children(".combo").children(".list").css("display", "block");
- }else{
- var opt_selecter02_5 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_5');
- //$('.opt_set_select .select_custom.item_opt2.item_opt2_5').find('.combo .select').trigger('click');
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_5").addClass("on");
- //$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_5").children(".combo").children(".list").css("display", "block");
- }
-
- }else{
- var opt_selecter02 = new sCombo('.opt_select .select_custom.item_opt2.item_opt2_1');
- //$('.pd_detail .item_detail .opt_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_1").addClass("on");
- //$('.pd_detail .item_detail .opt_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_1").children(".combo").children(".list").css("display", "block");
- //$('.opt_select .select_custom.item_opt2.item_opt2_1').find('.combo .select').trigger('click');
-
- }
- }
-
- });
-
- }
-
- //룩북 피커 선택시 레이어 노출
- var fnLookbookPicker = function(obj,goodsCd){
- let $obj = $(obj);
- var str = '<div class="modal fade pd_pop pd_lookbook_pop" id="layer_lookbook_goods" tabindex="-1" role="dialog" aria-labelledby="pd_lookbook_label" aria-hidden="true">';
- let $target = $obj.parent().parent().parent().find('.item_prod');
-
- let goodsImg = '';
- let brandName = '';
- let goodsName = '';
- let currPrice = '';
- let listPrice = '';
- let dcRate = '';
- let soldout = '';
-
- $target.each(function(){
- if ($(this).attr('goodsCd') == goodsCd) {
-
- if ($(this).hasClass('unable')) soldout = 'sold_out';
-
- goodsImg = $(this).find('.itemPic').children('.pd_img').attr('src');
- brandName = $(this).find('.itemBrand').text();
- goodsName = $(this).find('.itemName').text();
- currPrice = $(this).find('#itemCurrprice').text();
- listPrice = $(this).find('.itemPrice_original').text();
- dcRate = $(this).find('.itemPercent').text();
- }
- });
-
- if (gagajf.isNull(goodsName)){
- return false;
- }
-
- let tag = '';
- tag += ' <div class="modal-dialog" role="document">\n';
- tag += ' <div class="modal-content">\n';
- tag += ' <div class="modal-header">\n';
- tag += ' <h5 class="modal-title sr-only" id="layer_lookbook_goods">상품정보</h5>\n';
- tag += ' </div>\n';
- tag += ' <div class="modal-body">\n';
- tag += ' <div class="itemsGrp">\n';
- tag += ' <div class="item_prod '+ soldout+'"> <!-- 품절일때 sold_out 클래스 추가 요청 -->\n';
- tag += ' <div class="item_state">\n';
- tag += ' <div class="itemLink">\n';
- tag += ' <div class="itemPic">\n';
- tag += ' <img alt="BLACK-a" class=" vLHTC pd_img" src="'+goodsImg +'?RS=260" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
- tag += ' </div>\n';
- tag += ' <p class="itemBrand">'+brandName+'</p>\n';
- tag += ' <div class="itemName">'+goodsName+'</div>\n';
- if (listPrice != currPrice){
- tag += ' <span class="itemPrice_original">'+listPrice+'</span>\n';
- }
- tag += ' <p class="itemPrice">'+currPrice+'\n';
- if (!gagajf.isNull(dcRate)){
- tag += ' <span class="itemPercent">'+dcRate+'</span>\n';
- }
- tag += ' </p>\n';
- if (gagajf.isNull(soldout)){
- tag += ' <button type="button" class="btn btn_default" onclick="cfnGoToGoodsDetail(\''+goodsCd+'\',\'\',\'\')"><span>자세히 보기</span></button>\n';
- }
- tag += ' </div>\n';
- tag += ' </div>\n';
- tag += ' </div>\n';
- tag += ' </div>\n';
- tag += ' </div>\n';
- tag += ' </div>\n';
- tag += ' </div>\n';
- tag += ' <a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer(\'layer_lookbook_goods\')" class="close-modal">Close</a>\n';
-
- if ($('#layer_lookbook_goods').length == 0) {
- $('body').append(str+tag+'</div>');
- $('#layer_lookbook_goods').modal("show");
- }
- }
-
-
- $(document).ready( function() {
-
- $('.timer_box').css('display', 'none');
-
- //공유 버튼 토글
- $("button[data-name=openShare]").on("click", function(){
- $(this).toggleClass("on").next(".shareWrap").toggleClass("on");
- return false;
- });
- //영역밖 클릭으로 공유토글 닫기
- $("body").on('click', function(e) {
- if(!$(".shareWrap.on").parent().has(e.target).length) {
- $("button[data-name=openShare]").removeClass("on");
- $(".shareWrap").removeClass("on");
- };
- });
-
- var params = new Object();
- params.goodsCd = [[${params.goodsCd}]];
- params.viewDt = [[${params.viewDt}]];
- params.preview = [[${params.preview}]];
- params.adminYn = [[${params.adminYn}]];
- params.goodsType = [[${params.goodsType}]];
- params.supplyCompCd = [[${params.supplyCompCd}]];
- params.brandGroupNm = [[${goodsInfo.brandGroupNm}]];
-
- // 다다익선 상품(ajax html)
- params.goodsOtherGb = "tmtb";
- params.ithrCd = "tmtb";
- params.contentsLoc = "tmtb";
- fnGoodsTmtbSearch(params);
-
- // 함께본 상품(ajax html)
- params.goodsOtherGb = "together";
- params.ithrCd = "tmtb";
- params.contentsLoc = "tmtb";
- fnGoodsTogetherSearch(params);
-
- // 추천 상품(ajax html)
- params.goodsOtherGb = "recommend";
- params.ithrCd = "tmtb";
- params.contentsLoc = "tmtb";
- fnGoodsRecommendSearch(params);
-
- // 비슷한 상품(ajax html)
- params.goodsOtherGb = "like";
- params.ithrCd = "tmtb";
- params.contentsLoc = "tmtb";
- fnGoodsLikeSearch(params);
-
-
- // 상품 대표설명 > 좌측 상품썸네일 navi, 우측 상품정보 고정
- $(window).scroll(function(){
- var scrollTop= $(window).scrollTop();
- var firstFixed = $('#header').outerHeight();
- var thumbListWrap_h = $('.pd_detail .thumb_list_wrap').outerHeight();
- var descWrap_h = $('.pd_detail .desc_wrap').outerHeight();
- var secondFixed_left = firstFixed + $('.pd_detail').outerHeight() - $('.pd_detail .thumb_nav_wrap').outerHeight();
- var secondFixed_right = firstFixed + $('.pd_detail .desc_wrap').outerHeight() - $(window).outerHeight();
- var secondFixed_right2 = firstFixed + $('.pd_detail').outerHeight() - $(window).outerHeight();
- /* 좌측 상품썸네일 navi 고정 */
- if (scrollTop > firstFixed){
- $('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixbottom').addClass('fixtop');
- }
- else if (scrollTop < firstFixed){
- $('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop');
- }
- if (scrollTop > secondFixed_left){
- $('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop').addClass('fixbottom');
- }
-
- /* 우측 상품정보 고정 */
- if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right) {
- $('.pd_detail .area_desc .desc_wrap').removeClass('absbottom').addClass('fixbottom');
- }
- else if (thumbListWrap_h > descWrap_h && scrollTop < secondFixed_right) {
- $('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom');
- }
- if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right2) {
- $('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom').addClass('absbottom');
- }
- });
- //슬라이드 - 상품 대표설명 > 좌측 상품썸네일 navi
- var thumbNavSwiper = new Swiper('.area_pic .thumb_nav_wrap .swiper-container', {
- direction: 'vertical',
- slidesPerView: 6,
- slidesPerGroup : 6,
- spaceBetween: 10,
- navigation: {
- nextEl: '.area_pic .thumb_nav_wrap .swiper-button-next',
- prevEl: '.area_pic .thumb_nav_wrap .swiper-button-prev',
- },
- });
- //상품 대표설명 > 상품썸네일 1개일때
- var thumblist = $('.area_pic .thumb_list_wrap li');
- var thumblistLength = thumblist.length;
- if (thumblistLength == 1) {
- thumblist.parents('.area_pic').addClass('onlyitem');
- } else {
- thumblist.parents('.area_pic').removeClass('onlyitem');
- }
- //상품 대표설명 > 좌측 상품썸네일 6개 이하일때
- var thumbnavSlide = $('.area_pic .thumb_nav_wrap .swiper-container .swiper-slide');
- var thumbnavLength = thumbnavSlide.length;
- if (thumbnavLength < 7) {
- thumbnavSlide.parents('.thumbnav').addClass('disabled');
- } else {
- thumbnavSlide.parents('.thumbnav').removeClass('disabled');
- }
- //상품 대표설명 > 좌측 상품썸네일 navi 선택시 해당 대표 썸네일 위치로 이동
- $(document).on('click','.pd_detail .area_pic .thumbnav .swiper-slide a',function(e){
- e.preventDefault();
- var hdHeight = $('#header').outerHeight();
- var targetThumb = $($(this).attr('href'));
- var topThumb = targetThumb.offset().top - hdHeight;
- $(this).parents('.thumbnav').find('.swiper-slide').removeClass('on');
- $(this).parent('.swiper-slide').addClass('on');
- targetThumb.siblings('li').removeClass('on');
- targetThumb.addClass('on');
- $('html,body').animate({scrollTop : topThumb}, 500);
- return false;
- });
- var opt_selecter01 = new sCombo('.opt_select .select_custom.item_opt1.item_opt1_1');
- var opt_selecter01_1 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_1');
- var opt_selecter01_2 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_2');
- var opt_selecter01_3 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_3');
- var opt_selecter01_4 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_4');
- var opt_selecter01_5 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_5');
- if (!gagajf.isNull([[${goodsInfo.socialSq}]])){
- $('.timer_box').css('display', 'block');
- /* 행사 남은시간 */
- function promotionTimer() {
- var endTime = new Date([[${goodsInfo.socialEddt}]]); // 남은시간 지정 30 March 2021 9:56:00 GMT+0900
- endTime = (Date.parse(endTime) / 1000);
-
- var now = new Date();
- now = (Date.parse(now) / 1000);
-
- var timeLeft = endTime - now;
-
- var days = Math.floor(timeLeft / 86400);
- var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
- var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
- var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
-
- if (hours < '10') { hours = '0' + hours; }
- if (minutes < '10') { minutes = '0' + minutes; }
- if (seconds < '10') { seconds = '0' + seconds; }
-
- if (Number(days) > 0 ){
- hours = Number(hours) + (Number(days) * 24);
- }
-
- $('#d-hours').html(hours);
- $('#d-minutes').html(minutes);
- $('#d-seconds').html(seconds);
- }
- setInterval(function() { promotionTimer(); }, 1000);
- }
-
-
- //스타일링 추천 picker
- $(document).on('mouseenter','.pd_recommend .area_slider .item_picker button',function(e){
- $(this).parents('.item_picker').find('.pick_descr').show();
- return false;
- }).on('mouseleave','.pd_recommend .area_slider .item_picker button', function(e){
- $(this).parents('.item_picker').find('.pick_descr').hide();
- return false;
- });
- //상품상세정보 더보기
- $(document).on('click','.pd_descrp .btn_more_box button',function(e){
- $('.pd_descrp .cont_body').toggleClass('on');
- $(this).toggleClass('active');
- $(this).parent('.btn_more_box').toggleClass('covered');
- var descrpToggle = $(this).find('span');
- $(descrpToggle).text($(descrpToggle).text() == '상세정보 더보기' ? '상세정보 접기' : '상세정보 더보기');
- return false;
- });
- //슬라이드 - STYLE24의 스타일링 추천
- var rcmdItemSwiper = new Swiper('.pd .pd_recommend .area_slider .swiper-container', {
- slidesPerView: 1,
- spaceBetween: 0,
- navigation: {
- nextEl: '.pd_recommend .swiper-button-next',
- prevEl: '.pd_recommend .swiper-button-prev',
- },
- pagination: {
- el: '.pd_recommend .swiper-pagination',
- clickable: true,
- },
- });
-
- fnOptionSoldout();
-
- // 광고 스크립트용
- var goodsNavigation = [[${goodsNavigation}]];
- var cate1Nm = "";
- var cate2Nm = "";
- var cate3Nm = "";
- var cate4Nm = "";
- var cate5Nm = "";
- if (!gagajf.isNull(goodsNavigation)) {
- cate1Nm = goodsNavigation.cate1Nm;
- cate2Nm = goodsNavigation.cate2Nm;
- cate3Nm = goodsNavigation.cate3Nm;
- cate4Nm = goodsNavigation.cate4Nm;
- cate5Nm = goodsNavigation.cate3Nm;
-
- if (!gagajf.isNull(cate1Nm)) {
- cateNm += cate1Nm;
- }
- if (!gagajf.isNull(cate2Nm)) {
- cateNm += ' > ' + cate2Nm;
- }
- if (!gagajf.isNull(cate3Nm)) {
- cateNm += ' > ' + cate3Nm;
- }
- if (!gagajf.isNull(cate4Nm)) {
- cateNm += ' > ' + cate4Nm;
- }
- if (!gagajf.isNull(cate5Nm)) {
- cateNm += ' > ' + cate5Nm;
- }
- }
- // 광고 스크립트용
-
- var snsGoodsImg = _uploadGoodsUrl + [[${goodsInfo.sysImgNm}]];
- var snsUrl = location.protocol + _PAGE_GOODS_DETAIL + params.goodsCd +'&colorCd =' + params.colorCd ;
- var snsGoodsFullNm = [[${goodsInfo.goodsFullNm}]];
-
- <!-- 페이스북 카카오스토리 연동 관련 메타태그 -->
- $("meta[property='og:url']").attr('content', snsUrl);
- $("meta[property='og:title']").attr('content', snsGoodsFullNm);
- $("meta[property='og:description']").attr('content', snsGoodsFullNm);
- $("meta[property='og:image']").attr('content', snsGoodsImg);
- <!-- 트위터 관련 메타태그 -->
- $("meta[name='twitter:url']").attr('content', snsUrl);
- $("meta[name='twitter:title']").attr('content', snsGoodsFullNm);
- $("meta[name='twitter:description']").attr('content', snsGoodsFullNm);
- $("meta[name='twitter:image']").attr('content', snsGoodsImg);
- // 추천솔류션 meta 설정
- $("meta[property='eg:type']").attr('content',"product");
- $("meta[property='eg:cuid']").attr('content',eglqueueCuid);
- $("meta[property='eg:itemId']").attr('content', [[${goodsInfo.goodsCd}]] );
- $("meta[property='eg:itemName']").attr('content',[[${goodsInfo.goodsFullNm}]] );
- $("meta[property='eg:itemImage']").attr('content', snsGoodsImg);
- $("meta[property='eg:itemUrl']").attr('content',snsUrl);
- $("meta[property='eg:originalPrice']").attr('content',[[${goodsInfo.listPrice}]]);
- $("meta[property='eg:salePrice']").attr('content',[[${goodsInfo.currPrice}]]);
- $("meta[property='eg:category1']").attr('content',cate1Nm);
- $("meta[property='eg:category2']").attr('content',cate2Nm);
- $("meta[property='eg:category3']").attr('content',cate3Nm);
- $("meta[property='eg:category4']").attr('content',cate4Nm);
- $("meta[property='eg:category5']").attr('content',cate5Nm);
- $("meta[property='eg:brandId']").attr('content',[[${goodsInfo.brandGroupNo}]]);
- $("meta[property='eg:brandName']").attr('content',[[${goodsInfo.brandGroupNm}]]);
- $("meta[property='eg:regDate']").attr('content',[[${goodsInfo.regDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
- $("meta[property='eg:updateDate']").attr('content',[[${goodsInfo.updDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
- $("meta[property='eg:stock']").attr('content',"");
- $("meta[property='eg:state']").attr('content',[[${goodsInfo.goodsStatNm}]]);
- $("meta[property='eg:description']").attr('content',null);
- $("meta[property='eg:extraImage']").attr('content',null);
- $("meta[property='eg:locale']").attr('content',"KR");
- $("meta[property='eg:isNew']").attr('content',([[${goodsInfo.formalGb}]] == 'G009_10')? 'True' :'False');
- $("meta[property='eg:etc1']").attr('content', [[${goodsInfo.selfGoodsYn}]]);
-
- // ep 쿠폰확인
- fnEpCouponDown([[${afLinkCd}]], [[${params.goodsCd}]], 1);
- });
-
- // 상품평 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
- var fnReviewLayerCollBack = function(){
- //슬라이드 - 베스트리뷰
- var bestReviewtSwiper = new Swiper('.area_rv_best .swiper-container', {
- slidesPerView: 2,
- spaceBetween: 20,
- navigation: {
- nextEl: '.area_rv_best .swiper-button-next',
- prevEl: '.area_rv_best .swiper-button-prev',
- },
- pagination: {
- el: '.area_rv_best .swiper-pagination',
- clickable: true,
- },
- });
-
- }
-
- $(document).on('click','.option_box [class^="opt_"] .select_custom .select',function(e){
- let selectHeight = $(this);
- let selectHeight02 = selectHeight.outerHeight();
- if($(this).find('.opt_name').length){
- $(this).siblings('.list').css({"top":selectHeight02});
- }else{
- $(this).siblings('.list').css({"top":"52px"});
- }
- });
-
- <!-- 210422_추가 : 상품썸네일 영상 -->
- var controller;
- var player = document.getElementById('player');
- window.onload = function() {
- try {
- var controller = new VgControllerClient({
- // target_window: document.getElementById('prodctThumbVideo').contentWindow
- target_window: document.getElementsByClassName('pd_mov').contentWindow
- });
- controller.on('ready', function(){
- //플레이어 준비 완료
- // controller.set_ratio('cover');
- // contain : 비율에 맞게 채웁니다.
- //fill : 화면에 꽉 차게 채웁니다.
- //enlargement : 세로 높이를 꽉 차게 맞춥니다. 좌우로 스크롤이 가능합니다
- controller.play();
- });
- controller.on('done', function(){
- //플레이어 재생 완료
- controller.play();
- });
- } catch(e) {
- // Videogateweay Controller Library는 window.postMessage API를 이용하기 때문에
- // 해당 기능을 지원하지 않는 웹브라우져에서는 동작하지 않습니다.
- // 이 부분에 적절한 fail-over 코드를 추가하여 주십시요.
- }
- }
- /*]]>*/
- </script>
- <!-- 광고 스크립트 -->
- <th:block th:replace="~{web/common/advertisements/GoodsDetailScriptsWeb :: scripts}"></th:block>
- <!-- //광고 스크립트 -->
- </th:block>
- </body>
- </html>
|