GoodsDetailFormWeb.html 136 KB

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