GoodsDetailFormWeb.html 137 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org"
  4. xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  5. layout:decorator="web/common/layout/DefaultLayoutWeb">
  6. <!--
  7. *******************************************************************************
  8. * @source : GoodsDetailFormWeb.html
  9. * @desc : 상품상세 Page
  10. *============================================================================
  11. * STYLE24
  12. * Copyright(C) 2020 TSIT, All rights reserved.
  13. *============================================================================
  14. * VER DATE AUTHOR DESCRIPTION
  15. * === =========== ========== =============================================
  16. * 1.0 2021.03.02 eskim 최초 작성
  17. *******************************************************************************
  18. -->
  19. <body>
  20. <th:block layout:fragment="content">
  21. <form id="nPayForm" name="nPayForm"></form>
  22. <form id="nPayWishForm" name="nPayWishForm" method="get">
  23. <input type="hidden" name="SHOP_ID" />
  24. <input type="hidden" name="ITEM_ID" />
  25. </form>
  26. <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')}">
  27. <script src="//developers.kakao.com/sdk/js/kakao.min.js"></script>
  28. <script type="text/javascript" src="https://wcs.naver.net/wcslog.js"></script>
  29. <!-- <th:block th:include="~{web/goods/GoodsIncludeFormWeb :: goodsNaviForm}"></th:block> -->
  30. <div class="wrap">
  31. <!-- 상품 대표설명 -->
  32. <div class="content pd_detail">
  33. <div class="cont_head">
  34. <h3 class="sr-only">상품 대표설명</h3>
  35. </div>
  36. <div class="cont_body">
  37. <!-- CONT-BODY -->
  38. <div class="item_detail">
  39. <div class="area_pic" th:if="${(goodsImgList != null and !goodsImgList.empty) or (goodsVideoList != null and !goodsVideoList.empty)}"
  40. th:with="videoYn=${(goodsVideoList != null and !goodsVideoList.empty)? 'Y' :'N'}">
  41. <div class="thumb_nav_wrap" >
  42. <div class="thumbnav">
  43. <div class="swiper-container" >
  44. <div class="swiper-wrapper">
  45. <th:block th:each="goodsVideo, status : ${goodsVideoList}">
  46. <div class="swiper-slide" th:classappend="${status.first}? 'on' : ''" >
  47. <a th:href="${'#navLocate'+ status.count}">
  48. <span class="thumb mov">
  49. <th:block th:if="${goodsVideo.videoGb == 'Y'}">
  50. <img th:src="${'https://img.youtube.com/vi/'+goodsVideo.kmcKey+'/default.jpg'}" alt="" >
  51. </th:block>
  52. <th:block th:unless="${goodsVideo.videoGb == 'Y'}">
  53. <img th:src="${kollusMediaUrl+'/poster/'+goodsVideo.kmcKey}" alt="" >
  54. </th:block>
  55. </span>
  56. </a>
  57. </div>
  58. </th:block>
  59. <th:block th:each="goodsImg, status : ${goodsImgList}">
  60. <div class="swiper-slide" th:classappend="${status.first and videoYn == 'N'}? 'on' : ''" th:with="count=${(videoYn == 'Y')? (status.count +1): status.count }"
  61. th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_F1')
  62. or #strings.contains(goodsImg.sysImgNm,'_L1')
  63. or #strings.contains(goodsImg.sysImgNm,'_L2'))}">
  64. <a th:href="${'#navLocate'+ count}">
  65. <span class="thumb">
  66. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=48'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  67. </span>
  68. </a>
  69. </div>
  70. </th:block>
  71. </div>
  72. </div>
  73. <div class="swiper-button-next"></div>
  74. <div class="swiper-button-prev"></div>
  75. </div>
  76. </div>
  77. <div class="thumb_list_wrap">
  78. <ul>
  79. <th:block th:each="goodsVideo, status : ${goodsVideoList}">
  80. <li th:id="${'navLocate'+ status.count}" th:classappend="${status.first}? 'on' : ''">
  81. <div class="movbox">
  82. <th:block th:if="${goodsVideo.videoGb == 'Y'}">
  83. <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&amp;loop=1;playlist='+goodsVideo.kmcKey}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  84. </th:block>
  85. <th:block th:unless="${goodsVideo.videoGb == 'Y'}">
  86. <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>
  87. </th:block>
  88. </div>
  89. </li>
  90. </th:block>
  91. <th:block th:each="goodsImg, status : ${goodsImgList}" >
  92. <th:block th:with="count=${(videoYn == 'Y')? (status.count +1): status.count }">
  93. <li th:id="${'navLocate'+ count}" th:classappend="${status.first and videoYn == 'N'}? 'on' : ''"
  94. th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_F1')
  95. or #strings.contains(goodsImg.sysImgNm,'_L1')
  96. or #strings.contains(goodsImg.sysImgNm,'_L2'))}">
  97. <a href="javascript:void(0);">
  98. <span class="thumb">
  99. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=1080'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  100. </span>
  101. </a>
  102. </li>
  103. </th:block>
  104. </th:block>
  105. </ul>
  106. </div>
  107. </div>
  108. <form name="cartForm" id="cartForm" method="post">
  109. <input type="hidden" name="mode">
  110. <input type="hidden" name="goodsCd" th:value="${params.goodsCd}" />
  111. <input type="hidden" name="contentsLoc" th:value="${params.contentsLoc}" />
  112. <input type="hidden" name="ithrCd" th:value="${params.ithrCd}" />
  113. <input type="hidden" name="planDtlSq" th:value="${params.planDtlSq}" />
  114. <input type="hidden" name="adminYn" th:value="${params.adminYn}" />
  115. <input type="hidden" name="optCd" />
  116. <input type="hidden" name="optCd1" />
  117. <input type="hidden" name="optCd2" />
  118. <input type="hidden" name="addPrice" />
  119. <input type="hidden" name="ordQty" />
  120. <input type="hidden" name="stock" />
  121. <input type="hidden" name="minOrdQty"/>
  122. <input type="hidden" name="maxOrdQty"/>
  123. <input type="hidden" name="goodsType" th:value="${goodsInfo.goodsType}"/>
  124. <input type="hidden" name="selfGoodsYn" th:value="${goodsInfo.selfGoodsYn}"/>
  125. <div class="area_desc">
  126. <div class="desc_wrap">
  127. <div class="timer_box" style="display:none;">
  128. <p>
  129. <span class="tit">남은시간</span>
  130. <span class="timer">
  131. <em id="d-days">0</em>
  132. <em id="d-hours">0</em>
  133. <em id="d-minutes">0</em>
  134. <em id="d-seconds">0</em>
  135. </span>
  136. </p>
  137. </div>
  138. <div class="descript_box">
  139. <div class="desc_top">
  140. <a href="javascript:void(0);" class="btn_brand" th:onclick="cfnGoToBrandMain([[${goodsInfo.brandGroupNo}]])" th:text="${goodsInfo.brandGroupNm}">NBA 키즈</a>
  141. <div class="shareSet">
  142. <button class="btn_share" data-name="openShare">공유하기</button>
  143. <th:block th:include="~{web/goods/GoodsIncludeFormWeb :: goodsSnsForm}"></th:block>
  144. </div>
  145. <button type="button" class="itemLike enp_mobon_wish" th:classappend="${goodsInfo.wishYn == 'Y'}? 'likeit' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${params.goodsCd}, goodsNm=${goodsInfo.goodsFullNm}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=${params.planDtlSq}">관심상품 추가</button>
  146. </div>
  147. <div class="desc_info">
  148. <div class="title_blk">
  149. <span class="codenumber" th:text="${goodsInfo.goodsCd}">
  150. N204TJ112P
  151. </span>
  152. <span class="comment" th:text="${goodsInfo.goodsTnm}">
  153. #가을 느낌 물씬!
  154. </span>
  155. <span class="name" th:text="${goodsInfo.goodsFullNm}">
  156. 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업
  157. </span>
  158. </div>
  159. <div class="price_blk">
  160. <span class="sale_percent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">
  161. 5%
  162. </span>
  163. <span class="sale_price" >
  164. <em th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}">134,100</em>원
  165. </span>
  166. <del class="org_price" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}" >
  167. <em th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">149,000</em>원
  168. </del>
  169. <span class="save_point" th:if="${goodsInfo.pntAmt > 0}">
  170. 스타일포인트 <th:block th:text="${#numbers.formatInteger(goodsInfo.pntAmt, 0,'COMMA')}"></th:block>P 적립예정
  171. </span>
  172. <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>
  173. </div>
  174. </div>
  175. <div class="desc_status" th:if="${not #strings.isEmpty(goodsInfo.delvResDt) }">
  176. <p>예약판매 상품 - <th:block th:text="${goodsInfo.delvResDt}"></th:block> 출고예정</p>
  177. </div>
  178. </div>
  179. <div class="benefit_box" th:if="${(cardInfoList != null and !cardInfoList.empty) or
  180. (goodsCouponList != null and !goodsCouponList.empty) or
  181. (tmtbList != null and !tmtbList.empty) or
  182. (freeGoodsList != null and !freeGoodsList.empty)}" >
  183. <dl>
  184. <div class="bnf_shopping" th:if="${(goodsCouponList != null and !goodsCouponList.empty) or
  185. (tmtbList != null and !tmtbList.empty) or
  186. (freeGoodsList != null and !freeGoodsList.empty) or
  187. (goodsCoupon1List != null and !goodsCoupon1List.empty) }" >
  188. <dt>쇼핑혜택</dt>
  189. <dd>
  190. <span th:if="${(goodsCoupon1List != null and !goodsCoupon1List.empty)}">
  191. <th:block th:each="goodsCoupon, status : ${goodsCoupon1List}" th:if="${status.first}">
  192. <em class="c_primary" >
  193. <th:block th:if="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${#numbers.formatInteger(goodsCoupon.dcVal, 0,'COMMA')}원|"></th:block>
  194. <th:block th:unless="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${goodsCoupon.dcVal}%|"></th:block>
  195. </em>
  196. 즉시할인
  197. </th:block>
  198. </span>
  199. <span th:if="${goodsCouponList != null and !goodsCouponList.empty}">
  200. <th:block th:each="goodsCoupon, status : ${goodsCouponList}" th:if="${status.first}">
  201. 최대 <em class="c_primary" >
  202. <th:block th:if="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${#numbers.formatInteger(goodsCoupon.dcVal, 0,'COMMA')}원|"></th:block>
  203. <th:block th:unless="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${goodsCoupon.dcVal}%|"></th:block>
  204. </em> 쿠폰 할인
  205. </th:block>
  206. </span>
  207. <span th:if="${tmtbList != null and !tmtbList.empty}">
  208. <th:block th:each="tmtb, status : ${tmtbList}" th:if="${status.first}">
  209. <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> 이상 구매 시
  210. <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> 할인
  211. </th:block>
  212. </span>
  213. <span th:if="${freeGoodsList != null and !freeGoodsList.empty}">
  214. <th:block th:each="freeGoods, status : ${freeGoodsList}" th:if="${status.first}">
  215. <th:block th:text="${freeGoods.goodsNm}"></th:block> 증정 <th:block th:if="${freeGoods.allYn == 'N'}" th:text="${'외 택1'}"></th:block></span>
  216. <button type="button" id="btn_bnfShopping_pop" class="btn_popup" th:onclick="cfGoodsShopBenefitInfo([[${goodsInfo.goodsCd}]])"><span>자세히</span></button>
  217. </dd>
  218. </div>
  219. <div class="bnf_card" th:if="${cardInfoList != null and !cardInfoList.empty}">
  220. <dt>카드혜택</dt>
  221. <dd>
  222. <th:block th:each="cardInfo, status : ${cardInfoList}">
  223. <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>
  224. <span th:if="${cardInfo.prmtGb == 'A' and cardInfo.dcGb == '3'}" th:text="${cardInfo.prmtNm}">프로모션명</span>
  225. <span th:if="${cardInfo.prmtGb == 'B'}">신용카드 무이자 혜택</span>
  226. </th:block>
  227. <button type="button" id="btn_bnfCard_pop" class="btn_popup" onclick="cfCardInfo();return false;"><span>자세히</span></button>
  228. </dd>
  229. </div>
  230. </dl>
  231. </div>
  232. <div class="option_box">
  233. <th:block th:if="${goodsInfo.selfGoodsYn =='Y' }"> <!-- 자사상품 -->
  234. <th:block th:if="${goodsInfo.goodsType =='G056_N' }"> <!-- 일반상품 -->
  235. <div class="opt_color" th:if="${goodsOption1List != null and !goodsOption1List.empty}" >
  236. <div class="opt_header">
  237. <span class="title">컬러</span>
  238. <span class="color" th:text="${goodsInfo.colorNm}">그레이</span>
  239. </div>
  240. <ul >
  241. <li th:each="goodsOption1, status : ${goodsOption1List}">
  242. <a href="javascript:void(0);" th:class="${params.colorCd == goodsOption1.optCd1}? 'on':''" th:onclick="cfnGoToGoodsDetail([[${goodsInfo.goodsCd}]], [[${goodsOption1.optCd1}]], 'IN15_01')"> <!-- 해당 컬러 상품페이지로 이동 -->
  243. <img th:src="${imgGoodsUrl+'/'+goodsOption1.sysImgNm +'?RS=64'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  244. </a>
  245. </li>
  246. </ul>
  247. </div>
  248. <div class="opt_size" th:if="${goodsOption2List != null and !goodsOption2List.empty}" >
  249. <div class="opt_header">
  250. <span class="title">사이즈</span>
  251. <span class="size">
  252. <em class="selectOptCd1"></em>
  253. <em class="selectOptCd1addPrice"></em>
  254. </span>
  255. <button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.colorCd}]] )"><span>사이즈정보</span></button>
  256. </div>
  257. <div class="form_field">
  258. <div th:each="goodsOption2, status : ${goodsOption2List}">
  259. <input type="radio" name="opt" th:id="${goodsOption2.optCd}" th:disabled="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}"
  260. th:attr="addPrice=${goodsOption2.addPrice}, optCd1=${goodsOption2.optCd1}, optCd2=${goodsOption2.optCd2}, optCd=${goodsOption2.optCd}"
  261. th:onclick="fnViewStock(this, [[${goodsInfo.goodsCd}]],[[${goodsOption2.optCd}]],[[${goodsOption2.optCd1}]],[[${goodsOption2.optCd2}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]] )" />
  262. <label th:for="${goodsOption2.optCd}"><span th:text="${goodsOption2.optCd2}" >100</span></label>
  263. </div>
  264. </div>
  265. </div>
  266. </th:block>
  267. <th:block th:if="${goodsInfo.goodsType =='G056_S' }"> <!-- 세트상품 -->
  268. <div class="opt_set_select" th:if="${goodsComposeList != null and !goodsComposeList.empty}" >
  269. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  270. <div class="set_option">
  271. <div class="opt_header">
  272. <span class="title" th:text="${goodsCompose.compsGoodsFullNm}">옵션</span>
  273. <button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsCompose.compsGoodsCd}]],[[${goodsCompose.colorCd}]] )"><span>사이즈정보</span></button>
  274. </div>
  275. <div class="form_field">
  276. <div class="select_custom item_opt1" th:classappend="${'item_opt1_'+status.count +' '+goodsCompose.compsGoodsCd}"
  277. th:if="${goodsCompose.goodsOption1List != null and !goodsCompose.goodsOption1List.empty}" >
  278. <div class="combo">
  279. <div class="select">옵션1선택</div>
  280. <ul class="list">
  281. <th:block th:each="goodsOption, optionStatus : ${goodsCompose.goodsOption1List}" >
  282. <li th:onclick="fnOption2([[${status.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],[[${goodsCompose.qty}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])"
  283. th:attr="aria-disabled=${(goodsCompose.goodsStat != 'G008_90' or goodsOption.stockQty <= 0)? 'true':''}, data-soldout=${(goodsOption.stockQty <= 0)? 'true':''}"
  284. >
  285. <div th:text="${goodsOption.optCd1Nm}">상품옵션</div>
  286. <div th:if="${goodsOption.addPrice > 0}" th:text="|+${#numbers.formatInteger(goodsOption.addPrice, 0,'COMMA')}원|">0원</div>
  287. <input type="hidden" name="opt" th:attr="addPrice=${goodsOption.addPrice}, optCd1=${goodsOption.optCd1},optCd2=${goodsOption.optCd2}, optCd=${goodsOption.optCd}"/>
  288. </li>
  289. </th:block>
  290. </ul>
  291. </div>
  292. </div>
  293. </div>
  294. <div class="form_field" th:id="${'form_field2_'+goodsCompose.compsGoodsCd}">
  295. <div class="select_custom item_opt2" th:classappend="${'item_opt2_'+status.count +' '+goodsCompose.compsGoodsCd}" disabled>
  296. <div class="combo">
  297. <div class="select">옵션2선택</div>
  298. <ul class="list" th:id="|goodsOpt2${goodsCompose.compsGoodsCd}|" >
  299. <!-- 옵션2 -->
  300. </ul>
  301. </div>
  302. </div>
  303. </div>
  304. </div>
  305. </th:block>
  306. </div>
  307. </th:block>
  308. </th:block>
  309. <th:block th:if="${goodsInfo.selfGoodsYn =='N' }"> <!-- 입점상품 -->
  310. <div class="opt_select" th:if="${goodsOption1List != null and !goodsOption1List.empty}">
  311. <div class="opt_header">
  312. <span class="title">옵션</span>
  313. <button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.colorCd}]] )"><span>사이즈정보</span></button>
  314. </div>
  315. <div class="form_field">
  316. <div class="select_custom item_opt1 item_opt1_1" th:classappend="${goodsInfo.goodsCd}" >
  317. <div class="combo">
  318. <div class="select">옵션1선택</div>
  319. <ul class="list">
  320. <th:block th:each="goodsOption, optionStatus : ${goodsOption1List}" >
  321. <li th:onclick="fnOption2([[${optionStatus.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],1,[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])"
  322. th:attr="aria-disabled=${(goodsOption.goodsStat != 'G008_90' or goodsOption.stockQty <= 0)? 'true':''}, data-soldout=${(goodsOption.stockQty <= 0)? 'true':''}">
  323. <div th:text="${goodsOption.optCd1}">상품옵션</div>
  324. <div th:if="${goodsOption.addPrice > 0}" th:text="|+${#numbers.formatInteger(goodsOption.addPrice, 0,'COMMA')}원|">0원</div>
  325. <input type="hidden" name="opt" th:attr="addPrice=${goodsOption.addPrice}, optCd1=${goodsOption.optCd1},optCd2=${goodsOption.optCd2}, optCd=${goodsOption.optCd}"/>
  326. </li>
  327. </th:block>
  328. </ul>
  329. </div>
  330. </div>
  331. </div>
  332. <div class="form_field" th:id="${'form_field2_'+goodsInfo.goodsCd}">
  333. <div class="select_custom item_opt2 item_opt2_1" th:classappend="${goodsInfo.goodsCd}" disabled>
  334. <div class="combo">
  335. <div class="select">옵션2선택</div>
  336. <ul class="list" th:id="|goodsOpt2${goodsInfo.goodsCd}|" >
  337. <!-- 옵션2 -->
  338. </ul>
  339. </div>
  340. </div>
  341. </div>
  342. </div>
  343. </th:block>
  344. <!-- 해당 상품 품절시 노출 -->
  345. <div class="info_restock" style="display:none;">
  346. <a href="javascript:void(0);" id="btn_pushRestock_pop" class="btn_popup" th:onclick="cfGoodsInstockAlarmInfo([[${goodsInfo.goodsCd}]], [[${goodsInfo.colorCd}]])">재입고 시 알림을 받아보세요</a>
  347. </div>
  348. <!-- //해당 상품 품절시 노출 -->
  349. <div class="opt_count">
  350. <div class="opt_header">
  351. <span class="title">수량</span>
  352. </div>
  353. <div class="number_count">
  354. <span class="minus min_val" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">감소</em></span>
  355. <input type="text" name="cea" maxlength="3" style="ime-mode:disabled" th:value="${goodsInfo.minOrdQty}" readonly >
  356. <input type="hidden" name="coption" value="" th:attr="price=${goodsInfo.currPrice}">
  357. <span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">추가</em></span>
  358. </div>
  359. </div>
  360. </div>
  361. <div class="price_box" style="display:none;">
  362. <p class="number">
  363. 총&nbsp;<span id="goodsTotalQty">0</span>개
  364. </p>
  365. <p class="price">
  366. <span>
  367. <b id="goodsTotalPrice">0</b><em>원</em>
  368. </span>
  369. </p>
  370. </div>
  371. <div class="btn_box">
  372. <div class="btn_group_block ui_row">
  373. <th:block th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
  374. <div class="ui_col_6">
  375. <button type="button" class="btn btn_dark btn_block enp_mobon_cart" id="btnGoodsWish" onclick="fnAddCart('C');"><span>쇼핑백</span></button>
  376. </div>
  377. <div class="ui_col_6">
  378. <button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="fnAddCart('O');"><span>바로구매</span></button>
  379. </div>
  380. </th:block>
  381. <th:block th:unless="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
  382. <div class="ui_col_12">
  383. <button type="button" class="btn btn_dark btn_block" disabled=""><span>SOLD OUT</span></button>
  384. </div>
  385. </th:block>
  386. </div>
  387. </div>
  388. <th:block th:if="${sessionInfo != null and (sessionInfo.custId == 'xodud1202' or sessionInfo.custId == 'jsh77b' or sessionInfo.custId == 'card007')}">
  389. <div style="margin-top:10px;">
  390. <th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
  391. <script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.pc.js.url')}" src="" charset="UTF-8"></script>
  392. <script th:inline="javascript">
  393. if(!wcs_add) var wcs_add = {};
  394. wcs_add["wa"] = [[${@environment.getProperty('naverPay.common.certification.key')}]];
  395. wcs.inflow("style24.com");
  396. wcs_do();
  397. </script>
  398. <script type="text/javascript" >
  399. /*버튼설정*/
  400. naver.NaverPayButton.apply({
  401. BUTTON_KEY : "[[${buttonKey}]]", // 네이버페이에서 제공받은 버튼 인증 키 입력
  402. TYPE : "C", // 버튼 모음 종류 설정
  403. COLOR : 1, // 버튼 모음의 색 설정
  404. COUNT : 2, // 버튼 개수 설정. 구매하기 버튼만 있으면(장바구니 페이지) 1, 찜하기 버튼도 있으면(상품 상세 페이지) 2를 입력.
  405. ENABLE : "Y", // 품절 등의 이유로 버튼 모음을 비활성화할 때에는 "N" 입력
  406. BUY_BUTTON_HANDLER : buy_nc, // 구매하기 버튼 이벤트 Handler 함수 등록, 품절인 경우 not_buy_nc 함수 사용
  407. WISHLIST_BUTTON_HANDLER : wishlist_nc, // 찜하기 버튼 이벤트 Handler 함수 등록
  408. "":""
  409. });
  410. /*네이버구매하기*/
  411. function buy_nc(url) {
  412. // 자사 일반 상품 정보
  413. let goodsCd = "[[${goodsInfo.goodsCd}]]";
  414. let optCd = $(".opt_size .form_field input[type=radio]:checked").attr("optcd");
  415. let goodsQty = $(".opt_count .number_count input[name=cea]").val();
  416. let goodsType = "[[${goodsInfo.goodsType}]]";
  417. let selfGoodsYn = "[[${goodsInfo.selfGoodsYn}]]";
  418. if (!goodsCd) {
  419. mcxDialog.alert("상품정보가 존재하지 않습니다. 새로고침 후 다시 시도해주세요.");
  420. return false;
  421. }
  422. if (!goodsQty || goodsQty < 1) {
  423. mcxDialog.alert("구매 수량을 확인해주세요."); /*수량*/
  424. return false;
  425. }
  426. if(goodsType == "G056_N") {
  427. // 자사 상품이 아닐 경우
  428. if(selfGoodsYn == "N") {
  429. optCd = $(".item_opt2 .select input[name=opt2]").attr("optcd"); // 입점업체 일반 상품
  430. }
  431. if (!optCd) {
  432. mcxDialog.alert("상품 옵션을 확인 할 수 없습니다. 새로고침 후 다시 시도해주세요."); /*옵션*/
  433. return false;
  434. }
  435. let compsList = [];
  436. let obj = new Object();
  437. obj.goodsCd = goodsCd;
  438. obj.optCd = optCd;
  439. obj.goodsQty = goodsQty;
  440. obj.goodsType = goodsType;
  441. obj.cartGb = "N";
  442. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  443. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  444. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  445. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  446. compsList.push(obj);
  447. // 장바구니담기
  448. cfnAddCart(compsList);
  449. } else {
  450. let itemCds = [];
  451. let optCds = [];
  452. $("#cartForm .area_desc .option_box .opt_set_select .item_opt2 .list>li").each(function() {
  453. if($(this).hasClass("selected")) {
  454. itemCds.push($(this).find("input[name=opt2]").attr("goodscd"));
  455. optCds.push($(this).find("input[name=opt2]").attr("optcd"));
  456. }
  457. });
  458. let goodsList = {
  459. cartCompsList : new Array()
  460. }
  461. let cartGoodsList = [];
  462. let compsList = [];
  463. for(let i = 0 ; i < itemCds.length ; i++) {
  464. if (!itemCds[i]) {
  465. mcxDialog.alert("구성 상품정보가 존재하지 않습니다. 새로고침 후 다시 시도해주세요.");
  466. return false;
  467. }
  468. if (!optCds[i]) {
  469. mcxDialog.alert("구성 상품 옵션을 확인 할 수 없습니다. 새로고침 후 다시 시도해주세요."); /*옵션*/
  470. return false;
  471. }
  472. let obj = new Object;
  473. obj.goodsCd = goodsCd;
  474. obj.itemCd = itemCds[i];
  475. obj.optCd = optCds[i];
  476. obj.goodsQty = goodsQty;
  477. obj.goodsType = goodsType;
  478. obj.cartGb = "N";
  479. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  480. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  481. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  482. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  483. compsList.push(obj);
  484. }
  485. goodsList.cartCompsList = compsList;
  486. cartGoodsList.push(goodsList);
  487. cfnAddCart(cartGoodsList);
  488. }
  489. return false;
  490. }
  491. function buy_nc_req(cartSqArr) {
  492. let data = { cartSqArr : cartSqArr
  493. , backUrl : location.href
  494. , goodsUrl : _PAGE_GOODS_DETAIL
  495. };
  496. let jsonData = JSON.stringify(data);
  497. $.ajax( {
  498. type : "POST",
  499. url : "/pg/nPayReq",
  500. dataType : 'json',
  501. data : jsonData,
  502. beforeSend : function(xhr, settings) {
  503. xhr.setRequestHeader("AJAX" , "true");
  504. xhr.setRequestHeader('Accept' , 'application/json');
  505. xhr.setRequestHeader('Content-Type' , 'application/json');
  506. },
  507. error: function(xhr, status, error) {
  508. mcxDialog.alert(status + '; ' + error);
  509. },
  510. success : function(result) {
  511. if (result.state == "sucess") {
  512. enp('create', 'conversion', 'is24', { device: 'W', paySys: 'naverPay' }); // 모비온 네이버주문형 클릭시
  513. window.open('about:blank', 'popupView');
  514. document.nPayForm.target = 'popupView';
  515. document.nPayForm.action = result.npayOrderUrl + "/" + result.orderKey + "/" + result.resultNo;
  516. document.nPayForm.submit();
  517. } else {
  518. mcxDialog.alert(result.message);
  519. }
  520. }
  521. });
  522. }
  523. <!-- 구매불가 -->
  524. function not_buy_nc() {
  525. mcxDialog.alert("죄송합니다. 네이버페이로 구매가 불가한 상품입니다.");
  526. return false;
  527. }
  528. <!-- 찜하기 -->
  529. function wishlist_nc() {
  530. let goodsCd = "[[${goodsInfo.goodsCd}]]";
  531. let goodsNm = "[[${goodsInfo.goodsNm}]]";
  532. let colorCd = "[[${goodsInfo.colorCd}]]";
  533. let currPrice = "[[${goodsInfo.currPrice}]]";
  534. let sysImgNm = "[[${goodsInfo.sysImgNm}]]";
  535. let selfGoodsYn = "[[${goodsInfo.selfGoodsYn}]]";
  536. let data = {};
  537. data.goodsCd = goodsCd;
  538. data.goodsNm = goodsNm;
  539. data.colorCd = colorCd;
  540. data.currPrice = currPrice;
  541. data.sysImgNm = sysImgNm;
  542. data.selfGoodsYn = selfGoodsYn;
  543. let jsonData = JSON.stringify(data);
  544. $.ajax( {
  545. type : "POST",
  546. url : "/pg/create/npay/zzim",
  547. dataType : 'json',
  548. data : jsonData,
  549. beforeSend : function(xhr, settings) {
  550. xhr.setRequestHeader("AJAX" , "true");
  551. xhr.setRequestHeader('Accept' , 'application/json');
  552. xhr.setRequestHeader('Content-Type' , 'application/json');
  553. },
  554. error: function(xhr, status, error) {
  555. mcxDialog.alert(status + '; ' + error);
  556. },
  557. success : function(result) {
  558. if (result.state == "success") {
  559. $('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
  560. $('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
  561. window.open('about:blank', 'popupView');
  562. document.nPayWishForm.target = 'popupView';
  563. document.nPayWishForm.action = result.action;
  564. document.nPayWishForm.submit();
  565. } else {
  566. mcxDialog.alert(result.message);
  567. }
  568. }
  569. });
  570. }
  571. //]]>
  572. </script>
  573. </th:block>
  574. </div>
  575. </th:block>
  576. <div class="exinfo_box">
  577. <ul>
  578. <li th:if="${reviewDisplayYn == 'Y'}">
  579. <div class="ex_review">
  580. <a href="javascript:void(0);" id="btn_pdReview_pop" th:onclick="cfGoodsReview([[${goodsInfo.goodsCd}]])">
  581. <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>
  582. <div class="star_score" th:if="${goodsInfo.reviewRegCnt > 0 }">
  583. <span class="star" th:with="starScore=${#numbers.formatDecimal((goodsInfo.score*100/5), 0,0)}">
  584. <em class="progbar" th:style="${'width:'+starScore+'%;' }"></em> <!-- 평점 style로 표기 -->
  585. </span>
  586. <span class="score"><em th:text="${goodsInfo.score}">4.3</em>점</span>
  587. </div>
  588. <div class="star_score" th:unless="${goodsInfo.reviewRegCnt > 0 }">
  589. <span class="star" >
  590. <em class="progbar" style="width:0%;"></em> <!-- 평점 style로 표기 -->
  591. </span>
  592. <span class="score"><em>0</em>점</span>
  593. </div>
  594. </a>
  595. </div>
  596. <!-- 베스트 리뷰 등록시 노출 -->
  597. <div class="best_review" th:if="${bestReviewList != null and !bestReviewList.empty}">
  598. <th:block th:each="bestReview, status : ${bestReviewList}" th:if="${status.first}">
  599. <a href="javascript:void(0);" id="btn_pdBestReview_pop" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]],'Y', '',[[${bestReview.reviewSq}]])" >
  600. <div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
  601. <th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
  602. <th:block th:if="${reviewAttach.fileGb == 'M'}" >
  603. <span class="thumb mov" th:style="${'background-image:url('+kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
  604. </th:block>
  605. <th:block th:unless="${reviewAttach.fileGb == 'M'}" >
  606. <span class="thumb" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span>
  607. </th:block>
  608. </th:block>
  609. </div>
  610. <div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.iscore*100/5), 0,0)}">
  611. <span class="star">
  612. <em class="progbar" th:style="${'width:'+starScore+'%;' }"></em> <!-- 평점 style로 표기 -->
  613. </span>
  614. <em class="ico ico_besttag"></em>
  615. </div>
  616. <div class="txt_best_review">
  617. <p th:text="${bestReview.reviewContent}">옷</p>
  618. </div>
  619. </a>
  620. </th:block>
  621. </div>
  622. <!-- //베스트 리뷰 등록시 노출 -->
  623. </li>
  624. <li>
  625. <div class="ex_qna">
  626. <a href="javascript:void(0);" id="btn_pdQnaList_pop" th:onclick="cfGoodsQng([[${goodsInfo.goodsCd}]])" >
  627. <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>
  628. </a>
  629. </div>
  630. </li>
  631. <li>
  632. <div class="ex_shipping">
  633. <a href="javascript:void(0);" id="btn_pdDeliveryPop" th:onclick="cfGoodsDelivery([[${goodsInfo.goodsCd}]])">
  634. <span class="tit">배송/교환/반품</span>
  635. <!-- 해당 배송정보 선택노출 -->
  636. <span class="txt_shippingfee" th:if="${goodsInfo.delvFee > 0}">배송비 <th:block th:text="${#numbers.formatInteger(goodsInfo.delvFee, 0,'COMMA')}" ></th:block>원
  637. <th:block th:if="${goodsInfo.minOrdAmt > 0}">(<th:block th:text="${#numbers.formatInteger(goodsInfo.minOrdAmt, 0,'COMMA')}" ></th:block>원 이상 무료배송)</th:block>
  638. </span>
  639. <span class="txt_shippingfee" th:if="${goodsInfo.delvFee <= 0}">무료배송</span>
  640. <span class="txt_shippingfee" th:if="${goodsInfo.quikDelvYn == 'Y'}">총알배송(오전 10시까지 주문 시)</span>
  641. <!-- //해당 배송정보 선택노출 -->
  642. </a>
  643. </div>
  644. </li>
  645. </ul>
  646. </div>
  647. </div>
  648. </div>
  649. </form>
  650. </div>
  651. </div>
  652. </div>
  653. <!-- 상품 대표설명 -->
  654. <!-- 함께하면 할인되는 다다익선 상품 -->
  655. <div class="content pd_together" id="goodsTmtbArea" th:if="${goodsList != null and !goodsList.empty}">
  656. <div class="cont_head">
  657. <h3 class="subH1 t_c mb40">
  658. 함께하면 할인되는 다다익선 상품
  659. </h3>
  660. </div>
  661. <div class="cont_body">
  662. <!-- CONT-BODY -->
  663. <div class="area_slider">
  664. <div class="swiper-container">
  665. <div class="swiper-wrapper">
  666. <div class="swiper-slide" th:each="goodsInfo, status : ${goodsList}">
  667. <div class="item_prod">
  668. <div class="item_state">
  669. <button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'active' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsInfo.goodsCd}, goodsNm=${goodsInfo.goodsFullNm}, ithrCd='IN15_02', contentsLoc='', planDtlSq=''">관심상품 추가</button>
  670. <a href="javascript:void(0);" th:onclick="cfnGoToGoodsDetail([[${goodsInfo.goodsCd}]], '','IN15_02','','','pc_detail');" class="itemLink" >
  671. <div class="itemPic">
  672. <img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm +'?RS=300'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  673. </div>
  674. <p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">BRAND NAME1</p>
  675. <div class="itemName" th:text="${goodsInfo.goodsFullNm}">남성 로고 자카드 방풍 패딩</div>
  676. <p class="itemPrice">
  677. <th:block th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}"></th:block>
  678. <span class="itemPrice_original" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}" th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">1,000,000</span>
  679. <span class="itemPercent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">30%</span>
  680. </p>
  681. </a>
  682. </div>
  683. </div>
  684. </div>
  685. </div>
  686. <!-- Add Scrollbar -->
  687. <div class="swiper-scrollbar"></div>
  688. </div>
  689. </div>
  690. <!-- // CONT-BODY -->
  691. </div>
  692. </div>
  693. <!-- // 함께하면 할인되는 다다익선 상품 -->
  694. <!-- 상품상세정보 -->
  695. <div class="content pd_descrp">
  696. <div class="cont_head">
  697. <h3 class="sr-only">상품상세정보</h3>
  698. </div>
  699. <div class="cont_body">
  700. <!-- 상품설명 노출 -->
  701. <div class="descrp_box" th:if="${goodsInfo.tobeFormYn == 'Y'}">
  702. <div class="desc_simple"> <!-- 상품 간략설명-->
  703. <span class="tit_desc" th:if="${goodsInfo.goodsTitle != null and !goodsInfo.goodsTitle.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTitle))}">사이드 밴딩으로 편안한 만능 슬랙스!</span>
  704. <p class="ptxt01"th:if="${goodsInfo.goodsTitleDesc}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTitleDesc))}">
  705. 슬림핏에 사이드 밴딩으로 편안함을 더해준 슬랙스입니다.
  706. </p>
  707. </div>
  708. <div class="desc_character" th:if="${goodsInfo.goodsSpecialDesc != null and !goodsInfo.goodsSpecialDesc.empty}"> <!-- 상품특징 -->
  709. <span class="tit_desc">상품특징</span>
  710. <p class="ptxt01">
  711. <th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsSpecialDesc))}"></th:block>
  712. </p>
  713. </div>
  714. </div>
  715. <!-- //상품설명 노출 -->
  716. <!-- 관리자 에디터입력 내용 공지 html -->
  717. <div class="mdhtml_box">
  718. <!-- 공지 -->
  719. <th:block th:if="${goodsNoticeList != null and !goodsNoticeList.empty}" >
  720. <th:block th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
  721. </th:block>
  722. <!-- 상세동영상 -->
  723. <th:block th:if="${goodsDescVideoList != null and !goodsDescVideoList.empty}">
  724. <th:block th:each="goodsVideo, status : ${goodsDescVideoList}">
  725. <div style="height:100px"></div><!-- 여백용 html -->
  726. <div class="movblock">
  727. <th:block th:if="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
  728. <iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  729. </th:block>
  730. <th:block th:unless="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
  731. <iframe width="840" height="472" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey+'?player_version=html5'}" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
  732. </th:block>
  733. </div>
  734. </th:block>
  735. </th:block>
  736. <!-- 상세 베너 -->
  737. <th:block th:if="${goodsDescBannerList != null and !goodsDescBannerList.empty}">
  738. <th:block th:each="goodsBanner, status : ${goodsDescBannerList}" >
  739. <th:block th:if="${goodsBanner.linkUrl != null and not #strings.equals(goodsBanner.linkUrl, '#')}" th:with="target=${(goodsBanner.linkTarget == 'N')? '_blank': '_self'}">
  740. <div style="height:100px"></div><!-- 여백용 html -->
  741. <a th:href="${goodsBanner.linkUrl}" th:target="${target}">
  742. <img th:src="${imgUrl+goodsBanner.imgPath}" alt="">
  743. </a>
  744. </th:block>
  745. <th:block th:unless="${goodsBanner.linkUrl != null and not #strings.equals(goodsBanner.linkUrl, '#')}">
  746. <div style="height:100px"></div><!-- 여백용 html -->
  747. <img th:src="${imgUrl+goodsBanner.imgPath}" alt="">
  748. </th:block>
  749. </th:block>
  750. </th:block>
  751. <!-- 관리자 에디터입력 내용 공지 html -->
  752. <!-- 공통상품베너 -->
  753. <!-- 관리자 에디터입력 내용 노출 상단 html -->
  754. <th:block th:if="${goodsInfo.goodsTopDesc != null and !goodsInfo.goodsTopDesc.empty}" >
  755. <div style="height:100px"></div><!-- 여백용 html -->
  756. <th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block>
  757. </th:block >
  758. <th:block th:if="${ goodsInfo.tobeFormYn == 'N' and goodsInfo.goodsDesc != null and !goodsInfo.goodsDesc.empty}" >
  759. <div style="height:100px"></div>
  760. <div id="goodsDescHtml"></div>
  761. </th:block>
  762. </div>
  763. <th:block th:if="${goodsInfo.tobeFormYn == 'Y'}">
  764. <!-- 착용컷 노출 -->
  765. <div class="view_outfit_box" th:if="${#strings.contains(goodsImgList,'_C1')
  766. or #strings.contains(goodsImgList,'_C2')
  767. or #strings.contains(goodsImgList,'_C3')
  768. or #strings.contains(goodsImgList,'_C4')
  769. or #strings.contains(goodsImgList,'_C5')}">
  770. <span class="tit_view">OUTFIT VIEW</span>
  771. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${status.first}">
  772. <span class="model_info" th:text="${goodsImg.modelInfo}">(모델정보 : 185cm / 78kg / XL 착용)</span>
  773. </th:block>
  774. <div class="view">
  775. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_C1')
  776. or #strings.contains(goodsImg.sysImgNm,'_C2')
  777. or #strings.contains(goodsImg.sysImgNm,'_C3')
  778. or #strings.contains(goodsImg.sysImgNm,'_C4')
  779. or #strings.contains(goodsImg.sysImgNm,'_C5')}">
  780. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  781. </th:block>
  782. </div>
  783. </div>
  784. <!-- //착용컷 노출 -->
  785. <!-- 상품컷 노출 -->
  786. <div class="view_detail_box" th:if="${#strings.contains(goodsImgList,'_01') or #strings.contains(goodsImgList,'_02')
  787. or #strings.contains(goodsImgList,'_D1') or #strings.contains(goodsImgList,'_D2')
  788. or #strings.contains(goodsImgList,'_D3') or #strings.contains(goodsImgList,'_D4')
  789. or #strings.contains(goodsImgList,'_D5') or #strings.contains(goodsImgList,'_D6')
  790. or #strings.contains(goodsImgList,'_D7') or #strings.contains(goodsImgList,'_D8')
  791. or #strings.contains(goodsImgList,'_D9') or #strings.contains(goodsImgList,'_D10')
  792. or #strings.contains(goodsImgList,'_D11') or #strings.contains(goodsImgList,'_D12')
  793. or #strings.contains(goodsImgList,'_D13') or #strings.contains(goodsImgList,'_D14')
  794. or #strings.contains(goodsImgList,'_D15') or #strings.contains(goodsImgList,'_D16')
  795. or #strings.contains(goodsImgList,'_D17') or #strings.contains(goodsImgList,'_D18')
  796. or #strings.contains(goodsImgList,'_D19') or #strings.contains(goodsImgList,'_D20')}">
  797. <span class="tit_view">PRODUCT VIEW</span>
  798. <div class="view">
  799. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01') or #strings.contains(goodsImg.sysImgNm,'_02')
  800. or #strings.contains(goodsImg.sysImgNm,'_D1') or #strings.contains(goodsImg.sysImgNm,'_D2')
  801. or #strings.contains(goodsImg.sysImgNm,'_D3') or #strings.contains(goodsImg.sysImgNm,'_D4')
  802. or #strings.contains(goodsImg.sysImgNm,'_D5') or #strings.contains(goodsImg.sysImgNm,'_D6')
  803. or #strings.contains(goodsImg.sysImgNm,'_D7') or #strings.contains(goodsImg.sysImgNm,'_D8')
  804. or #strings.contains(goodsImg.sysImgNm,'_D9') or #strings.contains(goodsImg.sysImgNm,'_D10')
  805. or #strings.contains(goodsImg.sysImgNm,'_D11') or #strings.contains(goodsImg.sysImgNm,'_D12')
  806. or #strings.contains(goodsImg.sysImgNm,'_D13') or #strings.contains(goodsImg.sysImgNm,'_D14')
  807. or #strings.contains(goodsImg.sysImgNm,'_D15') or #strings.contains(goodsImg.sysImgNm,'_D16')
  808. or #strings.contains(goodsImg.sysImgNm,'_D17') or #strings.contains(goodsImg.sysImgNm,'_D18')
  809. or #strings.contains(goodsImg.sysImgNm,'_D19') or #strings.contains(goodsImg.sysImgNm,'_D20')}">
  810. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  811. </th:block>
  812. </div>
  813. </div>
  814. <!-- //상품컷 노출 -->
  815. <!-- 원단 노출 -->
  816. <div class="view_fabric_box" th:if="${#strings.contains(goodsImgList,'_F1')}">
  817. <span class="tit_view">FABRIC</span>
  818. <div class="view">
  819. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_F1')}">
  820. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  821. </th:block>
  822. </div>
  823. </div>
  824. <!-- //원단 노출 -->
  825. <!-- 라벨 노출 -->
  826. <div class="view_label_box" th:if="${#strings.contains(goodsImgList,'_L1')
  827. or #strings.contains(goodsImgList,'_L2')}">
  828. <span class="tit_view">LABEL INFO</span>
  829. <div class="view">
  830. <span>
  831. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1')
  832. or #strings.contains(goodsImg.sysImgNm,'_L2')}">
  833. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=250'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  834. </th:block>
  835. </span>
  836. </div>
  837. </div>
  838. <!-- //네이밍룰 안맞는 이미지 노출 -->
  839. <div class="view_detail_box" th:if="${not #strings.contains(goodsImgList,'_01')}">
  840. <div class="view">
  841. <th:block th:each="goodsImg, status : ${goodsImgList}" >
  842. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  843. </th:block>
  844. </div>
  845. </div>
  846. <!-- //라벨 노출 -->
  847. </th:block>
  848. <!-- 세트상품일 경우구상상품의 정보도 노출 -START -->
  849. <th:block th:if="${goodsInfo.goodsType == 'G056_S' and goodsComposeList != null and !goodsComposeList.empty}">
  850. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  851. <th:block th:if="${ goodsCompose.tobeFormYn == 'N' and goodsCompose.goodsDesc != null and !goodsCompose.goodsDesc.empty}" >
  852. <div style="height:100px"></div>
  853. <div class="mdhtml_box">
  854. <div th:id="${'goodsDescHtml_' + goodsCompose.compsGoodsCd}"></div>
  855. </div>
  856. </th:block>
  857. <th:block th:if="${goodsCompose.tobeFormYn == 'Y'}">
  858. <!-- 상품명 -->
  859. <div class="mdhtml_box">
  860. <span class="tit_view" th:text="${goodsCompose.compsGoodsNm}">상품명</span>
  861. </div>
  862. <!-- 착용컷 노출 -->
  863. <div class="view_outfit_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_C1')
  864. or #strings.contains(goodsCompose.goodsImgList,'_C2')
  865. or #strings.contains(goodsCompose.goodsImgList,'_C3')
  866. or #strings.contains(goodsCompose.goodsImgList,'_C4')
  867. or #strings.contains(goodsCompose.goodsImgList,'_C5')}">
  868. <span class="tit_view">OUTFIT VIEW</span>
  869. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${status.first}">
  870. <span class="model_info" th:text="${goodsImg.modelInfo}">(모델정보 : 185cm / 78kg / XL 착용)</span>
  871. </th:block>
  872. <div class="view">
  873. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_C1')
  874. or #strings.contains(goodsImg.sysImgNm,'_C2')
  875. or #strings.contains(goodsImg.sysImgNm,'_C3')
  876. or #strings.contains(goodsImg.sysImgNm,'_C4')
  877. or #strings.contains(goodsImg.sysImgNm,'_C5')}">
  878. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  879. </th:block>
  880. </div>
  881. </div>
  882. <!-- //착용컷 노출 -->
  883. <!-- 상품컷 노출 -->
  884. <div class="view_detail_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_01') or #strings.contains(goodsCompose.goodsImgList,'_02')
  885. or #strings.contains(goodsCompose.goodsImgList,'_D1') or #strings.contains(goodsCompose.goodsImgList,'_D2')
  886. or #strings.contains(goodsCompose.goodsImgList,'_D3') or #strings.contains(goodsCompose.goodsImgList,'_D4')
  887. or #strings.contains(goodsCompose.goodsImgList,'_D5') or #strings.contains(goodsCompose.goodsImgList,'_D6')
  888. or #strings.contains(goodsCompose.goodsImgList,'_D7') or #strings.contains(goodsCompose.goodsImgList,'_D8')
  889. or #strings.contains(goodsCompose.goodsImgList,'_D9') or #strings.contains(goodsCompose.goodsImgList,'_D10')
  890. or #strings.contains(goodsCompose.goodsImgList,'_D11') or #strings.contains(goodsCompose.goodsImgList,'_D12')
  891. or #strings.contains(goodsCompose.goodsImgList,'_D13') or #strings.contains(goodsCompose.goodsImgList,'_D14')
  892. or #strings.contains(goodsCompose.goodsImgList,'_D15') or #strings.contains(goodsCompose.goodsImgList,'_D16')
  893. or #strings.contains(goodsCompose.goodsImgList,'_D17') or #strings.contains(goodsCompose.goodsImgList,'_D18')
  894. or #strings.contains(goodsCompose.goodsImgList,'_D19') or #strings.contains(goodsCompose.goodsImgList,'_D20')}">
  895. <span class="tit_view">PRODUCT VIEW</span>
  896. <div class="view">
  897. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01') or #strings.contains(goodsImg.sysImgNm,'_02')
  898. or #strings.contains(goodsImg.sysImgNm,'_D1') or #strings.contains(goodsImg.sysImgNm,'_D2')
  899. or #strings.contains(goodsImg.sysImgNm,'_D3') or #strings.contains(goodsImg.sysImgNm,'_D4')
  900. or #strings.contains(goodsImg.sysImgNm,'_D5') or #strings.contains(goodsImg.sysImgNm,'_D6')
  901. or #strings.contains(goodsImg.sysImgNm,'_D7') or #strings.contains(goodsImg.sysImgNm,'_D8')
  902. or #strings.contains(goodsImg.sysImgNm,'_D9') or #strings.contains(goodsImg.sysImgNm,'_D10')
  903. or #strings.contains(goodsImg.sysImgNm,'_D11') or #strings.contains(goodsImg.sysImgNm,'_D12')
  904. or #strings.contains(goodsImg.sysImgNm,'_D13') or #strings.contains(goodsImg.sysImgNm,'_D14')
  905. or #strings.contains(goodsImg.sysImgNm,'_D15') or #strings.contains(goodsImg.sysImgNm,'_D16')
  906. or #strings.contains(goodsImg.sysImgNm,'_D17') or #strings.contains(goodsImg.sysImgNm,'_D18')
  907. or #strings.contains(goodsImg.sysImgNm,'_D19') or #strings.contains(goodsImg.sysImgNm,'_D20')}">
  908. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  909. </th:block>
  910. </div>
  911. </div>
  912. <!-- //상품컷 노출 -->
  913. <!-- 원단 노출 -->
  914. <div class="view_fabric_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_F1')}">
  915. <span class="tit_view">FABRIC</span>
  916. <div class="view">
  917. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_F1')}">
  918. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  919. </th:block>
  920. </div>
  921. </div>
  922. <!-- //원단 노출 -->
  923. <!-- 라벨 노출 -->
  924. <div class="view_label_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_L1')
  925. or #strings.contains(goodsCompose.goodsImgList,'_L2')}">
  926. <span class="tit_view">LABEL INFO</span>
  927. <div class="view">
  928. <span>
  929. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1')
  930. or #strings.contains(goodsImg.sysImgNm,'_L2')}">
  931. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=250'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  932. </th:block>
  933. </span>
  934. </div>
  935. </div>
  936. <!-- //네이밍룰 안맞는 이미지 노출 -->
  937. <div class="view_detail_box" th:if="${not #strings.contains(goodsCompose.goodsImgList,'_01')}">
  938. <div class="view">
  939. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" >
  940. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  941. </th:block>
  942. </div>
  943. </div>
  944. <!-- //라벨 노출 -->
  945. </th:block>
  946. </th:block>
  947. </th:block>
  948. <!-- 세트상품일 경우구상상품의 정보도 노출 -END -->
  949. <!-- 관리자 에디터입력 내용 노출 하다단 html -->
  950. <div class="mdhtml_box" th:if="${goodsInfo.goodsDownDesc != null and !goodsInfo.goodsDownDesc.empty }" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
  951. <!-- 브랜드 노출 -->
  952. <div class="brand_box">
  953. <p class="name" th:text="${goodsInfo.brandGroupNm}">TBJ 티비제이</p>
  954. <a href="javascript:void(0);" class="btn btn_default" th:onclick="cfnGoToBrandMain([[${goodsInfo.brandGroupNo}]])" ><span>브랜드 홈 바로가기</span></a>
  955. </div>
  956. <!-- //브랜드 노출 -->
  957. <!-- 상품필수정보 노출 -->
  958. <div class="required_box" >
  959. <div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_N' and goodsNotiList != null and !goodsNotiList.empty}">
  960. <span class="title">상품고시정보</span>
  961. <div class="tbl type1 mt30">
  962. <table>
  963. <tbody>
  964. <tr th:each="goodsNoti, status : ${goodsNotiList}" >
  965. <th th:text="${goodsNoti.niItemNm}">스타일</th>
  966. <td th:text="${goodsNoti.niContent}">F94U-MD01XA60F0</td>
  967. </tr>
  968. </tbody>
  969. </table>
  970. </div>
  971. </div>
  972. <div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_S' and goodsComposeList != null and !goodsComposeList.empty}">
  973. <span class="title">상품고시정보</span>
  974. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  975. <div class="tbl type1 mt30">
  976. <table>
  977. <tbody>
  978. <tr th:each="goodsNoti, status : ${goodsCompose.goodsNotiList}" >
  979. <th th:text="${goodsNoti.niItemNm}">스타일</th>
  980. <td th:text="${goodsNoti.niContent}">F94U-MD01XA60F0</td>
  981. </tr>
  982. </tbody>
  983. </table>
  984. </div>
  985. </th:block>
  986. </div>
  987. <th:block th:if="${goodsInfo.goodsType == 'G056_N' and goodsSafeNo != null}" >
  988. <th:block th:if="${goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- 상세별도표시 -->
  989. <div class="area_kcl no-mark">
  990. <p class="tit normal"><th:block th:if="${goodsSafeNo.certFormNm}" th:text="${goodsSafeNo.certFormNm}"></th:block>
  991. <th:block th:if="${goodsSafeNo.certTypeNm}" th:text="${' ' + goodsSafeNo.certTypeNm}"></th:block> / 제품 상세정보 내 별도 표기</p>
  992. <p class="normal">제품 상세정보 내 표기되어 있습니다. 상품 정보를 확인해주세요.</p>
  993. <p class="t_info dot_info">해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.</p>
  994. </div>
  995. </th:block>
  996. <th:block th:unless="${goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- 인증 -->
  997. <th:block th:if="${goodsSafeNo.certType == 'G081_3'}" > <!-- 공급자적합성 -->
  998. <div class="area_kcl">
  999. <i class="ico ico_kcl"></i>
  1000. <p class="tit normal"><th:block th:if="${goodsSafeNo.certFormNm}" th:text="${goodsSafeNo.certFormNm}"></th:block>
  1001. <th:block th:if="${goodsSafeNo.certTypeNm}" th:text="${' ' + goodsSafeNo.certTypeNm}"></th:block> / 공급자적합성확인</p>
  1002. <p class="normal">공급자 적합성 확인 품목으로 국가통합인증을 필함</p>
  1003. <p class="t_info dot_info">해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.</p>
  1004. </div>
  1005. </th:block>
  1006. <th:block th:unless="${goodsSafeNo.certType == 'G081_3'}" > <!-- 공급자적합성 외 -->
  1007. <div class="area_kcl" >
  1008. <i class="ico ico_kcl"></i>
  1009. <th:block th:if="${goodsSafeNo.certFormGb != 'G084_4' and goodsSafeNo.certFormGb != 'G084_5' }">
  1010. <p class="tit normal" >
  1011. <th:block th:if="${goodsSafeNo.certDiv}" th:text="${goodsSafeNo.certDiv}"></th:block>
  1012. <th:block th:if="${goodsSafeNo.certOrganName}" th:text="${' /' + goodsSafeNo.certOrganName}"></th:block>
  1013. </p>
  1014. </th:block>
  1015. <th:block th:unless="${goodsSafeNo.certFormGb != 'G084_4' and goodsSafeNo.certFormGb != 'G084_5' }">
  1016. <p class="tit normal">
  1017. <th:block th:if="${goodsSafeNo.certFormNm}" th:text="${goodsSafeNo.certFormNm}"></th:block>
  1018. <th:block th:if="${goodsSafeNo.certTypeNm}" th:text="${' ' + goodsSafeNo.certTypeNm}"></th:block>
  1019. </p>
  1020. </th:block>
  1021. <p class="normal" >
  1022. <th:block th:if="${goodsSafeNo.certNum}" th:text="${'인증번호: ' + goodsSafeNo.certNum}"></th:block>
  1023. <th:block th:if="${goodsSafeNo.certFormGb != 'G084_4' and goodsSafeNo.certFormGb != 'G084_5' }">
  1024. <a th:href="@{http://www.safetykorea.kr/search/searchPop(certNum=${goodsSafeNo.certNum})}" target="_blank" class="linktxt3">상세보기</a>
  1025. </th:block>
  1026. </p>
  1027. <p class="t_info dot_info">
  1028. 해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.
  1029. </p>
  1030. </div>
  1031. </th:block>
  1032. </th:block>
  1033. </th:block>
  1034. <th:block th:if="${goodsInfo.goodsType == 'G056_S'}">
  1035. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  1036. <th:block th:if="${goodsCompose.goodsSafeNo != null}">
  1037. <th:block th:if="${goodsCompose.goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- 상세별도표시 -->
  1038. <div class="area_kcl no-mark">
  1039. <p class="tit normal"><th:block th:if="${goodsCompose.goodsSafeNo.certFormNm}" th:text="${goodsCompose.goodsSafeNo.certFormNm}"></th:block>
  1040. <th:block th:if="${goodsCompose.goodsSafeNo.certTypeNm}" th:text="${' ' + goodsCompose.goodsSafeNo.certTypeNm}"></th:block> / 제품 상세정보 내 별도 표기</p>
  1041. <p class="normal">제품 상세정보 내 표기되어 있습니다. 상품 정보를 확인해주세요.</p>
  1042. <p class="t_info dot_info">해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.</p>
  1043. </div>
  1044. </th:block>
  1045. <th:block th:unless="${goodsCompose.goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- 인증 -->
  1046. <th:block th:if="${goodsCompose.goodsSafeNo.certType == 'G081_3'}" > <!-- 공급자적합성 -->
  1047. <div class="area_kcl">
  1048. <i class="ico ico_kcl"></i>
  1049. <p class="tit normal"><th:block th:if="${goodsCompose.goodsSafeNo.certFormNm}" th:text="${goodsCompose.goodsSafeNo.certFormNm}"></th:block>
  1050. <th:block th:if="${goodsCompose.goodsSafeNo.certTypeNm}" th:text="${' ' + goodsCompose.goodsSafeNo.certTypeNm}"></th:block> / 공급자적합성확인</p>
  1051. <p class="normal">공급자 적합성 확인 품목으로 국가통합인증을 필함</p>
  1052. <p class="t_info dot_info">해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.</p>
  1053. </div>
  1054. </th:block>
  1055. <th:block th:unless="${goodsCompose.goodsSafeNo.certType == 'G081_3'}" > <!-- 공급자적합성 외 -->
  1056. <div class="area_kcl" >
  1057. <i class="ico ico_kcl"></i>
  1058. <th:block th:if="${goodsCompose.goodsSafeNo.certFormGb != 'G084_4' and goodsCompose.goodsSafeNo.certFormGb != 'G084_5' }">
  1059. <p class="tit normal">
  1060. <th:block th:if="${goodsCompose.goodsSafeNo.certDiv}" th:text="${goodsCompose.goodsSafeNo.certDiv}"></th:block>
  1061. <th:block th:if="${goodsCompose.goodsSafeNo.certOrganName}" th:text="${' / ' + goodsCompose.goodsSafeNo.certOrganName}"></th:block>
  1062. </th:block>
  1063. <th:block th:unless="${goodsCompose.goodsSafeNo.certFormGb != 'G084_4' and goodsCompose.goodsSafeNo.certFormGb != 'G084_5' }">
  1064. <p class="tit normal">
  1065. <th:block th:if="${goodsCompose.goodsSafeNo.certFormNm}" th:text="${goodsCompose.goodsSafeNo.certFormNm}"></th:block>
  1066. <th:block th:if="${goodsCompose.goodsSafeNo.certTypeNm}" th:text="${' ' + goodsCompose.goodsSafeNo.certTypeNm}"></th:block>
  1067. </p>
  1068. </th:block>
  1069. <p class="normal" >
  1070. <th:block th:if="${goodsCompose.goodsSafeNo.certNum}" th:text="${'인증번호: ' + goodsCompose.goodsSafeNo.certNum}"></th:block>
  1071. <th:block th:if="${goodsCompose.goodsSafeNo.certFormGb != 'G084_4' and goodsCompose.goodsSafeNo.certFormGb != 'G084_5' }">
  1072. <a th:href="@{http://www.safetykorea.kr/search/searchPop(certNum=${goodsCompose.goodsSafeNo.certNum})}" target="_blank" class="linktxt3">상세보기</a>
  1073. </th:block>
  1074. </p>
  1075. <p class="t_info dot_info">
  1076. 해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.
  1077. </p>
  1078. </div>
  1079. </th:block>
  1080. </th:block>
  1081. </th:block>
  1082. </th:block>
  1083. </th:block>
  1084. <div class="area_infotbl">
  1085. <span class="title">상품기본정보</span>
  1086. <th:block th:if="${goodsInfo.goodsType == 'G056_N'} ">
  1087. <div class="tbl type1 mt30">
  1088. <table>
  1089. <tbody>
  1090. <tr>
  1091. <th>상품코드</th>
  1092. <td th:text="${goodsInfo.goodsCd}">14443216</td>
  1093. </tr>
  1094. <tr>
  1095. <th>상품구분</th>
  1096. <td th:text="${goodsInfo.goodsGbNm}">병행수입</td>
  1097. </tr>
  1098. <tr>
  1099. <th>브랜드</th>
  1100. <td th:text="${goodsInfo.brandGroupNm}">TBJ</td>
  1101. </tr>
  1102. <tr>
  1103. <th>상품명</th>
  1104. <td th:text="${goodsInfo.goodsNm}">남성 테이퍼드 핏 겨울 기모면 스판 올 밴딩 팬츠</td>
  1105. </tr>
  1106. <th:block th:if="${goodsNotiList != null and !goodsNotiList.empty}">
  1107. <th:block th:each="goodsNoti, status : ${goodsNotiList}" th:if="${goodsNoti.niItemCd == 'G005_005'}">
  1108. <tr>
  1109. <th th:text="${goodsNoti.niItemNm}">제조사</th>
  1110. <td th:text="${goodsNoti.niContent}"></td>
  1111. </tr>
  1112. </th:block>
  1113. </th:block>
  1114. <tr>
  1115. <th>제조국</th>
  1116. <td th:text="${goodsInfo.originNm}">베트남</td>
  1117. </tr>
  1118. </tbody>
  1119. </table>
  1120. </div>
  1121. </th:block>
  1122. <th:block th:unless="${goodsInfo.goodsType == 'G056_N'} ">
  1123. <th:block th:if="${goodsComposeList != null and !goodsComposeList.empty}">
  1124. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  1125. <div class="tbl type1 mt30">
  1126. <table>
  1127. <tbody>
  1128. <tr>
  1129. <th>상품코드</th>
  1130. <td th:text="${goodsCompose.compsGoodsCd}">14443216</td>
  1131. </tr>
  1132. <tr>
  1133. <th>상품구분</th>
  1134. <td th:text="${goodsCompose.goodsGbNm}">병행수입</td>
  1135. </tr>
  1136. <tr>
  1137. <th>브랜드</th>
  1138. <td th:text="${goodsCompose.brandGroupNm}">TBJ</td>
  1139. </tr>
  1140. <tr>
  1141. <th>상품명</th>
  1142. <td th:text="${goodsCompose.compsGoodsNm}">남성 테이퍼드 핏 겨울 기모면 스판 올 밴딩 팬츠</td>
  1143. </tr>
  1144. <th:block th:if="${goodsCompose.goodsNotiList != null and !goodsCompose.goodsNotiList.empty}">
  1145. <th:block th:each="goodsNoti, status : ${goodsCompose.goodsNotiList}" th:if="${goodsNoti.niItemCd == 'G005_005'}">
  1146. <tr>
  1147. <th th:text="${goodsNoti.niItemNm}">제조사</th>
  1148. <td th:text="${goodsNoti.niContent}"></td>
  1149. </tr>
  1150. </th:block>
  1151. </th:block>
  1152. <tr>
  1153. <th>제조국</th>
  1154. <td th:text="${goodsCompose.originNm}">베트남</td>
  1155. </tr>
  1156. </tbody>
  1157. </table>
  1158. </div>
  1159. </th:block>
  1160. </th:block>
  1161. </th:block>
  1162. <p class="t_info dot_info mt20">
  1163. 주문제작 상품의 경우 주문 후 제작되어 판매되는 상품으로 제작 시점부터 반품/교환이 어려울 수 있습니다.
  1164. </p>
  1165. </div>
  1166. </div>
  1167. <!-- //상품필수정보 노출 -->
  1168. </div>
  1169. <div class="btn_more_box covered">
  1170. <button type="button" class="btn btn_default btn_md">
  1171. <span>상세정보 더보기</span>
  1172. </button>
  1173. </div>
  1174. </div>
  1175. <!-- //상품상세정보 -->
  1176. <!-- 이 상품과 함께 본 상품 -->
  1177. <div class="content wide pd_clickother" id="goodsTogetherbArea" th:if="${togetherGoodsList != null and !togetherGoodsList.empty}">
  1178. <div class="cont_head">
  1179. <h3 class="subH1 t_c mb40">이 상품과 함께 본 상품</h3>
  1180. </div>
  1181. <div class="cont_body">
  1182. <!-- CONT-BODY -->
  1183. <div class="area_slider">
  1184. <div class="swiper-container">
  1185. <div class="swiper-wrapper">
  1186. <div class="swiper-slide" th:each="result, status : ${togetherGoodsList}">
  1187. <div class="item_prod">
  1188. <div class="item_state">
  1189. <button type="button" class="itemLike" th:classappend="${result.product.itemId == 'Y'}? 'active' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${result.product.itemId}, goodsNm=${result.product.itemName}, ithrCd='IN15_03', contentsLoc='', planDtlSq=''">관심상품 추가</button>
  1190. <a href="javascript:void(0);" th:onclick="cfnGoToGoodsDetail([[${result.product.itemId}]], '','IN15_03','','','pc_detail');" class="itemLink" >
  1191. <div class="itemPic">
  1192. <img alt="" class="vLHTC pd_img" th:src="${result.product.itemImage +'?RS=300'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  1193. </div>
  1194. <p class="itemBrand" th:text="${result.product.brandName}">BRAND NAME1</p>
  1195. <div class="itemName" th:text="${result.product.itemName}">남성 로고 자카드 방풍 패딩</div>
  1196. <p class="itemPrice">
  1197. <th:block th:text="${#numbers.formatInteger(result.product.salePrice, 0,'COMMA')}"></th:block>
  1198. <th:block th:if="${result.product.originalPrice != result.product.salePrice}">
  1199. <span class="itemPrice_original" th:if="${result.product.originalPrice > result.product.salePrice}" th:text="${#numbers.formatInteger(result.product.originalPrice, 0,'COMMA')}">1,000,000</span>
  1200. <span class="itemPercent" th:if="${result.product.salePrice != result.product.originalPrice}" th:text="${(result.product.originalPrice == 0 ? 0 : #numbers.formatDecimal((result.product.originalPrice - result.product.salePrice) / (result.product.originalPrice * 1.0) * 100, 1, 0)) + '%'}">0%</span>
  1201. </th:block>
  1202. </p>
  1203. </a>
  1204. </div>
  1205. </div>
  1206. </div>
  1207. </div>
  1208. </div>
  1209. <!-- Add Pagination-->
  1210. <div class="swiper-pagination"></div>
  1211. <!-- Add Arrows -->
  1212. <div class="swiper-button-next"></div>
  1213. <div class="swiper-button-prev"></div>
  1214. </div>
  1215. <!-- // CONT-BODY -->
  1216. </div>
  1217. </div>
  1218. <!-- // 이 상품과 함께 본 상품 -->
  1219. <!-- STYLE24의 스타일링 추천 -->
  1220. <div class="content wide pd_recommend" th:if="${lookbookList != null and !lookbookList.empty}">
  1221. <div class="cont_head">
  1222. <h3 class="subH1 t_c mb40">STYLE24의 스타일링 추천</h3>
  1223. </div>
  1224. <div class="cont_body" th:with="ithrCd=aa , contentsLoc=bb ">
  1225. <!-- CONT-BODY -->
  1226. <div class="area_slider">
  1227. <div class="swiper-container">
  1228. <div class="swiper-wrapper" >
  1229. <div class="swiper-slide" th:each="lookbook, status : ${lookbookList}">
  1230. <div class="page">
  1231. <div class="pic">
  1232. <span class="thumb" th:style="${'background-image:url(' + imgUrl+ lookbook.sysFileNm+');'}"></span>
  1233. <!-- 상품피커 -->
  1234. <th:block th:if="${lookbook.lookbookGoodsList != null and !lookbook.lookbookGoodsList.empty}"
  1235. th:each="lookbookGoods, goodsStatus : ${lookbook.lookbookGoodsList}">
  1236. <div class="item_picker" th:style="${'left:'+lookbookGoods.xlim+'%; top:'+lookbookGoods.ylim+'%;'}">
  1237. <button type="button" th:onclick="fnLookbookPicker(this,[[${lookbookGoods.goodsCd}]]);"><span class="ico ico_picker"></span></button>
  1238. <div class="pick_descr" >
  1239. <a href="javascript:void(0);" >
  1240. </a>
  1241. </div>
  1242. </div>
  1243. </th:block>
  1244. <!-- //상품피커 -->
  1245. </div>
  1246. <div class="item_wrap">
  1247. <div class="item_area" th:if="${lookbook.lookbookGoodsList != null and !lookbook.lookbookGoodsList.empty}">
  1248. <h5>
  1249. 룩북 속 상품
  1250. <span data-font="lato">(<th:block th:text="${#lists.size(lookbook.lookbookGoodsList)}"></th:block>)</span>
  1251. </h5>
  1252. <div class="li_item">
  1253. <ul >
  1254. <li th:each="lookbookGoods, status : ${lookbook.lookbookGoodsList}">
  1255. <div class="item_prod" th:classappend="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}? 'unable' : ''"
  1256. th:attr="goodsCd=${lookbookGoods.goodsCd}, optCdInfo=${lookbookGoods.optCdInfo},
  1257. minOrdQty=${lookbookGoods.minOrdQty}, goodsType=${lookbookGoods.goodsType},
  1258. ithrCd=${ithrCd}, contentsLoc=${contentsLoc}"> <!-- 판매불가 상품에 unable 추가 -->
  1259. <div class="item_state">
  1260. <th:block th:each="optCd : ${#strings.arraySplit(lookbookGoods.optCdInfo,',')}">
  1261. <input type="hidden" name="lookbookGoodsOptCd" th:value="${optCd}"/>
  1262. </th:block>
  1263. <th:block th:if="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}">
  1264. <a href="javascript:void(0);" class="itemLink" >
  1265. </th:block>
  1266. <th:block th:unless="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}">
  1267. <a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${lookbookGoods.goodsCd}]], '','IN15_06','')">
  1268. </th:block>
  1269. <div class="itemPic">
  1270. <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'}+'\';'">
  1271. </div>
  1272. <p class="itemBrand" th:text="${lookbookGoods.brandGroupNm}">CURLYSUE 컬리수</p>
  1273. <div class="itemName" th:text="${lookbookGoods.goodsFullNm}">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
  1274. <p class="itemPrice">
  1275. <span id="itemCurrprice" th:text="${#numbers.formatInteger(lookbookGoods.currPrice, 0,'COMMA')}">1,000,000</span>
  1276. <span class="itemPrice_original" th:if="${lookbookGoods.listPrice > lookbookGoods.currPrice}" th:text="${#numbers.formatInteger(lookbookGoods.listPrice, 0,'COMMA')}">1,000,000</span>
  1277. <span class="itemPercent" th:if="${lookbookGoods.dcRate > 0}" th:text="|${#numbers.formatDecimal(lookbookGoods.dcRate,0,0)}%|">30%</span>
  1278. </p>
  1279. </a>
  1280. </div>
  1281. </div>
  1282. </li>
  1283. </ul>
  1284. </div>
  1285. <button type="button" class="btn btn_block btn_md" onclick="fnAddCartLookBookGoods(this);"><span>모두 쇼핑백 담기</span></button>
  1286. </div>
  1287. </div>
  1288. </div>
  1289. </div>
  1290. </div>
  1291. </div>
  1292. <!-- Add Pagination -->
  1293. <div class="swiper-pagination"></div>
  1294. <!-- Add Arrows -->
  1295. <div class="swiper-button-next"></div>
  1296. <div class="swiper-button-prev"></div>
  1297. </div>
  1298. <!-- // CONT-BODY -->
  1299. </div>
  1300. </div>
  1301. <!-- // STYLE24의 스타일링 추천 -->
  1302. <!-- 브랜드 추천상품 -->
  1303. <div class="content wide pd_brand" id="goodsRecommendbArea" th:if="${recommendGoodsList != null and !recommendGoodsList.empty}">
  1304. <div class="cont_head">
  1305. <h3 class="subH1 t_c mb40" th:text="${goodsInfo.brandGroupNm +' 추천상품'}"></h3>
  1306. </div>
  1307. <div class="cont_body">
  1308. <!-- CONT-BODY -->
  1309. <div class="area_slider">
  1310. <div class="swiper-container">
  1311. <div class="swiper-wrapper">
  1312. <div class="swiper-slide" th:each="result, status : ${recommendGoodsList}">
  1313. <div class="item_prod">
  1314. <div class="item_state">
  1315. <button type="button" class="itemLike" th:classappend="${result.product.itemId == 'Y'}? 'active' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${result.product.itemId}, goodsNm=${result.product.itemName}, ithrCd='IN15_03', contentsLoc='', planDtlSq=''">관심상품 추가</button>
  1316. <a href="javascript:void(0);" th:onclick="cfnGoToGoodsDetail([[${result.product.itemId}]], '','IN15_03','','','pc_detail');" class="itemLink" >
  1317. <div class="itemPic">
  1318. <img alt="" class="vLHTC pd_img" th:src="${result.product.itemImage +'?RS=300'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  1319. </div>
  1320. <p class="itemBrand" th:text="${result.product.brandName}">BRAND NAME1</p>
  1321. <div class="itemName" th:text="${result.product.itemName}">남성 로고 자카드 방풍 패딩</div>
  1322. <p class="itemPrice">
  1323. <th:block th:text="${#numbers.formatInteger(result.product.salePrice, 0,'COMMA')}"></th:block>
  1324. <th:block th:if="${result.product.originalPrice != result.product.salePrice}">
  1325. <span class="itemPrice_original" th:if="${result.product.originalPrice > result.product.salePrice}" th:text="${#numbers.formatInteger(result.product.originalPrice, 0,'COMMA')}">1,000,000</span>
  1326. <span class="itemPercent" th:if="${result.product.salePrice != result.product.originalPrice}" th:text="${(result.product.originalPrice == 0 ? 0 : #numbers.formatDecimal((result.product.originalPrice - result.product.salePrice) / (result.product.originalPrice * 1.0) * 100, 1, 0)) + '%'}">0%</span>
  1327. </th:block>
  1328. </p>
  1329. </a>
  1330. </div>
  1331. </div>
  1332. </div>
  1333. </div>
  1334. </div>
  1335. <!-- Add Pagination-->
  1336. <div class="swiper-pagination"></div>
  1337. <!-- Add Arrows -->
  1338. <div class="swiper-button-next"></div>
  1339. <div class="swiper-button-prev"></div>
  1340. </div>
  1341. <!-- // CONT-BODY -->
  1342. </div>
  1343. </div>
  1344. <!-- // 브랜드 추천상품 -->
  1345. <!-- 이 상품과 비슷한 상품 -->
  1346. <div class="content wide pd_relate" id="goodsLikebArea" th:if="${likeGoodsList != null and !likeGoodsList.empty}">
  1347. <div class="cont_head">
  1348. <h3 class="subH1 t_c mb40">이 상품과 비슷한 상품</h3>
  1349. </div>
  1350. <div class="cont_body">
  1351. <!-- CONT-BODY -->
  1352. <div class="area_slider">
  1353. <div class="swiper-container">
  1354. <div class="swiper-wrapper">
  1355. <div class="swiper-slide" th:each="result, status : ${likeGoodsList}">
  1356. <div class="item_prod">
  1357. <div class="item_state">
  1358. <button type="button" class="itemLike" th:classappend="${result.product.itemId == 'Y'}? 'active' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${result.product.itemId}, goodsNm=${result.product.itemName}, ithrCd='IN15_03', contentsLoc='', planDtlSq=''">관심상품 추가</button>
  1359. <a href="javascript:void(0);" th:onclick="cfnGoToGoodsDetail([[${result.product.itemId}]], '','IN15_03','','','pc_detail');" class="itemLink" >
  1360. <div class="itemPic">
  1361. <img alt="" class="vLHTC pd_img" th:src="${result.product.itemImage +'?RS=300'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  1362. </div>
  1363. <p class="itemBrand" th:text="${result.product.brandName}">BRAND NAME1</p>
  1364. <div class="itemName" th:text="${result.product.itemName}">남성 로고 자카드 방풍 패딩</div>
  1365. <p class="itemPrice">
  1366. <th:block th:text="${#numbers.formatInteger(result.product.salePrice, 0,'COMMA')}"></th:block>
  1367. <th:block th:if="${result.product.originalPrice != result.product.salePrice}">
  1368. <span class="itemPrice_original" th:if="${result.product.originalPrice > result.product.salePrice}" th:text="${#numbers.formatInteger(result.product.originalPrice, 0,'COMMA')}">1,000,000</span>
  1369. <span class="itemPercent" th:if="${result.product.salePrice != result.product.originalPrice}" th:text="${(result.product.originalPrice == 0 ? 0 : #numbers.formatDecimal((result.product.originalPrice - result.product.salePrice) / (result.product.originalPrice * 1.0) * 100, 1, 0)) + '%'}">0%</span>
  1370. </th:block>
  1371. </p>
  1372. </a>
  1373. </div>
  1374. </div>
  1375. </div>
  1376. </div>
  1377. </div>
  1378. <!-- Add Pagination-->
  1379. <div class="swiper-pagination"></div>
  1380. <!-- Add Arrows -->
  1381. <div class="swiper-button-next"></div>
  1382. <div class="swiper-button-prev"></div>
  1383. </div>
  1384. <!-- // CONT-BODY -->
  1385. </div>
  1386. </div>
  1387. <!-- // 이 상품과 비슷한 상품 -->
  1388. </div>
  1389. <!-- 상품썸네일 크게보기 팝업 -->
  1390. <div class="pd_pop full_pop pd_itemthumb_pop" id="pdItemThumbPop" th:if="${(goodsImgList != null and !goodsImgList.empty)}" >
  1391. <div class="full_popup_wrap">
  1392. <h5 class="sr-only">상품썸네일 크게보기</h5>
  1393. <div class="btn_close">
  1394. <a href="" id="btn_close_itemThumbPop">닫기버튼</a>
  1395. </div>
  1396. <div class="full_pop_container" th:with="videoYn=${(goodsVideoList != null and !goodsVideoList.empty)? 'Y' :'N'}">
  1397. <th:block th:each="goodsImg, status : ${goodsImgList}" th:with="count=${(videoYn == 'Y')? (status.count +1): status.count }"
  1398. th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_F1')
  1399. or #strings.contains(goodsImg.sysImgNm,'_L1')
  1400. or #strings.contains(goodsImg.sysImgNm,'_L2'))}">
  1401. <div th:id="${'popThumb'+ count}" class="scaleview" >
  1402. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'"></div>
  1403. </th:block>
  1404. </div>
  1405. </div>
  1406. </div>
  1407. <!-- //상품썸네일 크게보기 팝업 -->
  1408. </div>
  1409. <!-- 바로구매 장바구니 등록 정보 저장을 위한 form -->
  1410. <form id="directOrderForm" method="POST" action="/order/noMember"></form>
  1411. <script th:src="@{'/biz/goods.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/goods.js"></script>
  1412. <script th:inline="javascript">
  1413. /*<![CDATA[*/
  1414. //상품상세 적용
  1415. // 입점 html 에 태그가 정상적이지 않아 스크립트로 처리
  1416. if ("G056_S" == [[${goodsInfo.goodsType}]] ){
  1417. let goodsComposeList = ([[${goodsComposeList}]]);
  1418. if (goodsComposeList.length > 0){
  1419. var titStr = "";
  1420. $.each(goodsComposeList, function(idx, item) {
  1421. if ("N" == item.tobeFormYn && !gagajf.isNull(item.goodsDesc)){
  1422. titStr = '<span class="tit_view">'+item.compsGoodsNm+'</span>';
  1423. $('#goodsDescHtml_'+ item.compsGoodsCd).html(titStr + item.goodsDesc);
  1424. }
  1425. });
  1426. }
  1427. }else{
  1428. let goodsDesc = [[${goodsInfo.goodsDesc}]];
  1429. if ("N" == [[${goodsInfo.tobeFormYn}]] && !gagajf.isNull(goodsDesc)){
  1430. $('#goodsDescHtml').html([[${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}]]);
  1431. }
  1432. }
  1433. let socialSq = [[${goodsInfo.socialSq}]];
  1434. let socialEddt = [[${goodsInfo.socialEddt}]];
  1435. function promotionTimer() {
  1436. var endTime = new Date(socialEddt); // 남은시간 지정 30 March 2021 9:56:00 GMT+0900
  1437. endTime = (Date.parse(endTime) / 1000);
  1438. var now = new Date();
  1439. now = (Date.parse(now) / 1000);
  1440. var timeLeft = endTime - now;
  1441. var days = Math.floor(timeLeft / 86400);
  1442. var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
  1443. var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
  1444. var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
  1445. if (hours < '10') { hours = '0' + hours; }
  1446. if (minutes < '10') { minutes = '0' + minutes; }
  1447. if (seconds < '10') { seconds = '0' + seconds; }
  1448. if (Number(days) > 0 ){
  1449. // hours = Number(hours) + (Number(days) * 24);
  1450. $('#d-days').html(days);
  1451. }else{
  1452. $('#d-days').hide();
  1453. }
  1454. $('#d-hours').html(hours);
  1455. $('#d-minutes').html(minutes);
  1456. $('#d-seconds').html(seconds);
  1457. }
  1458. if (!gagajf.isNull(socialSq)){
  1459. $('.timer_box').css('display', 'block');
  1460. setInterval(function() { promotionTimer(); }, 1000);
  1461. };
  1462. var cateNm = "";
  1463. // 다다익선 상품
  1464. // var fnGoodsTmtbSearch = function(params) {
  1465. // gagajf.ajaxSubmit("/goods/detail/tmtb/frame", "html", "goodsTmtbArea", params);
  1466. // }
  1467. //사이즈 클릭시 - 단품
  1468. var fnViewStock = function(obj, goodsCd, optCd, optCd1, optCd2, minOrdQty, maxOrdQty) {
  1469. let $obj = $(obj);
  1470. let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
  1471. let $target = null;
  1472. if (selfGoodsYn == "Y"){
  1473. $target = $obj;
  1474. $target.prop("checked",true);
  1475. $(".selectOptCd1").html(optCd2);
  1476. }else{
  1477. $target = $obj.find('input[name="opt2"]');
  1478. }
  1479. let addPrice = $target.attr("addPrice");
  1480. $(".selectOptCd1addPrice").html('');
  1481. if (Number(addPrice) > 0) $(".selectOptCd1addPrice").html("(+" + addPrice.addComma() + "원)");
  1482. $("#cartForm input[name=optCd]").val(optCd);
  1483. $("#cartForm input[name=optCd1]").val(optCd1);
  1484. $("#cartForm input[name=optCd2]").val(optCd2);
  1485. $("#cartForm input[name=addPrice]").val(addPrice);
  1486. $("#cartForm input[name=ordQty]").val("");
  1487. let maxCnt = maxOrdQty;
  1488. let params = new Object();
  1489. params.goodsCd = goodsCd;
  1490. params.optCd = optCd;
  1491. params.optCd1 = optCd1;
  1492. params.optCd2 = optCd2;
  1493. params.selfGoodsYn = selfGoodsYn;
  1494. $.get("/goods/detail/ajaxGoodsStockQty", $.param(params), function(result) {
  1495. let itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
  1496. if (maxCnt > itemCnt) {
  1497. maxCnt = itemCnt;
  1498. }
  1499. if (minOrdQty > itemCnt) {
  1500. $target.prop("disabled", true);
  1501. }else{
  1502. $("#cartForm input[name=ordQty]").val(minOrdQty);
  1503. $("#cartForm input[name=maxOrdQty]").val(maxCnt);
  1504. $("#cartForm input[name=minOrdQty]").val(minOrdQty);
  1505. $("#cartForm input[name=cea]").val(minOrdQty);
  1506. //$("#cartForm input[name=cea]").attr("readonly",false);
  1507. $("#cartForm input[name=stock]").val(itemCnt);
  1508. $('.price_box').show();
  1509. fnSetTotalPrice();
  1510. // 모바일에서 작업해야함
  1511. if ('P' != _frontGb) {
  1512. $("#cartForm input[name=opt]").parent().find('label').removeClass('on');
  1513. $("#cartForm input[name=opt]").each(function(){
  1514. if ($(this).attr('optCd') == optCd){
  1515. $(this).parent().find('label').addClass('on');
  1516. }
  1517. });
  1518. }
  1519. }
  1520. }, "text");
  1521. }
  1522. //세트 사이즈 클릭시
  1523. function fnViewStockSet(obj, goodsCd, optCd1, optCd2, minOrdQty, maxOrdQty) {
  1524. let target=$('.select_custom.item_opt2');
  1525. let targetSize = target.length; //구성품 갯수
  1526. let cnt = 0;
  1527. let itemSize = 0;
  1528. target.each(function(){
  1529. if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
  1530. if (goodsCd != $(this).find('.select').find('input[name=opt2]').attr('goodscd')){
  1531. itemSize ++;
  1532. }
  1533. }
  1534. });
  1535. //내가 선택한 상품
  1536. if (typeof ($(obj).find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(obj).find('input[name=opt2]').val())){
  1537. itemSize ++;
  1538. }
  1539. let mGoodsCd = $("#cartForm input[name=goodsCd]").val();
  1540. let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
  1541. let goodsOption = [];
  1542. if (targetSize == itemSize){
  1543. target.each(function() {
  1544. if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
  1545. if (goodsCd != $(this).find('.select').find('input[name=opt2]').val()){
  1546. goodsOption.push($(this).find('input[name=opt2]').val());
  1547. }
  1548. }
  1549. });
  1550. //내가 선택하 옵션
  1551. goodsOption.push($(obj).find('input[name=opt2]').val()); //goodsCd|optCd|qty
  1552. var maxCnt = maxOrdQty;
  1553. var data = {arrGoodsOption : goodsOption
  1554. ,minOrdQty : minOrdQty
  1555. ,maxOrdQty : maxOrdQty
  1556. ,goodsCd : mGoodsCd
  1557. ,selfGoodsYn : selfGoodsYn
  1558. };
  1559. var jsonData = JSON.stringify(data);
  1560. gagajf.ajaxJsonSubmit('/goods/detail/ajaxGoodsSetStockQty', jsonData, function(result) {
  1561. var itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
  1562. //console.log("itemCnt : "+itemCnt);
  1563. if (maxCnt > itemCnt) {
  1564. maxCnt = itemCnt;
  1565. }
  1566. if (minOrdQty > itemCnt) {
  1567. $("#cartForm input[name=ordQty]").val(itemCnt);
  1568. $("#cartForm input[name=cea]").val(itemCnt);
  1569. $("#cartForm input[name=stock]").val(itemCnt);
  1570. $("#cartForm input[name=maxOrdQty]").val(itemCnt);
  1571. $("#cartForm input[name=minOrdQty]").val(itemCnt);
  1572. return false;
  1573. }
  1574. $("#cartForm input[name=ordQty]").val(minOrdQty);
  1575. $("#cartForm input[name=maxOrdQty]").val(maxCnt);
  1576. $("#cartForm input[name=minOrdQty]").val(minOrdQty);
  1577. $("#cartForm input[name=cea]").val(minOrdQty);
  1578. //$("#cartForm input[name=cea]").attr("readonly",false);
  1579. $("#cartForm input[name=stock]").val(itemCnt);
  1580. fnSetTotalPrice();
  1581. });
  1582. }
  1583. }
  1584. // 수량 변경 클릭
  1585. var fnAdjustOrderEa = function(obj) {
  1586. if("G056_N" == $("#cartForm input[name=goodsType]").val() && "Y" == $("#cartForm input[name=selfGoodsYn]").val()){
  1587. if(gagajf.isNull($("#cartForm input[name=optCd2]").val())){
  1588. mcxDialog.alert("사이즈를 선택해 주세요.");
  1589. return false;
  1590. }
  1591. }else{
  1592. let target=$('.select_custom.item_opt2');
  1593. let targetSize = target.length; //구성품 갯수
  1594. let itemSize = 0;
  1595. target.each(function(){
  1596. if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
  1597. itemSize ++;
  1598. }
  1599. });
  1600. if (targetSize != itemSize){
  1601. mcxDialog.alert("옵션을 선택해 주세요.");
  1602. return false;
  1603. }
  1604. }
  1605. let $obj = $(obj);
  1606. let $target = $obj.parent().children('input[name="cea"]');
  1607. let minOrdQty = parseInt($("#cartForm input[name=minOrdQty]").val());
  1608. let ea =parseInt($target.val());
  1609. if ($obj.attr('adjust') == '-') --ea;
  1610. else ++ea;
  1611. //var maxOrdQty = $("#cartForm input[name=maxOrdQty]").val();
  1612. //if (maxOrdQty && ea > maxOrdQty) ea = maxOrdQty;
  1613. //if (ea.toString().length > parseInt($target.attr('maxlength'))) --ea; ///===?
  1614. if (ea < 1) ea = minOrdQty;
  1615. $target.val(ea);
  1616. fnChangeOrderEa();
  1617. }
  1618. //옵션 갯수 변경
  1619. var fnChangeOrderEa = function() {
  1620. if("G056_N" == $("#cartForm input[name=goodsType]").val() && "Y" == $("#cartForm input[name=selfGoodsYn]").val()){
  1621. if(gagajf.isNull($("#cartForm input[name=optCd2]").val())){
  1622. mcxDialog.alert("사이즈를 선택해 주세요.");
  1623. return false;
  1624. }
  1625. }else{
  1626. let target=$('.select_custom.item_opt2');
  1627. let targetSize = target.length; //구성품 갯수
  1628. let itemSize = 0;
  1629. target.each(function(){
  1630. if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
  1631. itemSize ++;
  1632. }
  1633. });
  1634. if (targetSize != itemSize){
  1635. mcxDialog.alert("옵션을 선택해 주세요.");
  1636. return false;
  1637. }
  1638. }
  1639. //let f = document.cartForm;
  1640. let ea = parseInt($("#cartForm input[name=cea]").val());
  1641. let buymin = parseInt($("#cartForm input[name=minOrdQty]").val());
  1642. let buymax = parseInt($("#cartForm input[name=maxOrdQty]").val());
  1643. let alertMsg = '';
  1644. if (ea < buymin) {
  1645. alertMsg = buymin+"개 부터 구매 가능합니다.";
  1646. ea = buymin;
  1647. }
  1648. if (ea > buymax) {
  1649. alertMsg = buymax+"개 까지만 구매 가능합니다.";
  1650. ea = buymax;
  1651. }
  1652. $("#cartForm input[name=cea]").val(ea);
  1653. $("#cartForm input[name=ordQty]").val(ea);
  1654. if (alertMsg != ''){
  1655. mcxDialog.alert(alertMsg);
  1656. //return;
  1657. }
  1658. if (ea <= 1){
  1659. $('.number_count').find('.minus').addClass('min_val');
  1660. }else{
  1661. $('.number_count').find('.minus').removeClass('min_val');
  1662. }
  1663. fnSetTotalPrice();
  1664. }
  1665. //합계 계산
  1666. var fnSetTotalPrice = function() {
  1667. //let f = document.cartForm;
  1668. $('.price_box').show();
  1669. let totalEa = 0;
  1670. let totalPrice = 0;
  1671. $('input[name="cea"]').each(function() {
  1672. let ea = parseInt($(this).val());
  1673. let addPrice = 0;
  1674. if("G056_N" == $("#cartForm input[name=goodsType]").val() && "Y" == $("#cartForm input[name=selfGoodsYn]").val()){
  1675. let target=$('.opt_size').find('input[name=opt]');
  1676. target.each(function() {
  1677. if ($(this).is(":checked")){
  1678. addPrice += Number($(this).attr('addPrice'));
  1679. }
  1680. });
  1681. }else{
  1682. let target=$('.select_custom.item_opt2');
  1683. target.each(function() {
  1684. if (typeof ($(this).find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('input[name=opt2]').val())){
  1685. addPrice += Number($(this).find('input[name=opt2]').attr('addPrice'));
  1686. }
  1687. });
  1688. }
  1689. let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
  1690. totalEa += ea;
  1691. if (goodsPrice > 0) {
  1692. totalPrice += ((goodsPrice+addPrice) * ea);
  1693. }
  1694. });
  1695. $('#goodsTotalQty').html(totalEa.addComma());
  1696. $('#goodsTotalPrice').html(totalPrice.addComma());
  1697. }
  1698. //장바구니담기
  1699. var fnAddCart = function(btnType){
  1700. let goodsType = $("#cartForm input[name=goodsType]").val();
  1701. if (goodsType == 'G056_N'){
  1702. if (gagajf.isNull($("#cartForm input[name=optCd2]").val())) {
  1703. if("Y" == $("#cartForm input[name=selfGoodsYn]").val()){
  1704. mcxDialog.alert("사이즈를 선택해 주세요.");
  1705. return false;
  1706. }else{
  1707. mcxDialog.alert("옵션을 선택해 주세요.");
  1708. return false;
  1709. }
  1710. }
  1711. let compsList = [];
  1712. let obj = new Object();
  1713. obj.goodsCd = $("#cartForm input[name=goodsCd]").val();
  1714. obj.optCd = $("#cartForm input[name=optCd]").val();
  1715. obj.goodsQty = $("#cartForm input[name=ordQty]").val();
  1716. obj.goodsType = $("#cartForm input[name=goodsType]").val();
  1717. obj.cartGb = btnType;
  1718. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  1719. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  1720. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  1721. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  1722. compsList.push(obj);
  1723. // 장바구니담기
  1724. cfnAddCart(compsList);
  1725. }else if (goodsType == 'G056_S'){ //수정요
  1726. let target=$('.select_custom.item_opt2');
  1727. let targetSize = target.length; //구성품 갯수
  1728. let itemSize = 0;
  1729. target.each(function(){
  1730. if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
  1731. itemSize ++;
  1732. }
  1733. });
  1734. if (targetSize != itemSize){
  1735. mcxDialog.alert("옵션을 선택해 주세요.");
  1736. return false;
  1737. }
  1738. let cartGoodsList = [];
  1739. let compsList = [];
  1740. let goodsList = {
  1741. cartCompsList : new Array()
  1742. }
  1743. target.each(function() {
  1744. var arrInfo = $(this).find('input[name=opt2]').val().split('|'); // 상품코드|사이즈|구성수량
  1745. var obj = new Object();
  1746. obj.cartGb = btnType;
  1747. obj.goodsType = $("#cartForm input[name=goodsType]").val();
  1748. obj.goodsCd = $("#cartForm input[name=goodsCd]").val();
  1749. obj.itemCd = arrInfo[0];
  1750. obj.optCd = arrInfo[1];
  1751. obj.goodsQty = $("#cartForm input[name=ordQty]").val();
  1752. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  1753. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  1754. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  1755. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  1756. compsList.push(obj);
  1757. });
  1758. goodsList.cartCompsList = compsList;
  1759. cartGoodsList.push(goodsList);
  1760. // 장바구니담기
  1761. cfnAddCart(cartGoodsList);
  1762. }
  1763. }
  1764. // 룩북속 상품 쇼핑백 담기
  1765. var fnAddCartLookBookGoods = function(obj){
  1766. let $obj = $(obj);
  1767. let $target = $obj.parent().find('.li_item').find('.item_prod');
  1768. let goodsSize = $target.length;
  1769. let btnType = "C";
  1770. let goodsIdx = 0;
  1771. $target.each(function(){
  1772. let params = [];
  1773. goodsIdx ++;
  1774. if ($(this).hasClass('unable')) {
  1775. }else{
  1776. // 옵션확인
  1777. let goodsCnt = $(this).find('input[name=lookbookGoodsOptCd]').length;
  1778. if (goodsCnt == 1){
  1779. let arrOpt = $(this).find('input[name=lookbookGoodsOptCd]').val();
  1780. let arrOptInfo = arrOpt.split(':');
  1781. let obj = new Object();
  1782. obj.goodsCd = $(this).attr("goodsCd");
  1783. //obj.optCd = $(this).attr("optCd");
  1784. obj.optCd = arrOptInfo[1];
  1785. obj.goodsQty = $(this).attr("minOrdQty");
  1786. obj.goodsType = $(this).attr("goodsType");
  1787. obj.cartGb = btnType;
  1788. obj.afLinkCd = '';
  1789. obj.ithrCd = $(this).attr("ithrCd");
  1790. obj.contentsLoc = $(this).attr("contentsLoc");
  1791. obj.planDtlSq = '';
  1792. obj.multiGoodsGb = 'O' // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
  1793. if (goodsIdx == goodsSize){
  1794. obj.multiGoodsGb = 'E' // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
  1795. }
  1796. params.push(obj);
  1797. // 장바구니담기
  1798. cfnAddCart(params);
  1799. }else{
  1800. let $goods = $(this);
  1801. let cartGoodsList = [];
  1802. let compsList = [];
  1803. let goodsList = {
  1804. cartCompsList : new Array()
  1805. }
  1806. let arrInfo = $(this).find('input[name=lookbookGoodsOptCd]').val().split(','); // 상품코드단위
  1807. $.each(arrInfo, function(idx, item) {
  1808. let arrOptInfo = item.split(':');
  1809. let obj = new Object();
  1810. obj.cartGb = btnType;
  1811. obj.goodsType = $goods.attr("goodsType");
  1812. obj.goodsCd = $goods.attr("goodsCd");
  1813. obj.itemCd =arrOptInfo[0];
  1814. obj.optCd = arrOptInfo[1];
  1815. obj.goodsQty = $goods.attr("minOrdQty");
  1816. obj.afLinkCd = '';
  1817. obj.ithrCd = $goods.attr("ithrCd");
  1818. obj.contentsLoc = $goods.attr("contentsLoc");
  1819. obj.planDtlSq = ''
  1820. obj.multiGoodsGb = 'O' // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
  1821. if (goodsIdx == goodsSize){
  1822. obj.multiGoodsGb = 'E' // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
  1823. }
  1824. compsList.push(obj);
  1825. });
  1826. goodsList.cartCompsList = compsList;
  1827. cartGoodsList.push(goodsList);
  1828. // 장바구니담기
  1829. cfnAddCart(cartGoodsList);
  1830. }
  1831. }
  1832. });
  1833. // 장바구니담기
  1834. /* if (params.length > 0){
  1835. cfnAddCart(params);
  1836. } */
  1837. }
  1838. // 품절처리
  1839. var fnOptionSoldout = function(){
  1840. let $target=$("#cartForm").find('.form_field');
  1841. let soldout = false;
  1842. for(var i=0;i<$target.find('input[name="opt"]').length;i++){
  1843. if($target.find('input[name="opt"]').eq(i).attr('disabled')) {
  1844. soldout = true;
  1845. }
  1846. }
  1847. let goodsType = [[${goodsInfo.goodsType}]];
  1848. if (soldout && goodsType == 'G056_N'&& $("#cartForm input[name=selfGoodsYn]").val() == 'Y') {
  1849. $(".info_restock").show();
  1850. }
  1851. }
  1852. // 옵션2 조회
  1853. var fnOption2 = function(ridx, goodsCd, optCd1, qty, minOrdQty, maxOrdQty ){
  1854. let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
  1855. let data = {goodsCd : goodsCd
  1856. ,optCd1 : optCd1
  1857. ,adminYn : $("#cartForm input[name=adminYn]").val()
  1858. };
  1859. let jsonData = JSON.stringify(data);
  1860. gagajf.ajaxJsonSubmit('/goods/detail/option2/list', jsonData, function(result) {
  1861. if (result.dataList != null && result.dataList.length > 0) {
  1862. let tag = "";
  1863. let $obj = null;
  1864. if (selfGoodsYn == "Y"){
  1865. if (ridx == 1){
  1866. $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_1');
  1867. }else if (ridx == 2){
  1868. $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_2');
  1869. }else if (ridx == 3){
  1870. $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_3');
  1871. }else if (ridx == 4){
  1872. $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_4');
  1873. }else{
  1874. $obj = $('.opt_set_select .select_custom.item_opt2.item_opt2_5');
  1875. }
  1876. }else{
  1877. $obj = $('.form_field .select_custom.item_opt2.item_opt2_1');
  1878. ridx = 1; // 입점은 1로 고정
  1879. }
  1880. $.each(result.dataList, function(idx, item) {
  1881. if (idx == 0){
  1882. //$obj = $('#goodsOpt2'+item.goodsCd);
  1883. //$obj = $('.form_field .select_custom.item_opt2.item_opt2_1');
  1884. // $obj.html('');
  1885. $obj.remove();
  1886. // $('.form_field .select_custom.item_opt2.' +item.goodsCd ).attr('disabled', false)
  1887. //------
  1888. tag += '<div class="select_custom item_opt2 item_opt2_'+ridx+ ' '+goodsCd+'">\n';
  1889. tag += '<div class="combo">\n';
  1890. tag += '<div class="select">옵션2선택</div>\n';
  1891. tag += '<ul class="list">\n';
  1892. //------
  1893. //tag += '<li class="selected" id="goodsOpt2'+item.goodsCd+'">선택</li>\n';
  1894. }
  1895. let soldoutYn = "";
  1896. let disabledYn = "";
  1897. let saleQty = (Number(qty) * Number(minOrdQty));
  1898. if ("Y" == item.soldoutYn || Number(item.stockQty) < Number(saleQty)) soldoutYn = "true";
  1899. if (soldoutYn == "true") disabledYn= "true";
  1900. if (selfGoodsYn == "Y"){
  1901. tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSet(this, \''+ item.goodsCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';
  1902. }else{
  1903. tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \''+ item.goodsCd+'\' , \''+ item.optCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';
  1904. }
  1905. tag += '<div class="opt_name">'+ item.optCd2+'</div>\n';
  1906. if (item.addPrice > 0){
  1907. tag += '<div class="opt_price">+'+ item.addPrice.addComma() +'원</div>\n';
  1908. }
  1909. 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';
  1910. tag += '</li>\n';
  1911. });
  1912. if (!gagajf.isNull(tag)){
  1913. //------
  1914. tag += '</ul>\n';
  1915. tag += '</div>\n';
  1916. tag += '</div>\n';
  1917. //------
  1918. }
  1919. $('#form_field2_'+ goodsCd).append(tag);
  1920. //$obj.append(tag);
  1921. if (selfGoodsYn == "Y"){
  1922. if (ridx == 1){
  1923. var opt_selecter02_1 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_1');
  1924. //$('.opt_set_select .select_custom.item_opt2.item_opt2_1').find('.combo .select').trigger('click');
  1925. //$('.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");
  1926. //$('.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");
  1927. }else if (ridx == 2){
  1928. var opt_selecter02_2 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_2');
  1929. //$('.opt_set_select .select_custom.item_opt2.item_opt2_2').find('.combo .select').trigger('click');
  1930. //$('.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");
  1931. //$('.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");
  1932. }else if (ridx == 3){
  1933. var opt_selecter02_3 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_3');
  1934. //$('.opt_set_select .select_custom.item_opt2.item_opt2_3').find('.combo .select').trigger('click');
  1935. //$('.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");
  1936. //$('.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");
  1937. }else if (ridx == 4){
  1938. var opt_selecter02_4 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_4');
  1939. //$('.opt_set_select .select_custom.item_opt2.item_opt2_4').find('.combo .select').trigger('click');
  1940. //$('.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");
  1941. //$('.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");
  1942. }else{
  1943. var opt_selecter02_5 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_5');
  1944. //$('.opt_set_select .select_custom.item_opt2.item_opt2_5').find('.combo .select').trigger('click');
  1945. //$('.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");
  1946. //$('.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");
  1947. }
  1948. }else{
  1949. var opt_selecter02 = new sCombo('.opt_select .select_custom.item_opt2.item_opt2_1');
  1950. //$('.pd_detail .item_detail .opt_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_1").addClass("on");
  1951. //$('.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");
  1952. //$('.opt_select .select_custom.item_opt2.item_opt2_1').find('.combo .select').trigger('click');
  1953. }
  1954. }
  1955. });
  1956. }
  1957. //룩북 피커 선택시 레이어 노출
  1958. var fnLookbookPicker = function(obj,goodsCd){
  1959. let $obj = $(obj);
  1960. 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">';
  1961. let $target = $obj.parent().parent().parent().find('.item_prod');
  1962. let goodsImg = '';
  1963. let brandName = '';
  1964. let goodsName = '';
  1965. let currPrice = '';
  1966. let listPrice = '';
  1967. let dcRate = '';
  1968. let soldout = '';
  1969. $target.each(function(){
  1970. if ($(this).attr('goodsCd') == goodsCd) {
  1971. if ($(this).hasClass('unable')) soldout = 'sold_out';
  1972. goodsImg = $(this).find('.itemPic').children('.pd_img').attr('src');
  1973. brandName = $(this).find('.itemBrand').text();
  1974. goodsName = $(this).find('.itemName').text();
  1975. currPrice = $(this).find('#itemCurrprice').text();
  1976. listPrice = $(this).find('.itemPrice_original').text();
  1977. dcRate = $(this).find('.itemPercent').text();
  1978. }
  1979. });
  1980. if (gagajf.isNull(goodsName)){
  1981. return false;
  1982. }
  1983. let tag = '';
  1984. tag += ' <div class="modal-dialog" role="document">\n';
  1985. tag += ' <div class="modal-content">\n';
  1986. tag += ' <div class="modal-header">\n';
  1987. tag += ' <h5 class="modal-title sr-only" id="layer_lookbook_goods">상품정보</h5>\n';
  1988. tag += ' </div>\n';
  1989. tag += ' <div class="modal-body">\n';
  1990. tag += ' <div class="itemsGrp">\n';
  1991. tag += ' <div class="item_prod '+ soldout+'"> <!-- 품절일때 sold_out 클래스 추가 요청 -->\n';
  1992. tag += ' <div class="item_state">\n';
  1993. tag += ' <div class="itemLink">\n';
  1994. tag += ' <div class="itemPic">\n';
  1995. tag += ' <img alt="BLACK-a" class=" vLHTC pd_img" src="'+goodsImg +'?RS=260" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
  1996. tag += ' </div>\n';
  1997. tag += ' <p class="itemBrand">'+brandName+'</p>\n';
  1998. tag += ' <div class="itemName">'+goodsName+'</div>\n';
  1999. if (listPrice != currPrice){
  2000. tag += ' <span class="itemPrice_original">'+listPrice+'</span>\n';
  2001. }
  2002. tag += ' <p class="itemPrice">'+currPrice+'\n';
  2003. if (!gagajf.isNull(dcRate)){
  2004. tag += ' <span class="itemPercent">'+dcRate+'</span>\n';
  2005. }
  2006. tag += ' </p>\n';
  2007. if (gagajf.isNull(soldout)){
  2008. tag += ' <button type="button" class="btn btn_default" onclick="cfnGoToGoodsDetail(\''+goodsCd+'\',\'\',\'IN15_06\')"><span>자세히 보기</span></button>\n';
  2009. }
  2010. tag += ' </div>\n';
  2011. tag += ' </div>\n';
  2012. tag += ' </div>\n';
  2013. tag += ' </div>\n';
  2014. tag += ' </div>\n';
  2015. tag += ' </div>\n';
  2016. tag += ' </div>\n';
  2017. tag += ' <a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer(\'layer_lookbook_goods\')" class="close-modal">Close</a>\n';
  2018. if ($('#layer_lookbook_goods').length == 0) {
  2019. $('body').append(str+tag+'</div>');
  2020. $('#layer_lookbook_goods').modal("show");
  2021. }
  2022. }
  2023. //슬라이드 - 함께하면 할인되는 다다익선 상품
  2024. var togetherItemSwiper = new Swiper('.pd .pd_together .area_slider .swiper-container', {
  2025. slidesPerView: 6,
  2026. freemode: true,
  2027. spaceBetween: 20,
  2028. scrollbar: {
  2029. el: '.pd_together .swiper-scrollbar',
  2030. hide: true,
  2031. },
  2032. });
  2033. //슬라이드 - 이 상품과 함께 본 상품
  2034. var otherItemSwiper = new Swiper('.pd .pd_clickother .area_slider .swiper-container', {
  2035. slidesPerView: 5,
  2036. slidesToScroll: 5,
  2037. slidesPerGroup: 5,
  2038. spaceBetween: 20,
  2039. navigation: {
  2040. nextEl: '.pd_clickother .swiper-button-next',
  2041. prevEl: '.pd_clickother .swiper-button-prev',
  2042. },
  2043. pagination: {
  2044. el: '.pd_clickother .swiper-pagination',
  2045. clickable: true,
  2046. },
  2047. });
  2048. //슬라이드 - 브랜드 추천상품
  2049. var relateItemSwiper = new Swiper('.pd .pd_brand .area_slider .swiper-container', {
  2050. slidesPerView: 5,
  2051. spaceBetween: 20,
  2052. slidesPerGroup: 5,
  2053. navigation: {
  2054. nextEl: '.pd_brand .swiper-button-next',
  2055. prevEl: '.pd_brand .swiper-button-prev',
  2056. },
  2057. pagination: {
  2058. el: '.pd_brand .swiper-pagination',
  2059. clickable: true,
  2060. },
  2061. });
  2062. //슬라이드 - 이 상품과 비슷한 상품
  2063. var relateItemSwiper = new Swiper('.pd .pd_relate .area_slider .swiper-container', {
  2064. slidesPerView: 5,
  2065. spaceBetween: 20,
  2066. slidesPerGroup: 5,
  2067. navigation: {
  2068. nextEl: '.pd_relate .swiper-button-next',
  2069. prevEl: '.pd_relate .swiper-button-prev',
  2070. },
  2071. pagination: {
  2072. el: '.pd_relate .swiper-pagination',
  2073. clickable: true,
  2074. },
  2075. });
  2076. //슬라이드 - STYLE24의 스타일링 추천
  2077. var rcmdItemSwiper = new Swiper('.pd .pd_recommend .area_slider .swiper-container', {
  2078. slidesPerView: 1,
  2079. spaceBetween: 0,
  2080. navigation: {
  2081. nextEl: '.pd_recommend .swiper-button-next',
  2082. prevEl: '.pd_recommend .swiper-button-prev',
  2083. },
  2084. pagination: {
  2085. el: '.pd_recommend .swiper-pagination',
  2086. clickable: true,
  2087. },
  2088. });
  2089. //상품상세정보 더보기
  2090. $(document).on('click','.pd_descrp .btn_more_box button',function(e){
  2091. $('.pd_descrp .cont_body').toggleClass('on');
  2092. $(this).toggleClass('active');
  2093. $(this).parent('.btn_more_box').toggleClass('covered');
  2094. var descrpToggle = $(this).find('span');
  2095. $(descrpToggle).text($(descrpToggle).text() == '상세정보 더보기' ? '상세정보 접기' : '상세정보 더보기');
  2096. //210525_더보기 닫을 시 현재 위치로 화면 포커스
  2097. if($('.pd_descrp .btn_more_box').hasClass('covered') === true){
  2098. var offset = $('.pd_descrp .btn_more_box').offset();
  2099. $('html').animate({scrollTop : offset.top - 80}, 400);
  2100. }
  2101. return false;
  2102. });
  2103. //공유 버튼 토글
  2104. $("button[data-name=openShare]").on("click", function(){
  2105. $(this).toggleClass("on").next(".shareWrap").toggleClass("on");
  2106. return false;
  2107. });
  2108. //영역밖 클릭으로 공유토글 닫기
  2109. $("body").on('click', function(e) {
  2110. if(!$(".shareWrap.on").parent().has(e.target).length) {
  2111. $("button[data-name=openShare]").removeClass("on");
  2112. $(".shareWrap").removeClass("on");
  2113. };
  2114. });
  2115. var params = new Object();
  2116. params.goodsCd = [[${params.goodsCd}]];
  2117. params.colorCd = [[${params.colorCd}]];
  2118. params.viewDt = [[${params.viewDt}]];
  2119. params.preview = [[${params.preview}]];
  2120. params.adminYn = [[${params.adminYn}]];
  2121. params.goodsType = [[${params.goodsType}]];
  2122. params.supplyCompCd = [[${params.supplyCompCd}]];
  2123. params.brandGroupNm = [[${goodsInfo.brandGroupNm}]];
  2124. /* //함께본 상품(ajax html)
  2125. $('#goodsTogetherbArea').load('GoodsDetailFormWeb.html', function() {
  2126. params.goodsOtherGb = "together";
  2127. params.ithrCd = "tmtb";
  2128. params.contentsLoc = "tmtb";
  2129. fnGoodsTogetherSearch(params);
  2130. });
  2131. //추천 상품(ajax html)
  2132. $('#goodsRecommendbArea').load('GoodsDetailFormWeb.html', function() {
  2133. params.goodsOtherGb = "recommend";
  2134. params.ithrCd = "tmtb";
  2135. params.contentsLoc = "tmtb";
  2136. fnGoodsRecommendSearch(params);
  2137. });
  2138. //비슷한 상품(ajax html)
  2139. $('#goodsLikebArea').load('GoodsDetailFormWeb.html', function() {
  2140. params.goodsOtherGb = "like";
  2141. params.ithrCd = "tmtb";
  2142. params.contentsLoc = "tmtb";
  2143. fnGoodsLikeSearch(params);
  2144. }); */
  2145. //$(document).ready( function() {
  2146. $(function(){
  2147. //210526_ 추가 : 이미지 style 속성 제거
  2148. $(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style");
  2149. /* var params = new Object();
  2150. params.goodsCd = [[${params.goodsCd}]];
  2151. params.viewDt = [[${params.viewDt}]];
  2152. params.preview = [[${params.preview}]];
  2153. params.adminYn = [[${params.adminYn}]];
  2154. params.goodsType = [[${params.goodsType}]];
  2155. params.supplyCompCd = [[${params.supplyCompCd}]];
  2156. params.brandGroupNm = [[${goodsInfo.brandGroupNm}]];
  2157. // 함께본 상품(ajax html)
  2158. params.goodsOtherGb = "together";
  2159. params.ithrCd = "tmtb";
  2160. params.contentsLoc = "tmtb";
  2161. //fnGoodsTogetherSearch(params);
  2162. //console.log("params=>" + params);
  2163. // 추천 상품(ajax html)
  2164. params.goodsOtherGb = "recommend";
  2165. params.ithrCd = "tmtb";
  2166. params.contentsLoc = "tmtb";
  2167. //fnGoodsRecommendSearch(params);
  2168. // 비슷한 상품(ajax html)
  2169. params.goodsOtherGb = "like";
  2170. params.ithrCd = "tmtb";
  2171. params.contentsLoc = "tmtb";
  2172. //fnGoodsLikeSearch(params); */
  2173. var opt_selecter01 = new sCombo('.opt_select .select_custom.item_opt1.item_opt1_1');
  2174. var opt_selecter01_1 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_1');
  2175. var opt_selecter01_2 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_2');
  2176. var opt_selecter01_3 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_3');
  2177. var opt_selecter01_4 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_4');
  2178. var opt_selecter01_5 = new sCombo('.opt_set_select .select_custom.item_opt1.item_opt1_5');
  2179. //스타일링 추천 picker 상품팝업
  2180. /* $(document).on('click','.pd_recommend .area_slider .item_picker button',function(e){
  2181. $("#pdLookbookPop").modal("show");
  2182. return false;
  2183. });
  2184. $("#pdLookbookPop_close").click(function() {
  2185. $("#pdLookbookPop").modal("hide");
  2186. });
  2187. */
  2188. fnOptionSoldout();
  2189. });
  2190. // 상품평 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
  2191. var fnReviewLayerCollBack = function(){
  2192. // 상품평정보
  2193. var params = new Object();
  2194. let goodsCd = [[${goodsInfo.goodsCd}]];
  2195. params.goodsCd = goodsCd;
  2196. //gagajf.ajaxSubmit("/goods/detail/review/frame", "html", "goodsDealReview", params);
  2197. $.ajax( {
  2198. type : "POST",
  2199. url : '/goods/detail/review/frame',
  2200. data : JSON.stringify(params),
  2201. dataType : 'html',
  2202. beforeSend : function(xhr, settings) {
  2203. xhr.setRequestHeader("AJAX" , "true");
  2204. xhr.setRequestHeader('Accept' , 'application/json');
  2205. xhr.setRequestHeader('Content-Type' , 'application/json');
  2206. },
  2207. success : function(result) {
  2208. if (result != null) {
  2209. $("#goodsDealReview").css("display", "block");
  2210. $("#goodsDealReview").html(result);
  2211. fnGetList();
  2212. }
  2213. }
  2214. });
  2215. //슬라이드 - 베스트리뷰
  2216. var bestReviewtSwiper = new Swiper('.area_rv_best .swiper-container', {
  2217. slidesPerView: 2,
  2218. spaceBetween: 20,
  2219. navigation: {
  2220. nextEl: '.area_rv_best .swiper-button-next',
  2221. prevEl: '.area_rv_best .swiper-button-prev',
  2222. },
  2223. pagination: {
  2224. el: '.area_rv_best .swiper-pagination',
  2225. clickable: true,
  2226. },
  2227. });
  2228. }
  2229. // 상품평 상세 조회
  2230. var fnReviewDetail = function() {
  2231. var params = new Object();
  2232. params.goodsCd = $('#reviewDetailForm input[name=goodsCd]').val();
  2233. params.reviewSq = $('#reviewDetailForm input[name=reviewSq]').val();
  2234. params.bestYn =$('#reviewDetailForm input[name=bestYn]').val();
  2235. params.photoYn = $('#reviewDetailForm input[name=photoYn]').val();
  2236. gagajf.ajaxSubmit("/goods/review/detail/list", "json", fnReviewDetailCallback, params);
  2237. }
  2238. // 상품평 상세 조회 - 콜백
  2239. var fnReviewDetailCallback = function(result) {
  2240. $('#reviewBody').html('');
  2241. // 목록
  2242. if (result.reviewList != null && result.reviewList.length > 0) {
  2243. let fileGbClass = '';
  2244. let rdx = $('#reviewDetailForm input[name=attachSq]').val();
  2245. $.each(result.reviewList, function(idx, review) {
  2246. let tag = '';
  2247. tag +='<div class="pop_cont">\n';
  2248. tag +='<div class="swiper-container detail">\n';
  2249. tag +='<div class="swiper-wrapper">\n';
  2250. tag +='<div class="swiper-slide">\n';
  2251. let reviewClass = 'empty_photo';
  2252. if (review.reviewAttachList != null && review.reviewAttachList.length > 0){
  2253. reviewClass = '';
  2254. }
  2255. tag +='<div class="review '+reviewClass+'" >\n'; <!-- 첨부이미지 없을 시 empty_photo 클래스 추가 -->
  2256. tag +=' <div class="pic">\n';
  2257. if (review.reviewAttachList != null && review.reviewAttachList.length > 0){
  2258. $.each(review.reviewAttachList, function(aIdx, reviewAttach){
  2259. fileGbClass = '';
  2260. if (reviewAttach.fileGb == "M") fileGbClass = "mov";
  2261. tag +=' <span class="thumb '+fileGbClass+'">\n';<!-- 동영상의 썸네일일 경우 mov 클래스 추가-->
  2262. if (reviewAttach.fileGb == "M") {
  2263. tag +=' <iframe width="100%" height="100%" src="'+_kollusMediaUrl +'/'+reviewAttach.kmcKey +'?player_version=html5" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>\n';
  2264. }else{
  2265. tag +=' <img src="'+ _imgUrl + reviewAttach.sysFileNm +'" alt="">\n';
  2266. }
  2267. tag +=' </span>\n';
  2268. return false;
  2269. });
  2270. }else{
  2271. tag +=' <span class="thumb">\n';
  2272. tag +=' <img src="'+_uploadGoodsUrl +'/'+review.sysImgNm+'?RS=545" alt="" onerror="' + _uximgUrl + '/images/pc/thumb/bg_item_none.png" />\n';
  2273. tag +=' </span>\n';
  2274. }
  2275. tag +=' </div>\n';
  2276. tag +=' <div class="review_cont">\n';
  2277. tag +=' <div class="box_wrap">\n';
  2278. tag +=' <div class="star_box">\n';
  2279. tag +=' <div class="star_score">\n';
  2280. tag +=' <span class="star">\n';
  2281. tag +=' <em class="progbar" style="width:'+(review.iscore*20)+'%;"></em>\n'; <!-- 평점 style로 표기 -->
  2282. tag +=' </span>\n';
  2283. tag +=' </div>\n';
  2284. tag +=' </div>\n';
  2285. tag +=' <div class="response_box">\n';
  2286. tag +=' <div class="full">\n';
  2287. tag +=' <dl>\n';
  2288. tag +=' <div>\n';
  2289. tag +=' <dt>구매옵션</dt>\n';
  2290. if (review.goodsOptionList != null && review.goodsOptionList.length > 0){
  2291. tag +=' <dd>\n';
  2292. $.each(review.goodsOptionList, function(aIdx, reviewGoods){
  2293. tag +=' <p><span>'+ gagajf.convNull(reviewGoods.optCd1Nm,'') +'</span> / <span>'+ gagajf.convNull(reviewGoods.optCd2,'')+'</span></p>\n';
  2294. });
  2295. tag +=' <dd>\n';
  2296. }
  2297. tag +=' </div>\n';
  2298. tag +=' </dl>\n';
  2299. tag +=' </div>\n';
  2300. tag +=' <div class="full">\n';
  2301. tag +=' <dl>\n';
  2302. tag +=' <div>\n';
  2303. tag +=' <dt>키/몸무게</dt>\n';
  2304. tag +=' <dd>'+review.height+'cm / '+review.weight +'kg \n';
  2305. tag +=' </dd>\n';
  2306. tag +=' </div>\n';
  2307. tag +=' </dl>\n';
  2308. tag +=' </div>\n';
  2309. if (!gagajf.isNull(review.sizeGb)){ <!-- 사이즈구분(T:상의, B:하의, S:신발) -->
  2310. tag +=' <div>\n';
  2311. tag +=' <dl > \n';
  2312. tag +=' <div>\n';
  2313. tag +=' <dt>사이즈</dt>\n';
  2314. tag +=' <dd>'+gagajf.convNull(review.scoreSizeNm,'')+'</dd>\n';
  2315. tag +=' </div>\n';
  2316. tag +=' <div>\n';
  2317. tag +=' <dt>컬러</dt>\n';
  2318. tag +=' <dd>'+gagajf.convNull(review.scoreColorNm,'')+'</dd>\n';
  2319. tag +=' </div>\n';
  2320. if (review.sizeGb == 'T' || review.sizeGb == 'B'){
  2321. tag +=' <div>\n';
  2322. tag +=' <dt>핏</dt>\n';
  2323. tag +=' <dd>'+gagajf.convNull(review.scoreFitNm,'')+'</dd>\n';
  2324. tag +=' </div>\n';
  2325. tag +=' <div>\n';
  2326. tag +=' <dt>두께감</dt>\n';
  2327. tag +=' <dd>'+ gagajf.convNull(review.scoreThickNm,'')+'</dd>\n';
  2328. tag +=' </div>\n';
  2329. }
  2330. if (review.sizeGb == 'S'){
  2331. tag +=' <div>\n';
  2332. tag +=' <dt>무게감</dt>\n';
  2333. tag +=' <dd>'+gagajf.convNull(review.scoreWeightNm,'')+'</dd>\n';
  2334. tag +=' </div>\n';
  2335. tag +=' <div>\n';
  2336. tag +=' <dt>볼너비</dt>\n';
  2337. tag +=' <dd>'+gagajf.convNull(review.scoreBallNm,'')+'</dd>\n';
  2338. tag +=' </div>\n';
  2339. }
  2340. tag +=' </dl>\n';
  2341. tag +=' </div>\n';
  2342. }
  2343. tag +=' </div>\n';
  2344. tag +=' <div class="txt_review_box">\n';
  2345. tag +=' <p>' + review.reviewContent +'</p>\n';
  2346. tag +=' </div>\n';
  2347. tag +=' <div class="writer_box">\n';
  2348. tag += ' <div class="writer">\n';
  2349. tag += ' <span class="wr_id">'+ review.maskingCustId +'</span>\n';
  2350. tag += ' <span class="wr_date">' + review.regDt + '</span>\n';
  2351. tag += ' </div>\n'
  2352. tag +=' </div>\n';
  2353. if (!gagajf.isNull(review.admRpl)){
  2354. tag += ' <div class="reply_box">\n';
  2355. tag += ' <div class="reply">\n';
  2356. tag += ' <div class="reply_writer">\n';
  2357. tag += ' <span class="wr_name">관리자</span>\n';
  2358. tag += ' <span class="wr_date">'+review.admRplDt+'</span>\n';
  2359. tag += ' </div>\n';
  2360. tag += ' <div class="reply_txt">\n';
  2361. tag += ' <p>' + review.admRpl+'</p>\n';
  2362. tag += ' </div>\n';
  2363. tag += ' </div>\n';
  2364. tag += ' </div>\n';
  2365. }
  2366. tag +=' </div>\n';
  2367. tag +=' </div>\n';
  2368. if (review.reviewAttachList != null && review.reviewAttachList.length >= 2){
  2369. tag +=' <div class="thumblist">\n';
  2370. tag +=' <ul>\n';
  2371. let activeClass = '';
  2372. $.each(review.reviewAttachList, function(aIdx, reviewAttach){
  2373. activeClass = '';
  2374. if (aIdx == rdx){
  2375. activeClass = 'active';
  2376. }
  2377. fileGbClass = '';
  2378. if (reviewAttach.fileGb == "M") fileGbClass = "mov";
  2379. tag +=' <li>\n';
  2380. tag +=' <div class="pic '+activeClass+'"> \n'; <!-- 활성화시 active 클래스 추가 -->
  2381. if (reviewAttach.fileGb == "M") {
  2382. tag +=' <span class="thumb '+fileGbClass+'"><iframe width="100%" height="100%" src="'+_kollusMediaUrl +'/'+reviewAttach.kmcKey +'?player_version=html5" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></span>\n';
  2383. }else{
  2384. tag +=' <span class="thumb" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');\" >\n';
  2385. tag +=' <img src="'+ _imgUrl + reviewAttach.sysFileNm +'" alt="">\n';
  2386. }
  2387. tag +=' </span>\n';
  2388. tag +=' </div>\n';
  2389. tag +=' </li>\n';
  2390. });
  2391. tag +=' </ul>\n';
  2392. tag +=' </div>\n';
  2393. }
  2394. tag +='</div>\n';
  2395. tag +='</div>\n';
  2396. tag +='</div>\n';
  2397. tag +='</div>\n';
  2398. if (gagajf.isNull(review.nextReviewSq) || review.nextReviewSq <= 0) {
  2399. tag +='<div class="swiper-button-next swiper-button-disabled" id="reviewBodyNext" ></div>\n';
  2400. }else{
  2401. tag +='<div class="swiper-button-next" id="reviewBodyNext" onclick="fnReviewNext('+review.nextReviewSq+')"></div>\n';
  2402. }
  2403. if (gagajf.isNull(review.prevReviewSq) || review.prevReviewSq <= 0) {
  2404. tag +='<div class="swiper-button-prev swiper-button-disabled" id="reviewBodyPrev" ></div>\n';
  2405. }else{
  2406. tag +='<div class="swiper-button-prev" id="reviewBodyPrev" onclick="fnReviewNext('+review.prevReviewSq+')"></div>\n';
  2407. }
  2408. tag +='</div>\n';
  2409. $('#reviewBody').append(tag);
  2410. $('.pd_photoreviewdetail_pop .swiper-slide').each(function(index, element){
  2411. var $this = $(this);
  2412. var thumbCount = $this.find('.thumblist ul li').length;
  2413. var thumbUlWidth = $this.find('.thumblist ul li').width() * thumbCount;
  2414. var thumbMargin = 8 * thumbCount;
  2415. var thumbListWidth = thumbUlWidth + thumbMargin;
  2416. $this.find('.thumblist ul').attr('style', 'width:' + thumbListWidth + 'px;');
  2417. });
  2418. $('.pd_photoreviewdetail_pop .thumblist ul li').eq(rdx).trigger("click");
  2419. });
  2420. }
  2421. }
  2422. // 다른 상품평 보기
  2423. var fnReviewNext = function(reviewSq){
  2424. if (gagajf.isNull(reviewSq)) return false;
  2425. $('#reviewDetailForm input[name=reviewSq]').val(reviewSq);
  2426. $('#reviewDetailForm input[name=attachSq]').val(0);
  2427. fnReviewDetail();
  2428. }
  2429. // 상품평 상세 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
  2430. var fnReviewDetailLayerCollBack = function(){
  2431. fnReviewDetail();
  2432. //슬라이드 - 상품 베스트 리뷰 자세히보기 영역
  2433. var photoReviewDetailSwiper = new Swiper('.pd_photoreviewdetail_pop .swiper-container.detail', {
  2434. effect :'fade',
  2435. slidesPerView: 1,
  2436. spaceBetween: 0,
  2437. simulateTouch:false,
  2438. navigation: {
  2439. nextEl: '.pd_photoreviewdetail_pop .swiper-button-next',
  2440. prevEl: '.pd_photoreviewdetail_pop .swiper-button-prev',
  2441. },
  2442. });
  2443. }
  2444. $('.pd_photoreviewdetail_pop .swiper-slide').each(function(index, element){
  2445. var $this = $(this);
  2446. var thumbCount = $this.find('.thumblist ul li').length;
  2447. var thumbUlWidth = $this.find('.thumblist ul li').width() * thumbCount;
  2448. var thumbMargin = 8 * thumbCount;
  2449. var thumbListWidth = thumbUlWidth + thumbMargin;
  2450. $this.find('.thumblist ul').attr('style', 'width:' + thumbListWidth + 'px;');
  2451. });
  2452. $(document).on('click','.pd_photoreviewdetail_pop .thumblist ul li',function(e){
  2453. $(this).parents(".swiper-slide").find(".review > .pic > .thumb").empty();
  2454. $(this).parents(".swiper-slide").find(".thumblist ul li .pic").removeClass('active');
  2455. $(this).find(".pic").addClass('active');
  2456. var thumbIndex = $(this).index();
  2457. thumbContentHtml = $(this).find('.pic .thumb').html();
  2458. $(this).parents(".swiper-slide").find(".review > .pic > .thumb").append(thumbContentHtml);
  2459. return false;
  2460. });
  2461. // 상품문의 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
  2462. var fnQnaLayerCollBack = function(){
  2463. // 상품문의정보
  2464. var params = new Object();
  2465. let goodsCd = [[${goodsInfo.goodsCd}]];
  2466. params.goodsCd = goodsCd;
  2467. //gagajf.ajaxSubmit("/goods/detail/qna/frame", "html", "goodsDealQna", params);
  2468. $.ajax( {
  2469. type : "POST",
  2470. url : '/goods/detail/qna/frame',
  2471. data : JSON.stringify(params),
  2472. dataType : 'html',
  2473. beforeSend : function(xhr, settings) {
  2474. xhr.setRequestHeader("AJAX" , "true");
  2475. xhr.setRequestHeader('Accept' , 'application/json');
  2476. xhr.setRequestHeader('Content-Type' , 'application/json');
  2477. },
  2478. success : function(result) {
  2479. if (result != null) {
  2480. $("#goodsDealQna").css("display", "block");
  2481. $("#goodsDealQna").html(result);
  2482. fnGoodsQnaList();
  2483. }
  2484. }
  2485. });
  2486. }
  2487. // 상품배송 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
  2488. var fnGoodsDeliveryCollBack = function(){
  2489. // 상품배송 정보
  2490. var params = new Object();
  2491. let goodsCd = [[${goodsInfo.goodsCd}]];
  2492. params.goodsCd = goodsCd;
  2493. //gagajf.ajaxSubmit("/goods/detail/delivery/frame", "html", "goodsDealDelivery", params);
  2494. $.ajax( {
  2495. type : "POST",
  2496. url : '/goods/detail/delivery/frame',
  2497. data : JSON.stringify(params),
  2498. dataType : 'html',
  2499. beforeSend : function(xhr, settings) {
  2500. xhr.setRequestHeader("AJAX" , "true");
  2501. xhr.setRequestHeader('Accept' , 'application/json');
  2502. xhr.setRequestHeader('Content-Type' , 'application/json');
  2503. },
  2504. success : function(result) {
  2505. if (result != null) {
  2506. $("#goodsDealDelivery").css("display", "block");
  2507. $("#goodsDealDelivery").html(result);
  2508. }
  2509. }
  2510. });
  2511. }
  2512. $(document).on('click','.option_box [class^="opt_"] .select_custom .select',function(e){
  2513. let selectHeight = $(this);
  2514. let selectHeight02 = selectHeight.outerHeight();
  2515. if($(this).find('.opt_name').length){
  2516. $(this).siblings('.list').css({"top":selectHeight02});
  2517. }else{
  2518. $(this).siblings('.list').css({"top":"52px"});
  2519. }
  2520. });
  2521. <!-- 210422_추가 : 상품썸네일 영상 -->
  2522. var controller;
  2523. var player = document.getElementById('player');
  2524. window.onload = function() {
  2525. try {
  2526. var controller = new VgControllerClient({
  2527. // target_window: document.getElementById('prodctThumbVideo').contentWindow
  2528. target_window: document.getElementsByClassName('pd_mov').contentWindow
  2529. });
  2530. controller.on('ready', function(){
  2531. //플레이어 준비 완료
  2532. // controller.set_ratio('cover');
  2533. // contain : 비율에 맞게 채웁니다.
  2534. //fill : 화면에 꽉 차게 채웁니다.
  2535. //enlargement : 세로 높이를 꽉 차게 맞춥니다. 좌우로 스크롤이 가능합니다
  2536. controller.play();
  2537. });
  2538. controller.on('done', function(){
  2539. //플레이어 재생 완료
  2540. controller.play();
  2541. });
  2542. } catch(e) {
  2543. // Videogateweay Controller Library는 window.postMessage API를 이용하기 때문에
  2544. // 해당 기능을 지원하지 않는 웹브라우져에서는 동작하지 않습니다.
  2545. // 이 부분에 적절한 fail-over 코드를 추가하여 주십시요.
  2546. }
  2547. }
  2548. // 상품상세 asis html 이지미 경로 수정
  2549. window.onload = function(){
  2550. $(".pd_descrp .cont_body").find('img').each(function() {
  2551. let tmpImgSrc = $(this).attr('src');
  2552. if (tmpImgSrc.indexOf('Upload') == 1 ){ // /Upload
  2553. $(this).attr('src' , tmpImgSrc.replace('/Upload', _imgUrl+"/Local").replace('/Upload/Local', "/Local"));
  2554. }
  2555. });
  2556. // 현재 색상만 상세노출 처리
  2557. let dpProductNo = [[${arrNoneProductNo}]];
  2558. if (!gagajf.isNull(dpProductNo)){
  2559. let arrNoneProductNo = dpProductNo.split(',');
  2560. arrNoneProductNo.forEach(function(item){
  2561. if(!gagajf.isNull(item)) {
  2562. $('#'+item).css('display', 'none');
  2563. }
  2564. });
  2565. }
  2566. // 위시처리- 로그인 되어 있을시
  2567. if (cfCheckLogin()) {
  2568. //이상품과 함께본 상품
  2569. let targetT = $('#goodsTogetherbArea').find('.item_state').find('button');
  2570. //let targetTSize = targetT.length;
  2571. targetT.each(function(){
  2572. let goodsCd = $(this).attr('goodscd');
  2573. var $this = $(this);
  2574. let url = "/mypage/wish/list/check/"+goodsCd;
  2575. var result = '';
  2576. $.ajax({
  2577. type: 'get'
  2578. , async: false
  2579. , url: url
  2580. , success: function (data) {
  2581. //likeit active
  2582. if ("Y" == data){
  2583. $this.addClass('likeit').addClass('active');
  2584. }
  2585. }
  2586. });
  2587. });
  2588. //브랜드 추천상품
  2589. let targetR = $('#goodsRecommendbArea').find('.item_state').find('button');
  2590. //let targetRSize = targetT.length;
  2591. targetR.each(function(){
  2592. let goodsCd = $(this).attr('goodscd');
  2593. var $this = $(this);
  2594. let url = "/mypage/wish/list/check/"+goodsCd;
  2595. var result = '';
  2596. $.ajax({
  2597. type: 'get'
  2598. , async: false
  2599. , url: url
  2600. , success: function (data) {
  2601. //likeit active
  2602. if ("Y" == data){
  2603. $this.addClass('likeit').addClass('active');
  2604. }
  2605. }
  2606. });
  2607. });
  2608. //비슷한 상품
  2609. let targetL = $('#goodsLikebArea').find('.item_state').find('button');
  2610. //let targetTSize = targetT.length;
  2611. targetL.each(function(){
  2612. let goodsCd = $(this).attr('goodscd');
  2613. var $this = $(this);
  2614. let url = "/mypage/wish/list/check/"+goodsCd;
  2615. var reLult = '';
  2616. $.ajax({
  2617. type: 'get'
  2618. , async: false
  2619. , url: url
  2620. , success: function (data) {
  2621. //likeit active
  2622. if ("Y" == data){
  2623. $this.addClass('likeit').addClass('active');
  2624. }
  2625. }
  2626. });
  2627. });
  2628. }
  2629. }
  2630. // 광고 스크립트용
  2631. var goodsNavigation = [[${goodsNavigation}]];
  2632. var cate1No = "";
  2633. var cate2No = "";
  2634. var cate3No = "";
  2635. var cate4No = "";
  2636. var cate5No = "";
  2637. var cate1Nm = "";
  2638. var cate2Nm = "";
  2639. var cate3Nm = "";
  2640. var cate4Nm = "";
  2641. var cate5Nm = "";
  2642. if (!gagajf.isNull(goodsNavigation)) {
  2643. cate1No = goodsNavigation.cate1No;
  2644. cate2No = goodsNavigation.cate2No;
  2645. cate3No = goodsNavigation.cate3No;
  2646. cate4No = goodsNavigation.cate4No;
  2647. cate5No = goodsNavigation.cate5No;
  2648. cateNm = cate3No;
  2649. cate1Nm = goodsNavigation.cate1Nm;
  2650. cate2Nm = goodsNavigation.cate2Nm;
  2651. cate3Nm = goodsNavigation.cate3Nm;
  2652. cate4Nm = goodsNavigation.cate4Nm;
  2653. cate5Nm = goodsNavigation.cate5Nm;
  2654. }
  2655. // 광고 스크립트용
  2656. var snsGoodsImg = _uploadGoodsUrl + "/" + [[${goodsInfo.sysImgNm}]];
  2657. //var snsUrl = location.protocol + _PAGE_GOODS_DETAIL + params.goodsCd;
  2658. var snsUrl = location.protocol + "//www.style24.com/goods/detail/form?goodsCd=" + params.goodsCd;
  2659. if (typeof (params.colorCd) != 'undefined') snsUrl += "&colorCd=" + params.colorCd;
  2660. var snsGoodsFullNm = [[${goodsInfo.goodsFullNm}]];
  2661. <!-- 페이스북 카카오스토리 연동 관련 메타태그 -->
  2662. $("meta[property='og:url']").attr('content', snsUrl);
  2663. $("meta[property='og:title']").attr('content', snsGoodsFullNm);
  2664. $("meta[property='og:description']").attr('content', snsGoodsFullNm);
  2665. $("meta[property='og:image']").attr('content', snsGoodsImg);
  2666. <!-- 트위터 관련 메타태그 -->
  2667. $("meta[name='twitter:url']").attr('content', snsUrl);
  2668. $("meta[name='twitter:title']").attr('content', snsGoodsFullNm);
  2669. $("meta[name='twitter:description']").attr('content', snsGoodsFullNm);
  2670. $("meta[name='twitter:image']").attr('content', snsGoodsImg);
  2671. // 추천솔류션 meta 설정
  2672. $("meta[property='eg:type']").attr('content',"product");
  2673. $("meta[property='eg:cuid']").attr('content',eglqueueCuid);
  2674. $("meta[property='eg:itemId']").attr('content', [[${goodsInfo.goodsCd}]] );
  2675. $("meta[property='eg:itemName']").attr('content',[[${goodsInfo.goodsFullNm}]] );
  2676. $("meta[property='eg:itemImage']").attr('content', snsGoodsImg);
  2677. $("meta[property='eg:itemUrl']").attr('content',snsUrl);
  2678. $("meta[property='eg:originalPrice']").attr('content',[[${goodsInfo.listPrice}]]);
  2679. $("meta[property='eg:salePrice']").attr('content',[[${goodsInfo.currPrice}]]);
  2680. $("meta[property='eg:category1']").attr('content',cate1No);
  2681. $("meta[property='eg:category2']").attr('content',cate2No);
  2682. $("meta[property='eg:category3']").attr('content',cate3No);
  2683. $("meta[property='eg:category4']").attr('content',cate4No);
  2684. $("meta[property='eg:category5']").attr('content',cate5No);
  2685. $("meta[property='eg:category1_name']").attr('content',cate1Nm);
  2686. $("meta[property='eg:category2_name']").attr('content',cate2Nm);
  2687. $("meta[property='eg:category3_name']").attr('content',cate3Nm);
  2688. $("meta[property='eg:category4_name']").attr('content',cate4Nm);
  2689. $("meta[property='eg:category5_name']").attr('content',cate5Nm);
  2690. $("meta[property='eg:brandId']").attr('content',[[${goodsInfo.brandGroupNo}]]);
  2691. $("meta[property='eg:brandName']").attr('content',[[${goodsInfo.brandGroupNm}]]);
  2692. $("meta[property='eg:regDate']").attr('content',[[${goodsInfo.regDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
  2693. $("meta[property='eg:updateDate']").attr('content',[[${goodsInfo.updDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
  2694. $("meta[property='eg:stock']").attr('content',[[${goodsInfo.goodsStockQty}]]);
  2695. $("meta[property='eg:state']").attr('content',[[${goodsInfo.goodsStat}]]);
  2696. $("meta[property='eg:description']").attr('content',null);
  2697. $("meta[property='eg:extraImage']").attr('content',null);
  2698. $("meta[property='eg:locale']").attr('content',"KR");
  2699. $("meta[property='eg:isNew']").attr('content',([[${goodsInfo.formalGb}]] == 'G009_10')? 'True' :'False');
  2700. $("meta[property='eg:etc1']").attr('content', [[${goodsInfo.selfGoodsYn}]]);
  2701. // ep 쿠폰확인
  2702. fnEpCouponDown([[${afLinkCd}]], [[${params.goodsCd}]], 1);
  2703. /*]]>*/
  2704. </script>
  2705. <!-- 광고 스크립트 -->
  2706. <th:block th:replace="~{web/common/advertisements/GoodsDetailScriptsWeb :: scripts}"></th:block>
  2707. <!-- //광고 스크립트 -->
  2708. </th:block>
  2709. </body>
  2710. </html>