Help
RSS
API
Feed
Maltego
Contact
Domain > adconcept.easy.co
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-02-10
151.101.66.236
(
ClassC
)
2026-01-05
3.175.34.3
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Mon, 05 Jan 2026 04:38:49 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://adconcept.easy.co/X-Cache: Redirect from cloudfrontVia: 1.1 807ba99de77a37a6a53c93279fb231fe.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P3X-Amz-Cf-Id: RhX6implxaa3-3dEekjV0PmckgiVJrXXsG9uh-_BgJWZ61meo21Aaw html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveDate: Mon, 05 Jan 2026 04:38:50 GMTX-XSS-Protection: 1; modeblockX-Content-Type-Options: nosniffVary: Accept-EncodingX-Powered-By: ExpressSet-Cookie: localeen_US; expiresWed, 04 Feb 2026 04:38:49 GMT; Max-Age2592000; path/Set-Cookie: sf_sessionVgLu3snxKb0pGrF1ZSC6LwCEdq2xM6cw7GAmjOhM; path/; domainadconcept.easy.co; secure; httponly; samesitelaxSet-Cookie: _landing_page%252F; expiresMon, 19 Jan 2026 04:38:50 GMT; Max-Age1209600; path/; domainadconcept.easy.co; secure; httponly; samesitelaxCache-Control: no-cache, no-store, privateX-Cache: Miss from cloudfrontVia: 1.1 14d8985a9dc0ead7a1065737baef3fe0.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P3X-Amz-Cf-Id: HhL5w8XldChtsZjq1nchRO0OQBjZqna8-rt66mpTs4eVg5VYJIYtVwStrict-Transport-Security: max-age15552000 !doctype html>!--if lt IE 7>html classno-js lt-ie9 lt-ie8 lt-ie7 langen> !endif-->!--if IE 7>html classno-js lt-ie9 lt-ie8 langen> !endif-->!--if IE 8>html classno-js lt-ie9 langen> !endif-->!--if IE 9 >html classie9 no-js> !endif-->!--if (gt IE 9)|!(IE)>!--> html classno-js> !--!endif-->head> !-- Basic page needs --> meta charsetutf-8> meta http-equivX-UA-Compatible contentIEedge,chrome1> link relicon href/assets/favicon.png /> !-- Title and description --> title> A&D Concept Furniture Online Shop /title> !-- Social meta --> meta propertyog:type contentwebsite> meta propertyog:title contentA&D Concept Furniture Online Shop> meta propertyog:url contenthttps://adconcept.easy.co> meta propertyog:image contenthttps://cdn.store-assets.com/s/125678/f/50008.png?width350> meta propertyog:image:secure_url contenthttps://cdn.store-assets.com/s/125678/f/50008.png?width350> meta propertyog:description contentA & D Concept is a concept interior designer, supplier of all range of home furniture, comprising leather and fabric-based sofas, dining tables and bedroom sets with own concepts. A & D Concept has also created its own brand of furniture series design for the product launching.>meta propertyog:site_name contentA&D Concept Furniture Online Shop> meta nametwitter:card contentsummary> meta nametwitter:site content@> meta nametwitter:title contentA&D Concept Furniture Online Shop> meta nametwitter:description content> !-- Helpers --> link relcanonical hrefhttps://adconcept.easy.co> meta nameviewport contentwidthdevice-width,initial-scale1> meta nametheme-color content> !-- CSS --> link hrefhttps://store-themes.easystore.co/125678/themes/17/assets/timber.css?t1765562423 relstylesheet typetext/css mediascreen /> link hrefhttps://store-themes.easystore.co/125678/themes/17/assets/theme.css?t1765562423 relstylesheet typetext/css mediascreen /> script src//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js typetext/javascript >/script> !-- Header hook for plugins --> !-- ScriptTags -->script>window.__st{p: index, cid: };/script>script src/assets/events.js>/script>script>const __es_ads {country_code:MY ,title: Online store by img srchttps://s3.ap-southeast-1.amazonaws.com/easystore.website/images/logo/svg/easystore-logo-horizontal.svg altEasyStore styledisplay: block !important;width:8em;margin:-2px 0 0 8px;> i stylewidth: 1px;height: 25px;margin: 0 10px;background: #E3E7EB;>/i> Create yours for free today.,title_mb: Create online store with img srchttps://s3.ap-southeast-1.amazonaws.com/easystore.website/images/logo/svg/easystore-logo-horizontal.svg altEasyStore styledisplay: block !important;width:8em;margin:-2px 8px 0;>,cta: Get started}/script>script src/assets/js/ads/storefront-ads.js>/script>script>(function(){function asyncLoad(){var urls/assets/traffic.js?v1;for(var i0;iurls.length;i++){var sdocument.createElement(script);s.typetext/javascript;s.asynctrue;s.srcurlsi;var xdocument.getElementsByTagName(script)0;x.parentNode.insertBefore(s, x);}}window.attachEvent ? window.attachEvent(onload, asyncLoad) : window.addEventListener(load, asyncLoad, false);})();/script>!-- /ScriptTags --> !--if lt IE 9>script src//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js typetext/javascript >/script>script srchttps://store-themes.easystore.co/125678/themes/17/assets/respond.min.js?t1765562423 typetext/javascript >/script>link hrefhttps://store-themes.easystore.co/125678/themes/17/assets/respond-proxy.html idrespond-proxy relrespond-proxy />link href//adconcept.easy.co/search?qf2b37667ed605cf055f752bd6223610b idrespond-redirect relrespond-redirect />script src//adconcept.easy.co/search?qf2b37667ed605cf055f752bd6223610b typetext/javascript>/script>!endif--> script srchttps://store-themes.easystore.co/125678/themes/17/assets/modernizr.min.js?t1765562423 typetext/javascript >/script> script> (function(i,s,o,g,r,a,m){iGoogleAnalyticsObjectr;irir||function(){ (ir.qir.q||).push(arguments)},ir.l1*new Date();as.createElement(o), ms.getElementsByTagName(o)0;a.async1;a.srcg;m.parentNode.insertBefore(a,m) })(window,document,script,https://www.google-analytics.com/analytics.js,ga); ga(create, , auto,myTracker); ga(myTracker.send, pageview); /script> /head>body ida-d-concept-furniture-online-shop classtemplate-index > !-- Snippet:global/body_start: Website Translator -->div idgoogle_translate_element>/div>script typetext/javascript>function googleTranslateElementInit() { new google.translate.TranslateElement({pageLanguage: en, layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, google_translate_element);}/script>script typetext/javascript src//translate.google.com/translate_a/element.js?cbgoogleTranslateElementInit>/script> style typetext/css>div#google_translate_element{position:fixed;bottom:0;left:5%;z-index:999;}/style>!-- /Snippet -->!-- Snippet:global/body_start: Announcement Bar -->style typetext/css>div#announcementBarTop{ height: 45px;}div#announcementBar{ width:100%; padding:0px; margin:0px; z-index:900000; background:transparent; border:0px; boxShadow:none; display:block; opacity:1; font-family: Helvetica, Arial, sans-serif; font-size:15px;}div#announcementBar>div{ width:100%; padding:3px 0px; margin:0px;}div#announcementBar>div>div{ margin:0px; padding:6px 10px; border-top:1px dashed transparent; border-bottom:1px dashed transparent;}div#announcementBar>div *{ padding:0px; margin:0px; width:auto; background:transparent; color:inherit; opacity:1; vertical-align:middle; position:static; border:0px; border-radius:0px; box-shadow:none;}div#announcementBar img{ cursor:pointer; float:right;}div#announcementBar span{ text-align:center; display:block; /*color:#ffffff;*/}div#announcementBar a{ padding:3px 8px; vertical-align:baseline; border-radius:3px; margin:0px 10px; opacity:0.9;}div#announcementBar a:hover{ opacity:1;}/style>div idannouncementBar> div stylecolor: #0b0101; background: #e94545;> div styleborder-color: #0b0101;> span> Furniture Aniversary Fair a href/ stylecolor: #e94545; background: #e3e420;>Shop Now!/a> /span> /div> /div>/div>script>(function(){ var loadScript function(url, callback){ var script document.createElement(script); script.type text/javascript; // If the browser is Internet Explorer. if (script.readyState){ script.onreadystatechange function(){ if (script.readyState loaded || script.readyState complete){ script.onreadystatechange null; callback(); } }; // For any other browser. } else { script.onload function(){ callback(); }; } script.src url; document.getElementsByTagName(head)0.appendChild(script); }; var announcementBarAppJS function($){ $(#announcementBarTop).css(height, $(#announcementBar).height()); $(#announcementBar img).on(click, function(){ $(#announcementBar, #announcementBarTop).animate({ marginTop : -+$(#announcementBar).height()+px }, 200, linear); }); } if(typeof jQuery undefined) { loadScript(//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js, function(){ jQuery jQuery.noConflict(true); announcementBarAppJS(jQuery); }); }else{ announcementBarAppJS(jQuery); }})();/script>!-- /Snippet -->!-- Snippet:global/body_start: Console Extension -->div ides_console styledisplay: none;>125678/div>!-- /Snippet --> style> .search-modal__form{ position: relative; } .dropdown-wrapper { position: relative; } .dropdown-wrapper:hover .dropdown { display: block; } .dropdown { display: none; position: absolute; top: 100%; left: -20px; width: 100%; padding: 8px 0; margin: 0; background-color: #fff; z-index: 1000; border-radius: 5px; border: 1px solid rgba(var(--color-foreground), 1); border-top: none; overflow-x: hidden; overflow-y: auto; max-height: 350px; min-width: 150px; box-shadow: 0 0 5px rgba(0,0,0,0.1); } .dropdown li,.dropdown a{ display: block; } .dropdown a{ text-decoration: none; padding: 2px 10px; color: #000 !important; } .dropdown-item { padding: 0.4rem 2rem; cursor: pointer; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .dropdown-item:hover{ background-color: #f3f3f3; } .search__input.is-focus{ border-radius: 15px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border: 1px solid rgba(var(--color-foreground), 1); border-bottom: none; box-shadow: none; } .clear-all { text-align: right; padding: 0 2rem 0.2rem; line-height: 1; font-size: 70%; margin-bottom: -2px; } .clear-all:hover{ background-color: #fff; } .referral-notification { position: absolute; top: 100%; right: -12px; background: white; border: 1px solid #e0e0e0; border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); width: 280px; z-index: 1000; padding: 16px; margin-top: 8px; font-size: 14px; line-height: 1.4; } .referral-notification::before { content: ; position: absolute; top: -8px; right: 20px; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-bottom: 8px solid white; } .referral-notification::after { content: ; position: absolute; top: -9px; right: 20px; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-bottom: 8px solid #e0e0e0; } .referral-notification h4 { margin: 0 0 8px 0; color: #2196F3; font-size: 16px; font-weight: 600; } .referral-notification p { margin: 0 0 12px 0; color: #666; } .referral-notification .referral-code { background: #f5f5f5; padding: 8px; border-radius: 4px; font-family: monospace; font-size: 13px; text-align: center; margin: 8px 0; border: 1px solid #ddd; } .referral-notification .close-btn { position: absolute; top: 8px; right: 8px; background: none; border: none; font-size: 18px; color: #999; cursor: pointer; padding: 0; width: 20px; height: 20px; line-height: 1; } .referral-notification .close-btn:hover { color: #333; } .referral-notification .action-btn { background: #2196F3; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; font-size: 12px; margin-right: 8px; margin-top: 8px; } .referral-notification .action-btn:hover { background: #1976D2; } .referral-notification .dismiss-btn { background: transparent; color: #666; border: 1px solid #ddd; padding: 8px 16px; border-radius: 4px; cursor: pointer; font-size: 12px; margin-top: 8px; } .referral-notification .dismiss-btn:hover { background: #f5f5f5; } .referral-modal__dialog { transform: translate(-50%, 0); transition: transform var(--duration-default) ease, visibility 0s; z-index: 10000; position: fixed; top: 20vh; left: 50%; width: 100%; max-width: 350px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); border-radius: 12px; background-color: #fff; color: #000; padding: 20px; text-align: center; } .modal-overlay.referral-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); z-index: 2001; display: block; opacity: 1; transition: opacity var(--duration-default) ease, visibility 0s; }/style>div classheader-bar> div classwrapper medium-down--hide> div classlarge--display-table> div classheader-bar__left large--display-table-cell> div classheader-bar__module header-bar__search> form action/search methodget classheader-bar__search-form clearfix rolesearch> button typesubmit classbtn icon-fallback-text header-bar__search-submit> span classicon icon-search aria-hiddentrue>/span> span classfallback-text>Search/span> /button> input typesearch nameq value aria-labelSearch classheader-bar__search-input placeholderSearch autocompleteoff> div classdropdown idsearchDropdown>/div> input typehidden namesearch_history idsearch_history> /form>script> var _search_history_listings if(_search_history_listings ! ) localStorage.setItem(searchHistory, JSON.stringify(_search_history_listings)); function clearAll() { localStorage.removeItem(searchHistory); var customer ; if(customer) { // Your logic to clear all data or call an endpoint fetch(/account/search_histories, { method: DELETE, headers: { Content-Type: application/json, X-Requested-With: XMLHttpRequest }, body: JSON.stringify({ _token: PWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd }), }) .then(response > response.json()) } } // End - store view history in local storage // search history dropdown var searchInputs document.querySelectorAll(inputtypesearch); if(searchInputs.length > 0) { searchInputs.forEach((searchInput)>{ searchInput.addEventListener(focus, function() { var searchDropdown searchInput.closest(form).querySelector(#searchDropdown); searchDropdown.innerHTML ; // Clear existing items // retrieve data from local storage var searchHistoryData JSON.parse(localStorage.getItem(searchHistory)) || ; // Convert JSON to string var search_history_json JSON.stringify(searchHistoryData); // Set the value of the hidden input searchInput.closest(form).querySelector(#search_history).value search_history_json; // create dropdown items var clearAllItem document.createElement(div); clearAllItem.className dropdown-item clear-all; clearAllItem.textContent Clear; clearAllItem.addEventListener(click, function() { clearAll(); searchDropdown.style.display none; searchInput.classList.remove(is-focus); }); searchDropdown.appendChild(clearAllItem); // create dropdown items searchHistoryData.forEach(function(item) { var dropdownItem document.createElement(div); dropdownItem.className dropdown-item; dropdownItem.textContent item.term; dropdownItem.addEventListener(click, function() { searchInput.value item.term; searchDropdown.style.display none; }); searchDropdown.appendChild(dropdownItem); }); if(searchHistoryData.length > 0){ // display the dropdown searchInput.classList.add(is-focus); document.body.classList.add(search-input-focus); searchDropdown.style.display block; } }); searchInput.addEventListener(focusout, (event) > { var searchDropdown searchInput.closest(form).querySelector(#searchDropdown); searchInput.classList.remove(is-focus); searchDropdown.classList.add(transparent); setTimeout(()>{ searchDropdown.style.display none; searchDropdown.classList.remove(transparent); document.body.classList.remove(search-input-focus); }, 400); }); }) } // End - search history dropdown/script> /div> /div> div classheader-bar__right large--display-table-cell> ul classheader-bar__module header-bar__module--list styleposition: relative;> li> a href/account/login>Log in/a> /li>li>OR/li> li> a href/account/register>Create account/a> /li> !-- Referral Notification Popup for Desktop --> div idreferralNotification classreferral-notification styledisplay: none;> button classclose-btn onclickdismissReferralNotification()>×/button> div styletext-align: center; margin-bottom: 16px;> div stylewidth: 100px; height: 100px; margin: 0 auto;> img srchttps://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg> /div> /div> p idreferralSignupMessage styletext-align: center; font-size: 14px; color: #666; margin: 0 0 20px 0;> Your friend gifted you credit! Sign up now to redeem. /p> div styletext-align: center;> button classbtn onclickgoToSignupPage() stylewidth: 100%; color: #fff;> Sign Up /button> /div> /div> /ul> div classheader-bar__module> span classheader-bar__sep aria-hiddentrue>/span> a href/cart classcart-page-link> span classicon icon-cart header-bar__cart-icon aria-hiddentrue>/span> /a> /div> div classheader-bar__module> a href/cart classcart-page-link> Cartspan classhidden-count>:/span> span classcart-count header-bar__cart-count hidden-count>0/span> /a> /div> /div> /div> /div> div classwrapper large--hide stylepadding: 5px 30px 0;> button typebutton classmobile-nav-trigger idMobileNavTrigger> span classicon icon-hamburger aria-hiddentrue>/span> Menu /button> !-- Referral Notification Modal for Mobile --> details-modal classreferral-modal idreferralMobileModal> details> summary classreferral-modal__toggle aria-haspopupdialog aria-labelOpen referral modal styledisplay: none;> /summary> div classmodal-overlay referral-modal-overlay>/div> div classreferral-modal__dialog roledialog aria-modaltrue aria-labelReferral notification> div classreferral-modal__content> button typebutton classmodal__close-button aria-labelClose onclickcloseMobileReferralModal() styleposition: absolute; top: 16px; right: 16px; background: none; border: none; font-size: 24px; cursor: pointer;> × /button> div stylemargin-bottom: 24px;> div stylewidth: 120px; height: 120px; margin: 0 auto 20px;> img srchttps://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg stylewidth: 100%; height: 100%;> /div> /div> p idreferralSignupMessageMobile stylefont-size: 16px; color: #333; margin: 0 0 30px 0; line-height: 1.5;> Your friend gifted you credit! Sign up now to redeem. /p> button typebutton classbtn onclickgoToSignupPageFromMobile() stylewidth: 100%; color: #fff;> Sign Up /button> /div> /div> /details> /details-modal> a href/cart classcart-page-link mobile-cart-page-link> span classicon icon-cart header-bar__cart-icon aria-hiddentrue>/span> Cart span classcart-count hidden-count>0/span> /a> div classmobile-cart-page-link stylemargin-right: 20px;> /div> /div> ul idMobileNav classmobile-nav large--hide> li classmobile-nav__link aria-haspopuptrue> a href/ classmobile-nav> Home /a> /li> li classmobile-nav__link aria-haspopuptrue> a href/collections/all classmobile-nav> Products /a> /li> li classmobile-nav__link aria-haspopuptrue> a href/pages/promotions classmobile-nav> Promotions /a> /li> li classmobile-nav__link> a href/account/login idcustomer_login_link>Log in/a> /li> li classmobile-nav__link> a href/account/register idcustomer_register_link>Create account/a> /li> li classmobile-nav__link> a href/account/login>Log in/a> /li> li classmobile-nav__link> a href/account/register>Create account/a> /li> li classmobile-nav__link> div classheader-bar__module header-bar__search> form action/search methodget classheader-bar__search-form clearfix rolesearch> button typesubmit classbtn icon-fallback-text header-bar__search-submit> span classicon icon-search aria-hiddentrue>/span> span classfallback-text>Search/span> /button> input typesearch nameq value aria-labelSearch classheader-bar__search-input placeholderSearch autocompleteoff> div classdropdown idsearchDropdown>/div> input typehidden namesearch_history idsearch_history> /form>script> var _search_history_listings if(_search_history_listings ! ) localStorage.setItem(searchHistory, JSON.stringify(_search_history_listings)); function clearAll() { localStorage.removeItem(searchHistory); var customer ; if(customer) { // Your logic to clear all data or call an endpoint fetch(/account/search_histories, { method: DELETE, headers: { Content-Type: application/json, X-Requested-With: XMLHttpRequest }, body: JSON.stringify({ _token: PWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd }), }) .then(response > response.json()) } } // End - store view history in local storage // search history dropdown var searchInputs document.querySelectorAll(inputtypesearch); if(searchInputs.length > 0) { searchInputs.forEach((searchInput)>{ searchInput.addEventListener(focus, function() { var searchDropdown searchInput.closest(form).querySelector(#searchDropdown); searchDropdown.innerHTML ; // Clear existing items // retrieve data from local storage var searchHistoryData JSON.parse(localStorage.getItem(searchHistory)) || ; // Convert JSON to string var search_history_json JSON.stringify(searchHistoryData); // Set the value of the hidden input searchInput.closest(form).querySelector(#search_history).value search_history_json; // create dropdown items var clearAllItem document.createElement(div); clearAllItem.className dropdown-item clear-all; clearAllItem.textContent Clear; clearAllItem.addEventListener(click, function() { clearAll(); searchDropdown.style.display none; searchInput.classList.remove(is-focus); }); searchDropdown.appendChild(clearAllItem); // create dropdown items searchHistoryData.forEach(function(item) { var dropdownItem document.createElement(div); dropdownItem.className dropdown-item; dropdownItem.textContent item.term; dropdownItem.addEventListener(click, function() { searchInput.value item.term; searchDropdown.style.display none; }); searchDropdown.appendChild(dropdownItem); }); if(searchHistoryData.length > 0){ // display the dropdown searchInput.classList.add(is-focus); document.body.classList.add(search-input-focus); searchDropdown.style.display block; } }); searchInput.addEventListener(focusout, (event) > { var searchDropdown searchInput.closest(form).querySelector(#searchDropdown); searchInput.classList.remove(is-focus); searchDropdown.classList.add(transparent); setTimeout(()>{ searchDropdown.style.display none; searchDropdown.classList.remove(transparent); document.body.classList.remove(search-input-focus); }, 400); }); }) } // End - search history dropdown/script> /div> /li> /ul>/div>script> // referral notification popup const referralMessageTemplate Your friend gifted you __CURRENCY_CODE__ __CREDIT_AMOUNT__ credit! Sign up now to redeem.; const shopPrefix RM ; function getCookie(name) { const value `; ${document.cookie}`; const parts value.split(`; ${name}`); if (parts.length 2) return parts.pop().split(;).shift(); return null; } function removeCookie(name) { document.cookie `${name}; expiresThu, 01 Jan 1970 00:00:00 UTC; path/;`; } function showReferralNotification() { const referralCode getCookie(customer_referral_code); const customerReferralCode null; const activeReferralCode referralCode || customerReferralCode; const referralData JSON.parse(localStorage.getItem(referral_notification_data)) || {}; if (referralData.timestamp && referralData.expirationDays) { const expirationTime referralData.timestamp + (referralData.expirationDays * 24 * 60 * 60 * 1000); if (Date.now() > expirationTime) { localStorage.removeItem(referral_notification_data); return; } } if (referralData.dismissed) return; if (activeReferralCode) { if (referralData.creditAmount) { displayReferralNotification(referralData.creditAmount); } else { fetchReferralCampaignData(activeReferralCode); } } } function fetchReferralCampaignData(referralCode) { fetch(`/customer/referral_program/campaigns/${referralCode}`) .then(response > { if (!response.ok) { throw new Error(Network response was not ok); } return response.json(); }) .then(data > { let refereeCreditAmount null; if (data.data.campaign && data.data.campaign.referral_rules) { const refereeRule data.data.campaign.referral_rules.find(rule > rule.target_type referee && rule.event_name customer/create && rule.entitlement && rule.entitlement.type credit ); if (refereeRule) { refereeCreditAmount refereeRule.entitlement.amount; } } const referralData JSON.parse(localStorage.getItem(referral_notification_data)) || {}; referralData.creditAmount refereeCreditAmount; referralData.dismissed referralData.dismissed || false; referralData.timestamp Date.now(); referralData.expirationDays 3; localStorage.setItem(referral_notification_data, JSON.stringify(referralData)); displayReferralNotification(refereeCreditAmount); }) .catch(error > { removeCookie(customer_referral_code); }); } function displayReferralNotification(creditAmount null) { const isMobile innerWidth 749; if (isMobile) { const mobileModal document.querySelector(#referralMobileModal details); const mobileMessageElement document.getElementById(referralSignupMessageMobile); if (mobileModal && mobileMessageElement) { if (creditAmount) { const finalMessage referralMessageTemplate .replace(__CREDIT_AMOUNT__, creditAmount) .replace(__CURRENCY_CODE__, shopPrefix); mobileMessageElement.textContent finalMessage; } mobileModal.setAttribute(open, ); } } else { const notification document.getElementById(referralNotification); if (notification) { if (creditAmount) { const messageElement document.getElementById(referralSignupMessage); if (messageElement) { const finalMessage referralMessageTemplate .replace(__CREDIT_AMOUNT__, creditAmount) .replace(__CURRENCY_CODE__, shopPrefix); messageElement.textContent finalMessage; } } notification.style.display block; } } } showReferralNotification(); addEventListener(beforeunload, function() { const referralData JSON.parse(localStorage.getItem(referral_notification_data)) || {}; if (referralData.creditAmount ! undefined) { referralData.creditAmount null; localStorage.setItem(referral_notification_data, JSON.stringify(referralData)); } }); function closeReferralNotification() { const notification document.getElementById(referralNotification); if (notification) { notification.style.display none; } } function dismissReferralNotification() { const referralData JSON.parse(localStorage.getItem(referral_notification_data)) || {}; referralData.dismissed true; referralData.timestamp referralData.timestamp || Date.now(); referralData.expirationDays referralData.expirationDays || 3; localStorage.setItem(referral_notification_data, JSON.stringify(referralData)); closeReferralNotification(); } function goToSignupPage() { location.href /account/register; dismissReferralNotification(); } function closeMobileReferralModal() { const mobileModal document.querySelector(#referralMobileModal details); if (mobileModal) { mobileModal.removeAttribute(open); } const referralData JSON.parse(localStorage.getItem(referral_notification_data)) || {}; referralData.dismissed true; referralData.timestamp referralData.timestamp || Date.now(); referralData.expirationDays referralData.expirationDays || 3; localStorage.setItem(referral_notification_data, JSON.stringify(referralData)); } function goToSignupPageFromMobile() { location.href /account/register; closeMobileReferralModal(); } // End - referral notification popup/script> header classsite-header rolebanner> div classwrapper> div classgrid--full large--display-table> div classgrid__item large--one-third large--display-table-cell> h1 classsite-header__logo large--left itemscope itemtypehttp://schema.org/Organization> a href/ classlogo-wrapper itempropurl> img srchttps://cdn.store-assets.com/s/125678/f/50008.png?width350 altA&D Concept Furniture Online Shop itemproplogo> /a> /h1> p classheader-message large--hide> small>/small> /p> /div> div classgrid__item large--two-thirds large--display-table-cell medium-down--hide> ul classsite-nav large--text-center idAccessibleNav> li classsite-nav--active> a href/ classsite-nav__link>Home/a> /li> li > a href/collections/all classsite-nav__link>Products/a> /li> li > a href/pages/promotions classsite-nav__link>Promotions/a> /li> /ul> /div> /div> /div> /header> main classwrapper main-content rolemain> div classgrid> div classgrid__item> div classflexslider> ul classslides> li> a href classslide-link> img srchttps://cdn.store-assets.com/s/125678/f/49667.jpg?width1500 alt class /> /a> /li> li> a href classslide-link> img srchttps://cdn.store-assets.com/s/125678/f/50004.png?width1500 alt class /> /a> /li> li> a href classslide-link> img srchttps://cdn.store-assets.com/s/125678/f/50005.png?width1500 alt class /> /a> /li> li> a href classslide-link> img srchttps://cdn.store-assets.com/s/125678/f/50006.jpg?width1500 alt class /> /a> /li> /ul>/div> hr classhr--small hr--clear> div classrte> link href/assets/css/froala_style.min.css relstylesheet typetext/css/>div classfr-view>p>A & D Concept is a concept interior designer, supplier of all range of home furniture, comprising leather and fabric-based sspan>ofas, dining tables and bedroom sets with own concepts. A & D Concept has also created its own brand of furniture series design for the product launching./span>/p> script typetext/javascript> $(imgdata-typeyoutube).click(function(){ var this_parent $(this).closest(div.Grid-cell--wrapper); var height $(this_parent).height(); var youtube_player document.createElement(iframe); youtube_player.setAttribute(style, width:100%; height:+height+px;); youtube_player.setAttribute(allowfullscreen,); youtube_player.setAttribute(src,https://www.youtube.com/embed/+$(this).data(youtube-id)+?autoplay1&fs1); this_parent.html(youtube_player); }); /script>/div> /div> hr classhr--small hr--clear> div classgrid-uniform> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2287579 data-product-id163101 data-handlebig-wooden-towel-rack- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/big-wooden-towel-rack- classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/471612.png?width480 altwooden rack 2.png classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/big-wooden-towel-rack-> p classgrid-link__title>Big Wooden Towel Rack/p> p classgrid-link__meta> span classmoney data-ori-price180.00>RM 180.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2287579 data-product-id163101 data-handlebig-wooden-towel-rack- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2287577 data-product-id163099 data-handlewooden-tower-rack data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/wooden-tower-rack classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/471591.png?width480 altwooden rack 1.png classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/wooden-tower-rack> p classgrid-link__title>Wooden Tower Rack/p> p classgrid-link__meta> span classmoney data-ori-price90.00>RM 90.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2287577 data-product-id163099 data-handlewooden-tower-rack data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2287477 data-product-id163087 data-handlebaby-coat--2-in-1- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/baby-coat--2-in-1- classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/471536.jpeg?width480 alt14751127_1474835029194642_4844245071438020608_n.jpg classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/baby-coat--2-in-1-> p classgrid-link__title>Baby Coat (2 in 1)/p> p classgrid-link__meta> span classmoney data-ori-price750.00>RM 750.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2287477 data-product-id163087 data-handlebaby-coat--2-in-1- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2285670 data-product-id162642 data-handle4-doors-show-cabinet data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/4-doors-show-cabinet classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/469703.png?width480 altshoe cabinet (high).png classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/4-doors-show-cabinet> p classgrid-link__title>4 Doors Show Cabinet/p> p classgrid-link__meta> span classmoney data-ori-price350.00>RM 350.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2285670 data-product-id162642 data-handle4-doors-show-cabinet data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2285669 data-product-id162641 data-handle2-doors-shoe-cabinet data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/2-doors-shoe-cabinet classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/469701.png?width480 altshoe cabinet (low).png classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/2-doors-shoe-cabinet> p classgrid-link__title>2 Doors Shoe Cabinet/p> p classgrid-link__meta> span classmoney data-ori-price120.00>RM 120.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2285669 data-product-id162641 data-handle2-doors-shoe-cabinet data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2285636 data-product-id162629 data-handlestorage-stool- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/storage-stool- classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/469640.jpeg?width480 altSTORAGE STOOL Front view.jpg classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/storage-stool-> p classgrid-link__title>Storage Stool/p> p classgrid-link__meta> span classmoney data-ori-price129.00>RM 129.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2285636 data-product-id162629 data-handlestorage-stool- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2285610 data-product-id162623 data-handleswing-chair--design-2- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/swing-chair--design-2- classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/469624.jpeg?width480 alt14881230_323814091326721_1360036404_o.jpg classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/swing-chair--design-2-> p classgrid-link__title>Swing Chair (Design 2)/p> p classgrid-link__meta> span classmoney data-ori-price1,500.00>RM 1,500.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2285610 data-product-id162623 data-handleswing-chair--design-2- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2285406 data-product-id162535 data-handleswing-chair--design-1- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/swing-chair--design-1- classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/469108.jpeg?width480 alt14876026_323814104660053_1872678537_o.jpg classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/swing-chair--design-1-> p classgrid-link__title>Swing chair (Design 1)/p> p classgrid-link__meta> span classmoney data-ori-price680.00>RM 680.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2285406 data-product-id162535 data-handleswing-chair--design-1- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2283697 data-product-id162200 data-handlechest-of-drawer--5-drawers- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/chest-of-drawer--5-drawers- classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/467285.jpeg?width480 altCD-0705.jpg classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/chest-of-drawer--5-drawers-> p classgrid-link__title>Chest of Drawer (5 Drawers)/p> p classgrid-link__meta> span classmoney data-ori-price600.00>RM 600.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2283697 data-product-id162200 data-handlechest-of-drawer--5-drawers- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> div classproduct_grid-item grid__item small--one-half medium--one-half large--one-quarter> div classgrid-link text-center> span classgrid-link__image grid-link__image--product> div classaddToCartList float-btn btn small--hide medium--hide data-id2283318 data-product-id162115 data-handleiron-steel-stool- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> a href/collections/feature-on-homepage/products/iron-steel-stool- classgrid-link__image-centered> img srchttps://cdn.store-assets.com/s/125678/i/466886.jpeg?width480 altEuropean-industry-minimalist-stainless-steel-font-b-bar-b-font-font-b-stool-b-font-font.jpg classproduct-featured_image> /a> /span> a href/collections/feature-on-homepage/products/iron-steel-stool-> p classgrid-link__title>Iron Steel Stool/p> p classgrid-link__meta> span classmoney data-ori-price200.00>RM 200.00 /span> /p> /a> div classaddToCartList btn btn--small large--hide data-id2283318 data-product-id162115 data-handleiron-steel-stool- data-viewView cart data-tokenPWFOIH6nbsXZdQDVWK3Z1ZAEgA42fmW2jLvpkHEd> i classicon icon-cart>/i>span> Add to Cart/span> /div> /div>/div> /div> /div> /div> /main> footer classsite-footer small--text-center rolecontentinfo> div classwrapper> div classgrid-uniform> div classgrid__item large--one-half medium--one-half> h4>Quick Links/h4> ul classsite-footer__links> li>a href/pages/contact-us >Contact Us/a>/li> /ul> /div> div classgrid__item large--one-half medium--one-half> h4>Follow Us/h4> ul classinline-list social-icons> li> a classicon-fallback-text hrefhttps://twitter.com/ titleA&D Concept Furniture Online Shop on Twitter target_blank> span classicon icon-twitter aria-hiddentrue>/span> span classfallback-text>Twitter/span> /a> /li> li> a classicon-fallback-text hrefhttps://www.facebook.com/ titleA&D Concept Furniture Online Shop on Facebook target_blank> span classicon icon-facebook aria-hiddentrue>/span> span classfallback-text>Facebook/span> /a> /li> li> a classicon-fallback-text hrefhttps://www.pinterest.com/ titleA&D Concept Furniture Online Shop on Pinterest target_blank> span classicon icon-pinterest aria-hiddentrue>/span> span classfallback-text>Pinterest/span> /a> /li> li> a classicon-fallback-text hrefhttps://plus.google.com/ titleA&D Concept Furniture Online Shop on Google Plus relpublisher target_blank> span classicon icon-google_plus aria-hiddentrue>/span> span classfallback-text>Google/span> /a> /li> li> a classicon-fallback-text hrefhttps://instagram.com/ titleA&D Concept Furniture Online Shop on Instagram target_blank> span classicon icon-instagram aria-hiddentrue>/span> span classfallback-text>Instagram/span> /a> /li> li> a classicon-fallback-text hrefhttps://www.tumblr.com/ titleA&D Concept Furniture Online Shop on Tumblr target_blank> span classicon icon-tumblr aria-hiddentrue>/span> span classfallback-text>Tumblr/span> /a> /li> li> a classicon-fallback-text hrefhttps://www.youtube.com/ titleA&D Concept Furniture Online Shop on YouTube target_blank> span classicon icon-youtube aria-hiddentrue>/span> span classfallback-text>YouTube/span> /a> /li> li> a classicon-fallback-text hrefhttps://vimeo.com/ titleA&D Concept Furniture Online Shop on Vimeo target_blank> span classicon icon-vimeo aria-hiddentrue>/span> span classfallback-text>Vimeo/span> /a> /li> /ul> /div> /div> hr classhr--small hr--clear> div classgrid> div classgrid__item text-center> ul classinline-list payment-icons> li> img srchttps://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_maybank.svg altpayment_maybank> /li> /ul> /div> /div> div classgrid> div classgrid__item text-center> p classsite-footer__links>Copyright © 2016 A&D Concept. E-commerce Powered by a hrefhttp://www.easystore.co/?utm_sourcestorefront&utm_mediumsf_ref_footer&utm_campaignsf_ref>EasyStore/a>/p> p classsite-footer__links> a href/legal/terms-of-service>Terms of Service/a> | a href/legal/privacy-policy>Privacy Policy/a> | a href/legal/refund-policy>Refund Policy/a> /p> /div> /div> /div> /footer> script srchttps://store-themes.easystore.co/125678/themes/17/assets/jquery.flexslider.min.js?t1765562423 typetext/javascript >/script> !-- Testing slick slider --> !-- script typetext/javascript src//cdn.jsdelivr.net/jquery.slick/1.5.9/slick.min.js>/script> --> script typetext/javascript> // $(document).ready(function(){ // $(.flexslider .slides).slick({ // dots: true // }); // }); window.timberSlider window.timberSlider || {}; timberSlider.cacheSelectors function () { timberSlider.cache { // Home Page $slider: $(.flexslider) } }; timberSlider.init function () { timberSlider.cacheSelectors(); timberSlider.sliders(); }; timberSlider.sliders function () { var $slider timberSlider.cache.$slider, sliderArgs { animation: slide, animationSpeed: 500, pauseOnHover: true, keyboard: false, slideshow: 1, slideshowSpeed: 3000, controlNav: 1, smoothHeight: false, touch: true, }; if ($slider.length) { if ($slider.find(li).length 1) { sliderArgs.slideshow false; sliderArgs.slideshowSpeed 0; sliderArgs.controlNav false; sliderArgs.directionNav false; } $slider.flexslider(sliderArgs); } }; // Initialize slider on docready $(window).on(load, function() { timberSlider.init(); }); /script> script srchttps://store-themes.easystore.co/125678/themes/17/assets/fastclick.min.js?t1765562423 typetext/javascript >/script> script srchttps://store-themes.easystore.co/125678/themes/17/assets/timber.js?t1765562423 typetext/javascript >/script> script srchttps://store-themes.easystore.co/125678/themes/17/assets/theme.js?t1765562423 typetext/javascript >/script> script src/assets/currencies.js typetext/javascript >/script>script src/assets/jquery.currencies.min.js typetext/javascript >/script>script src/assets/currencies_format.js typetext/javascript >/script>script>Currency.format money_with_currency_format;var shopCurrency MYR;var selectedCurrency MYR; Currency.convert function(amount, from, to) { return amount; }; if( $.cookie(currency) null ){ if( selectedCurrency ! false ) { Currency.convertAll(shopCurrency, selectedCurrency); jQuery(.selected-currency).text(Currency.currentCurrency); }}/* Sometimes merchants change their shop currency, lets tell our JavaScript file */// Currency.moneyFormatsshopCurrency.money_with_currency_format ;// Currency.moneyFormatsshopCurrency.money_format RM {{amount}} ; /* Default currency */var defaultCurrency MYR; /* Cookie currency */var cookieCurrency Currency.cookie.read(); cookieCurrency shopCurrency;$(inputnamecurrent_currency).val(cookieCurrency);if(cookieCurrency null){ cookieCurrency shopCurrency; Currency.cookie.write(shopCurrency);}/* Fix for customer account pages */jQuery(span.money span.money).each(function() { jQuery(this).parents(span.money).removeClass(money);});/* Saving the current price */jQuery(span.money).each(function() { jQuery(this).attr(data-currency-MYR, jQuery(this).html());});// If theres no cookie.if (cookieCurrency null) { if (shopCurrency ! defaultCurrency) { Currency.convertAll(shopCurrency, defaultCurrency); } else { Currency.currentCurrency defaultCurrency; }}// If the cookie value does not correspond to any value in the currency dropdown.else if (jQuery(namecurrencies).size() && jQuery(namecurrencies optionvalue + cookieCurrency + ).size() 0) { Currency.currentCurrency shopCurrency; Currency.cookie.write(shopCurrency);}else if (cookieCurrency shopCurrency) { Currency.currentCurrency shopCurrency; Currency.convertAll(shopCurrency, cookieCurrency);}else { Currency.convertAll(shopCurrency, cookieCurrency);}jQuery(namecurrencies).val(Currency.currentCurrency).change(function() { var newCurrency jQuery(this).val(); Currency.cookie.write(newCurrency) if (index cart) { const params new URLSearchParams(window.location.search); params.set(delete_cache, 1); window.location.search params; } else { window.location.reload(); } });var original_selectCallback window.selectCallback;var selectCallback function(variant, selector) { var currencies null; original_selectCallback(variant, selector); if(typeof jQuery(namecurrencies).val() undefined){ currencies shopCurrency; } else{ currencies jQuery(namecurrencies).val(); } Currency.convertAll(shopCurrency, currencies); jQuery(.selected-currency).text(Currency.currentCurrency);};$(body).on(ajaxCart.afterCartLoad, function(cart) { Currency.convertAll(shopCurrency, jQuery(namecurrencies).val()); jQuery(.selected-currency).text(Currency.currentCurrency); });jQuery(.selected-currency).text(Currency.currentCurrency);/script>script> /* ------ Events ------ pages/viewed customers/signup customers/login products/searched collections/viewed products/viewed products/shared wishlists/item_added carts/items_added carts/viewed carts/item_removed checkouts/initiated checkouts/shipping_info_added checkouts/payment_info_added checkouts/completed orders/placed orders/purchased payments/captured payments/failed */ window.__latest_cart window.__latest_cart || null; const _selector document.querySelector.bind(document), _selectorAll document.querySelectorAll.bind(document) document.addEventListener(DOMContentLoaded, (event) > { const default_currency getCookie(currency) const customer_id window.__st.cid const template window.__st.p onPageView() //-----------------------// // Configs // //-----------------------// window.dataLayer window.dataLayer || Array.prototype.last Array.prototype.last || function() { return thisthis.length - 1 || null } Array.prototype.first Array.prototype.first || function() { return this0 || null } //----------------------// // Triggers // //----------------------// const XHR window.XMLHttpRequest function xhr() { const xhr new XHR() xhr.addEventListener(readystatechange, function() { if(xhr.readyState ! 4) return try { const response_url xhr.responseURL if (response_url.includes(cart/add)) { window.__latest_cart JSON.parse(xhr.response) onCartItemsAdded() // ok } if (response_url.includes(cart/remove_item_quantity)) { window.__latest_cart JSON.parse(xhr.response) onCartItemRemoved() // ok } if (response_url.includes(new_cart?retrievetrue)) { result JSON.parse(xhr.response) if (result.cart) { window.__latest_cart result.cart } } } catch(e) { console.error(e) } }, false); return xhr } window.XMLHttpRequest xhr switch(template) { case cart: onCartView() // ok break case product: onProductView() // ok break case collection: onCollectionView() // ok break case blog: onBlogView() break case article: onArticleView() break case payment_completed: onOrderPlace() break case payment_fail: onPaymentFail() break } // _selector(formaction/checkout/payments).addEventListener(submit, onPaymentInfoAdded(_selector(formaction/checkout/payments))) if (_selector(formaction/checkout/detail)) _selector(formaction/checkout/detail).addEventListener(submit, ()>{onShippingInfoAdded(_selector(formaction/checkout/detail))}) // ok if (_selector(formaction/checkout/shipping)) _selector(formaction/checkout/shipping).addEventListener(submit, ()>{onShippingInfoAdded(_selector(formaction/checkout/shipping))}) // ok if (_selector(formaction/account/register)) _selector(formaction/account/register).addEventListener(submit, onSignUp) // ok if (_selector(formaction/account/login)) _selector(formaction/account/login).addEventListener(submit, onLogin) // ok if (_selector(formaction/search)) _selector(formaction/search).addEventListener(submit, onProductSearch()) // ok if (_selector(#line-login-btn)) _selector(#line-login-btn).addEventListener(click, onLineLogin) // ok if (_selector(#PlaceOrder)) _selector(#PlaceOrder).addEventListener(click, ()>{onCheckoutComplete(_selector(formaction/checkout/payments))}); // ok if (_selector(#add_wishlist)) _selector(#add_wishlist).addEventListener(click, onWishlistItemAdded) // ok if (_selectorAll(ahref/account/logout)) _selectorAll(ahref/account/logout).forEach(logoutButton > logoutButton.addEventListener(click, onLogout)) // ok if (_selector(.CartDrawerTrigger.cart-page-link)) _selector(.CartDrawerTrigger.cart-page-link).addEventListener(click, onCartView) // ok if (_selector(.CartDrawerTrigger.cart-page-link.mobile-cart-page-link)) _selector(.CartDrawerTrigger.cart-page-link.mobile-cart-page-link).addEventListener(click, onCartView) // ok if (_selectorAll(aclass^share-)) _selectorAll(aclass^share-).forEach(shareButton > shareButton.addEventListener(click, ()>{onProductShare(shareButton)}) ) // ok if (_selectorAll(name$checkout)) _selectorAll(name$checkout).forEach(checkoutButton > checkoutButton.addEventListener(click, onCheckoutInitiate)) // For append elements const bodyMutationObserver new MutationObserver(() > { if (_selector(#form__spc #PlaceOrder)) _selector(#form__spc #PlaceOrder).addEventListener(click, onSinglePageCheckout) // ok if (_selectorAll(name$checkout)) _selectorAll(name$checkout).forEach(checkoutButton > checkoutButton.addEventListener(click, onCheckoutInitiate)) }); bodyMutationObserver.observe(_selector(body), {subtree: true, childList: true}); //------------------------------// // Event handlers // //------------------------------// function onPageView() { EasyStore.Event.dispatch(pages/viewed, { page: { type: template, title: document.title, description: _selector(metanamedescription) ? _selector(metanamedescription).getAttribute(content) : null, url: location.href, } }) } function onSignUp() { const email_regex new RegExp(/^a-zA-Z0-9.!#$%&*+/?^_`{|}~-+@a-zA-Z0-9-+(?:\.a-zA-Z0-9-+)*$/) const phone_regex new RegExp(/^(\+?6?01)0-46-9-*0-9{7,8}$/) const email_or_phone _selector(`inputnamecustomeremail_or_phone`).value.replace(+, ).replace(/\s+/, ) let data {} if (email_regex.test(email_or_phone)) { data.method email data.email email_or_phone } if (phone_regex.test(email_or_phone)) { data.method phone data.phone email_or_phone } if (!data.method) return EasyStore.Event.dispatch(customers/signup, data) } function onLogin() { const email_regex new RegExp(/^a-zA-Z0-9.!#$%&*+/?^_`{|}~-+@a-zA-Z0-9-+(?:\.a-zA-Z0-9-+)*$/) const phone_regex new RegExp(/^(\+?6?01)0-46-9-*0-9{7,8}$/) const email_or_phone _selector(`inputnamecustomeremail_or_phone`).value.replace(+, ).replace(/\s+/, ) let data {} if (email_regex.test(email_or_phone)) { data.method email data.email email_or_phone } if (phone_regex.test(email_or_phone)) { data.method phone data.phone email_or_phone } if (!data.method) return EasyStore.Event.dispatch(customers/login, data) } function onLineLogin() { EasyStore.Event.dispatch(customers/login, { method: line }) } function onLogout() { EasyStore.Event.dispatch(customers/logout, { customer_id }) } function onBlogView() { const blog EasyStore.Event.dispatch(blogs/viewed, { blog }) } function onArticleView() { const article EasyStore.Event.dispatch(articles/viewed, { article }) } function onProductSearch() { const query _selector(inputnameq).value if (!query) return EasyStore.Event.dispatch(products/searched, { query }) } function onCollectionView() { const collection {id:56868,handle:feature-on-homepage,name:Feature on homepage,title:Feature on homepage,url:\/collections\/feature-on-homepage,description:,content:,featured_image:{src:null},products:{id:163101,handle:big-wooden-towel-rack-,name:Big Wooden Towel Rack,title:Big Wooden Towel Rack,url:\/products\/big-wooden-towel-rack-,price:180,price_min:180.0,price_max:180.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2287579,variants:{id:2287579,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471612,alt:wooden rack 2.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,height:1353,width:809,position:1,type:Images},price:18000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2287579,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471612,alt:wooden rack 2.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,height:1353,width:809,position:1,type:Images},price:18000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2287579,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471612,alt:wooden rack 2.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,height:1353,width:809,position:1,type:Images},price:18000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2287579,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471612,alt:wooden rack 2.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,height:1353,width:809,position:1,type:Images},price:18000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,featured_image:{id:471612,alt:wooden rack 2.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,height:1353,width:809,position:1,type:Images},secondary_image:{alt:,img_url:,src:,type:},images:{id:471612,alt:wooden rack 2.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,height:1353,width:809,position:1,type:Images},media:{id:471612,alt:wooden rack 2.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,height:1353,width:809,position:1,type:Images},featured_media:{id:471612,alt:wooden rack 2.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471612.png,height:1353,width:809,position:1,type:Images},metafields:,expires:null,published_at:2016-10-30T18:01:00.000+08:00,created_at:2016-10-30T18:04:03.000+08:00,is_wishlisted:null},{id:163099,handle:wooden-tower-rack,name:Wooden Tower Rack,title:Wooden Tower Rack,url:\/products\/wooden-tower-rack,price:90,price_min:90.0,price_max:90.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2287577,variants:{id:2287577,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471591,alt:wooden rack 1.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,height:957,width:837,position:1,type:Images},price:9000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2287577,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471591,alt:wooden rack 1.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,height:957,width:837,position:1,type:Images},price:9000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2287577,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471591,alt:wooden rack 1.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,height:957,width:837,position:1,type:Images},price:9000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2287577,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471591,alt:wooden rack 1.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,height:957,width:837,position:1,type:Images},price:9000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,featured_image:{id:471591,alt:wooden rack 1.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,height:957,width:837,position:1,type:Images},secondary_image:{alt:,img_url:,src:,type:},images:{id:471591,alt:wooden rack 1.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,height:957,width:837,position:1,type:Images},media:{id:471591,alt:wooden rack 1.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,height:957,width:837,position:1,type:Images},featured_media:{id:471591,alt:wooden rack 1.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471591.png,height:957,width:837,position:1,type:Images},metafields:,expires:null,published_at:2016-10-30T17:44:00.000+08:00,created_at:2016-10-30T18:01:10.000+08:00,is_wishlisted:null},{id:163087,handle:baby-coat--2-in-1-,name:Baby Coat (2 in 1),title:Baby Coat (2 in 1),url:\/products\/baby-coat--2-in-1-,price:750,price_min:750.0,price_max:750.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2287477,variants:{id:2287477,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471536,alt:14751127_1474835029194642_4844245071438020608_n.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,height:540,width:540,position:1,type:Images},price:75000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2287477,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471536,alt:14751127_1474835029194642_4844245071438020608_n.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,height:540,width:540,position:1,type:Images},price:75000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2287477,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471536,alt:14751127_1474835029194642_4844245071438020608_n.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,height:540,width:540,position:1,type:Images},price:75000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2287477,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:471536,alt:14751127_1474835029194642_4844245071438020608_n.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,height:540,width:540,position:1,type:Images},price:75000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,featured_image:{id:471536,alt:14751127_1474835029194642_4844245071438020608_n.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,height:540,width:540,position:1,type:Images},secondary_image:{alt:,img_url:,src:,type:},images:{id:471536,alt:14751127_1474835029194642_4844245071438020608_n.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,height:540,width:540,position:1,type:Images},media:{id:471536,alt:14751127_1474835029194642_4844245071438020608_n.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,height:540,width:540,position:1,type:Images},featured_media:{id:471536,alt:14751127_1474835029194642_4844245071438020608_n.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/471536.jpeg,height:540,width:540,position:1,type:Images},metafields:,expires:null,published_at:2016-10-30T17:27:00.000+08:00,created_at:2016-10-30T17:35:43.000+08:00,is_wishlisted:null},{id:162642,handle:4-doors-show-cabinet,name:4 Doors Show Cabinet,title:4 Doors Show Cabinet,url:\/products\/4-doors-show-cabinet,price:350,price_min:350.0,price_max:350.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2285670,variants:{id:2285670,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469703,alt:shoe cabinet (high).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,height:2382,width:2004,position:1,type:Images},price:35000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2285670,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469703,alt:shoe cabinet (high).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,height:2382,width:2004,position:1,type:Images},price:35000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2285670,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469703,alt:shoe cabinet (high).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,height:2382,width:2004,position:1,type:Images},price:35000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2285670,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469703,alt:shoe cabinet (high).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,height:2382,width:2004,position:1,type:Images},price:35000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,featured_image:{id:469703,alt:shoe cabinet (high).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,height:2382,width:2004,position:1,type:Images},secondary_image:{alt:,img_url:,src:,type:},images:{id:469703,alt:shoe cabinet (high).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,height:2382,width:2004,position:1,type:Images},media:{id:469703,alt:shoe cabinet (high).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,height:2382,width:2004,position:1,type:Images},featured_media:{id:469703,alt:shoe cabinet (high).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469703.png,height:2382,width:2004,position:1,type:Images},metafields:,expires:null,published_at:2016-10-29T18:50:00.000+08:00,created_at:2016-10-29T18:53:03.000+08:00,is_wishlisted:null},{id:162641,handle:2-doors-shoe-cabinet,name:2 Doors Shoe Cabinet,title:2 Doors Shoe Cabinet,url:\/products\/2-doors-shoe-cabinet,price:120,price_min:120.0,price_max:120.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2285669,variants:{id:2285669,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469701,alt:shoe cabinet (low).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,height:2136,width:1916,position:1,type:Images},price:12000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2285669,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469701,alt:shoe cabinet (low).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,height:2136,width:1916,position:1,type:Images},price:12000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2285669,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469701,alt:shoe cabinet (low).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,height:2136,width:1916,position:1,type:Images},price:12000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2285669,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469701,alt:shoe cabinet (low).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,height:2136,width:1916,position:1,type:Images},price:12000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,featured_image:{id:469701,alt:shoe cabinet (low).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,height:2136,width:1916,position:1,type:Images},secondary_image:{alt:,img_url:,src:,type:},images:{id:469701,alt:shoe cabinet (low).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,height:2136,width:1916,position:1,type:Images},media:{id:469701,alt:shoe cabinet (low).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,height:2136,width:1916,position:1,type:Images},featured_media:{id:469701,alt:shoe cabinet (low).png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469701.png,height:2136,width:1916,position:1,type:Images},metafields:,expires:null,published_at:2016-10-29T18:43:00.000+08:00,created_at:2016-10-29T18:50:05.000+08:00,is_wishlisted:null},{id:162629,handle:storage-stool-,name:Storage Stool,title:Storage Stool,url:\/products\/storage-stool-,price:129,price_min:129.0,price_max:129.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2285636,variants:{id:2285636,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469640,alt:STORAGE STOOL Front view.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,height:1200,width:800,position:1,type:Images},price:12900,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2285636,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469640,alt:STORAGE STOOL Front view.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,height:1200,width:800,position:1,type:Images},price:12900,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2285636,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469640,alt:STORAGE STOOL Front view.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,height:1200,width:800,position:1,type:Images},price:12900,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2285636,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469640,alt:STORAGE STOOL Front view.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,height:1200,width:800,position:1,type:Images},price:12900,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,featured_image:{id:469640,alt:STORAGE STOOL Front view.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,height:1200,width:800,position:1,type:Images},secondary_image:{id:469641,alt:storage box.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469641.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469641.png,height:1800,width:2004,position:2,type:Images},images:{id:469640,alt:STORAGE STOOL Front view.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,height:1200,width:800,position:1,type:Images},{id:469641,alt:storage box.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469641.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469641.png,height:1800,width:2004,position:2,type:Images},media:{id:469640,alt:STORAGE STOOL Front view.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,height:1200,width:800,position:1,type:Images},{id:469641,alt:storage box.png,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469641.png,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469641.png,height:1800,width:2004,position:2,type:Images},featured_media:{id:469640,alt:STORAGE STOOL Front view.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469640.jpeg,height:1200,width:800,position:1,type:Images},metafields:,expires:null,published_at:2016-10-29T17:59:00.000+08:00,created_at:2016-10-29T18:07:16.000+08:00,is_wishlisted:null},{id:162623,handle:swing-chair--design-2-,name:Swing Chair (Design 2),title:Swing Chair (Design 2),url:\/products\/swing-chair--design-2-,price:1500,price_min:1500.0,price_max:1500.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2285610,variants:{id:2285610,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469624,alt:14881230_323814091326721_1360036404_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,height:1280,width:960,position:1,type:Images},price:150000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2285610,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469624,alt:14881230_323814091326721_1360036404_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,height:1280,width:960,position:1,type:Images},price:150000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2285610,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469624,alt:14881230_323814091326721_1360036404_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,height:1280,width:960,position:1,type:Images},price:150000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2285610,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469624,alt:14881230_323814091326721_1360036404_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,height:1280,width:960,position:1,type:Images},price:150000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,featured_image:{id:469624,alt:14881230_323814091326721_1360036404_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,height:1280,width:960,position:1,type:Images},secondary_image:{alt:,img_url:,src:,type:},images:{id:469624,alt:14881230_323814091326721_1360036404_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,height:1280,width:960,position:1,type:Images},media:{id:469624,alt:14881230_323814091326721_1360036404_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,height:1280,width:960,position:1,type:Images},featured_media:{id:469624,alt:14881230_323814091326721_1360036404_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469624.jpeg,height:1280,width:960,position:1,type:Images},metafields:,expires:null,published_at:2016-10-29T15:30:00.000+08:00,created_at:2016-10-29T17:52:36.000+08:00,is_wishlisted:null},{id:162535,handle:swing-chair--design-1-,name:Swing chair (Design 1),title:Swing chair (Design 1),url:\/products\/swing-chair--design-1-,price:680,price_min:680.0,price_max:680.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2285406,variants:{id:2285406,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469108,alt:14876026_323814104660053_1872678537_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,height:1280,width:960,position:1,type:Images},price:68000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2285406,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469108,alt:14876026_323814104660053_1872678537_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,height:1280,width:960,position:1,type:Images},price:68000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2285406,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469108,alt:14876026_323814104660053_1872678537_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,height:1280,width:960,position:1,type:Images},price:68000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2285406,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:469108,alt:14876026_323814104660053_1872678537_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,height:1280,width:960,position:1,type:Images},price:68000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,featured_image:{id:469108,alt:14876026_323814104660053_1872678537_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,height:1280,width:960,position:1,type:Images},secondary_image:{alt:,img_url:,src:,type:},images:{id:469108,alt:14876026_323814104660053_1872678537_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,height:1280,width:960,position:1,type:Images},media:{id:469108,alt:14876026_323814104660053_1872678537_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,height:1280,width:960,position:1,type:Images},featured_media:{id:469108,alt:14876026_323814104660053_1872678537_o.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/469108.jpeg,height:1280,width:960,position:1,type:Images},metafields:,expires:null,published_at:2016-10-29T15:22:00.000+08:00,created_at:2016-10-29T15:30:02.000+08:00,is_wishlisted:null},{id:162200,handle:chest-of-drawer--5-drawers-,name:Chest of Drawer (5 Drawers),title:Chest of Drawer (5 Drawers),url:\/products\/chest-of-drawer--5-drawers-,price:600,price_min:600.0,price_max:600.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2283697,variants:{id:2283697,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:467285,alt:CD-0705.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,height:1129,width:803,position:1,type:Images},price:60000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2283697,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:467285,alt:CD-0705.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,height:1129,width:803,position:1,type:Images},price:60000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2283697,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:467285,alt:CD-0705.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,height:1129,width:803,position:1,type:Images},price:60000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2283697,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:467285,alt:CD-0705.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,height:1129,width:803,position:1,type:Images},price:60000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,featured_image:{id:467285,alt:CD-0705.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,height:1129,width:803,position:1,type:Images},secondary_image:{alt:,img_url:,src:,type:},images:{id:467285,alt:CD-0705.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,height:1129,width:803,position:1,type:Images},media:{id:467285,alt:CD-0705.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,height:1129,width:803,position:1,type:Images},featured_media:{id:467285,alt:CD-0705.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/467285.jpeg,height:1129,width:803,position:1,type:Images},metafields:,expires:null,published_at:2016-10-28T19:00:00.000+08:00,created_at:2016-10-28T19:05:13.000+08:00,is_wishlisted:null},{id:162115,handle:iron-steel-stool-,name:Iron Steel Stool,title:Iron Steel Stool,url:\/products\/iron-steel-stool-,price:200,price_min:200.0,price_max:200.0,price_varies:false,compare_at_price:0,compare_at_price_min:0.0,compare_at_price_max:0.0,compare_at_price_varies:false,available:true,options_with_values:,options_by_name:,options:Title,has_only_default_variant:true,sole_variant_id:2283318,variants:{id:2283318,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:466886,alt:European-industry-minimalist-stainless-steel-font-b-bar-b-font-font-b-stool-b-font-font.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,height:802,width:802,position:1,type:Images},price:20000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_variant:{id:2283318,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:466886,alt:European-industry-minimalist-stainless-steel-font-b-bar-b-font-font-b-stool-b-font-font.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,height:802,width:802,position:1,type:Images},price:20000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},first_available_variant:{id:2283318,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:466886,alt:European-industry-minimalist-stainless-steel-font-b-bar-b-font-font-b-stool-b-font-font.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,height:802,width:802,position:1,type:Images},price:20000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},selected_or_first_available_variant:{id:2283318,title:Default Title,sku:,taxable:false,barcode:,available:true,inventory_quantity:null,featured_image:{id:466886,alt:European-industry-minimalist-stainless-steel-font-b-bar-b-font-font-b-stool-b-font-font.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,height:802,width:802,position:1,type:Images},price:20000,compare_at_price:0,is_enabled:true,options:Default Title,option1:Default Title,option2:null,option3:null},img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,featured_image:{id:466886,alt:European-industry-minimalist-stainless-steel-font-b-bar-b-font-font-b-stool-b-font-font.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,height:802,width:802,position:1,type:Images},secondary_image:{alt:,img_url:,src:,type:},images:{id:466886,alt:European-industry-minimalist-stainless-steel-font-b-bar-b-font-font-b-stool-b-font-font.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,height:802,width:802,position:1,type:Images},media:{id:466886,alt:European-industry-minimalist-stainless-steel-font-b-bar-b-font-font-b-stool-b-font-font.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,height:802,width:802,position:1,type:Images},featured_media:{id:466886,alt:European-industry-minimalist-stainless-steel-font-b-bar-b-font-font-b-stool-b-font-font.jpg,img_url:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,src:https:\/\/cdn.store-assets.com\/s\/125678\/i\/466886.jpeg,height:802,width:802,position:1,type:Images},metafields:,expires:null,published_at:2016-10-28T17:28:00.000+08:00,created_at:2016-10-28T17:44:14.000+08:00,is_wishlisted:null},sort_by:featured,product_count:10} EasyStore.Event.dispatch(collections/viewed, { collection }) } function onProductView() { const product EasyStore.Event.dispatch(products/viewed, { product }) } function onProductShare(el) { const product const channel el.getAttribute(class).split(-).last() EasyStore.Event.dispatch(products/shared, { product, channel }) } function onWishlistItemAdded() { let product const quantity _selector(#Quantity).value EasyStore.Event.dispatch(wishlists/item_added, { product }) } async function onCartItemsAdded() { const cart await getCart() if(cart && cart.items ! undefined && cart.items.length > 0) { EasyStore.Event.dispatch(carts/item_added, { cart }) } } async function onCartView() { const cart await getCart() EasyStore.Event.dispatch(carts/viewed, { cart }) } async function onCartItemRemoved() { const cart await getCart() cart.items if(cart) { EasyStore.Event.dispatch(carts/item_removed, { cart }) } } async function onCheckoutInitiate() { const cart await getCart() EasyStore.Event.dispatch(checkouts/initiated, { cart }) } async function onShippingInfoAdded(form) { let checkout getCheckout() let form_data {} new FormData(form).forEach((value, key) > form_datakey value) let shipping_tier null if (form_data.type && form_data.type.startsWith(r_pickup)) { shipping_tier `Pickup - ${form_data.pick_location}` } if (form_data.s_id) { shipping_tier _selector(`inputid`+form_data.s_id+``).getAttribute(data-shipping-name) } if (!shipping_tier) return EasyStore.Event.dispatch(checkouts/shipping_info_added, { checkout, shipping_tier }) } async function onPaymentInfoAdded(form) { let checkout getCheckout() let payment_type new FormData(form).get(payment_method) EasyStore.Event.dispatch(checkouts/payment_info_added, { checkout, payment_type }) } async function onOrderPlace() { let cart_token getCookie(cart_js) let previous_cart_token getCookie(previous_cart_ga4_js) if (previous_cart_token && previous_cart_token cart_token) { // Prevent duplicate purchase tracking return } let order getOrder() EasyStore.Event.dispatch(orders/placed, { order }) if(order.is_manual_payment) { EasyStore.Event.dispatch(orders/purchased, { order }) } const last_transaction order.transactions.last() if (last_transaction.status) { EasyStore.Event.dispatch(orders/purchased, { order }) EasyStore.Event.dispatch(payments/captured, { order }) } } async function onPaymentFail() { const order getOrder() EasyStore.Event.dispatch(payments/failed, { order }) } async function onCheckoutComplete(form) { onPaymentInfoAdded(form) const checkout getCheckout() EasyStore.Event.dispatch(checkouts/completed, { checkout }) } async function onSinglePageCheckout() { // let checkout $(data-app-checkout).data(app-checkout) let checkout getCheckout() // const payment_type _selector(#app_spc_payment_method).find(`class*label-content`).first().find(b).first().text() const payment_type _selector(#app_spc_payment_method).getElementsByClassName(label-content)0.getElementsByTagName(b)0.innerHTML const shipping_method _selector(#delivery_method).value let shipping_tier null let app_spc_customer_info_label _selector(#app_spc_customer_info).getElementsByClassName(label-content) if (shipping_method shipping) { shipping_tier app_spc_customer_info_labelapp_spc_customer_info_label.length - 1.getElementsByTagName(b)0.innerHTML } if (shipping_method pickup) { shipping_tier app_spc_customer_info_label0.innerHTML } if (shipping_tier) { EasyStore.Event.dispatch(checkouts/shipping_info_added, { checkout, shipping_tier, }) } if (payment_type) { EasyStore.Event.dispatch(checkouts/payment_info_added, { checkout, payment_type, }) } EasyStore.Event.dispatch(checkouts/completed, { checkout }) } }) //-----------------------// // Functions // //-----------------------// function getCookie(name) { name + decodedCookie decodeURIComponent(document.cookie) ca decodedCookie.split(;) for(i 0; i ca.length; i++) { c cai while (c.charAt(0) ) { c c.substring(1) } if (c.indexOf(name) 0) { return c.substring(name.length, c.length) } } return } const parsePrice price > { if(typeof price string) { return parseFloat(price.split(,).join()) } return price } const requestCart async (method, data) > { let response await fetch(/cart.json, {method: GET,headers: {Content-Type: application/json}}) result await response.json() return result.cart } const getCart async (latest false) > { let cart window.__latest_cart const cart_invalid !cart || !cart.items || (cart.total_price > 0 && !cart.items.length) if(latest || cart_invalid) { cart await requestCart() } cart.items cart.items || return mapCart(cart) } const getCheckout async () > { mapCheckout(window.__latest_cart || await requestCart()) } const getOrder async () > { mapOrder(window.__latest_cart || await requestCart()) } //-----------------------// // Mappers // //-----------------------// const fallbackAttribute (object, attribute) > { if(!Array.isArray(attribute)) { attribute attribute } let final_value null do { final_value objectattribute.shift() } while(!final_value && attribute.length) return final_value } const map (object, mapper) > { const newObject {} for(const key in mapper) { // Handle different keys between new and old format newObjectkey fallbackAttribute(object, mapperkey) // Cast price to float if(newObjectkey && price, amount, discount, discounts.some(x > key.endsWith(x))) { newObjectkey parsePrice(newObjectkey) } if(newObjectkey undefined) { delete newObjectkey } } return newObject } const mapCart cart > { const oldCart cart const mapper { id: id, currency: currency, item_count: item_count, items: items, total_price: total_price, latest_items: latest_items } cart map(cart, mapper) const discounts (oldCart.storewide_discounts || ).concat((oldCart.voucher_discounts || )) cart.discount_applications discounts.map(discount > ({ title: discount.voucher_code || null, value: parsePrice(discount.amount), })) cart.original_total_price cart.items.length ? cart.items .map(item > item.original_price) .reduce((sum, price) > sum + price) : 0 cart.total_discount cart.discount_applications.length ? cart.discount_applications .map(discount > parsePrice(discount.value)) .reduce((sum, value) > sum + value) : 0 cart.items cart.items.map(item > mapLineItem(item)) return cart } const mapCheckout checkout > { const mapper { note: note, attributes: note_attributes, billing_address: billing_address, currency: currency, customer_id: customer_id, discounts_amount: total_discount, id: id, line_items: order_item, order_number: order_number, shipping_address: shipping_address, shipping_price: shipping_tax, shipping_method: shipping_method_name, tax_price: total_tax, } checkout map(checkout, mapper) checkout.requires_shipping checkout.line_items.some(item > item.shipping_required) checkout.line_items checkout.line_items.map(item > mapLineItem(item)) return checkout } const mapOrder order > { const mapper { attributes: note_attributes, billing_address: billing_address, cancelled: is_cancelled, cancelled_at: cancelled_at, created_at: created_at, customer_id: customer_id, // discount_applications: discount_applications, email: email, financial_status: financial_status, fulfillment_status: fulfillment_status, line_items: order_item, note: note, order_number: order_number, phone: phone, shipping_address: shipping_address, shipping_methods: shipping_methods, shipping_price: total_shipping, subtotal_price: subtotal_price, // tax_lines: tax_lines, tax_price: total_tax, total_discounts: total_discount, total_net_amount: total_amount_include_transaction, total_price: total_price, transactions: transaction_records, is_manual_payment: is_manual_payment, } order.email order.billing_address.email order.phone order.billing_address.phone order.shipping_method order.shipping_method_name order map(order, mapper) order.line_items order.line_items.map(item > mapLineItem(item)) order.transactions order.transactions.map(transaction > mapTransaction(transaction)) return order } const mapLineItem line_item > { const old_line_item line_item const mapper { final_price: price, image: img_url, message: message, original_line_price: original_line_price, original_price: original_price, properties: properties, quantity: quantity, requires_shipping: shipping_required, sku: sku, taxable: taxable, title: product_name, product_name: product_name, url: url, product_id: product_id, variant_id: variant_id, id: id, i_id, } line_item map(line_item, mapper) line_item.product_id line_item.product_id || (old_line_item.product && old_line_item.product.id) || null line_item.variant_id line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null line_item.image line_item.image || (old_line_item.image && old_line_item.image.url) || null return line_item } const mapTransaction transaction > { const mapper { amount: amount, created_at: created_at, gateway: gateway_type, id: id, status: status, } transaction map(transaction, mapper) return transaction }/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]