(async () => { const { EventManager, utils } = ShopbySkin; const { setGlobalsVariableBy, isMobileDevice } = utils; const headerEl = document.querySelector('shopby-header'); // [Aaron] 모든 페이지 상단 배너 영역 updateSlot headerEl.store.attach('topBanner', (state) => { headerEl.updateSlot(state, 'topBanner'); // data 있을 시 swiper 실행 const topBannerSwiper = { id: 'top_banner_slider', direction: 'vertical', effect: 'slide', loop: true, autoHeight: true, autoplay: { delay: 3000, disableOnInteraction: false, }, }; ShopbySkin.utils.initSwiper(topBannerSwiper); EventManager.fire('INIT_CATEGORY_SLIDER', { direction: 'horizontal', effect: 'slide', slidesPerView: 'auto', spaceBetween: 15, slidesOffsetBefore: 50, slidesOffsetAfter: 25, }); }); const env = await utils.fetchEnvironment(); EventManager.on('PAGE_LOAD_COMPLETED', ({ profile }) => { document.querySelector('.nav__slide').style.display = 'flex'; setGlobalsVariableBy('getPlatform', () => isMobileDevice ? 'MOBILE_WEB' : 'PC', ); setGlobalsVariableBy('profile', profile); // [Aaron] 전체 페이지 가장 상단 배너 // 페이지 별로 swiper 및 이벤트리스너가 동작 안하는 현상으로 페이지가 로드된 이후 실행 const signUpBannerId = 'page_top_banner_mo'; fetch(`https://shop-api.e-ncp.com/display/banners/id/${signUpBannerId}`, { method: 'GET', headers: { clientid: env.clientId, version: '1.0', platform: 'MOBILE_WEB', }, }) .then((response) => { if (!response.ok) { // throw new Error(''); console.log('상단 배너 통신 중 오류 발생'); } return response.json(); // JSON 데이터를 파싱 }) .then((data) => { headerEl.store.setState({ topBanner: data[0], }); }) .catch((error) => { console.error('인기검색어 기능 실행중 오류가 발생했습니다.', error); // 오류 처리 }); // END // [Aaron] 상단 배너 닫기 const clickCloseBanner = (e) => { e.preventDefault(); const action = e?.target ?.closest('[shopby-action]') ?.getAttribute('shopby-action'); if (action === 'BANNER_CLOSE') { document.querySelector('top-banner').remove(); } }; document .querySelector('top-banner') .addEventListener('click', clickCloseBanner); // END const searchParams = new URLSearchParams(location.search); const trackingKey = searchParams.get('trackingKey'); const channelType = searchParams.get('channelType'); const { setTrackingKey, setChannelType } = ShopbySkin.utils; setTrackingKey(trackingKey); setChannelType(channelType); const boardId = searchParams.get('boardId'); // [Jay] 고객센터 결제혜택 안내 페이지 진입한 경우 타이틀 결제혜택 안내로 변경 if (boardId === 'cardEvent') { headerEl.store.setState({ subTitle: '결제혜택 안내', }); } }); // [KR-V] 모바일 문서 head 하단에 Ahrix 검색 위젯을 한 번만 로드한다. if ( !document.querySelector( 'script[src="https://widget.ahrix.ai/widget/search-widget.js"]', ) ) { const ahrixSearchWidget = document.createElement('script'); ahrixSearchWidget.src = 'https://widget.ahrix.ai/widget/search-widget.js'; ahrixSearchWidget.dataset.mallNo = '78821'; ahrixSearchWidget.dataset.token = '03Wcl4WVLtx8vXTwH_1Rcb7frfvXvN1K'; document.head.appendChild(ahrixSearchWidget); } })();