${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "100%"; const product_image = data.image; const secondary_image = data.secondImage; const image_width = product_image.width; let image_height = product_image.height; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '133.33%'){ image_height = image_width * 1.3333; }; const product_image_hover_on = true && !!secondary_image.src; const has_save_label = true && ((+data.compare_at_price) > (+data.price)); const is_single_variant = data.variants.length == 1; const min_price_variant_href = (data.min_price_variant && data.min_price_variant.available) ? data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max = data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE = 3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id = 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id = 'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' + get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return `
${ data.available ? `${ (+data.compare_at_price > +data.price) ? `Save ${ data.off_ratio }% ` : '' }` : "Sold out" }
Mixed Lot
${data.title}
${ data.price_min != data.price_max ? `from
` : `
` }
+${data.remainInvisibleThumbCount}
` })()}
Search
${item.word}
Search
Search
Search
Search
${item.word}
${ function(){ data.historyList = data.historyList.filter(item => item.trim() !== ''); data.isShowHistory = data.isShowHistory && data.historyList.length > 0; }() }
Recently searched
${item}
Hot searches
${item.word}
Results
${item.highlightHtml}
const template_name = SHOPLAZZA?.meta?.page?.template_name || ''; const SEARCH_URL = '/search'; const TAG = 'spz-custom-smart-search-location'; const SMART_PRODUCR_SEARCH_WRAP_CLASSNAME = 'app-smart-product-search-container'; const THEME_NAME = window.SHOPLAZZA.theme.merchant_theme_name.replace(/ /g,''); const BREAKPOINT = 960; const DELAY = 300; function diffThemeName(themeNameA, themeNameB){ return themeNameA.toLocaleLowerCase().includes(themeNameB.toLocaleLowerCase()) } const HEADER_DOM_MAP = { eva: 'header .header_grid_layout', geek: `.header-mobile-inner-container`, onePage: 'header .header', wind: 'header #header-nav', nova: 'header .header', hero: 'header .header__nav', 'flash': '#shoplaza-section-header>div>div', 'lifestyle': '#shoplaza-section-header .header__wrapper' } let HEADER_DOM = 'header'; Object.keys(HEADER_DOM_MAP) .map(themeName=>{ if (diffThemeName(THEME_NAME, themeName)) { HEADER_DOM = HEADER_DOM_MAP[themeName]; } }) const SEARCH_ICON_CLASS_MAP = { 'flash': 'app-smart-icon-search-large-flash', 'hero': 'app-smart-icon-search-large-hero', 'geek': 'app-smart-icon-search-large-geek', 'nova': 'app-smart-icon-search-large-nova', }; let SEARCH_ICON_CLASS = 'app-smart-icon-search-large-default'; Object.keys(SEARCH_ICON_CLASS_MAP) .map(themeName=>{ if (diffThemeName(THEME_NAME, themeName)) { SEARCH_ICON_CLASS = SEARCH_ICON_CLASS_MAP[themeName]; } }) class SpzCustomSmartSearchLocation extends SPZ.BaseElement { constructor(element) { super(element); this.mobileHeaderPluginParentEle = null; this.outsideCarouselIndex = 0; this.insideCarouselIndex = 0; this.searchItemType = 'icon'; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.init(); this.listenerResize(); this.initRegisterActions(); } addIconClass(){ document.querySelectorAll('.app-smart-icon-search-large').forEach(e=>{ e.classList.add(SEARCH_ICON_CLASS) }); } moveIcon(){ if (!diffThemeName(THEME_NAME, 'lifestyle')) return; if (this.searchItemType === 'input') return; if (this.isDesktop()) return; const smart_search_dom = document.querySelector('#app-smart-product-search-container-65'); if (!smart_search_dom) return; const hasMovedIcon = !!document.querySelector('.header__wrapper .container .row.header>div>#app-smart-product-search-container-65'); if (hasMovedIcon) return; const headerDivList = document.querySelectorAll('.header__wrapper .container .row.header>div'); const iconBoxDom = headerDivList[headerDivList.length-1] iconBoxDom.appendChild(smart_search_dom, iconBoxDom.firstChild); } init() { this.addIconClass(); this.moveIcon(); if ( this.searchItemType === 'input' ) { document.querySelectorAll('.app-smart-icon-search-large').forEach(e=>e.style.display = 'none'); const mobileSmartSearchDom = document.querySelector(`.smart-search-mobile-container .app-smart-product-search-wrap`); if ( this.isDesktop() ) { document.querySelector(`#app-smart-product-search-container-65`).style="display: block"; if (mobileSmartSearchDom) { document.querySelector(`#app-smart-product-search-container-65`).appendChild(mobileSmartSearchDom); } }else{ if( template_name=='search' ) return; if (!document.querySelector(`.smart-search-mobile-container`)) { const appSmartSearchContainer = document.createElement('div'); appSmartSearchContainer.classList.add('smart-search-mobile-container'); appSmartSearchContainer.classList.add('smart-search-mobile-container-'+THEME_NAME.toLocaleLowerCase()); document.querySelector(HEADER_DOM).appendChild(appSmartSearchContainer); } if (!mobileSmartSearchDom) { document.querySelector(`.smart-search-mobile-container`).appendChild( document.querySelector(`.app-smart-product-search-wrap`) ) } } }else{ document.querySelectorAll('.app-smart-icon-search-large').forEach(e=>e.style.display = 'flex'); } // PC-end not load if (this.isDesktop()) { return; } if (!window.__isLoadAppSmartSearch__) { this.initSmartSearch(); console.log('__isLoadAppSmartSearch__'); } // B-end must reload if (window.self === window.top && !window.__isLoadAppSmartSearch__) { window.__isLoadAppSmartSearch__ = true; } } initSmartSearch() { if (this.hasMobileUpperRightPlugin()) { this.showMobileSmartSearch(); } else { this.addMobileSmartSearch(); } } initRegisterActions(){ this.registOnSearchInputChange(); this.registOnSearchFormSubmit(); this.registOnOutsideCarouselIndexChange(); this.registOnInsideCarouselIndexChange(); this.registGetSearchItemType(); this.registGenerateHotKeywordList(); this.registerAction('onTapHotWord',(invocation)=>{ this.onTapHotWord(invocation.args.type); }); } registOnSearchInputChange(){ this.registerAction('onSearchInputChange',(invocation)=>{ const keyword = invocation.args.keyword; if (keyword === null || !keyword.length) { document.querySelectorAll('.hot-words-carousel-inner-container').forEach(e=>{ e.style='display: block'; }); } else { document.querySelectorAll('.hot-words-carousel-inner-container').forEach(e=>{ e.style='display: none'; }); } }) } registOnSearchFormSubmit(){ this.registerAction('onSearchFormSubmit',(invocation)=>{ const event = invocation.args.event; const keywordArray = event.q || []; const keyword = keywordArray[0]; if (keyword!==null && keyword.length) { this.handleSearchSubmit_(keywordArray,1); } else { this.onTapHotWord('inside') } }) } handleSearchSubmit_(value, retryNum){ SPZ.whenApiDefined(document.getElementById('app-smart-search-65')) .then((ljsSearch) => { try{ ljsSearch.handleSearchSubmit_({ value: value }) }catch(e){ console.log('catch error',retryNum) if( 3 > retryNum ){ this.handleSearchSubmit_(value, retryNum + 1); return; } const searchStr = value[0] || ''; const searchResult = ljsSearch.setThinkSearchData_(searchStr); ljsSearch.afterSearching({ query: searchResult.query, url: `${SEARCH_URL}?q=${searchStr}`, queryType: searchResult.queryType, }) } }) } registOnOutsideCarouselIndexChange(){ this.registerAction('onOutsideCarouselIndexChange',(invocation)=>{ this.outsideCarouselIndex = invocation.args.index || 0; }) } registOnInsideCarouselIndexChange(){ this.registerAction('onInsideCarouselIndexChange',(invocation)=>{ this.insideCarouselIndex = invocation.args.index || 0; }) } registGetSearchItemType(searchItemType){ this.registerAction('getSearchItemType',(invocation)=>{ SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-65')) .then((appSmartSearchOutsideItem) => { const search_item_type = appSmartSearchOutsideItem.getData()?.search_item_type; this.searchItemType = search_item_type || this.searchItemType; this.init(); }) }) } registGenerateHotKeywordList(){ this.registerAction('generateHotKeywordList',(invocation)=>{ const search_keywords = invocation.args?.data?.data?.hotKeywordList || []; const isShowHotKeyword = invocation.args?.data?.data?.isShowHotKeyword || false; SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-65')) .then((appSmartSearchOutsideItem) => { const hotwords = appSmartSearchOutsideItem.getData()?.search_keywords || []; const new_search_keywords = search_keywords.map((item, index) => { item.url_obj = item.url_obj || {}; const hotwordItem = hotwords.find(e=>e.word === item.word); if (hotwordItem) { item.icon = hotwordItem.icon || ''; } if (!item.urlObj || !item.urlObj.url) { item.urlObj = { ...item.url_obj, url: item.url_obj.type === 'search' ? `${SEARCH_URL}?q=${item.word}` : item.url_obj.url, }; } return item; }); document.querySelectorAll('.app-hot-keyword-render-child') .forEach((ele) => { SPZ.whenApiDefined(ele) .then((hotWordsChildDom) => { hotWordsChildDom.render({ list: new_search_keywords, isShowHotKeyword: isShowHotKeyword, }); }) }); }) }); } onTapHotWord(type){ const index = type === 'inside' ? this.insideCarouselIndex : this.outsideCarouselIndex; SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-65')) .then((appSmartSearchOutsideItem) => { const hotwords = appSmartSearchOutsideItem.getData()?.search_keywords || []; const currentHotwordItem = hotwords[index] || null; if (currentHotwordItem && currentHotwordItem.url_obj) { currentHotwordItem.url_obj.url = currentHotwordItem.url_obj.type === 'search' ? `${SEARCH_URL}?q=${currentHotwordItem.word}` : currentHotwordItem.url_obj.url; } SPZ.whenApiDefined(document.getElementById('app-smart-search-65')) .then((ljsSearch) => { if (currentHotwordItem) { ljsSearch.handleHotKeyword_({ word: currentHotwordItem.word, query_type: currentHotwordItem.type, url: currentHotwordItem.url_obj?.url, }); } else { this.handleSearchSubmit_([''],1); } }) }) } getOutsideCarouselConfig(){ return SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-65')) .then((appSmartSearchOutsideItem) => { return { ...appSmartSearchOutsideItem.getData(), outsideCarouselIndex: this.outsideCarouselIndex, } }) } listenerResize() { window.removeEventListener('resize', window.smartSearchResizeCallback); window.smartSearchResizeCallback = SPZCore.Types.debounce( this.win, () => { this.init(); }, DELAY ); window.addEventListener('resize', window.smartSearchResizeCallback); } isDesktop() { const mediaQueryList = window.matchMedia(`(min-width: ${BREAKPOINT}px)`); return mediaQueryList.matches; } hasMobileUpperRightPlugin() { return !['geek', 'flash', 'boost'].includes(THEME_NAME.toLocaleLowerCase()); } showMobileSmartSearch() { this.mobileHeaderPluginParentEle = this.getMobileHeaderPluginParentEle(); this.setMobileHeaderIconsPluginStyle(this.mobileHeaderPluginParentEle); } getMobileHeaderPluginParentEle() { const MOBILE_HEADER_PLUGIN_PARENT_ELE_MAP = { nova: '.header__mobile #header__plugin-container', hero: '.header__icons .tw-flex.tw-justify-end.tw-items-center.tw-space-x-7', onePage: '.header__mobile #header__plugin-container', wind: '#header-icons .flex.justify-end.items-center', eva: '#header__icons .plugin_content' }; const headerPluginParentSelector = this.combineMultipleSelectors( Object.values(MOBILE_HEADER_PLUGIN_PARENT_ELE_MAP) ); return document.querySelector(headerPluginParentSelector); } setMobileHeaderIconsPluginStyle(pluginParentEle) { if (!pluginParentEle) { return; } const containHidden = pluginParentEle.classList.contains('md:hidden'); const containTwHidden = pluginParentEle.classList.contains('md:tw-hidden'); if (containHidden || containTwHidden) { Array.from(pluginParentEle.children).forEach((pluginElement) => { if (!this.hasSmartSearchPlugin(pluginElement)) { pluginElement.style.display = 'none'; } }); pluginParentEle.classList.remove('md:hidden', 'md:tw-hidden'); } else { const smartSearchPluginElement = Array.from(pluginParentEle.children).find( (pluginElement) => { return this.hasSmartSearchPlugin(pluginElement); } ); smartSearchPluginElement.style.display = 'block'; } } hasSmartSearchPlugin(pluginElement) { return ( pluginElement.classList.contains(`${SMART_PRODUCR_SEARCH_WRAP_CLASSNAME}`) || pluginElement.querySelectorAll(`.${SMART_PRODUCR_SEARCH_WRAP_CLASSNAME}`).length > 0 ); } addMobileSmartSearch() { this.mobileHeaderIconsEle = this.getMobileHeaderIconsEle(); this.smartSearchWrapEle = this.getSmartSearchWrapEle(); this.appendSmartSearchToHeader(); } getMobileHeaderIconsEle() { // Must be the parent element of the plugin const MOBILE_HEADER_ICONS_ELE_MAP = { geek: '#header-mobile-container .flex.items-center.justify-end.flex-shrink-0', flash: '#header-layout .header__icons', boost: '.header__mobile-bottom .tw-flex.tw-items-center.tw-justify-end.tw-flex-1' }; const headerIconsSelector = this.combineMultipleSelectors( Object.values(MOBILE_HEADER_ICONS_ELE_MAP) ); return document.querySelector(headerIconsSelector); } getSmartSearchWrapEle() { const smartSearchWrapEle = document.querySelector(this.getSmartSearchWrapSelector()); if (!smartSearchWrapEle) { return null; } return smartSearchWrapEle; } appendSmartSearchToHeader() { if (!this.smartSearchWrapEle) { return; } this.mobileHeaderIconsEle.insertAdjacentElement('afterbegin', this.smartSearchWrapEle); } getSmartSearchWrapSelector() { const PLUGIN_POSITION = { DRAWER: 'drawer', HEADER_TOP: 'headerTop' }; // only one this plugin of ancestor element const MOBILE_PLUGIN_POSITION_ELE_MAP = { [PLUGIN_POSITION.DRAWER]: { geek: '#header-menu-mobile #menu-drawer', flash: '#menu-drawer .plugin__header-content', boost: '.header__drawer' }, [PLUGIN_POSITION.HEADER_TOP]: { geek: '#header-menu-mobile #menu-drawer', flash: '#menu-drawer .plugin__header-content', boost: '.header-content .logo-wrap' } }; const MbPluginPositionInTheme = [ ...Object.values(MOBILE_PLUGIN_POSITION_ELE_MAP[PLUGIN_POSITION.DRAWER]), ...Object.values(MOBILE_PLUGIN_POSITION_ELE_MAP[PLUGIN_POSITION.HEADER_TOP]) ]; return Object.values(MbPluginPositionInTheme).reduce((pre, ancestor) => { if (pre === '') { return `${ancestor} .app-smart-product-search-container`; } if (pre.includes(ancestor)) { return pre; } return `${pre},${ancestor} .app-smart-product-search-container`; }, ''); } combineMultipleSelectors(selectorList) { return selectorList.reduce((pre, selector) => { if (pre === '') { return `${selector}`; } if (pre.includes(selector)) { return pre; } return `${pre},${selector}`; }, ''); } } SPZ.defineElement(TAG, SpzCustomSmartSearchLocation);
Log in
Create an account
${data.data && data.data.count}
HOME
2025-2026 Season
2024-2025 Season
NATIONAL TEAM
Europe
Germany
England
Paris
France
Portugal
Spain
ltaly
Belgium
Netherlands
Poland
Denmark
Finland
Croatia
lreland
Albania
Sweden
Wales
Switzerland
Serbia
Turkey
South America
Brazil
Argentina
Uruguay
Paraguay
Chile
Colombia
Ecuador
Kitami
United States
Mexico
Honduras
Canada
Guatemala
Costa Rica
Jamaica
El Salvador
Panama
Asia
Japan
South Korea
lraq
Qatar
Australia
Saudi Arabia
Malaysia
Philippine
Africa
Nigeria
Egypt
Senegal
Tunisia
Morocco
Algeria
Ghana
Cote d'lvoire
Cameroon
CLUB LEAGUE
Premier League
Arsenal
Manchester United
Liverpool
Chelsea
Manchester City
Tottenham
Everton
Newcastle United
Aston Villa
Leeds United
Leicester City
West Ham United
Wolverhampton Wanderers
Crystal Palace
Nottingham Forest
Southampton
Brighton
Bundesliga
Bayern
Dortmund
Leipzig
Frankfurt
Mönchengladbach
VfB Stuttgart
The league
Barcelona
Real Madrid
Atletico Madrid
Health
Athletic Bilbao
Real Betis
Real Valladolid
Vallecano
Valencia
Cadiz
Granada
A league
Ac Milan
Inter Milan
Juventus
Napoli
Rome
Turin
Venice
Atalanta
Lazio
League 1
Paris
Marseille
Lyon
Angers
Little
Rennais Stadium
Brazilian Championship A Series
Palm Trees
Brazil international
Corinthians
Flamengo
S¤o Paulo
Santos
Fluminense
Atlético Mineiro
Flamengo
Portuguese League
Benfica
FC Porto
Sporting Lisbon
OTHER LEAGUES
Al-Nassr
Al-Hilal Securities Regulatory Commissio
Ajax
Feyenoord
Celtics
AFC-Richmond
Corinthians
Monterrey
Brighton
Aston villa
ADULT SERIES
Fans-Jerseys
player version
Half-Pull Training
Sleeveless Training Kit
Short Sleeve Training kit
Short sleeved and long pants kit
Vintage collection
Down Cotton Jacket
Long Zipped Jacket
Trench Coat Series
Training Polo Shirt Kit
2024 New Adult Set
2024 New Socks
Long sleeves
Shorts
CHILDRENS SERIES
Kid Tracksuit
New children's suits
Add Patch
TRACKORDER
FAQ
More links
${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = "{}"; let linkList = [ { id: 79885833, title: "HOME", url: "\/", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79885835, title: "2025-2026 Season", url: "\/collections\/2025-2026-season-0tl1", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79885837, title: "2024-2025 Season", url: "\/collections\/2024-2025-new-series", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79885839, title: "NATIONAL TEAM ", url: "", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "Europe", url: "\/", target: "", levels: 1, children: [ { title: "Germany", url: "\/collections\/germany", target: "", levels: 0, }, { title: "England", url: "\/collections\/england", target: "", levels: 0, }, { title: "Paris", url: "\/collections\/paris-srzj", target: "", levels: 0, }, { title: "France", url: "\/collections\/france", target: "", levels: 0, }, { title: "Portugal", url: "\/collections\/portugal", target: "", levels: 0, }, { title: "Spain", url: "\/collections\/spain", target: "", levels: 0, }, { title: "ltaly", url: "\/collections\/ltaly", target: "", levels: 0, }, { title: "Belgium", url: "\/collections\/belgium", target: "", levels: 0, }, { title: "Netherlands", url: "\/collections\/netherlands", target: "", levels: 0, }, { title: "Poland", url: "\/collections\/poland", target: "", levels: 0, }, { title: "Denmark", url: "\/collections\/denmark", target: "", levels: 0, }, { title: "Finland", url: "\/collections\/finland", target: "", levels: 0, }, { title: "Croatia", url: "\/collections\/croatia", target: "", levels: 0, }, { title: "lreland", url: "\/collections\/lreland-hv6s", target: "", levels: 0, }, { title: "Albania", url: "\/collections\/albania", target: "", levels: 0, }, { title: "Sweden", url: "\/collections\/sweden", target: "", levels: 0, }, { title: "Wales", url: "\/collections\/wales", target: "", levels: 0, }, { title: "Switzerland", url: "\/collections\/switzerland", target: "", levels: 0, }, { title: "Serbia", url: "\/collections\/serbia", target: "", levels: 0, }, { title: "Turkey", url: "\/collections\/turkey", target: "", levels: 0, }, ] }, { title: "South America", url: "\/", target: "", levels: 1, children: [ { title: "Brazil", url: "\/collections\/brazil", target: "", levels: 0, }, { title: "Argentina", url: "\/collections\/argentina", target: "", levels: 0, }, { title: "Uruguay", url: "\/collections\/uruguay", target: "", levels: 0, }, { title: "Paraguay", url: "\/collections\/paraguay-zn", target: "", levels: 0, }, { title: "Chile", url: "\/collections\/chile", target: "", levels: 0, }, { title: "Colombia", url: "\/collections\/colombia", target: "", levels: 0, }, { title: "Ecuador", url: "\/collections\/ecuador", target: "", levels: 0, }, ] }, { title: "Kitami", url: "\/", target: "", levels: 1, children: [ { title: "United States", url: "\/collections\/united-states", target: "", levels: 0, }, { title: "Mexico", url: "\/collections\/mexico", target: "", levels: 0, }, { title: "Honduras", url: "\/collections\/honduras", target: "", levels: 0, }, { title: "Canada", url: "\/collections\/canada", target: "", levels: 0, }, { title: "Guatemala", url: "\/collections\/guatemala", target: "", levels: 0, }, { title: "Costa Rica", url: "\/collections\/costa-rica", target: "", levels: 0, }, { title: "Jamaica", url: "\/collections\/jamaica", target: "", levels: 0, }, { title: "El Salvador", url: "\/collections\/el-salvador", target: "", levels: 0, }, { title: "Panama", url: "\/collections\/panama", target: "", levels: 0, }, ] }, { title: "Asia", url: "\/", target: "", levels: 1, children: [ { title: "Japan", url: "\/collections\/japan", target: "", levels: 0, }, { title: "South Korea", url: "\/collections\/korea", target: "", levels: 0, }, { title: "lraq", url: "\/collections\/lraq", target: "", levels: 0, }, { title: "Qatar", url: "\/collections\/oatar-zn", target: "", levels: 0, }, { title: "Australia", url: "\/collections\/australia", target: "", levels: 0, }, { title: "Saudi Arabia", url: "\/collections\/saudi-arabia", target: "", levels: 0, }, { title: "Malaysia", url: "\/collections\/malaysia", target: "", levels: 0, }, { title: "Philippine", url: "\/collections\/philippine-9rmh", target: "", levels: 0, }, ] }, { title: "Africa", url: "\/", target: "", levels: 1, children: [ { title: "Nigeria", url: "\/collections\/nigeria", target: "", levels: 0, }, { title: "Egypt", url: "\/collections\/egypt", target: "", levels: 0, }, { title: "Senegal", url: "\/collections\/senegal", target: "", levels: 0, }, { title: "Tunisia", url: "\/collections\/tunisia-zn", target: "", levels: 0, }, { title: "Morocco", url: "\/collections\/morocco", target: "", levels: 0, }, { title: "Algeria", url: "\/collections\/algeria", target: "", levels: 0, }, { title: "Ghana", url: "\/collections\/ghana", target: "", levels: 0, }, { title: "Cote d'lvoire", url: "\/collections\/cote-dlvoire-zn", target: "", levels: 0, }, { title: "Cameroon", url: "\/collections\/cameroon", target: "", levels: 0, }, ] }, ] }, { id: 79885955, title: "CLUB LEAGUE", url: "", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "Premier League", url: "\/", target: "", levels: 1, children: [ { title: "Arsenal", url: "\/collections\/arsenal", target: "", levels: 0, }, { title: "Manchester United", url: "\/collections\/manchester-united", target: "", levels: 0, }, { title: "Liverpool", url: "\/collections\/liverpool", target: "", levels: 0, }, { title: "Chelsea", url: "\/collections\/chelsea-j1o8", target: "", levels: 0, }, { title: "Manchester City", url: "\/collections\/manchester-city-9sul", target: "", levels: 0, }, { title: "Tottenham", url: "\/collections\/tottenham-nn5h", target: "", levels: 0, }, { title: "Everton", url: "\/collections\/everton-cxh9", target: "", levels: 0, }, { title: "Newcastle United", url: "\/collections\/newcastle-united-xinh", target: "", levels: 0, }, { title: "Aston Villa", url: "\/collections\/aston-villa-zn", target: "", levels: 0, }, { title: "Leeds United", url: "\/collections\/leeds-united-zn", target: "", levels: 0, }, { title: "Leicester City", url: "\/collections\/leicester-city-85ig", target: "", levels: 0, }, { title: "West Ham United", url: "\/collections\/west-ham-united-uoqu", target: "", levels: 0, }, { title: "Wolverhampton Wanderers", url: "\/collections\/wolverhamptonwanderers-pgkb", target: "", levels: 0, }, { title: "Crystal Palace", url: "\/collections\/crystal-palace-1e0b", target: "", levels: 0, }, { title: "Nottingham Forest", url: "\/collections\/nottingham-forest-xtv8", target: "", levels: 0, }, { title: "Southampton", url: "\/collections\/southampton-s9eu", target: "", levels: 0, }, { title: "Brighton", url: "\/collections\/brighton-zn", target: "", levels: 0, }, ] }, { title: "Bundesliga", url: "\/", target: "", levels: 1, children: [ { title: "Bayern", url: "\/collections\/bayern-7ay9", target: "", levels: 0, }, { title: "Dortmund", url: "\/collections\/dortmund-wt6j", target: "", levels: 0, }, { title: "Leipzig", url: "\/collections\/leipzig-jppj", target: "", levels: 0, }, { title: "Frankfurt", url: "\/collections\/frankfurt-uumw", target: "", levels: 0, }, { title: "M\u00f6nchengladbach", url: "\/collections\/monchengladbach-znj1", target: "", levels: 0, }, { title: "VfB Stuttgart", url: "\/collections\/vfb-stuttgart-iozb", target: "", levels: 0, }, ] }, { title: "The league", url: "\/", target: "", levels: 1, children: [ { title: "Barcelona", url: "\/collections\/barcelona", target: "", levels: 0, }, { title: "Real Madrid", url: "\/collections\/real-madrid-rotq", target: "", levels: 0, }, { title: "Atletico Madrid", url: "\/collections\/atletico-madrid", target: "", levels: 0, }, { title: "Health", url: "\/collections\/osasuna-zn", target: "", levels: 0, }, { title: "Athletic Bilbao", url: "\/collections\/athletic-bilbao-qkop", target: "", levels: 0, }, { title: "Real Betis", url: "\/collections\/real-betis-d0rz", target: "", levels: 0, }, { title: "Real Valladolid", url: "\/collections\/real-valladolid-dlj7", target: "", levels: 0, }, { title: "Vallecano", url: "\/collections\/vallecano-r3vv", target: "", levels: 0, }, { title: "Valencia", url: "\/collections\/valencia-1coc", target: "", levels: 0, }, { title: "Cadiz", url: "\/collections\/cadiz-16bg", target: "", levels: 0, }, { title: "Granada", url: "\/collections\/granada-58st", target: "", levels: 0, }, ] }, { title: "A league", url: "\/", target: "", levels: 1, children: [ { title: "Ac Milan", url: "\/collections\/ac-milan", target: "", levels: 0, }, { title: "Inter Milan", url: "\/collections\/inter-milan", target: "", levels: 0, }, { title: "Juventus", url: "\/collections\/juventus-usfa", target: "", levels: 0, }, { title: "Napoli", url: "\/collections\/napoli", target: "", levels: 0, }, { title: "Rome", url: "\/collections\/rome-ogp1", target: "", levels: 0, }, { title: "Turin", url: "\/collections\/turin-n0oy", target: "", levels: 0, }, { title: "Venice", url: "\/collections\/venice", target: "", levels: 0, }, { title: "Atalanta", url: "\/collections\/atalanta-cwwu", target: "", levels: 0, }, { title: "Lazio", url: "\/collections\/lazio-d368", target: "", levels: 0, }, ] }, { title: "League 1", url: "\/", target: "", levels: 1, children: [ { title: "Paris", url: "\/collections\/paris-zn", target: "", levels: 0, }, { title: "Marseille", url: "\/collections\/marseille-ybyy", target: "", levels: 0, }, { title: "Lyon", url: "\/collections\/lyon-ljpm", target: "", levels: 0, }, { title: "Angers", url: "\/collections\/angers-zn", target: "", levels: 0, }, { title: "Little", url: "\/collections\/little-zn", target: "", levels: 0, }, { title: "Rennais Stadium", url: "\/collections\/rennais-stadium-3imd", target: "", levels: 0, }, ] }, { title: "Brazilian Championship A Series", url: "\/", target: "", levels: 1, children: [ { title: "Palm Trees", url: "\/collections\/palm-trees-zn", target: "", levels: 0, }, { title: "Brazil international", url: "\/collections\/brazil-international-yuf9", target: "", levels: 0, }, { title: "Corinthians", url: "\/collections\/corinthians-zn", target: "", levels: 0, }, { title: "Flamengo", url: "\/collections\/flamengo-zn", target: "", levels: 0, }, { title: "S\u00a4o Paulo", url: "\/collections\/s-o-paulo-zn", target: "", levels: 0, }, { title: "Santos", url: "\/collections\/santos-o8f2", target: "", levels: 0, }, { title: "Fluminense", url: "\/collections\/fluminense-5nm1", target: "", levels: 0, }, { title: "Atl\u00e9tico Mineiro", url: "\/collections\/atletico-mineiro-0h1m", target: "", levels: 0, }, { title: "Flamengo", url: "\/collections\/flamengo-mc6b", target: "", levels: 0, }, ] }, { title: "Portuguese League", url: "\/", target: "", levels: 1, children: [ { title: "Benfica", url: "\/collections\/benfica-0mr8", target: "", levels: 0, }, { title: "FC Porto", url: "\/collections\/porto", target: "", levels: 0, }, { title: "Sporting Lisbon", url: "\/collections\/sporting-lisbon-84y0", target: "", levels: 0, }, ] }, ] }, { id: 79886091, title: "OTHER LEAGUES", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Al-Nassr", url: "\/collections\/al-nassr-0bdc", target: "", levels: 0, children: [ ] }, { title: "Al-Hilal Securities Regulatory Commissio", url: "\/collections\/al-hilal-sfc", target: "", levels: 0, children: [ ] }, { title: "Ajax", url: "\/collections\/ajax", target: "", levels: 0, children: [ ] }, { title: "Feyenoord", url: "\/collections\/feyenoord", target: "", levels: 0, children: [ ] }, { title: "Celtics", url: "\/collections\/celtic", target: "", levels: 0, children: [ ] }, { title: "AFC-Richmond", url: "\/collections\/afc-richmond-ap60", target: "", levels: 0, children: [ ] }, { title: "Corinthians", url: "\/collections\/corinthians-1wew", target: "", levels: 0, children: [ ] }, { title: "Monterrey", url: "\/collections\/monterrey-bk0s", target: "", levels: 0, children: [ ] }, { title: "Brighton", url: "\/collections\/brighton-ahj0", target: "", levels: 0, children: [ ] }, { title: "Aston villa", url: "\/collections\/aston-villa-j77c", target: "", levels: 0, children: [ ] }, ] }, { id: 79886105, title: "ADULT SERIES ", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Fans-Jerseys", url: "\/collections\/fan-jerseys", target: "", levels: 0, children: [ ] }, { title: "player version", url: "\/collections\/player-version", target: "", levels: 0, children: [ ] }, { title: "Half-Pull Training", url: "\/collections\/training-suit-kit", target: "", levels: 0, children: [ ] }, { title: "Sleeveless Training Kit", url: "\/collections\/sleeveless-training-kit", target: "", levels: 0, children: [ ] }, { title: "Short Sleeve Training kit", url: "\/collections\/short-sleeve-training-kit", target: "", levels: 0, children: [ ] }, { title: "Short sleeved and long pants kit", url: "\/collections\/short-sleeved-and-long-pants-kit", target: "", levels: 0, children: [ ] }, { title: "Vintage collection", url: "\/collections\/vintage-collection", target: "", levels: 0, children: [ ] }, { title: "Down Cotton Jacket", url: "\/collections\/down-cotton-jacket", target: "", levels: 0, children: [ ] }, { title: "Long Zipped Jacket", url: "\/collections\/long-zipped-jacket", target: "", levels: 0, children: [ ] }, { title: "Trench Coat Series", url: "\/collections\/trench-coat-series", target: "", levels: 0, children: [ ] }, { title: "Training Polo Shirt Kit", url: "\/collections\/training-polo-shirt-kit-i3as", target: "", levels: 0, children: [ ] }, { title: "2024 New Adult Set", url: "\/collections\/short-sleeve-kit", target: "", levels: 0, children: [ ] }, { title: "2024 New Socks", url: "\/collections\/2024-2026-new-socks", target: "", levels: 0, children: [ ] }, { title: "Long sleeves", url: "\/collections\/long-sleeve", target: "", levels: 0, children: [ ] }, { title: "Shorts", url: "\/collections\/shorts", target: "", levels: 0, children: [ ] }, ] }, { id: 79886137, title: "CHILDRENS SERIES", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Kid Tracksuit", url: "\/collections\/kids-training-suit-kit", target: "", levels: 0, children: [ ] }, { title: "New children's suits", url: "\/collections\/childrens-series", target: "", levels: 0, children: [ ] }, ] }, { id: 79886143, title: "Add Patch", url: "\/collections\/add-patch", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79886145, title: "TRACKORDER", url: "https:\/\/www.17track.net\/zh-cn", target: "_blank", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79886147, title: "FAQ", url: "\/pages\/faq", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return `
${link.title}
${link.tag.label}
${second_link.title}
${second_link.tag.label}
${third_links.title}
${third_links.tag.label}
${link.title}
${link.tag.label}
` })()}
HOME
2025-2026 Season
2024-2025 Season
NATIONAL TEAM
Europe
Germany
England
Paris
France
Portugal
Spain
ltaly
Belgium
Netherlands
Poland
Denmark
Finland
Croatia
lreland
Albania
Sweden
Wales
Switzerland
Serbia
Turkey
South America
Brazil
Argentina
Uruguay
Paraguay
Chile
Colombia
Ecuador
Kitami
United States
Mexico
Honduras
Canada
Guatemala
Costa Rica
Jamaica
El Salvador
Panama
Asia
Japan
South Korea
lraq
Qatar
Australia
Saudi Arabia
Malaysia
Philippine
Africa
Nigeria
Egypt
Senegal
Tunisia
Morocco
Algeria
Ghana
Cote d'lvoire
Cameroon
CLUB LEAGUE
Premier League
Arsenal
Manchester United
Liverpool
Chelsea
Manchester City
Tottenham
Everton
Newcastle United
Aston Villa
Leeds United
Leicester City
West Ham United
Wolverhampton Wanderers
Crystal Palace
Nottingham Forest
Southampton
Brighton
Bundesliga
Bayern
Dortmund
Leipzig
Frankfurt
Mönchengladbach
VfB Stuttgart
The league
Barcelona
Real Madrid
Atletico Madrid
Health
Athletic Bilbao
Real Betis
Real Valladolid
Vallecano
Valencia
Cadiz
Granada
A league
Ac Milan
Inter Milan
Juventus
Napoli
Rome
Turin
Venice
Atalanta
Lazio
League 1
Paris
Marseille
Lyon
Angers
Little
Rennais Stadium
Brazilian Championship A Series
Palm Trees
Brazil international
Corinthians
Flamengo
S¤o Paulo
Santos
Fluminense
Atlético Mineiro
Flamengo
Portuguese League
Benfica
FC Porto
Sporting Lisbon
OTHER LEAGUES
Al-Nassr
Al-Hilal Securities Regulatory Commissio
Ajax
Feyenoord
Celtics
AFC-Richmond
Corinthians
Monterrey
Brighton
Aston villa
ADULT SERIES
Fans-Jerseys
player version
Half-Pull Training
Sleeveless Training Kit
Short Sleeve Training kit
Short sleeved and long pants kit
Vintage collection
Down Cotton Jacket
Long Zipped Jacket
Trench Coat Series
Training Polo Shirt Kit
2024 New Adult Set
2024 New Socks
Long sleeves
Shorts
CHILDRENS SERIES
Kid Tracksuit
New children's suits
Add Patch
TRACKORDER
FAQ
More links
${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = "{}"; let linkList = [ { id: 79885833, title: "HOME", url: "\/", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79885835, title: "2025-2026 Season", url: "\/collections\/2025-2026-season-0tl1", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79885837, title: "2024-2025 Season", url: "\/collections\/2024-2025-new-series", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79885839, title: "NATIONAL TEAM ", url: "", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "Europe", url: "\/", target: "", levels: 1, children: [ { title: "Germany", url: "\/collections\/germany", target: "", levels: 0, }, { title: "England", url: "\/collections\/england", target: "", levels: 0, }, { title: "Paris", url: "\/collections\/paris-srzj", target: "", levels: 0, }, { title: "France", url: "\/collections\/france", target: "", levels: 0, }, { title: "Portugal", url: "\/collections\/portugal", target: "", levels: 0, }, { title: "Spain", url: "\/collections\/spain", target: "", levels: 0, }, { title: "ltaly", url: "\/collections\/ltaly", target: "", levels: 0, }, { title: "Belgium", url: "\/collections\/belgium", target: "", levels: 0, }, { title: "Netherlands", url: "\/collections\/netherlands", target: "", levels: 0, }, { title: "Poland", url: "\/collections\/poland", target: "", levels: 0, }, { title: "Denmark", url: "\/collections\/denmark", target: "", levels: 0, }, { title: "Finland", url: "\/collections\/finland", target: "", levels: 0, }, { title: "Croatia", url: "\/collections\/croatia", target: "", levels: 0, }, { title: "lreland", url: "\/collections\/lreland-hv6s", target: "", levels: 0, }, { title: "Albania", url: "\/collections\/albania", target: "", levels: 0, }, { title: "Sweden", url: "\/collections\/sweden", target: "", levels: 0, }, { title: "Wales", url: "\/collections\/wales", target: "", levels: 0, }, { title: "Switzerland", url: "\/collections\/switzerland", target: "", levels: 0, }, { title: "Serbia", url: "\/collections\/serbia", target: "", levels: 0, }, { title: "Turkey", url: "\/collections\/turkey", target: "", levels: 0, }, ] }, { title: "South America", url: "\/", target: "", levels: 1, children: [ { title: "Brazil", url: "\/collections\/brazil", target: "", levels: 0, }, { title: "Argentina", url: "\/collections\/argentina", target: "", levels: 0, }, { title: "Uruguay", url: "\/collections\/uruguay", target: "", levels: 0, }, { title: "Paraguay", url: "\/collections\/paraguay-zn", target: "", levels: 0, }, { title: "Chile", url: "\/collections\/chile", target: "", levels: 0, }, { title: "Colombia", url: "\/collections\/colombia", target: "", levels: 0, }, { title: "Ecuador", url: "\/collections\/ecuador", target: "", levels: 0, }, ] }, { title: "Kitami", url: "\/", target: "", levels: 1, children: [ { title: "United States", url: "\/collections\/united-states", target: "", levels: 0, }, { title: "Mexico", url: "\/collections\/mexico", target: "", levels: 0, }, { title: "Honduras", url: "\/collections\/honduras", target: "", levels: 0, }, { title: "Canada", url: "\/collections\/canada", target: "", levels: 0, }, { title: "Guatemala", url: "\/collections\/guatemala", target: "", levels: 0, }, { title: "Costa Rica", url: "\/collections\/costa-rica", target: "", levels: 0, }, { title: "Jamaica", url: "\/collections\/jamaica", target: "", levels: 0, }, { title: "El Salvador", url: "\/collections\/el-salvador", target: "", levels: 0, }, { title: "Panama", url: "\/collections\/panama", target: "", levels: 0, }, ] }, { title: "Asia", url: "\/", target: "", levels: 1, children: [ { title: "Japan", url: "\/collections\/japan", target: "", levels: 0, }, { title: "South Korea", url: "\/collections\/korea", target: "", levels: 0, }, { title: "lraq", url: "\/collections\/lraq", target: "", levels: 0, }, { title: "Qatar", url: "\/collections\/oatar-zn", target: "", levels: 0, }, { title: "Australia", url: "\/collections\/australia", target: "", levels: 0, }, { title: "Saudi Arabia", url: "\/collections\/saudi-arabia", target: "", levels: 0, }, { title: "Malaysia", url: "\/collections\/malaysia", target: "", levels: 0, }, { title: "Philippine", url: "\/collections\/philippine-9rmh", target: "", levels: 0, }, ] }, { title: "Africa", url: "\/", target: "", levels: 1, children: [ { title: "Nigeria", url: "\/collections\/nigeria", target: "", levels: 0, }, { title: "Egypt", url: "\/collections\/egypt", target: "", levels: 0, }, { title: "Senegal", url: "\/collections\/senegal", target: "", levels: 0, }, { title: "Tunisia", url: "\/collections\/tunisia-zn", target: "", levels: 0, }, { title: "Morocco", url: "\/collections\/morocco", target: "", levels: 0, }, { title: "Algeria", url: "\/collections\/algeria", target: "", levels: 0, }, { title: "Ghana", url: "\/collections\/ghana", target: "", levels: 0, }, { title: "Cote d'lvoire", url: "\/collections\/cote-dlvoire-zn", target: "", levels: 0, }, { title: "Cameroon", url: "\/collections\/cameroon", target: "", levels: 0, }, ] }, ] }, { id: 79885955, title: "CLUB LEAGUE", url: "", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "Premier League", url: "\/", target: "", levels: 1, children: [ { title: "Arsenal", url: "\/collections\/arsenal", target: "", levels: 0, }, { title: "Manchester United", url: "\/collections\/manchester-united", target: "", levels: 0, }, { title: "Liverpool", url: "\/collections\/liverpool", target: "", levels: 0, }, { title: "Chelsea", url: "\/collections\/chelsea-j1o8", target: "", levels: 0, }, { title: "Manchester City", url: "\/collections\/manchester-city-9sul", target: "", levels: 0, }, { title: "Tottenham", url: "\/collections\/tottenham-nn5h", target: "", levels: 0, }, { title: "Everton", url: "\/collections\/everton-cxh9", target: "", levels: 0, }, { title: "Newcastle United", url: "\/collections\/newcastle-united-xinh", target: "", levels: 0, }, { title: "Aston Villa", url: "\/collections\/aston-villa-zn", target: "", levels: 0, }, { title: "Leeds United", url: "\/collections\/leeds-united-zn", target: "", levels: 0, }, { title: "Leicester City", url: "\/collections\/leicester-city-85ig", target: "", levels: 0, }, { title: "West Ham United", url: "\/collections\/west-ham-united-uoqu", target: "", levels: 0, }, { title: "Wolverhampton Wanderers", url: "\/collections\/wolverhamptonwanderers-pgkb", target: "", levels: 0, }, { title: "Crystal Palace", url: "\/collections\/crystal-palace-1e0b", target: "", levels: 0, }, { title: "Nottingham Forest", url: "\/collections\/nottingham-forest-xtv8", target: "", levels: 0, }, { title: "Southampton", url: "\/collections\/southampton-s9eu", target: "", levels: 0, }, { title: "Brighton", url: "\/collections\/brighton-zn", target: "", levels: 0, }, ] }, { title: "Bundesliga", url: "\/", target: "", levels: 1, children: [ { title: "Bayern", url: "\/collections\/bayern-7ay9", target: "", levels: 0, }, { title: "Dortmund", url: "\/collections\/dortmund-wt6j", target: "", levels: 0, }, { title: "Leipzig", url: "\/collections\/leipzig-jppj", target: "", levels: 0, }, { title: "Frankfurt", url: "\/collections\/frankfurt-uumw", target: "", levels: 0, }, { title: "M\u00f6nchengladbach", url: "\/collections\/monchengladbach-znj1", target: "", levels: 0, }, { title: "VfB Stuttgart", url: "\/collections\/vfb-stuttgart-iozb", target: "", levels: 0, }, ] }, { title: "The league", url: "\/", target: "", levels: 1, children: [ { title: "Barcelona", url: "\/collections\/barcelona", target: "", levels: 0, }, { title: "Real Madrid", url: "\/collections\/real-madrid-rotq", target: "", levels: 0, }, { title: "Atletico Madrid", url: "\/collections\/atletico-madrid", target: "", levels: 0, }, { title: "Health", url: "\/collections\/osasuna-zn", target: "", levels: 0, }, { title: "Athletic Bilbao", url: "\/collections\/athletic-bilbao-qkop", target: "", levels: 0, }, { title: "Real Betis", url: "\/collections\/real-betis-d0rz", target: "", levels: 0, }, { title: "Real Valladolid", url: "\/collections\/real-valladolid-dlj7", target: "", levels: 0, }, { title: "Vallecano", url: "\/collections\/vallecano-r3vv", target: "", levels: 0, }, { title: "Valencia", url: "\/collections\/valencia-1coc", target: "", levels: 0, }, { title: "Cadiz", url: "\/collections\/cadiz-16bg", target: "", levels: 0, }, { title: "Granada", url: "\/collections\/granada-58st", target: "", levels: 0, }, ] }, { title: "A league", url: "\/", target: "", levels: 1, children: [ { title: "Ac Milan", url: "\/collections\/ac-milan", target: "", levels: 0, }, { title: "Inter Milan", url: "\/collections\/inter-milan", target: "", levels: 0, }, { title: "Juventus", url: "\/collections\/juventus-usfa", target: "", levels: 0, }, { title: "Napoli", url: "\/collections\/napoli", target: "", levels: 0, }, { title: "Rome", url: "\/collections\/rome-ogp1", target: "", levels: 0, }, { title: "Turin", url: "\/collections\/turin-n0oy", target: "", levels: 0, }, { title: "Venice", url: "\/collections\/venice", target: "", levels: 0, }, { title: "Atalanta", url: "\/collections\/atalanta-cwwu", target: "", levels: 0, }, { title: "Lazio", url: "\/collections\/lazio-d368", target: "", levels: 0, }, ] }, { title: "League 1", url: "\/", target: "", levels: 1, children: [ { title: "Paris", url: "\/collections\/paris-zn", target: "", levels: 0, }, { title: "Marseille", url: "\/collections\/marseille-ybyy", target: "", levels: 0, }, { title: "Lyon", url: "\/collections\/lyon-ljpm", target: "", levels: 0, }, { title: "Angers", url: "\/collections\/angers-zn", target: "", levels: 0, }, { title: "Little", url: "\/collections\/little-zn", target: "", levels: 0, }, { title: "Rennais Stadium", url: "\/collections\/rennais-stadium-3imd", target: "", levels: 0, }, ] }, { title: "Brazilian Championship A Series", url: "\/", target: "", levels: 1, children: [ { title: "Palm Trees", url: "\/collections\/palm-trees-zn", target: "", levels: 0, }, { title: "Brazil international", url: "\/collections\/brazil-international-yuf9", target: "", levels: 0, }, { title: "Corinthians", url: "\/collections\/corinthians-zn", target: "", levels: 0, }, { title: "Flamengo", url: "\/collections\/flamengo-zn", target: "", levels: 0, }, { title: "S\u00a4o Paulo", url: "\/collections\/s-o-paulo-zn", target: "", levels: 0, }, { title: "Santos", url: "\/collections\/santos-o8f2", target: "", levels: 0, }, { title: "Fluminense", url: "\/collections\/fluminense-5nm1", target: "", levels: 0, }, { title: "Atl\u00e9tico Mineiro", url: "\/collections\/atletico-mineiro-0h1m", target: "", levels: 0, }, { title: "Flamengo", url: "\/collections\/flamengo-mc6b", target: "", levels: 0, }, ] }, { title: "Portuguese League", url: "\/", target: "", levels: 1, children: [ { title: "Benfica", url: "\/collections\/benfica-0mr8", target: "", levels: 0, }, { title: "FC Porto", url: "\/collections\/porto", target: "", levels: 0, }, { title: "Sporting Lisbon", url: "\/collections\/sporting-lisbon-84y0", target: "", levels: 0, }, ] }, ] }, { id: 79886091, title: "OTHER LEAGUES", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Al-Nassr", url: "\/collections\/al-nassr-0bdc", target: "", levels: 0, children: [ ] }, { title: "Al-Hilal Securities Regulatory Commissio", url: "\/collections\/al-hilal-sfc", target: "", levels: 0, children: [ ] }, { title: "Ajax", url: "\/collections\/ajax", target: "", levels: 0, children: [ ] }, { title: "Feyenoord", url: "\/collections\/feyenoord", target: "", levels: 0, children: [ ] }, { title: "Celtics", url: "\/collections\/celtic", target: "", levels: 0, children: [ ] }, { title: "AFC-Richmond", url: "\/collections\/afc-richmond-ap60", target: "", levels: 0, children: [ ] }, { title: "Corinthians", url: "\/collections\/corinthians-1wew", target: "", levels: 0, children: [ ] }, { title: "Monterrey", url: "\/collections\/monterrey-bk0s", target: "", levels: 0, children: [ ] }, { title: "Brighton", url: "\/collections\/brighton-ahj0", target: "", levels: 0, children: [ ] }, { title: "Aston villa", url: "\/collections\/aston-villa-j77c", target: "", levels: 0, children: [ ] }, ] }, { id: 79886105, title: "ADULT SERIES ", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Fans-Jerseys", url: "\/collections\/fan-jerseys", target: "", levels: 0, children: [ ] }, { title: "player version", url: "\/collections\/player-version", target: "", levels: 0, children: [ ] }, { title: "Half-Pull Training", url: "\/collections\/training-suit-kit", target: "", levels: 0, children: [ ] }, { title: "Sleeveless Training Kit", url: "\/collections\/sleeveless-training-kit", target: "", levels: 0, children: [ ] }, { title: "Short Sleeve Training kit", url: "\/collections\/short-sleeve-training-kit", target: "", levels: 0, children: [ ] }, { title: "Short sleeved and long pants kit", url: "\/collections\/short-sleeved-and-long-pants-kit", target: "", levels: 0, children: [ ] }, { title: "Vintage collection", url: "\/collections\/vintage-collection", target: "", levels: 0, children: [ ] }, { title: "Down Cotton Jacket", url: "\/collections\/down-cotton-jacket", target: "", levels: 0, children: [ ] }, { title: "Long Zipped Jacket", url: "\/collections\/long-zipped-jacket", target: "", levels: 0, children: [ ] }, { title: "Trench Coat Series", url: "\/collections\/trench-coat-series", target: "", levels: 0, children: [ ] }, { title: "Training Polo Shirt Kit", url: "\/collections\/training-polo-shirt-kit-i3as", target: "", levels: 0, children: [ ] }, { title: "2024 New Adult Set", url: "\/collections\/short-sleeve-kit", target: "", levels: 0, children: [ ] }, { title: "2024 New Socks", url: "\/collections\/2024-2026-new-socks", target: "", levels: 0, children: [ ] }, { title: "Long sleeves", url: "\/collections\/long-sleeve", target: "", levels: 0, children: [ ] }, { title: "Shorts", url: "\/collections\/shorts", target: "", levels: 0, children: [ ] }, ] }, { id: 79886137, title: "CHILDRENS SERIES", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Kid Tracksuit", url: "\/collections\/kids-training-suit-kit", target: "", levels: 0, children: [ ] }, { title: "New children's suits", url: "\/collections\/childrens-series", target: "", levels: 0, children: [ ] }, ] }, { id: 79886143, title: "Add Patch", url: "\/collections\/add-patch", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79886145, title: "TRACKORDER", url: "https:\/\/www.17track.net\/zh-cn", target: "_blank", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 79886147, title: "FAQ", url: "\/pages\/faq", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return `
${link.title}
${link.tag.label}
${second_link.title}
${second_link.tag.label}
${third_links.title}
${third_links.tag.label}
${link.title}
${link.tag.label}
` })()}
Search
${item.word}
Search
Search
Search
Search
${item.word}
${ function(){ data.historyList = data.historyList.filter(item => item.trim() !== ''); data.isShowHistory = data.isShowHistory && data.historyList.length > 0; }() }
Recently searched
${item}
Hot searches
${item.word}
Results
${item.highlightHtml}
const template_name = SHOPLAZZA?.meta?.page?.template_name || ''; const SEARCH_URL = '/search'; const TAG = 'spz-custom-smart-search-location'; const SMART_PRODUCR_SEARCH_WRAP_CLASSNAME = 'app-smart-product-search-container'; const THEME_NAME = window.SHOPLAZZA.theme.merchant_theme_name.replace(/ /g,''); const BREAKPOINT = 960; const DELAY = 300; function diffThemeName(themeNameA, themeNameB){ return themeNameA.toLocaleLowerCase().includes(themeNameB.toLocaleLowerCase()) } const HEADER_DOM_MAP = { eva: 'header .header_grid_layout', geek: `.header-mobile-inner-container`, onePage: 'header .header', wind: 'header #header-nav', nova: 'header .header', hero: 'header .header__nav', 'flash': '#shoplaza-section-header>div>div', 'lifestyle': '#shoplaza-section-header .header__wrapper' } let HEADER_DOM = 'header'; Object.keys(HEADER_DOM_MAP) .map(themeName=>{ if (diffThemeName(THEME_NAME, themeName)) { HEADER_DOM = HEADER_DOM_MAP[themeName]; } }) const SEARCH_ICON_CLASS_MAP = { 'flash': 'app-smart-icon-search-large-flash', 'hero': 'app-smart-icon-search-large-hero', 'geek': 'app-smart-icon-search-large-geek', 'nova': 'app-smart-icon-search-large-nova', }; let SEARCH_ICON_CLASS = 'app-smart-icon-search-large-default'; Object.keys(SEARCH_ICON_CLASS_MAP) .map(themeName=>{ if (diffThemeName(THEME_NAME, themeName)) { SEARCH_ICON_CLASS = SEARCH_ICON_CLASS_MAP[themeName]; } }) class SpzCustomSmartSearchLocation extends SPZ.BaseElement { constructor(element) { super(element); this.mobileHeaderPluginParentEle = null; this.outsideCarouselIndex = 0; this.insideCarouselIndex = 0; this.searchItemType = 'icon'; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.init(); this.listenerResize(); this.initRegisterActions(); } addIconClass(){ document.querySelectorAll('.app-smart-icon-search-large').forEach(e=>{ e.classList.add(SEARCH_ICON_CLASS) }); } moveIcon(){ if (!diffThemeName(THEME_NAME, 'lifestyle')) return; if (this.searchItemType === 'input') return; if (this.isDesktop()) return; const smart_search_dom = document.querySelector('#app-smart-product-search-container-947'); if (!smart_search_dom) return; const hasMovedIcon = !!document.querySelector('.header__wrapper .container .row.header>div>#app-smart-product-search-container-947'); if (hasMovedIcon) return; const headerDivList = document.querySelectorAll('.header__wrapper .container .row.header>div'); const iconBoxDom = headerDivList[headerDivList.length-1] iconBoxDom.appendChild(smart_search_dom, iconBoxDom.firstChild); } init() { this.addIconClass(); this.moveIcon(); if ( this.searchItemType === 'input' ) { document.querySelectorAll('.app-smart-icon-search-large').forEach(e=>e.style.display = 'none'); const mobileSmartSearchDom = document.querySelector(`.smart-search-mobile-container .app-smart-product-search-wrap`); if ( this.isDesktop() ) { document.querySelector(`#app-smart-product-search-container-947`).style="display: block"; if (mobileSmartSearchDom) { document.querySelector(`#app-smart-product-search-container-947`).appendChild(mobileSmartSearchDom); } }else{ if( template_name=='search' ) return; if (!document.querySelector(`.smart-search-mobile-container`)) { const appSmartSearchContainer = document.createElement('div'); appSmartSearchContainer.classList.add('smart-search-mobile-container'); appSmartSearchContainer.classList.add('smart-search-mobile-container-'+THEME_NAME.toLocaleLowerCase()); document.querySelector(HEADER_DOM).appendChild(appSmartSearchContainer); } if (!mobileSmartSearchDom) { document.querySelector(`.smart-search-mobile-container`).appendChild( document.querySelector(`.app-smart-product-search-wrap`) ) } } }else{ document.querySelectorAll('.app-smart-icon-search-large').forEach(e=>e.style.display = 'flex'); } // PC-end not load if (this.isDesktop()) { return; } if (!window.__isLoadAppSmartSearch__) { this.initSmartSearch(); console.log('__isLoadAppSmartSearch__'); } // B-end must reload if (window.self === window.top && !window.__isLoadAppSmartSearch__) { window.__isLoadAppSmartSearch__ = true; } } initSmartSearch() { if (this.hasMobileUpperRightPlugin()) { this.showMobileSmartSearch(); } else { this.addMobileSmartSearch(); } } initRegisterActions(){ this.registOnSearchInputChange(); this.registOnSearchFormSubmit(); this.registOnOutsideCarouselIndexChange(); this.registOnInsideCarouselIndexChange(); this.registGetSearchItemType(); this.registGenerateHotKeywordList(); this.registerAction('onTapHotWord',(invocation)=>{ this.onTapHotWord(invocation.args.type); }); } registOnSearchInputChange(){ this.registerAction('onSearchInputChange',(invocation)=>{ const keyword = invocation.args.keyword; if (keyword === null || !keyword.length) { document.querySelectorAll('.hot-words-carousel-inner-container').forEach(e=>{ e.style='display: block'; }); } else { document.querySelectorAll('.hot-words-carousel-inner-container').forEach(e=>{ e.style='display: none'; }); } }) } registOnSearchFormSubmit(){ this.registerAction('onSearchFormSubmit',(invocation)=>{ const event = invocation.args.event; const keywordArray = event.q || []; const keyword = keywordArray[0]; if (keyword!==null && keyword.length) { this.handleSearchSubmit_(keywordArray,1); } else { this.onTapHotWord('inside') } }) } handleSearchSubmit_(value, retryNum){ SPZ.whenApiDefined(document.getElementById('app-smart-search-947')) .then((ljsSearch) => { try{ ljsSearch.handleSearchSubmit_({ value: value }) }catch(e){ console.log('catch error',retryNum) if( 3 > retryNum ){ this.handleSearchSubmit_(value, retryNum + 1); return; } const searchStr = value[0] || ''; const searchResult = ljsSearch.setThinkSearchData_(searchStr); ljsSearch.afterSearching({ query: searchResult.query, url: `${SEARCH_URL}?q=${searchStr}`, queryType: searchResult.queryType, }) } }) } registOnOutsideCarouselIndexChange(){ this.registerAction('onOutsideCarouselIndexChange',(invocation)=>{ this.outsideCarouselIndex = invocation.args.index || 0; }) } registOnInsideCarouselIndexChange(){ this.registerAction('onInsideCarouselIndexChange',(invocation)=>{ this.insideCarouselIndex = invocation.args.index || 0; }) } registGetSearchItemType(searchItemType){ this.registerAction('getSearchItemType',(invocation)=>{ SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-947')) .then((appSmartSearchOutsideItem) => { const search_item_type = appSmartSearchOutsideItem.getData()?.search_item_type; this.searchItemType = search_item_type || this.searchItemType; this.init(); }) }) } registGenerateHotKeywordList(){ this.registerAction('generateHotKeywordList',(invocation)=>{ const search_keywords = invocation.args?.data?.data?.hotKeywordList || []; const isShowHotKeyword = invocation.args?.data?.data?.isShowHotKeyword || false; SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-947')) .then((appSmartSearchOutsideItem) => { const hotwords = appSmartSearchOutsideItem.getData()?.search_keywords || []; const new_search_keywords = search_keywords.map((item, index) => { item.url_obj = item.url_obj || {}; const hotwordItem = hotwords.find(e=>e.word === item.word); if (hotwordItem) { item.icon = hotwordItem.icon || ''; } if (!item.urlObj || !item.urlObj.url) { item.urlObj = { ...item.url_obj, url: item.url_obj.type === 'search' ? `${SEARCH_URL}?q=${item.word}` : item.url_obj.url, }; } return item; }); document.querySelectorAll('.app-hot-keyword-render-child') .forEach((ele) => { SPZ.whenApiDefined(ele) .then((hotWordsChildDom) => { hotWordsChildDom.render({ list: new_search_keywords, isShowHotKeyword: isShowHotKeyword, }); }) }); }) }); } onTapHotWord(type){ const index = type === 'inside' ? this.insideCarouselIndex : this.outsideCarouselIndex; SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-947')) .then((appSmartSearchOutsideItem) => { const hotwords = appSmartSearchOutsideItem.getData()?.search_keywords || []; const currentHotwordItem = hotwords[index] || null; if (currentHotwordItem && currentHotwordItem.url_obj) { currentHotwordItem.url_obj.url = currentHotwordItem.url_obj.type === 'search' ? `${SEARCH_URL}?q=${currentHotwordItem.word}` : currentHotwordItem.url_obj.url; } SPZ.whenApiDefined(document.getElementById('app-smart-search-947')) .then((ljsSearch) => { if (currentHotwordItem) { ljsSearch.handleHotKeyword_({ word: currentHotwordItem.word, query_type: currentHotwordItem.type, url: currentHotwordItem.url_obj?.url, }); } else { this.handleSearchSubmit_([''],1); } }) }) } getOutsideCarouselConfig(){ return SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-947')) .then((appSmartSearchOutsideItem) => { return { ...appSmartSearchOutsideItem.getData(), outsideCarouselIndex: this.outsideCarouselIndex, } }) } listenerResize() { window.removeEventListener('resize', window.smartSearchResizeCallback); window.smartSearchResizeCallback = SPZCore.Types.debounce( this.win, () => { this.init(); }, DELAY ); window.addEventListener('resize', window.smartSearchResizeCallback); } isDesktop() { const mediaQueryList = window.matchMedia(`(min-width: ${BREAKPOINT}px)`); return mediaQueryList.matches; } hasMobileUpperRightPlugin() { return !['geek', 'flash', 'boost'].includes(THEME_NAME.toLocaleLowerCase()); } showMobileSmartSearch() { this.mobileHeaderPluginParentEle = this.getMobileHeaderPluginParentEle(); this.setMobileHeaderIconsPluginStyle(this.mobileHeaderPluginParentEle); } getMobileHeaderPluginParentEle() { const MOBILE_HEADER_PLUGIN_PARENT_ELE_MAP = { nova: '.header__mobile #header__plugin-container', hero: '.header__icons .tw-flex.tw-justify-end.tw-items-center.tw-space-x-7', onePage: '.header__mobile #header__plugin-container', wind: '#header-icons .flex.justify-end.items-center', eva: '#header__icons .plugin_content' }; const headerPluginParentSelector = this.combineMultipleSelectors( Object.values(MOBILE_HEADER_PLUGIN_PARENT_ELE_MAP) ); return document.querySelector(headerPluginParentSelector); } setMobileHeaderIconsPluginStyle(pluginParentEle) { if (!pluginParentEle) { return; } const containHidden = pluginParentEle.classList.contains('md:hidden'); const containTwHidden = pluginParentEle.classList.contains('md:tw-hidden'); if (containHidden || containTwHidden) { Array.from(pluginParentEle.children).forEach((pluginElement) => { if (!this.hasSmartSearchPlugin(pluginElement)) { pluginElement.style.display = 'none'; } }); pluginParentEle.classList.remove('md:hidden', 'md:tw-hidden'); } else { const smartSearchPluginElement = Array.from(pluginParentEle.children).find( (pluginElement) => { return this.hasSmartSearchPlugin(pluginElement); } ); smartSearchPluginElement.style.display = 'block'; } } hasSmartSearchPlugin(pluginElement) { return ( pluginElement.classList.contains(`${SMART_PRODUCR_SEARCH_WRAP_CLASSNAME}`) || pluginElement.querySelectorAll(`.${SMART_PRODUCR_SEARCH_WRAP_CLASSNAME}`).length > 0 ); } addMobileSmartSearch() { this.mobileHeaderIconsEle = this.getMobileHeaderIconsEle(); this.smartSearchWrapEle = this.getSmartSearchWrapEle(); this.appendSmartSearchToHeader(); } getMobileHeaderIconsEle() { // Must be the parent element of the plugin const MOBILE_HEADER_ICONS_ELE_MAP = { geek: '#header-mobile-container .flex.items-center.justify-end.flex-shrink-0', flash: '#header-layout .header__icons', boost: '.header__mobile-bottom .tw-flex.tw-items-center.tw-justify-end.tw-flex-1' }; const headerIconsSelector = this.combineMultipleSelectors( Object.values(MOBILE_HEADER_ICONS_ELE_MAP) ); return document.querySelector(headerIconsSelector); } getSmartSearchWrapEle() { const smartSearchWrapEle = document.querySelector(this.getSmartSearchWrapSelector()); if (!smartSearchWrapEle) { return null; } return smartSearchWrapEle; } appendSmartSearchToHeader() { if (!this.smartSearchWrapEle) { return; } this.mobileHeaderIconsEle.insertAdjacentElement('afterbegin', this.smartSearchWrapEle); } getSmartSearchWrapSelector() { const PLUGIN_POSITION = { DRAWER: 'drawer', HEADER_TOP: 'headerTop' }; // only one this plugin of ancestor element const MOBILE_PLUGIN_POSITION_ELE_MAP = { [PLUGIN_POSITION.DRAWER]: { geek: '#header-menu-mobile #menu-drawer', flash: '#menu-drawer .plugin__header-content', boost: '.header__drawer' }, [PLUGIN_POSITION.HEADER_TOP]: { geek: '#header-menu-mobile #menu-drawer', flash: '#menu-drawer .plugin__header-content', boost: '.header-content .logo-wrap' } }; const MbPluginPositionInTheme = [ ...Object.values(MOBILE_PLUGIN_POSITION_ELE_MAP[PLUGIN_POSITION.DRAWER]), ...Object.values(MOBILE_PLUGIN_POSITION_ELE_MAP[PLUGIN_POSITION.HEADER_TOP]) ]; return Object.values(MbPluginPositionInTheme).reduce((pre, ancestor) => { if (pre === '') { return `${ancestor} .app-smart-product-search-container`; } if (pre.includes(ancestor)) { return pre; } return `${pre},${ancestor} .app-smart-product-search-container`; }, ''); } combineMultipleSelectors(selectorList) { return selectorList.reduce((pre, selector) => { if (pre === '') { return `${selector}`; } if (pre.includes(selector)) { return pre; } return `${pre},${selector}`; }, ''); } } SPZ.defineElement(TAG, SpzCustomSmartSearchLocation);
Log in
Create an account
${data.data && data.data.count}
HOME
2025-2026 Season
2024-2025 Season
NATIONAL TEAM
NATIONAL TEAM
Europe
Europe
Germany
England
Paris
France
Portugal
Spain
ltaly
Belgium
Netherlands
Poland
Denmark
Finland
Croatia
lreland
Albania
Sweden
Wales
Switzerland
Serbia
Turkey
South America
South America
Brazil
Argentina
Uruguay
Paraguay
Chile
Colombia
Ecuador
Kitami
Kitami
United States
Mexico
Honduras
Canada
Guatemala
Costa Rica
Jamaica
El Salvador
Panama
Asia
Asia
Japan
South Korea
lraq
Qatar
Australia
Saudi Arabia
Malaysia
Philippine
Africa
Africa
Nigeria
Egypt
Senegal
Tunisia
Morocco
Algeria
Ghana
Cote d'lvoire
Cameroon
CLUB LEAGUE
CLUB LEAGUE
Premier League
Premier League
Arsenal
Manchester United
Liverpool
Chelsea
Manchester City
Tottenham
Everton
Newcastle United
Aston Villa
Leeds United
Leicester City
West Ham United
Wolverhampton Wanderers
Crystal Palace
Nottingham Forest
Southampton
Brighton
Bundesliga
Bundesliga
Bayern
Dortmund
Leipzig
Frankfurt
Mönchengladbach
VfB Stuttgart
The league
The league
Barcelona
Real Madrid
Atletico Madrid
Health
Athletic Bilbao
Real Betis
Real Valladolid
Vallecano
Valencia
Cadiz
Granada
A league
A league
Ac Milan
Inter Milan
Juventus
Napoli
Rome
Turin
Venice
Atalanta
Lazio
League 1
League 1
Paris
Marseille
Lyon
Angers
Little
Rennais Stadium
Brazilian Championship A Series
Brazilian Championship A Series
Palm Trees
Brazil international
Corinthians
Flamengo
S¤o Paulo
Santos
Fluminense
Atlético Mineiro
Flamengo
Portuguese League
Portuguese League
Benfica
FC Porto
Sporting Lisbon
OTHER LEAGUES
OTHER LEAGUES
Al-Nassr
Al-Hilal Securities Regulatory Commissio
Ajax
Feyenoord
Celtics
AFC-Richmond
Corinthians
Monterrey
Brighton
Aston villa
ADULT SERIES
ADULT SERIES
Fans-Jerseys
player version
Half-Pull Training
Sleeveless Training Kit
Short Sleeve Training kit
Short sleeved and long pants kit
Vintage collection
Down Cotton Jacket
Long Zipped Jacket
Trench Coat Series
Training Polo Shirt Kit
2024 New Adult Set
2024 New Socks
Long sleeves
Shorts
CHILDRENS SERIES
CHILDRENS SERIES
Kid Tracksuit
New children's suits
Add Patch
TRACKORDER
FAQ
Search
${item.word}
Search
Search
Search
Search
${item.word}
${ function(){ data.historyList = data.historyList.filter(item => item.trim() !== ''); data.isShowHistory = data.isShowHistory && data.historyList.length > 0; }() }
Recently searched
${item}
Hot searches
${item.word}
Results
${item.highlightHtml}
const template_name = SHOPLAZZA?.meta?.page?.template_name || ''; const SEARCH_URL = '/search'; const TAG = 'spz-custom-smart-search-location'; const SMART_PRODUCR_SEARCH_WRAP_CLASSNAME = 'app-smart-product-search-container'; const THEME_NAME = window.SHOPLAZZA.theme.merchant_theme_name.replace(/ /g,''); const BREAKPOINT = 960; const DELAY = 300; function diffThemeName(themeNameA, themeNameB){ return themeNameA.toLocaleLowerCase().includes(themeNameB.toLocaleLowerCase()) } const HEADER_DOM_MAP = { eva: 'header .header_grid_layout', geek: `.header-mobile-inner-container`, onePage: 'header .header', wind: 'header #header-nav', nova: 'header .header', hero: 'header .header__nav', 'flash': '#shoplaza-section-header>div>div', 'lifestyle': '#shoplaza-section-header .header__wrapper' } let HEADER_DOM = 'header'; Object.keys(HEADER_DOM_MAP) .map(themeName=>{ if (diffThemeName(THEME_NAME, themeName)) { HEADER_DOM = HEADER_DOM_MAP[themeName]; } }) const SEARCH_ICON_CLASS_MAP = { 'flash': 'app-smart-icon-search-large-flash', 'hero': 'app-smart-icon-search-large-hero', 'geek': 'app-smart-icon-search-large-geek', 'nova': 'app-smart-icon-search-large-nova', }; let SEARCH_ICON_CLASS = 'app-smart-icon-search-large-default'; Object.keys(SEARCH_ICON_CLASS_MAP) .map(themeName=>{ if (diffThemeName(THEME_NAME, themeName)) { SEARCH_ICON_CLASS = SEARCH_ICON_CLASS_MAP[themeName]; } }) class SpzCustomSmartSearchLocation extends SPZ.BaseElement { constructor(element) { super(element); this.mobileHeaderPluginParentEle = null; this.outsideCarouselIndex = 0; this.insideCarouselIndex = 0; this.searchItemType = 'icon'; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.init(); this.listenerResize(); this.initRegisterActions(); } addIconClass(){ document.querySelectorAll('.app-smart-icon-search-large').forEach(e=>{ e.classList.add(SEARCH_ICON_CLASS) }); } moveIcon(){ if (!diffThemeName(THEME_NAME, 'lifestyle')) return; if (this.searchItemType === 'input') return; if (this.isDesktop()) return; const smart_search_dom = document.querySelector('#app-smart-product-search-container-967'); if (!smart_search_dom) return; const hasMovedIcon = !!document.querySelector('.header__wrapper .container .row.header>div>#app-smart-product-search-container-967'); if (hasMovedIcon) return; const headerDivList = document.querySelectorAll('.header__wrapper .container .row.header>div'); const iconBoxDom = headerDivList[headerDivList.length-1] iconBoxDom.appendChild(smart_search_dom, iconBoxDom.firstChild); } init() { this.addIconClass(); this.moveIcon(); if ( this.searchItemType === 'input' ) { document.querySelectorAll('.app-smart-icon-search-large').forEach(e=>e.style.display = 'none'); const mobileSmartSearchDom = document.querySelector(`.smart-search-mobile-container .app-smart-product-search-wrap`); if ( this.isDesktop() ) { document.querySelector(`#app-smart-product-search-container-967`).style="display: block"; if (mobileSmartSearchDom) { document.querySelector(`#app-smart-product-search-container-967`).appendChild(mobileSmartSearchDom); } }else{ if( template_name=='search' ) return; if (!document.querySelector(`.smart-search-mobile-container`)) { const appSmartSearchContainer = document.createElement('div'); appSmartSearchContainer.classList.add('smart-search-mobile-container'); appSmartSearchContainer.classList.add('smart-search-mobile-container-'+THEME_NAME.toLocaleLowerCase()); document.querySelector(HEADER_DOM).appendChild(appSmartSearchContainer); } if (!mobileSmartSearchDom) { document.querySelector(`.smart-search-mobile-container`).appendChild( document.querySelector(`.app-smart-product-search-wrap`) ) } } }else{ document.querySelectorAll('.app-smart-icon-search-large').forEach(e=>e.style.display = 'flex'); } // PC-end not load if (this.isDesktop()) { return; } if (!window.__isLoadAppSmartSearch__) { this.initSmartSearch(); console.log('__isLoadAppSmartSearch__'); } // B-end must reload if (window.self === window.top && !window.__isLoadAppSmartSearch__) { window.__isLoadAppSmartSearch__ = true; } } initSmartSearch() { if (this.hasMobileUpperRightPlugin()) { this.showMobileSmartSearch(); } else { this.addMobileSmartSearch(); } } initRegisterActions(){ this.registOnSearchInputChange(); this.registOnSearchFormSubmit(); this.registOnOutsideCarouselIndexChange(); this.registOnInsideCarouselIndexChange(); this.registGetSearchItemType(); this.registGenerateHotKeywordList(); this.registerAction('onTapHotWord',(invocation)=>{ this.onTapHotWord(invocation.args.type); }); } registOnSearchInputChange(){ this.registerAction('onSearchInputChange',(invocation)=>{ const keyword = invocation.args.keyword; if (keyword === null || !keyword.length) { document.querySelectorAll('.hot-words-carousel-inner-container').forEach(e=>{ e.style='display: block'; }); } else { document.querySelectorAll('.hot-words-carousel-inner-container').forEach(e=>{ e.style='display: none'; }); } }) } registOnSearchFormSubmit(){ this.registerAction('onSearchFormSubmit',(invocation)=>{ const event = invocation.args.event; const keywordArray = event.q || []; const keyword = keywordArray[0]; if (keyword!==null && keyword.length) { this.handleSearchSubmit_(keywordArray,1); } else { this.onTapHotWord('inside') } }) } handleSearchSubmit_(value, retryNum){ SPZ.whenApiDefined(document.getElementById('app-smart-search-967')) .then((ljsSearch) => { try{ ljsSearch.handleSearchSubmit_({ value: value }) }catch(e){ console.log('catch error',retryNum) if( 3 > retryNum ){ this.handleSearchSubmit_(value, retryNum + 1); return; } const searchStr = value[0] || ''; const searchResult = ljsSearch.setThinkSearchData_(searchStr); ljsSearch.afterSearching({ query: searchResult.query, url: `${SEARCH_URL}?q=${searchStr}`, queryType: searchResult.queryType, }) } }) } registOnOutsideCarouselIndexChange(){ this.registerAction('onOutsideCarouselIndexChange',(invocation)=>{ this.outsideCarouselIndex = invocation.args.index || 0; }) } registOnInsideCarouselIndexChange(){ this.registerAction('onInsideCarouselIndexChange',(invocation)=>{ this.insideCarouselIndex = invocation.args.index || 0; }) } registGetSearchItemType(searchItemType){ this.registerAction('getSearchItemType',(invocation)=>{ SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-967')) .then((appSmartSearchOutsideItem) => { const search_item_type = appSmartSearchOutsideItem.getData()?.search_item_type; this.searchItemType = search_item_type || this.searchItemType; this.init(); }) }) } registGenerateHotKeywordList(){ this.registerAction('generateHotKeywordList',(invocation)=>{ const search_keywords = invocation.args?.data?.data?.hotKeywordList || []; const isShowHotKeyword = invocation.args?.data?.data?.isShowHotKeyword || false; SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-967')) .then((appSmartSearchOutsideItem) => { const hotwords = appSmartSearchOutsideItem.getData()?.search_keywords || []; const new_search_keywords = search_keywords.map((item, index) => { item.url_obj = item.url_obj || {}; const hotwordItem = hotwords.find(e=>e.word === item.word); if (hotwordItem) { item.icon = hotwordItem.icon || ''; } if (!item.urlObj || !item.urlObj.url) { item.urlObj = { ...item.url_obj, url: item.url_obj.type === 'search' ? `${SEARCH_URL}?q=${item.word}` : item.url_obj.url, }; } return item; }); document.querySelectorAll('.app-hot-keyword-render-child') .forEach((ele) => { SPZ.whenApiDefined(ele) .then((hotWordsChildDom) => { hotWordsChildDom.render({ list: new_search_keywords, isShowHotKeyword: isShowHotKeyword, }); }) }); }) }); } onTapHotWord(type){ const index = type === 'inside' ? this.insideCarouselIndex : this.outsideCarouselIndex; SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-967')) .then((appSmartSearchOutsideItem) => { const hotwords = appSmartSearchOutsideItem.getData()?.search_keywords || []; const currentHotwordItem = hotwords[index] || null; if (currentHotwordItem && currentHotwordItem.url_obj) { currentHotwordItem.url_obj.url = currentHotwordItem.url_obj.type === 'search' ? `${SEARCH_URL}?q=${currentHotwordItem.word}` : currentHotwordItem.url_obj.url; } SPZ.whenApiDefined(document.getElementById('app-smart-search-967')) .then((ljsSearch) => { if (currentHotwordItem) { ljsSearch.handleHotKeyword_({ word: currentHotwordItem.word, query_type: currentHotwordItem.type, url: currentHotwordItem.url_obj?.url, }); } else { this.handleSearchSubmit_([''],1); } }) }) } getOutsideCarouselConfig(){ return SPZ.whenApiDefined(document.getElementById('app-smart-search-outside-item-967')) .then((appSmartSearchOutsideItem) => { return { ...appSmartSearchOutsideItem.getData(), outsideCarouselIndex: this.outsideCarouselIndex, } }) } listenerResize() { window.removeEventListener('resize', window.smartSearchResizeCallback); window.smartSearchResizeCallback = SPZCore.Types.debounce( this.win, () => { this.init(); }, DELAY ); window.addEventListener('resize', window.smartSearchResizeCallback); } isDesktop() { const mediaQueryList = window.matchMedia(`(min-width: ${BREAKPOINT}px)`); return mediaQueryList.matches; } hasMobileUpperRightPlugin() { return !['geek', 'flash', 'boost'].includes(THEME_NAME.toLocaleLowerCase()); } showMobileSmartSearch() { this.mobileHeaderPluginParentEle = this.getMobileHeaderPluginParentEle(); this.setMobileHeaderIconsPluginStyle(this.mobileHeaderPluginParentEle); } getMobileHeaderPluginParentEle() { const MOBILE_HEADER_PLUGIN_PARENT_ELE_MAP = { nova: '.header__mobile #header__plugin-container', hero: '.header__icons .tw-flex.tw-justify-end.tw-items-center.tw-space-x-7', onePage: '.header__mobile #header__plugin-container', wind: '#header-icons .flex.justify-end.items-center', eva: '#header__icons .plugin_content' }; const headerPluginParentSelector = this.combineMultipleSelectors( Object.values(MOBILE_HEADER_PLUGIN_PARENT_ELE_MAP) ); return document.querySelector(headerPluginParentSelector); } setMobileHeaderIconsPluginStyle(pluginParentEle) { if (!pluginParentEle) { return; } const containHidden = pluginParentEle.classList.contains('md:hidden'); const containTwHidden = pluginParentEle.classList.contains('md:tw-hidden'); if (containHidden || containTwHidden) { Array.from(pluginParentEle.children).forEach((pluginElement) => { if (!this.hasSmartSearchPlugin(pluginElement)) { pluginElement.style.display = 'none'; } }); pluginParentEle.classList.remove('md:hidden', 'md:tw-hidden'); } else { const smartSearchPluginElement = Array.from(pluginParentEle.children).find( (pluginElement) => { return this.hasSmartSearchPlugin(pluginElement); } ); smartSearchPluginElement.style.display = 'block'; } } hasSmartSearchPlugin(pluginElement) { return ( pluginElement.classList.contains(`${SMART_PRODUCR_SEARCH_WRAP_CLASSNAME}`) || pluginElement.querySelectorAll(`.${SMART_PRODUCR_SEARCH_WRAP_CLASSNAME}`).length > 0 ); } addMobileSmartSearch() { this.mobileHeaderIconsEle = this.getMobileHeaderIconsEle(); this.smartSearchWrapEle = this.getSmartSearchWrapEle(); this.appendSmartSearchToHeader(); } getMobileHeaderIconsEle() { // Must be the parent element of the plugin const MOBILE_HEADER_ICONS_ELE_MAP = { geek: '#header-mobile-container .flex.items-center.justify-end.flex-shrink-0', flash: '#header-layout .header__icons', boost: '.header__mobile-bottom .tw-flex.tw-items-center.tw-justify-end.tw-flex-1' }; const headerIconsSelector = this.combineMultipleSelectors( Object.values(MOBILE_HEADER_ICONS_ELE_MAP) ); return document.querySelector(headerIconsSelector); } getSmartSearchWrapEle() { const smartSearchWrapEle = document.querySelector(this.getSmartSearchWrapSelector()); if (!smartSearchWrapEle) { return null; } return smartSearchWrapEle; } appendSmartSearchToHeader() { if (!this.smartSearchWrapEle) { return; } this.mobileHeaderIconsEle.insertAdjacentElement('afterbegin', this.smartSearchWrapEle); } getSmartSearchWrapSelector() { const PLUGIN_POSITION = { DRAWER: 'drawer', HEADER_TOP: 'headerTop' }; // only one this plugin of ancestor element const MOBILE_PLUGIN_POSITION_ELE_MAP = { [PLUGIN_POSITION.DRAWER]: { geek: '#header-menu-mobile #menu-drawer', flash: '#menu-drawer .plugin__header-content', boost: '.header__drawer' }, [PLUGIN_POSITION.HEADER_TOP]: { geek: '#header-menu-mobile #menu-drawer', flash: '#menu-drawer .plugin__header-content', boost: '.header-content .logo-wrap' } }; const MbPluginPositionInTheme = [ ...Object.values(MOBILE_PLUGIN_POSITION_ELE_MAP[PLUGIN_POSITION.DRAWER]), ...Object.values(MOBILE_PLUGIN_POSITION_ELE_MAP[PLUGIN_POSITION.HEADER_TOP]) ]; return Object.values(MbPluginPositionInTheme).reduce((pre, ancestor) => { if (pre === '') { return `${ancestor} .app-smart-product-search-container`; } if (pre.includes(ancestor)) { return pre; } return `${pre},${ancestor} .app-smart-product-search-container`; }, ''); } combineMultipleSelectors(selectorList) { return selectorList.reduce((pre, selector) => { if (pre === '') { return `${selector}`; } if (pre.includes(selector)) { return pre; } return `${pre},${selector}`; }, ''); } } SPZ.defineElement(TAG, SpzCustomSmartSearchLocation);
Log in
(function(){ let w = window.innerWidth; function setHeaderCssVar() { const headerEle = document.getElementById('shoplaza-section-header'); if(!headerEle){ return }; document.body.style.setProperty('--window-height', `${window.innerHeight}px`); document.body.style.setProperty('--header-height', `${headerEle.clientHeight}px`); const mdScorllHideEle = headerEle.querySelector('.header__mobile .header__scroll_hide'); if (mdScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-md', `${mdScorllHideEle.clientHeight}px`); } const pcScorllHideEle = headerEle.querySelector('.header__desktop .header__scroll_hide'); if (pcScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-pc', `${pcScorllHideEle.clientHeight}px`); } } function handlResize() { if(w == window.innerWidth){return}; w = window.innerWidth; setHeaderCssVar(); }; function init(){ setHeaderCssVar(); window.removeEventListener('resize', window._theme_header_listener) window._theme_header_listener = handlResize; window.addEventListener('resize', window._theme_header_listener); } init(); })();
Subsidiary Body
Please contact our
Whatsapp: +86 18476815042
for more details
If you don’t have whatsapp, please contact our email: support2@mmdaixi.com for more details
Cart
Your shopping bag is empty
Continue shopping
${item.product_title}
${item.options.map(option => option.value).join('/')}
${propertie.name}/${propertie.isImage ? `
View image
` : propertie.value}
Free gift
Mixed Lot
*${item.quantity}
${item.item_text}
${discount_item.title}
(-
)
Total:
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${discount_application.title}:
-
${data.invalid_msg}
Check out
Taxes and shipping calculated at checkout
${data.invalid_msg}
Total:
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${discount_application.title}:
-
Check out
${data.invalid_msg}
Check out
Taxes and shipping calculated at checkout
Subtotal:
${discount_application.title}:
-
Total:
Check out
Taxes and shipping calculated at checkout
const summaryStickyRender = document.querySelector('#cart-drawer-summary-sticky-render'); if (summaryStickyRender) { document.body.style.setProperty('--cart-drawer-summary-sticky-height', summaryStickyRender.clientHeight + 'px'); }
View Cart
${function(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { product_change_event = product_change_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${opt.name}Mouseover="quick-shop-selected-variant-${opt.name}.rerender(data=event);"`; } const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return `
${statusLan}
` }()}
${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return `
Retail
` }()}
${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = null; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return `
` }else { const price = variantData && variantData.price; return price != undefined ? `
` : '
'; } }()}
${function() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return `
${optionName}:
${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return `
${value}
` }).join('')}
${optionName}
${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `
${value}
` }).join('')}
` }).join(''); }()}
${data.originData && data.originData.value || data.value}