See all offers
  • ★ 40,000+ SATISFIED CUSTOMERS ★ 40,000+ SATISFIED CUSTOMERS
  • SPRING SALE: DISCOUNTS UP TO 60% SPRING SALE: DISCOUNTS UP TO 60%
  • FREE SHIPPING FREE SHIPPING
★ 40,000+ SATISFIED CUSTOMERS
SPRING SALE: DISCOUNTS UP TO 60%
FREE SHIPPING
★ 40,000+ SATISFIED CUSTOMERS
SPRING SALE: DISCOUNTS UP TO 60%
FREE SHIPPING
See all offers (3)
See all offers (3)

  • HOME
  • COLLECTIONS
    • WORLD CUP BALLS
    • BESTSELLERS
    • 2025/26 KITS
    • RETRO
    • KIDS JERSEYS
    • LONGSLEEVE
    • SPECIAL JERSEYS
    • MYSTERY SHIRT
    • HOODIES
    • STUSSY JERSEYS
    • TRACKSUITS
  • POPULAR TEAMS
    • FC BARCELONA
    • REAL MADRID
    • FC BAYERN
    • ARSENAL
    • AJAX
    • LIVERPOOL
    • GALATASARAY
    • MANCHESTER UNITED
    • PSG
    • MANCHESTER CITY
    • NAPOLI
    • AC MILAN
    • INTER MILAN
    • PSV
    • CHELSEA
    • TOTTENHAM
    • ATLETICO MADRID
    • JUVENTUS
    • LEVERKUSEN
    • FEYENOORD
    • FIORENTINA
    • INTER MIAMI
    • COVENTRY CITY
    • BORUSSIA DORTMUND
    • HAMBURGER SV
    • FC SCHALKE 04
    • VFB STUTTGART
    • RB LEIPZIG
    • 1. FSV MAINZ 05
    • 1. FC KÖLN
    • INTER MIAMI
  • INTERNATIONAL
    • NETHERLANDS
    • GERMANY
    • BRAZIL
    • ARGENTINA
    • BELGIUM
    • SPAIN
    • PORTUGAL
    • ENGLAND
    • FRANCE
    • MOROCCO
    • ITALY
    • JAPAN
    • MEXICO
    • AUSTRIA
    • CANADA
    • UNITED STATES
  • ABOUT US
  • CONTACT
  • More links
    Log in Create an account

    • HOME
    • COLLECTIONS
      COLLECTIONS
      • WORLD CUP BALLS
      • BESTSELLERS
      • 2025/26 KITS
      • RETRO
      • KIDS JERSEYS
      • LONGSLEEVE
      • SPECIAL JERSEYS
      • MYSTERY SHIRT
      • HOODIES
      • STUSSY JERSEYS
      • TRACKSUITS
    • POPULAR TEAMS
      POPULAR TEAMS
      • FC BARCELONA
      • REAL MADRID
      • FC BAYERN
      • ARSENAL
      • AJAX
      • LIVERPOOL
      • GALATASARAY
      • MANCHESTER UNITED
      • PSG
      • MANCHESTER CITY
      • NAPOLI
      • AC MILAN
      • INTER MILAN
      • PSV
      • CHELSEA
      • TOTTENHAM
      • ATLETICO MADRID
      • JUVENTUS
      • LEVERKUSEN
      • FEYENOORD
      • FIORENTINA
      • INTER MIAMI
      • COVENTRY CITY
      • BORUSSIA DORTMUND
      • HAMBURGER SV
      • FC SCHALKE 04
      • VFB STUTTGART
      • RB LEIPZIG
      • 1. FSV MAINZ 05
      • 1. FC KÖLN
      • INTER MIAMI
    • INTERNATIONAL
      INTERNATIONAL
      • NETHERLANDS
      • GERMANY
      • BRAZIL
      • ARGENTINA
      • BELGIUM
      • SPAIN
      • PORTUGAL
      • ENGLAND
      • FRANCE
      • MOROCCO
      • ITALY
      • JAPAN
      • MEXICO
      • AUSTRIA
      • CANADA
      • UNITED STATES
    • ABOUT US
    • CONTACT
    Log in
    Home / My account

    Login

    Please enter email and password.
    Email is required. Enter a valid email address
    Password is required. Password must be between 6-16 characters long.
    Forgot password?
    Don't have an account? Create one
    CONTACT
    Looking for collaboration?
    Email:support@classfootballjersey.vip
    Add us on WhatsApp.
    WhatsApp:+8619926012363

    Monday-Friday: 08am-9pm

    +8619926012363

    USEFUL LINKS
    Customer Support About us Contact us Return and refund policy Privacy policy Terms of service Shipping policy
    Shop
    HOME COLLECTIONS POPULAR TEAMS INTERNATIONAL ABOUT US CONTACT
    NEWLETTER
    We send great emails!
    Please fill in this field
    Please enter a valid email address
    Thanks for subscribing
    CONTACT
    Looking for collaboration?
    Email:support@classfootballjersey.vip
    Add us on WhatsApp.
    WhatsApp:+8619926012363

    Monday-Friday: 08am-9pm

    +8619926012363

    USEFUL LINKS
    Customer Support About us Contact us Return and refund policy Privacy policy Terms of service Shipping policy
    Shop
    HOME COLLECTIONS POPULAR TEAMS INTERNATIONAL ABOUT US CONTACT
    NEWLETTER
    We send great emails!
    Please fill in this field
    Please enter a valid email address
    Thanks for subscribing
    Customer Support About us Contact us Return and refund policy Privacy policy Terms of service Shipping policy
    © 2026 classfootballjersey All rights reserved reproduction in whole or in part without written permission is prohibited. Cleer and the Cleer logo are trademarks of Cleer, ltd.

    10% off your first order1

    Thank you for your subscription, you can enjoy a 10% discount for the first purchase.
    Enter a discount code

    Cart

    const TAG = 'spz-custom-cart-coupon-code-utils'; class SpzCustomCartCouponCodeUtils extends SPZ.BaseElement { constructor(element) { super(element); } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.keepOpenGuardBound_ = false; this.registerAction('setSideBarHeight', this.setSideBarHeight_.bind(this)); this.onResize_ = this.setSideBarHeight_.bind(this); window.addEventListener('resize', this.onResize_); } detachedCallback() { if (this.onResize_) { window.removeEventListener('resize', this.onResize_); this.onResize_ = null; } } ensureKeepOpenGuard_($sideBar) { if (this.keepOpenGuardBound_) return; this.keepOpenGuardBound_ = true; const observer = new MutationObserver(() => { if ($sideBar.hasAttribute('open') && $sideBar.hasAttribute('hidden')) { $sideBar.removeAttribute('hidden'); this.setSideBarHeight_(); } }); observer.observe($sideBar, { attributes: true, attributeFilter: ['hidden', 'open'] }); } getOpenDrawer_() { return document.querySelector('[data-section-type="cart_drawer"] spz-sidebar[open]'); } setSideBarHeight_() { const $sideBar = document.querySelector('#cart-coupon-code-modal'); if (!$sideBar) return; this.ensureKeepOpenGuard_($sideBar); const windowHeight = window.innerHeight; const $drawer = this.getOpenDrawer_(); if (!$drawer) { $sideBar.style.setProperty('max-height', windowHeight * 0.9 + 'px', 'important'); $sideBar.style.removeProperty('height'); $sideBar.style.removeProperty('width'); $sideBar.classList.remove('cart-coupon-code-modal--in-drawer'); return; } const drawerHeight = (windowHeight - 40) + 'px'; $sideBar.style.setProperty('max-height', drawerHeight, 'important'); $sideBar.style.setProperty('height', drawerHeight, 'important'); $sideBar.classList.add('cart-coupon-code-modal--in-drawer'); const rect = $drawer.getBoundingClientRect(); if (rect.width > 0) { $sideBar.style.setProperty('width', rect.width + 'px', 'important'); } } } SPZ.defineElement(TAG, SpzCustomCartCouponCodeUtils); const TAG = 'spz-custom-marketing-utils'; class SpzCustomMarketingUtils extends SPZ.BaseElement { constructor(element) { super(element); } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } mountCallback() { this.ensureToastInBody_('coupon-code-toast-wrap'); } showCouponCodeToast_(message) { this.ensureToastInBody_('coupon-code-toast-wrap'); const toastEl = document.getElementById('coupon-code-toast'); if (!toastEl) return; SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast(message); }); } ensureToastInBody_(id) { const wrapEl = document.getElementById(id); if (!wrapEl) return; if (!wrapEl.closest('[data-section-type="cart_drawer"]')) return; if (wrapEl.parentNode !== document.body) { document.body.appendChild(wrapEl); } } buildCallback() { this.registerAction('addToCartTrigger', (invocation) => { window.$ && $(document).trigger('dj.common.cart.change'); window.$ && $(document).trigger('dj.addToCart', invocation.event.detail); }); this.registerAction('showAddToCartToast', () => { this.showCouponCodeToast_("Added successfully"); }); } } SPZ.defineElement(TAG, SpzCustomMarketingUtils);
    Your shopping cart is empty
    Continue shopping
    (function () { const TAG = "spz-custom-discount-popup-bxgy"; class SpzCustomPlacementPopup extends SPZ.BaseElement { constructor(element) { super(element); this.deviceTypeMap = { PD_PC_MOBILE: "PD_PC_MOBILE", PD_PC: "PD_PC", PD_MOBILE: "PD_MOBILE" }; this.reportEventMap = { PE_IMPRESSION: 'PE_IMPRESSION',//曝光事件 PE_CLICK: 'PE_CLICK',//点击事件 } this.popup_z_index = 1050; } static deferredMount() { return false; } buildCallback = () => { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback = () => { } // 节流处理 每5s内多次点击 算一次点击上报 throttleReport = this.win.SPZCore.Types.throttle( this.win, (data) => { this.reportData(data) }, 5000 ) // 上报数据 reportData = async(data) => { const reqBody = { placement_id: data.placement_id, event: data.event } this.xhr_.fetchJson(`/api/storefront/promotion/placement/data/report`, { method: "post", body: reqBody }).then((res)=>{ // todo ... }) } doRender_ = (data) => { const popupList = data.popupList || []; if(popupList.length){ // 内容配置 序列化字符转化 popupList.forEach(item => { item.parseConfig = JSON.parse(item.config); }) } return this.templates_ .findAndRenderTemplate(this.element, {popupList}) .then((el) => { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); this.element.appendChild(el); }).then(() =>{ popupList.forEach(item => { // buy x get y 弹窗渲染 this.showPopup(item); }) }) } showPopup = async(itemData) => { // 展示弹窗 符合展示条件的弹窗 const $lightbox_item = document.querySelector(`#popup_bxgy_${itemData.id}`); $lightbox_item && SPZ.whenApiDefined($lightbox_item).then((api)=> { const isPC = this.viewport_.getWidth() >= 768; const isMobile = this.viewport_.getWidth() < 768; const isMatchPCDevice = itemData.device === this.deviceTypeMap.PD_PC_MOBILE || itemData.device === this.deviceTypeMap.PD_PC; const isMatchMobileDevice = itemData.device == this.deviceTypeMap.PD_PC_MOBILE || itemData.device === this.deviceTypeMap.PD_MOBILE; if((isPC && isMatchPCDevice) || (isMobile && isMatchMobileDevice)) { // 根据推送时间 延迟展示弹窗 setTimeout(() => { $lightbox_item.style.zIndex = this.popup_z_index; this.popup_z_index ++; api.open(); }, itemData.delay_seconds * 1000); } }) } setupAction_ = () => { this.registerAction('handleTrack', async(invocation) => { // 如果是主题编辑器则不用处理 if(window.top !== window.self) { return; } const data = invocation.args; const event = data.event; // 点击上报 节流处理 if(event === this.reportEventMap.PE_CLICK) { await this.throttleReport(data); } else { this.reportData(data); } }); this.registerAction('handleLinkto', (invocation) => { const url = invocation.args.url; const isNewOpen = invocation.args.isNewOpen; const target = isNewOpen ? '_blank' : '_self'; if(url) { window.open(url, target); } }); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomPlacementPopup) })() (function () { const TAG = "spz-custom-discount-placement"; class SpzCustomDiscountPlacement extends SPZ.BaseElement { constructor(element) { super(element); this.placementTypeMap = { PTT_POPUP: "PTT_POPUP", PTT_BANNER: "PTT_BANNER" }; this.placementTemplateMap = { PT_POPUP_BUY_X_GET_Y: "PT_POPUP_BUY_X_GET_Y", PT_BANNER_BUY_X_GET_Y: "PT_BANNER_BUY_X_GET_Y" }; this.progressMap = { PROGRESS_ONGOING: "PROGRESS_ONGOING", PROGRESS_NOT_STARTED: "PROGRESS_NOT_STARTED", PROGRESS_FINISHED: "PROGRESS_FINISHED", PROGRESS_PAUSED: "PROGRESS_PAUSED" }; } static deferredMount() { return false; } buildCallback = () => { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback = () => { this.handlePlacement(); } // 上报数据 reportData = async(data) => { const reqBody = { placement_id: data.placement_id, event: data.event } const url = `/api/storefront/promotion/placement/data/report`; this.xhr_.fetchJson(url, { method: "post", body: reqBody }).then((res)=>{ // todo ... }) } // 资源位数据获取 getplacementList = async() => { const reqBody = { page_id: window.SHOPLAZZA.meta.page.template_type } const url = `/api/storefront/promotion/placement/list` const data = await this.xhr_.fetchJson(url, { method: "post", body: reqBody }) return data; } handlePlacement = async() => { const res = await this.getplacementList(); const BXGYPopupList = res.list.filter(item => (item.placement_type == this.placementTypeMap.PTT_POPUP && item.placement_template == this.placementTemplateMap.PT_POPUP_BUY_X_GET_Y)); if(BXGYPopupList.length) { const $spz_custom_popup_bxgy = document.querySelector('#spz_custom_popup_bxgy'); SPZ.whenApiDefined($spz_custom_popup_bxgy).then((api)=> { api.doRender_({popupList: BXGYPopupList}); }) } } doRender_ = (data) => { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); this.element.appendChild(el); }) } setupAction_ = () => { this.registerAction('handleTrack', (invocation) => { const data = invocation.args; this.reportData(data) }); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomDiscountPlacement) })()