\n \uc11c\uc6b8\ud2b9\ubcc4\uc2dc \uac15\ub0a8\uad6c \uc601\ub3d9\ub300\ub85c 513\ubc88\uc9c0 \ucf54\uc5d1\uc2a4\ubab0 B1
\n Opening Hours
\n Monday to Friday 9:00am\u20148:00pm
\n Saturday 8:30am\u20149:00pm
\n Sunday 8:30am\u20148:00pm \n<\/div>","img":[{"url":"https:\/\/ecudemo250292.cafe24.com\/web\/upload\/NNEditor\/20240307\/721e88a6d3314f71978c9e2ac1064610.jpg","type":2}],"link":[{"url":"","openType":"_self"}],"AddOn":[""],"index":2,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]}},"index":8},"e11a":{"id":"e11a","name":"\uc0c1\ub2e8 \uacf5\uc9c0 \ub760\ubc30\ub108","desc":"","displayType":"0","isActive":true,"createDate":"2024-02-22","bannerList":{"1708586842564":{"id":"1708586842564","name":"\ud68c\uc6d0\uac00\uc785 \uc2dc 3,000\ud3ec\uc778\ud2b8 | \ud3ec\ud1a0\ub9ac\ubdf0 \uc791\uc131 \uc2dc 1,000\ud3ec\uc778\ud2b8 \uc801\ub9bd","isActive":true,"displayType":1,"displayBeginTime":"2024-02-22 16:00:00","displayEndTime":"2024-12-31 16:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"\/","openType":"_self"}],"AddOn":["background:#111;","color:#fff;"],"index":0,"repeatBeginTime":"2000-01-01 00:00:00","repeatEndTime":"2000-01-01 00:00:00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1708673377731":{"id":"1708673377731","name":"11.11 - 11.24 \uc624\ud508\uc138\uc77c 10% + \uc804 \uad6c\ub9e4\uace0\uac1d GIFT \uc99d\uc815","isActive":false,"displayType":1,"displayBeginTime":"2024-02-23 16:00:00","displayEndTime":"2024-11-24 23:59:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"\/","openType":"_self"}],"AddOn":["background:#111;","color:#fff;"],"index":1,"repeatBeginTime":"2000-01-01 00:00:00","repeatEndTime":"2000-01-01 00:00:00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]}},"index":9},"c62f":{"id":"c62f","name":"SNS \uc815\ubcf4","desc":"","displayType":"0","isActive":true,"createDate":"2024-02-22","bannerList":{"1708587223175":{"id":"1708587223175","name":"instagram","isActive":true,"displayType":0,"displayBeginTime":"2024-02-22 16:00:00","displayEndTime":"2024-02-22 16:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"http:\/\/instagram.com\/aure_seoul","openType":"_self"}],"AddOn":[""],"index":0,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1708587240344":{"id":"1708587240344","name":"facebook","isActive":false,"displayType":0,"displayBeginTime":"2024-02-22 16:00:00","displayEndTime":"2024-02-22 16:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"http:\/\/facebook.com\/","openType":"_self"}],"AddOn":[""],"index":1,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1708587241392":{"id":"1708587241392","name":"twitter","isActive":false,"displayType":0,"displayBeginTime":"2024-02-22 16:00:00","displayEndTime":"2024-02-22 16:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"http:\/\/twitter.com\/","openType":"_self"}],"AddOn":[""],"index":2,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1708587242193":{"id":"1708587242193","name":"blog","isActive":false,"displayType":0,"displayBeginTime":"2024-02-22 16:00:00","displayEndTime":"2024-02-22 16:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"http:\/\/blog.naver.com\/","openType":"_self"}],"AddOn":[""],"index":3,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1708587262882":{"id":"1708587262882","name":"pinterest","isActive":false,"displayType":0,"displayBeginTime":"2024-02-22 16:00:00","displayEndTime":"2024-02-22 16:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"http:\/\/pinterest.com\/","openType":"_self"}],"AddOn":[""],"index":4,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1708587263597":{"id":"1708587263597","name":"kakao","isActive":false,"displayType":0,"displayBeginTime":"2024-02-22 16:00:00","displayEndTime":"2024-02-22 16:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"http:\/\/kakao.com\/","openType":"_self"}],"AddOn":[""],"index":5,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]}},"index":10},"831b":{"id":"831b","name":"\uc0c1\ud488\uac80\uc0c9 \uce74\ud14c\uace0\ub9ac \ubc88\ud638","desc":"","displayType":"0","isActive":true,"createDate":"2024-02-23","bannerList":{"1708666480212":{"id":"1708666480212","name":"42","isActive":true,"displayType":0,"displayBeginTime":"2024-02-23 14:00:00","displayEndTime":"2024-02-23 14:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"","openType":"_self"}],"AddOn":[""],"index":0}},"index":12},"058d":{"id":"058d","name":"\uba54\uc778\ubc30\ub1083","desc":"","displayType":"0","isActive":true,"createDate":"2024-03-07","bannerList":{"1709787352631":{"id":"1709787352631","name":"About","isActive":true,"displayType":0,"displayBeginTime":"2024-03-07 13:00:00","displayEndTime":"2024-03-07 13:00:00","html":"\u00e1ure seoul is a neo-contemporary brand that incorporates refined,
\nluxurious classic elements as its foundation.
\nour brand aims to offer items that blend seamlessly into daily life
\nprioritizing simplicity and functionality, allowing them to become more cherished over time","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg1423b65433944085\/isino001\/web\/upload\/NNEditor\/20241111\/adc283e5ba9c6eab2ae1dba0f7e6e9d8.jpg","type":2,"mime":"jpeg"}],"link":[{"url":"","openType":"_self"}],"AddOn":[""],"index":0,"repeatBeginTime":"2000-01-01 00:00:00","repeatEndTime":"2000-01-01 00:00:00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]}},"index":4},"fa39":{"id":"fa39","name":"\uba54\uc778\uc0c1\ud488 ( \ud0c0\uc774\ud2c0 \/ \ubc84\ud2bc\uba85 )","desc":"","displayType":"0","isActive":true,"createDate":"2024-03-07","bannerList":{"1709787428348":{"id":"1709787428348","name":"New Arrivals","isActive":true,"displayType":0,"displayBeginTime":"2024-03-07 13:00:00","displayEndTime":"2024-03-07 13:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"\/product\/list.html?cate_no=43","openType":"_self"}],"AddOn":["See More"],"index":0,"repeatBeginTime":"2000-01-01 00:00:00","repeatEndTime":"2000-01-01 00:00:00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]}},"index":5},"fc3e":{"id":"fc3e","name":"\uc778\ud2b8\ub85c \ud398\uc774\uc9c0","desc":"","displayType":"0","isActive":true,"createDate":"2024-03-08","bannerList":{"1709881730138":{"id":"1709881730138","name":"","isActive":true,"displayType":0,"displayBeginTime":"2024-03-08 16:00:00","displayEndTime":"2024-03-08 16:00:00","html":"","img":[{"url":"data:image\/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDI2My4yIDQ3LjciPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZpbGw6ICNmZmY7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC43LjIsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiAxLjIuMCBCdWlsZCAxNTQpICAtLT4KICA8Zz4KICAgIDxnIGlkPSJMYXllcl8xIj4KICAgICAgPGc+CiAgICAgICAgPGc+CiAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yNi44LDMyLjdjMCw3LjIuOCwxMS4zLDIuMywxMi4zdi41aC0yLjNjLTIuNSwwLTUuMi4xLTguMy40LTMuMS4yLTUsLjQtNS43LjQtMy45LDAtNi45LS42LTguOC0xLjgtMS45LTEuMi0yLjktMi43LTIuOS00LjVzLjQtMi4zLDEuMS0zLjJjLjctLjksMS42LTEuNiwyLjctMi4yLDEuMS0uNSwyLjQtMSwzLjctMS40LDEuNC0uNCwyLjctLjksNC4xLTEuMywxLjQtLjQsMi42LS45LDMuNy0xLjQsMS4xLS41LDItMS4xLDIuNy0yLC43LS44LDEuMS0xLjgsMS4xLTIuOXYtMS4xYzAtMS44LS41LTMtMS40LTMuNy0uOS0uNy0yLjMtMS4xLTQtMS4xcy0zLjUuNC01LjIsMS4xYy0xLjcuNy0zLjIsMS43LTQuNSwzLjEtMS4zLDEuNC0yLjEsMi45LTIuNCw0LjdoLS40di02LjZjMS40LS45LDMuMy0xLjUsNS43LTIsMi40LS41LDQuNi0uNyw2LjgtLjdzMi41LjEsMy45LjNjMS40LjIsMi42LjUsMy45LDEsMS4yLjQsMi4yLDEsMywxLjYuOC43LDEuMiwxLjQsMS4yLDIuM3Y4LjJaTTIwLjIsMzguNXYtMTAuN2MtLjMuNy0uOCwxLjMtMS40LDEuOS0uNi42LTEuMywxLTIuMSwxLjQtLjcuNC0xLjUuOC0yLjQsMS4xLS44LjQtMS43LjgtMi40LDEuMi0uOC40LTEuNS45LTIuMSwxLjUtLjYuNi0xLjEsMS4zLTEuNSwyLjEtLjQuOS0uNiwxLjgtLjYsMi45LDAsMS42LjQsMywxLjMsNC4xLjksMS4xLDIuMSwxLjcsMy43LDEuN3MxLjgtLjEsMi42LS4zYy44LS4yLDEuNi0uNiwyLjMtMS4xLjctLjUsMS4zLTEuMywxLjgtMi4yLjQtMSwuNy0yLjIuNy0zLjUiLz4KICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTU3LjgsMzBjMCw3LjEuOCwxMS4xLDIuMywxMi4xdi40Yy0xLjUsMC0zLC4zLTQuNy44LTEuNy41LTMuMSwxLjMtNC4yLDIuMnYtNC40Yy0uNiwxLjUtMS42LDIuNy0zLjEsMy43LTEuNSwxLTMuNSwxLjUtNi4xLDEuNXMtNS44LS44LTcuNS0yLjRjLTEuNy0xLjYtMi42LTQuMi0yLjYtNy43di0xLjJjMC02LjQtLjgtMTAtMi4zLTExdi0uNGMxLjUsMCwzLS4zLDQuNy0uOCwxLjctLjUsMy4xLTEuMyw0LjItMi4ydjE1LjVjMCwzLjQuNCw1LjgsMS4zLDcuMi45LDEuNCwyLjMsMi4xLDQuMywyLjFzMS40LS4xLDIuMS0uNGMuOC0uMywxLjUtLjcsMi4zLTEuMi43LS41LDEuNC0xLjIsMS45LTIuMS41LS45LjctMS44LjctMi44di0yLjhjMC03LjEtLjgtMTEuMi0yLjMtMTIuMXYtLjRjMS41LDAsMy0uMyw0LjctLjgsMS43LS41LDMuMS0xLjMsNC4yLTIuMnY5LjVaIi8+CiAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik03Ny45LDE5LjhjMS40LDAsMi44LjIsNC4zLjcsMS41LjUsMi44LDEuMSwzLjgsMS45bC0xLDEwLjZoLS4zYy0uMy0xLjQtLjYtMi44LTEuMS00LjEtLjQtMS4zLTEtMi41LTEuNi0zLjYtLjctMS4xLTEuNS0yLTIuNC0yLjctLjktLjctMi0xLTMuMS0xLTEuNiwwLTIuOS41LTMuOCwxLjYtMSwxLjEtMS42LDIuMy0xLjgsMy44djZjMCw3LjEuOCwxMS4yLDIuMywxMi4xdi40aC0xMS4ydi0uNGMxLjQtLjksMi4yLTQuNCwyLjMtMTAuNS0uMS02LjItLjktOS43LTIuMy0xMC42di0uNGMxLjUsMCwzLS4zLDQuNy0uOCwxLjctLjUsMy4xLTEuMyw0LjItMi4ydjQuNmMuNS0xLjUsMS40LTIuOCwyLjYtMy44LDEuMi0xLDIuNy0xLjUsNC40LTEuNSIvPgogICAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTEyLjUsMzkuOWwuNC4yYy0uNiwxLjUtMS44LDIuOS0zLjksNC4yLTIsMS4zLTQuMiwyLTYuNywycy00LjUtLjMtNi41LTFjLTItLjctMy42LTEuNi00LjktMi44LTEuMy0xLjItMi4zLTIuNi0zLTQuMi0uNy0xLjYtMS4xLTMuMy0xLjEtNS4xcy41LTQuNywxLjYtNi43YzEtMiwyLjYtMy42LDQuNi00LjgsMi4xLTEuMiw0LjQtMS44LDcuMS0xLjhzMi42LjIsNCwuNmMxLjQuNCwyLjcsMSwzLjksMS43LDEuMi43LDIuMiwxLjYsMywyLjguOCwxLjEsMS4yLDIuNCwxLjIsMy43cy0uNCwyLjctMS4zLDMuOGMtLjgsMS4xLTEuOSwyLTMuMiwyLjYtMS4zLjYtMi43LDEuMS00LjEsMS40LTEuNC4zLTIuOC41LTQuMS41LTIuMywwLTQuMy0uNC01LjktMS4xLjMsMywxLjIsNS41LDIuNiw3LjMsMS40LDEuOCwzLjUsMi43LDYuMSwyLjdzNC4zLS42LDYuMy0xLjhjMi0xLjIsMy4zLTIuNiwzLjktNC4xTTkzLjUsMzNjMCwuOSwwLDEuNSwwLDIsMS41LjksMy41LDEuNCw2LDEuNHMzLjYtLjcsNC42LTIuMWMxLTEuNCwxLjUtMy4zLDEuNS01LjcsMC01LjUtMS44LTguMy01LjQtOC4zcy0yLjIuMy0zLjEsMWMtLjkuNy0xLjYsMS42LTIuMSwyLjgtLjUsMS4yLS45LDIuNi0xLjEsNC0uMiwxLjUtLjQsMy4xLS40LDQuOSIvPgogICAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTQyLjgsMjMuOWMwLC45LjMsMS43LDEsMi41LjcuOCwxLjYsMS42LDIuNywyLjIsMS4xLjcsMi4zLDEuMywzLjYsMS45LDEuMy42LDIuNiwxLjMsMy45LDEuOSwxLjMuNiwyLjUsMS4zLDMuNiwyLDEuMS43LDIsMS40LDIuNywyLjMuNy44LDEsMS43LDEsMi42cy0uNCwyLjMtMS4xLDMuMmMtLjcuOS0xLjcsMS42LTIuOSwyLjItMS4yLjUtMi41LjktMy44LDEuMS0xLjMuMi0yLjcuNC00LjIuNHMtNC0uMy02LjMtLjhjLTIuMi0uNS0zLjktMS4yLTUuMi0xLjl2LTYuNWguNGMuNCwyLjUsMS43LDQuNiwzLjksNi4yLDIuMiwxLjYsNC42LDIuNSw3LjIsMi41czMuMS0uNCw0LjMtMS4xYzEuMi0uNywxLjgtMS43LDEuOC0zcy0uMy0xLjctMS0yLjRjLS42LS44LTEuNS0xLjUtMi41LTIuMS0xLS42LTIuMi0xLjItMy40LTEuOC0xLjItLjYtMi41LTEuMi0zLjctMS44LTEuMy0uNi0yLjQtMS4zLTMuNC0xLjktMS0uNy0xLjktMS40LTIuNS0yLjMtLjctLjktMS0xLjgtMS0yLjdzLjMtMi4zLDEtMy4yYy43LS45LDEuNi0xLjYsMi43LTIuMiwxLjEtLjUsMi4zLS45LDMuNi0xLjEsMS4zLS4yLDIuNy0uNCw0LjEtLjQsNC4zLDAsNy45LjksMTAuOSwyLjd2Ni41aC0uM2MtLjUtMi42LTEuNy00LjgtMy43LTYuMy0yLTEuNi00LjMtMi40LTYuOS0yLjRzLTMuMy4zLTQuNS45Yy0xLjIuNi0xLjgsMS41LTEuOCwyLjgiLz4KICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE4OC4yLDM5LjlsLjQuMmMtLjYsMS41LTEuOCwyLjktMy45LDQuMi0yLDEuMy00LjIsMi02LjcsMnMtNC41LS4zLTYuNS0xYy0yLS43LTMuNi0xLjYtNC45LTIuOC0xLjMtMS4yLTIuMy0yLjYtMy00LjItLjctMS42LTEuMS0zLjMtMS4xLTUuMXMuNS00LjcsMS42LTYuN2MxLTIsMi42LTMuNiw0LjYtNC44LDIuMS0xLjIsNC40LTEuOCw3LjEtMS44czIuNi4yLDQsLjZjMS40LjQsMi43LDEsMy45LDEuNywxLjIuNywyLjIsMS42LDMsMi44LjgsMS4xLDEuMiwyLjQsMS4yLDMuN3MtLjQsMi43LTEuMywzLjhjLS44LDEuMS0xLjksMi0zLjIsMi42LTEuMy42LTIuNywxLjEtNC4xLDEuNC0xLjQuMy0yLjguNS00LjEuNS0yLjMsMC00LjMtLjQtNS45LTEuMS4zLDMsMS4yLDUuNSwyLjYsNy4zLDEuNCwxLjgsMy41LDIuNyw2LjEsMi43czQuMy0uNiw2LjMtMS44YzItMS4yLDMuMy0yLjYsMy45LTQuMU0xNjkuMiwzM2MwLC45LDAsMS41LDAsMiwxLjUuOSwzLjUsMS40LDYsMS40czMuNi0uNyw0LjYtMi4xYzEtMS40LDEuNS0zLjMsMS41LTUuNywwLTUuNS0xLjgtOC4zLTUuNC04LjNzLTIuMi4zLTMuMSwxYy0uOS43LTEuNiwxLjYtMi4xLDIuOC0uNSwxLjItLjksMi42LTEuMSw0LS4yLDEuNS0uNCwzLjEtLjQsNC45Ii8+CiAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMDQuMiwxOS44YzIuNCwwLDQuNy42LDYuOCwxLjgsMi4xLDEuMiwzLjcsMi44LDQuOSw0LjgsMS4yLDIsMS44LDQuMywxLjgsNi43cy0uNiw0LjYtMS44LDYuNmMtMS4yLDItMi44LDMuNi00LjksNC44LTIuMSwxLjItNC4zLDEuOC02LjgsMS44LTMuNywwLTYuOS0xLjMtOS41LTMuOS0yLjYtMi42LTQtNS43LTQtOS4zcy40LTMuNSwxLjEtNS4xYy43LTEuNiwxLjctMy4xLDIuOS00LjIsMS4yLTEuMiwyLjYtMi4xLDQuMy0yLjgsMS43LS43LDMuNC0xLjEsNS4yLTEuMU0yMDQuMiw0NS44YzEuMiwwLDIuNC0uNiwzLjQtMS43LDEuMS0xLjEsMS45LTIuNywyLjUtNC42LjYtMiwuOS00LjEuOS02LjRzLS4zLTQuNS0uOS02LjRjLS42LTItMS40LTMuNS0yLjUtNC43LTEuMS0xLjEtMi4yLTEuNy0zLjQtMS43cy0yLjQuNi0zLjUsMS43Yy0xLjEsMS4xLTEuOSwyLjctMi41LDQuNy0uNiwyLS45LDQuMS0uOSw2LjQsMCwzLjUuNyw2LjUsMiw5LDEuNCwyLjUsMywzLjcsNC45LDMuNyIvPgogICAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjQ2LjYsMzBjMCw3LjEuOCwxMS4xLDIuMywxMi4xdi40Yy0xLjUsMC0zLC4zLTQuNy44LTEuNy41LTMuMSwxLjMtNC4yLDIuMnYtNC40Yy0uNiwxLjUtMS42LDIuNy0zLjEsMy43LTEuNSwxLTMuNSwxLjUtNi4xLDEuNXMtNS44LS44LTcuNS0yLjRjLTEuNy0xLjYtMi42LTQuMi0yLjYtNy43di0xLjJjMC02LjQtLjgtMTAtMi4zLTExdi0uNGMxLjUsMCwzLS4zLDQuNy0uOCwxLjctLjUsMy4xLTEuMyw0LjItMi4ydjE1LjVjMCwzLjQuNCw1LjgsMS4zLDcuMi45LDEuNCwyLjMsMi4xLDQuMywyLjFzMS40LS4xLDIuMS0uNGMuOC0uMywxLjUtLjcsMi4zLTEuMi43LS41LDEuNC0xLjIsMS45LTIuMS41LS45LjctMS44LjctMi44di0yLjhjMC03LjEtLjgtMTEuMi0yLjMtMTIuMXYtLjRjMS41LDAsMy0uMyw0LjctLjgsMS43LS41LDMuMS0xLjMsNC4yLTIuMnY5LjVaIi8+CiAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yNTkuNSwzMi45YzAsNy4xLjgsMTEuMiwyLjMsMTIuMXYuNGgtMTEuMnYtLjRjMS41LS45LDIuMy01LDIuMy0xMi4xdi0xNS42YzAtNy4xLS44LTExLjEtMi4zLTEyLjF2LS40YzEuNSwwLDMtLjMsNC43LS44LDEuNy0uNSwzLjEtMS4zLDQuMi0yLjJ2MzEuMVoiLz4KICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMTE4LjYiIHk9IjQyLjYiIHdpZHRoPSIxMyIgaGVpZ2h0PSIyLjMiLz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTUuMiwzLjVjLjQtLjcsMS4xLS45LDIuOC0uNC41LjIuOS4zLDEuMS40LjcuMywxLjEuNywxLjEsMS4yLDAsLjUtLjIsMS4xLS41LDEuNy0uNSwxLTEuMSwyLTEuOSwzLS44LDEtMS42LDEuOS0yLjMsMi42LS4zLjItLjUuNS0uOS43LS4zLjMtLjcuNS0xLC43LS4zLjItLjcuMy0xLC40LS4zLDAtLjYsMC0uOCwwLS4zLS4yLS40LS41LS4zLTEuMS4yLS42LjQtMS4yLjgtMiwuMy0uNi42LTEuMi45LTEuOC4zLS42LjYtMS4yLjgtMS44LjItLjYuNC0xLjEuNi0xLjYuMi0uOS40LTEuNi43LTIuMVoiLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+","type":2,"mime":"svg+xml"}],"link":[{"url":"","openType":"_self"}],"AddOn":[""],"index":0,"repeatBeginTime":"2000-01-01 00:00:00","repeatEndTime":"2000-01-01 00:00:00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]}},"index":13}};
var LastSaveData = { "lastSaveSkin": "Our Minds 2 반응형", "lastSaveDate": "2024-11-25 09:27:29" };
// 아이콘
var IconsPC = {"soldout":"https:\/\/img.echosting.cafe24.com\/design\/skin\/admin\/ko_KR\/ico_product_soldout.gif"};
var IconsMobile = {"soldout":"https:\/\/img.echosting.cafe24.com\/design\/skin\/admin\/ko_KR\/ico_product_soldout.gif"};
// 활성된 배너 엘리먼트, 배너 데이터
var activeBannerElem = [];
// 동영상 url 구분하기
function getVideoDetails( url )
{
try
{
const urlObj = new URL( url );
let site = "";
let videoID = "";
if( urlObj.hostname.includes( "youtube.com" ) || urlObj.hostname.includes( "youtu.be" ) )
{
site = "youtube";
if( urlObj.hostname.includes( "youtube.com" ) )
{
const shortsIndex = url.indexOf("/shorts/");
if( shortsIndex !== -1 )
{
let videoIDWithParams = url.substring( shortsIndex + 8 );
const paramIndex = videoIDWithParams.indexOf( "?" );
if( paramIndex !== -1 )
videoID = videoIDWithParams.substring( 0, paramIndex );
else
videoID = videoIDWithParams;
}
else
{
videoID = urlObj.searchParams.get( "v" );
}
}
else if( urlObj.hostname.includes( "youtu.be" ) )
{
videoID = urlObj.pathname.slice( 1 );
}
}
else if( urlObj.hostname.includes( "vimeo.com" ) )
{
site = "vimeo";
if( urlObj.hostname.includes( "player.vimeo.com" ) )
videoID = urlObj.pathname.split( "/" )[ 2 ];
else
videoID = urlObj.pathname.split( "/" )[ 1 ];
}
else if( urlObj.hostname.includes( "charlla.io" ) )
{
site = "charlla";
videoID = urlObj.pathname.split( "/" )[ 1 ];
}
else if( urlObj.pathname.endsWith( ".mp4" ) )
{
site = "mp4";
videoID = urlObj.pathname;
}
else
{
site = "unknown";
videoID = null;
}
return { site, videoID };
}
catch( error )
{
console.error( "유효한 URL이 아닙니다:", error );
return null;
}
}
function makeVideoTag( html, data )
{
for( let i in data.videoUrl )
{
const urlData = data.videoUrl[ i ];
if( null == urlData.url || "undefined" == urlData.url || "" == urlData.url )
{
switch( i )
{
case "0" : html = html.replace( /{#video_1}/gi, "" ); break;
case "1" : html = html.replace( /{#video_2}/gi, "" ); break;
case "2" : html = html.replace( /{#video_3}/gi, "" ); break;
}
continue;
}
const siteUrl = getVideoDetails( urlData.url );
if( null == siteUrl )
{
switch( i )
{
case "0" : html = html.replace( /{#video_1}/gi, "" ); break;
case "1" : html = html.replace( /{#video_2}/gi, "" ); break;
case "2" : html = html.replace( /{#video_3}/gi, "" ); break;
}
continue;
}
let pointerEvent = "";
if( true == urlData.autoPlay )
pointerEvent = "pointer-events:none;"
else
pointerEvent = "pointer-events:auto;"
let aspectRatio = urlData.ratioX + "/" + urlData.ratioY;
let iframeElem = "";
switch( siteUrl.site )
{
case "youtube" :
{
iframeElem = "
";
}
break;
case "vimeo" :
{
iframeElem = "
";
}
break;
case "charlla" :
{
iframeElem = "
";
}
break;
case "mp4" :
{
let autoplay_chk = "";
if( true == urlData.autoPlay )
autoplay_chk = "autoplay";
iframeElem = "
";
}
break;
default :
{
console.log( "영상없음" );
}
break;
}
switch( i )
{
case "0" : html = html.replace( /{#video_1}/gi, iframeElem ); break;
case "1" : html = html.replace( /{#video_2}/gi, iframeElem ); break;
case "2" : html = html.replace( /{#video_3}/gi, iframeElem ); break;
}
}
return html;
}
//---------------------------------------------------------------------------------------------------------------------------------
// 배너 관리자
Init_MorenvyBannerManager();
//(function( CAFE24API )
function Init_MorenvyBannerManager()
{
console.log( "%c----- Banner Manager -----", "color:rgb(20, 85, 249); font-size: 25px;" );
console.log( "최종 수정 스킨 : " + LastSaveData[ "lastSaveSkin" ] );
console.log( "최종 수정 일자 : " + LastSaveData[ "lastSaveDate" ] );
console.log( "https://morenvy.com" );
console.log( "%c--------------------------", "color:rgb(20, 85, 249); font-size: 25px;" );
// 배너영역 클래스 검색
var bannerAreaList = document.getElementsByClassName( "morenvy-banner-area" );
if( null == bannerAreaList )
return;
for( var i = 0; i < bannerAreaList.length; )
{
// HTML에서 배너영역 ID 가져온다
var bannerArea = bannerAreaList[ i ];
var areaID = bannerArea.getAttribute( "area_id" );
// 배너영역 ID로 데이터 검색
var areaData = MorenvyBanner_AreaData[ areaID ];
if( null == areaData )
{
bannerArea.style.display = "none";
++i;
continue;
}
// 순서대로 출력
var bannerArray = [];
if( "0" == areaData.displayType )
{
for( var key in areaData.bannerList )
{
bannerArray.push( areaData.bannerList[ key ] );
}
bannerArray.sort( function( a, b )
{
return a.index > b.index ? 1 : -1;
} );
}
// 랜덤 출력
else if( "1" == areaData.displayType )
{
for( var key in areaData.bannerList )
{
areaData.bannerList[ key ].random = Math.random();
bannerArray.push( areaData.bannerList[ key ] );
}
bannerArray.sort( function( a, b )
{
return a.random > b.random ? 1 : -1;
} );
}
var bannerList = bannerAreaList[ i ].getElementsByClassName( "morenvy-banner" );
if( 0 == bannerList.length )
{
bannerArea.style.display = "none";
++i;
continue;
}
// 설정 수 보다 엘리먼트가 부족할 경우 마지막 엘리먼트 복사
if( bannerList.length < bannerArray.length )
{
var copyTarget = bannerList[ bannerList.length - 1 ];
var loopCount = bannerArray.length - bannerList.length;
for( var j = 0; j < loopCount; ++j )
{
var copyElem = copyTarget.cloneNode( true );
//bannerAreaList[ i ].append( copyElem );
copyTarget.parentElement.append( copyElem );
}
}
var showIndex = 0;
for( var j = 0; j < bannerList.length; )
{
var bannerData = j >= bannerArray.length ? null : bannerArray[ j ];
// 배너 데이터 없음
if( null == bannerData )
{
bannerList[ j ].remove();
bannerArray.splice( j, 1 );
continue;
}
// 활성 중?
if( false == bannerData.isActive )
{
bannerList[ j ].remove();
bannerArray.splice( j, 1 );
continue;
}
// 기간 노출
if( 1 == bannerData.displayType )
{
var beginDate = new Date( bannerData.displayBeginTime.replace( /-/g, "/" ) );
var endDate = new Date( bannerData.displayEndTime.replace( /-/g, "/" ) );
var curTime = new Date();
if( beginDate > curTime || endDate < curTime )
{
bannerList[ j ].remove();
bannerArray.splice( j, 1 );
continue;
}
}
// 반복 노출
if( 2 == bannerData.displayType )
{
let curTime = new Date();
const getWeek = () =>
{
const now = new Date();
const currentDate = now.getDate();
const firstDay = new Date( now.setDate( 1 ) ).getDay();
return Math.ceil( (currentDate + firstDay) / 7 );
};
const checkDay = ( day ) =>
{
return curTime.getDate() == day;
};
const checkWeek = ( week, day, isFlag ) =>
{
if( getWeek() == week )
{
if( true == isFlag )
{
let flag = 0x00000000;
switch( curTime.getDay() )
{
case 1 : flag = 0x00000001; break;
case 2 : flag = 0x00000002; break;
case 3 : flag = 0x00000004; break;
case 4 : flag = 0x00000008; break;
case 5 : flag = 0x00000010; break;
case 6 : flag = 0x00000012; break;
case 7 : flag = 0x00000014; break;
}
if( flag & day )
return true;
}
else
{
if( curTime.getDay() == day )
return true;
}
}
return false;
};
let isRemove = false;
const repeatData = bannerData.repeatData;
// 매월 특정 일마다 반복
if( "day" == bannerData.repeatType )
{
if( false == checkDay( repeatData.day ) )
isRemove = true;
}
// 특정 주, 요일 마다 반복
else if( "week" == bannerData.repeatType )
{
if( false == checkWeek( repeatData.week.everyW, repeatData.week.everyD, true ) )
isRemove = true;
}
// 특정 월 반복
else if( "month" == bannerData.repeatType )
{
if( curTime.getMonth() + 1 == repeatData.month.everyM )
{
// 특정 일 반복
if( "month_day" == repeatData.month.month_type )
{
if( false == checkDay( repeatData.month.month_day ) )
isRemove = true;
}
// 특정 주, 요일 마다 반복
else
{
if( false == checkWeek( repeatData.month.month_week_everyW, repeatData.month.month_week_everyD, false ) )
isRemove = true;
}
}
else
{
isRemove = true;
}
}
if( true == isRemove )
{
bannerList[ j ].remove();
bannerArray.splice( j, 1 );
continue;
}
}
var html = bannerList[ j ].innerHTML;
html = html.replace( /%7B/gi, "{" );
html = html.replace( /%7D/gi, "}" );
html = html.replace( /{#areaName}/gi, areaData.name );
html = html.replace( /{#areaDesc}/gi, areaData.desc );
html = html.replace( /{#areaDisplayType}/gi, areaData.displayType );
html = html.replace( /{#num}/gi, ++showIndex );
html = html.replace( /{#title}/gi, bannerData.name );
html = html.replace( /{#displayType}/gi, bannerData.displayType );
html = html.replace( /{#displayBeginTime}/gi, bannerData.displayBeginTime );
html = html.replace( /{#displayEndTime}/gi, bannerData.displayEndTime );
html = html.replace( /{#text_1}/gi, 0 < bannerData.AddOn.length ? bannerData.AddOn[ 0 ] : "" );
html = html.replace( /{#text_2}/gi, 1 < bannerData.AddOn.length ? bannerData.AddOn[ 1 ] : "" );
html = html.replace( /{#text_3}/gi, 2 < bannerData.AddOn.length ? bannerData.AddOn[ 2 ] : "" );
html = html.replace( /{#link_1}/gi, 0 < bannerData.link.length ? bannerData.link[ 0 ].url : "" );
html = html.replace( /{#link_2}/gi, 1 < bannerData.link.length ? bannerData.link[ 1 ].url : "" );
html = html.replace( /{#link_3}/gi, 2 < bannerData.link.length ? bannerData.link[ 2 ].url : "" );
html = html.replace( /{#target_1}/gi, 0 < bannerData.link.length ? bannerData.link[ 0 ].openType : "" );
html = html.replace( /{#target_2}/gi, 1 < bannerData.link.length ? bannerData.link[ 1 ].openType : "" );
html = html.replace( /{#target_3}/gi, 2 < bannerData.link.length ? bannerData.link[ 2 ].openType : "" );
html = html.replace( /{#html}/gi, bannerData.html );
// 비디오 or 이미지 태그를 데이터 값에 따라 명확히 구분
if( null != bannerData.videoUrl && "undefined" != bannerData.videoUrl )
{
if( 0 < bannerData.videoUrl.length )
{
const url = bannerData.videoUrl[ 0 ].url;
if( null != url && "" != url )
html = html.replace( /{#imgTag_1_or_video_1}/gi, "{#video_1}" );
else
html = html.replace( /{#imgTag_1_or_video_1}/gi, "{#imgTag_1}" );
}
else
{
html = html.replace( /{#imgTag_1_or_video_1}/gi, "{#imgTag_1}" );
}
if( 1 < bannerData.videoUrl.length )
{
const url = bannerData.videoUrl[ 1 ].url;
if( null != url && "" != url )
html = html.replace( /{#imgTag_2_or_video_2}/gi, "{#video_2}" );
else
html = html.replace( /{#imgTag_2_or_video_2}/gi, "{#imgTag_2}" );
}
else
{
html = html.replace( /{#imgTag_2_or_video_2}/gi, "{#imgTag_2}" );
}
if( 2 < bannerData.videoUrl.length )
{
const url = bannerData.videoUrl[ 2 ].url;
if( null != url && "" != url )
html = html.replace( /{#imgTag_3_or_video_3}/gi, "{#video_3}" );
else
html = html.replace( /{#imgTag_3_or_video_3}/gi, "{#imgTag_3}" );
}
else
{
html = html.replace( /{#imgTag_3_or_video_3}/gi, "{#imgTag_3}" );
}
}
html = html.replace( /{#imgTag_1}/gi, 0 < bannerData.img.length ? "
" : "" );
html = html.replace( /{#imgTag_2}/gi, 1 < bannerData.img.length ? "
" : "
" );
html = html.replace( /{#imgTag_3}/gi, 2 < bannerData.img.length ? "
" : "
" );
html = html.replace( /{#imgSrc_1}/gi, 0 < bannerData.img.length ? bannerData.img[ 0 ].url : "" );
html = html.replace( /{#imgSrc_2}/gi, 1 < bannerData.img.length ? bannerData.img[ 1 ].url : bannerData.img[ bannerData.img.length - 1 ].url );
html = html.replace( /{#imgSrc_3}/gi, 2 < bannerData.img.length ? bannerData.img[ 2 ].url : bannerData.img[ bannerData.img.length - 1 ].url );
// 비디오 태그 생성
html = makeVideoTag( html, bannerData );
bannerList[ j ].innerHTML = html;
activeBannerElem.push( { elem : bannerList[ j ], bannerData : bannerData } );
++j;
}
if( 0 == bannerList.length )
bannerArea.style.display = "none";
++i;
bannerArea.classList.add( "init" );
}
}/* )( CAFE24API.init(
{
version: "2022-09-01",
client_id: "gSOPn7dNJxAp8cu31kDDtD"
} ) );*/
//----------------------------------------------------------------------------------------------------------------------------
// 상품 진열 플러그인
function Init_MorenvyProductDisplay()
{
// 상품 정보 요청 최대 개수, cafe24에서 최대 100개까지 지원됨.
const maxSearchCount = 100;
// 상품 정보 요청할 상품 번호
var needToSearchProduct = {};
// 상품 정보 콜백 받은 후 html replace 필요한 엘리먼트들, 해당 엘리먼트 내 상품 번호
var needToReplaceElems = [];
// 초기화 필요한 product area
var needToInitPrudctArea = [];
// replace 필요한 상품 배열 데이터
var needToReplaceArray = {};
// 모바일인지 체크
var isMobile = /Mobi/i.test( window.navigator.userAgent );
// 상품 관련 태그를 상품 번호 태그로 매핑
// ex) {#productName} ----> {#19_Name}
function replaceToProductNo( html, tagName, productNo, replace )
{
const regExp = new RegExp( `{${"#" + tagName}}`, "gi" );
if( null != productNo )
html = html.replace( regExp, "{#" + productNo + "_" + replace + "}" );
else
html = html.replace( regExp, "" );
return html;
}
// 배열 데이터 태그 replace
function replaceToArrayProductNo( html, tagName, productNo, replace )
{
var nextIndex = 0;
while( true )
{
var startIndex = html.indexOf( "{#" + tagName, nextIndex );
if( -1 == startIndex )
break;
var endIndex = html.indexOf( "}", startIndex );
if( -1 == endIndex )
break;
var arrayIndex = html.slice( startIndex + String( "{#" + tagName ).length + 1, endIndex );
if( null == needToReplaceArray[ productNo ] )
needToReplaceArray[ productNo ] = new Object();
if( null == needToReplaceArray[ productNo ][ replace ] )
needToReplaceArray[ productNo ][ replace ] = new Object();
needToReplaceArray[ productNo ][ replace ][ arrayIndex ] = 0;
nextIndex = endIndex + 1;
}
const regExp = new RegExp( `{${"#" + tagName + "_"}`, "gi" );
if( null != productNo )
html = html.replace( regExp, "{#" + productNo + "_" + replace + "_" );
else
html = html.replace( regExp, "" );
return html;
}
// 상품 번호로 매핑된 태그를 실제 상품 정보로 replace
function replaceTag( html, productNo, tag, replace )
{
const regExp = new RegExp( `{${"#" + productNo + "_" + tag}}`, "gi" );
html = html.replace( regExp, replace );
return html;
}
// 상품 번호로 매핑된 태그를 실제 상품 정보로 replace (한개만)
function replaceOneTag( html, productNo, tag, replace )
{
html = html.replace( "{#" + productNo + "_" + tag + "}", replace );
return html;
}
// 상품 번호로 매핑된 태그를 실제 상품 정보로 replace
function replaceArrayTag( index, html, productNo, tag, replace )
{
const regExp = new RegExp( `{${"#" + productNo + "_" + tag + "_" + index}}`, "gi" );
html = html.replace( regExp, replace );
return html;
}
// 배너관리자에서 활성된 배너
for( var key in activeBannerElem )
{
// 활성된 배너 데이터
var bannerData = activeBannerElem[ key ].bannerData;
// 상품 진열 데이터 없음
if( null == bannerData.productDisplay || 0 == bannerData.productDisplay.length )
continue;
// 상품 진열 영역
var productAreaList = activeBannerElem[ key ].elem.getElementsByClassName( "morenvy-product-area" );
if( null == productAreaList || 0 == productAreaList.length )
continue;
for( var i = 0; i < productAreaList.length; )
{
var productArea = productAreaList[ i ];
var productList = productArea.getElementsByClassName( "morenvy-product" );
if( null == productList || 0 == productList.length )
{
productAreaList[ i ].remove();
continue;
}
// 설정 수 보다 엘리먼트가 부족할 경우 마지막 엘리먼트 복사
if( productList.length < bannerData.productDisplay.length )
{
var copyTarget = productList[ productList.length - 1 ];
var loopCount = bannerData.productDisplay.length - productList.length;
for( var j = 0; j < loopCount; ++j )
{
var copyElem = copyTarget.cloneNode( true );
productArea.append( copyElem );
}
}
for( var j = 0; j < productList.length; )
{
// 상품 검색 최대 수 도달
if( maxSearchCount <= Object.keys( needToSearchProduct ).length )
break;
var productNo = j >= bannerData.productDisplay.length ? null : bannerData.productDisplay[ j ];
// 상품 데이터 없음
if( null == productNo )
{
productList[ j ].remove();
bannerData.productDisplay.splice( j, 1 );
continue;
}
var html = productList[ j ].innerHTML;
html = html.replace( /%7B/gi, "{" );
html = html.replace( /%7D/gi, "}" );
// 모바일/PC에 따라 아이콘 다름
if( false == isMobile )
{
html = html.replace( /{#soldout_icon}/gi, IconsPC[ "soldout" ] );
html = html.replace( /{#soldout_iconTag}/gi, "
" );
}
else
{
html = html.replace( /{#soldout_icon}/gi, IconsMobile[ "soldout" ] );
html = html.replace( /{#soldout_iconTag}/gi, "
" );
}
// 상품 번호 매핑
html = html.replace( /{#productNo}/gi, productNo );
// 상품 태그를 상품 번호 태그로 매핑
html = replaceToProductNo( html, "link", productNo, "Link" );
html = replaceToProductNo( html, "name", productNo, "Name" );
html = replaceToProductNo( html, "nameEn", productNo, "NameEn" );
html = replaceToProductNo( html, "price", productNo, "Price" );
html = replaceToProductNo( html, "retailPrice", productNo, "RetailPrice" );
html = replaceToProductNo( html, "discountPrice", productNo, "DiscountPrice" );
html = replaceToProductNo( html, "imgBig", productNo, "ImgBig" );
html = replaceToProductNo( html, "imgBigTag", productNo, "ImgBigTag" );
html = replaceToProductNo( html, "imgMedium", productNo, "ImgMedium" );
html = replaceToProductNo( html, "imgMediumTag", productNo, "ImgMediumTag" );
html = replaceToProductNo( html, "imgSmall", productNo, "ImgSmall" );
html = replaceToProductNo( html, "imgSmallTag", productNo, "ImgSmallTag" );
html = replaceToProductNo( html, "imgTiny", productNo, "ImgTiny" );
html = replaceToProductNo( html, "imgTinyTag", productNo, "ImgTinyTag" );
html = replaceToProductNo( html, "summaryDesc", productNo, "SummaryDesc" );
html = replaceToProductNo( html, "simpleDesc", productNo, "SimpleDesc" );
html = replaceToProductNo( html, "customCode", productNo, "CustomCode" );
html = replaceToProductNo( html, "modelName", productNo, "ModelName" );
html = replaceToProductNo( html, "brand", productNo, "Brand" );
html = replaceToProductNo( html, "trend", productNo, "Trend" );
html = replaceToProductNo( html, "manu", productNo, "Manu" );
html = replaceToProductNo( html, "opt_discountPrice", productNo, "Opt_DiscountPrice" );
html = replaceToProductNo( html, "coupon_discountPrice", productNo, "Coupon_DiscountPrice" );
html = replaceToProductNo( html, "promotion_period", productNo, "Promotion_Period" );
// addImg / addImgTag 처럼 태그 이름이 확장되는 경우 확장된 놈부터 replace, 에러남
html = replaceToArrayProductNo( html, "addInfo_name", productNo, "AddInfo_Name" );
html = replaceToArrayProductNo( html, "addInfo_value", productNo, "AddInfo_Value" );
html = replaceToArrayProductNo( html, "addImgTag", productNo, "AddImgTag" );
html = replaceToArrayProductNo( html, "addImg", productNo, "AddImg" );
productList[ j ].innerHTML = html;
needToSearchProduct[ productNo ] = 0;
needToReplaceElems.push( { areaElem : productArea, productNo : productNo, productElem : productList[ j ] } );
++j;
}
needToInitPrudctArea.push( productArea );
++i;
}
}
// 상품 검색
Search();
function applyProductData( products )
{
// replace가 먼저 되면 엘리먼트 삭제가 안된다.
// 삭제할 엘리먼트만 먼저 찾아서 삭제
for( var key in needToReplaceElems )
{
// 상품 엘리먼트
var productElem = needToReplaceElems[ key ].productElem;
// 상품 번호
var productNo = needToReplaceElems[ key ].productNo;
// 해당 번호의 상품 데이터 없음. 엘리먼트 삭제
var data = products[ productNo ];
if( null == data )
{
productElem.remove();
continue;
}
// 진열중 아니거나 판매중 아니면 엘리먼트 삭제
if( "F" == data.selling || "F" == data.display )
{
productElem.remove();
continue;
}
}
// 검색된 상품 정보를 각각의 엘리먼트에 상품 번호로 매핑된 태그를 찾아 replace
for( var key in needToReplaceElems )
{
// 상품 영역 엘리먼트
var productAreaElem = needToReplaceElems[ key ].areaElem;
// 상품 엘리먼트
var productElem = needToReplaceElems[ key ].productElem;
// 상품 번호
var productNo = needToReplaceElems[ key ].productNo;
var data = products[ productNo ];
if( null == data || "F" == data.selling || "F" == data.display )
continue;
// PC/모바일 할인가가 다름
var discount = true == isMobile ? data.discountprice.mobile_discount_price : data.discountprice.pc_discount_price;
var html = productAreaElem.innerHTML;
html = html.replace( /%7B/gi, "{" );
html = html.replace( /%7D/gi, "}" );
html = replaceTag( html, data.product_no, "Link", "/product/detail.html?product_no=" + data.product_no );
html = replaceTag( html, data.product_no, "Name", data.product_name );
html = replaceTag( html, data.product_no, "NameEn", data.eng_product_name );
html = replaceTag( html, data.product_no, "Price", parseInt( data.price ).toLocaleString() );
html = replaceTag( html, data.product_no, "RetailPrice", parseInt( data.retail_price ).toLocaleString() );
html = replaceTag( html, data.product_no, "DiscountPrice", parseInt( discount ).toLocaleString() );
html = replaceTag( html, data.product_no, "ImgBig", data.detail_image );
html = replaceTag( html, data.product_no, "ImgBigTag", "
" );
html = replaceTag( html, data.product_no, "ImgMedium", data.list_image );
html = replaceTag( html, data.product_no, "ImgMediumTag", "
" );
html = replaceTag( html, data.product_no, "ImgSmall", data.small_image );
html = replaceTag( html, data.product_no, "ImgSmallTag", "
" );
html = replaceTag( html, data.product_no, "ImgTiny", data.tiny_image );
html = replaceTag( html, data.product_no, "ImgTinyTag", "
" );
html = replaceTag( html, data.product_no, "SummaryDesc", data.summary_description );
html = replaceTag( html, data.product_no, "CustomCode", data.custom_product_code );
html = replaceTag( html, data.product_no, "ModelName", data.model_name );
productAreaElem.innerHTML = html;
++i;
}
// 상품 영역 초기화 완료
for( var key in needToInitPrudctArea )
{
needToInitPrudctArea[ key ].classList.add( "init" );
}
}
function Search()
{
// 검색 필요한 상품 없음
if( 0 == Object.keys( needToSearchProduct ).length )
return;
var count = 0;
// 상품 검색 파라미터
var searchParam = "?embed=discountprice&product_no=";
for( var key in needToSearchProduct )
{
++count;
if( 1 < count )
searchParam += ",";
searchParam += key;
}
// 상품 검색 개수, cafe24에서 최대 100개까지 지원됨.
searchParam += "&limit=" + maxSearchCount;
// 상품 검색 요청
CAFE24API.get( "/api/v2/products" + searchParam, function( err, res )
{
// 상품 번호를 키로 object 변환
var products = {};
for( var i in res.products )
{
products[ res.products[ i ].product_no ] = res.products[ i ];
}
applyProductData( products );
var reqDetailCount = 0;
var totalReqCount = 0;
var totalApplyCount = 0;
function reqDetail()
{
var arrProductNo = Object.keys( needToSearchProduct );
if( 0 == arrProductNo )
return;
++reqDetailCount;
++totalReqCount;
var productNo = arrProductNo[ 0 ];
CAFE24API.get( "/api/v2/productsdetail/" + productNo, function( err, res )
{
applyProductDetail( res.productsdetail );
++totalApplyCount;
if( totalApplyCount == totalReqCount )
replaceNaN();
} );
delete needToSearchProduct[ productNo ];
if( 40 <= reqDetailCount )
{
setTimeout( function()
{
reqDetailCount = 0;
reqDetail();
}, 2500 );
}
else
{
reqDetail();
}
}
reqDetail();
function applyProductDetail( data )
{
// 상품 진열 영역
var productAreaList = document.getElementsByClassName( "morenvy-product-area" );
if( null == productAreaList || 0 == productAreaList.length )
return;
for( var i = 0; i < productAreaList.length; ++i )
{
var elem = productAreaList[ i ];
var html = elem.innerHTML;
html = html.replace( /%7B/gi, "{" );
html = html.replace( /%7D/gi, "}" );
html = replaceTag( html, data.product_no, "SimpleDesc", null == data.simple_description ? "" : data.simple_description );
html = replaceTag( html, data.product_no, "Brand", null == data.brand_name ? "" : data.brand_name );
html = replaceTag( html, data.product_no, "Trend", null == data.trend_name ? "" : data.trend_name );
html = replaceTag( html, data.product_no, "Manu", null == data.manufacturer_name ? "" : data.manufacturer_name );
html = replaceTag( html, data.product_no, "Opt_DiscountPrice",
null == data.optimum_discount_price ? "" : parseInt( data.optimum_discount_price ).toLocaleString() );
html = replaceTag( html, data.product_no, "Coupon_DiscountPrice",
null == data.coupon_discounted_price ? "" : parseInt( data.coupon_discounted_price ).toLocaleString() );
if( null != data.promotion_period )
{
var startDate = new Date( data.promotion_period.start_date );
var endDate = new Date( data.promotion_period.end_date );
var timeText = startDate.getFullYear() + "-" + (startDate.getMonth() + 1).toString().padStart( 2, "0" ) + "-" +
startDate.getDate().toString().padStart( 2, "0" ) + " " + startDate.getHours().toString().padStart( 2, "0" ) + ":" +
startDate.getMinutes().toString().padStart( 2, "0" ) + " ~ " +
endDate.getFullYear() + "-" + (endDate.getMonth() + 1).toString().padStart( 2, "0" ) + "-" +
endDate.getDate().toString().padStart( 2, "0" ) + " " + endDate.getHours().toString().padStart( 2, "0" ) + ":" +
endDate.getMinutes().toString().padStart( 2, "0" );
html = replaceTag( html, data.product_no, "Promotion_Period", timeText );
}
else
{
html = replaceTag( html, data.product_no, "Promotion_Period", data.coupon_discounted_price );
}
if( null != data.additional_information )
{
for( var j = 0; j < data.additional_information.length; ++j )
{
const info = data.additional_information[ j ];
html = replaceArrayTag( j + 1, html, data.product_no, "AddInfo_Name", info.name );
html = replaceArrayTag( j + 1, html, data.product_no, "AddInfo_Value", info.value );
if( null != needToReplaceArray[ data.product_no ] )
{
if( null != needToReplaceArray[ data.product_no ][ "AddInfo_Name" ] )
delete needToReplaceArray[ data.product_no ][ "AddInfo_Name" ][ (j + 1).toString() ];
if( null != needToReplaceArray[ data.product_no ][ "AddInfo_Value" ] )
delete needToReplaceArray[ data.product_no ][ "AddInfo_Value" ][ (j + 1).toString() ];
}
}
}
if( null != data.additional_images )
{
for( var j = 0; j < data.additional_images.length; ++j )
{
const img = data.additional_images[ j ];
html = replaceArrayTag( j + 1, html, data.product_no, "AddImg", img.big );
html = replaceArrayTag( j + 1, html, data.product_no, "AddImgTag", "
" );
if( null != needToReplaceArray[ data.product_no ] )
{
if( null != needToReplaceArray[ data.product_no ][ "AddImg" ] )
delete needToReplaceArray[ data.product_no ][ "AddImg" ][ (j + 1).toString() ];
if( null != needToReplaceArray[ data.product_no ][ "AddImgTag" ] )
delete needToReplaceArray[ data.product_no ][ "AddImgTag" ][ (j + 1).toString() ];
}
}
}
elem.innerHTML = html;
}
}
} );
}
// 태그 변수 입력은 됐는데 실제 조회 후 데이터가 없는 경우 NaN으로 replace
function replaceNaN()
{
for( var keyProductNo in needToReplaceArray )
{
for( var keyTag in needToReplaceArray[ keyProductNo ] )
{
for( var keyNum in needToReplaceArray[ keyProductNo ][ keyTag ] )
{
for( var i = 0; i < productAreaList.length; ++i )
{
var elem = productAreaList[ i ];
var html = elem.innerHTML;
html = replaceTag( html, keyProductNo, keyTag + "_" + keyNum, "" );
elem.innerHTML = html;
}
}
}
}
}
}
let Morenvy_Wait_CAEF24 = setInterval( () =>
{
if( typeof CAFE24API != "undefined" )
{
clearInterval( Morenvy_Wait_CAEF24 );
(function( CAFE24API )
{
Init_MorenvyProductDisplay();
} )( CAFE24API.init(
{
version: "2022-09-01",
client_id: "gSOPn7dNJxAp8cu31kDDtD"
} ) );
}
}, 50 );