Skip to content

360º de exclusividade. 360º de identidade.

Log in Cart
00 items

Currency

Dólar estadounidense YO R GBP CHF
Fitness360º
  • Cardio
  • peso libre
  • Entrenamiento funcional
  • Deportes
Cart
00 items
Fitness360º
Log in
Cart
00 items
Home Cuenta

Sign in

Reset your password

We will send you an email to reset your password
Cancel

Login

Please enter your email and password below to access your account
Lost your password?

Register

Please register below to create an account

Fitness360 .tienda | Todo para tu entrenamiento. En casa, en el gimnasio, en cualquier lugar.

Fitness360.shop | Tudo para o teu treino. Em casa, no ginásio, em qualquer lado.

Pago al cobrar

30 días de devolución

pago seguro

Envio seguro

Pago al cobrar

30 días de devolución

pago seguro

Envio seguro

Pago al cobrar

30 días de devolución

pago seguro

Envio seguro

Contactos

Fitness360º

Estadio de la ciudad de Coímbra
Calle D. Manuel I, 78
3030-320 Coímbra
Portugal

generalfitness360@gmail.com

Apoyo al cliente

  • Quienes somos
  • Contactos
  • Envíos y Devoluciones
  • Politica de reembolso
  • Política de privacidad
  • Condiciones del servicio
  • Libro de reclamaciones
  • Pagamento Fraccionado com SeQura

Categorias

  • Cardio
  • Culturismo
  • Accesorios

Suscríbete al boletín

Suscríbete y recibe nuestro libro electrónico "Los 15 mejores gimnasios en casa (para tu inspiración)".

  • Comenzar
  • Buscar
  • Cuenta
  • Carro
    00 items
  • Colecciones
  • Choosing a selection results in a full page refresh.

Thanks for subscribing!

This email has been registered!

Shop the look

Choose Options

Edit Option
Back In Stock Notification
this is just a warning
Login
Forgot your password? Create account
Mi carro
0 productos
Close
Search
Menu
Sign In Create an Account
Cannot place order, conditions not met:
OK
/** * SOLUÇÃO DEFINITIVA: Shopify + Ella + Customily * Foca em Observação de URL e Sincronização de Slider */ (function() { const CONFIG = { selectors: { mainImg: '.product-single__photo img, .featured-image', thumbnails: '.product-single__thumb img, .slider-nav img', canvas: '#customily-canvas', swatches: '.swatch-element, .single-option-selector' }, debounceTime: 100 }; function getVariantFromUrl() { const urlParams = new URLSearchParams(window.location.search); const variantId = urlParams.get('variant'); if (!variantId || !window.product) return null; return window.product.variants.find(v => v.id == variantId); } function hasCustomilyDesign() { const canvasContainer = document.querySelector(CONFIG.selectors.canvas); // Verifica se o Customily injetou algo além do placeholder return canvasContainer && canvasContainer.children.length > 0; } function syncEllaSlider(imageUrl) { if (!imageUrl) return; // Remove parâmetros de redimensionamento do Shopify para comparação limpa const cleanUrl = (url) => url.split('?')[0].replace(/(_\d+x\d+|_master|_small)/g, ''); const targetBase = cleanUrl(imageUrl); const thumbnails = document.querySelectorAll(CONFIG.selectors.thumbnails); for (let thumb of thumbnails) { const thumbSrc = thumb.getAttribute('src') || thumb.getAttribute('data-src'); if (thumbSrc && cleanUrl(thumbSrc).includes(targetBase)) { // Em vez de só trocar o SRC, simulamos o clique para o Ella mover o Slider (Slick/Swiper) thumb.click(); return true; } } return false; } const updateUI = debounce(() => { if (hasCustomilyDesign()) return; const variant = getVariantFromUrl(); if (!variant || !variant.featured_image) return; // 1. Atualiza Imagem Principal (Fallback caso o slider falhe) const mainImg = document.querySelector(CONFIG.selectors.mainImg); if (mainImg) mainImg.src = variant.featured_image.src; // 2. Sincroniza Slider/Thumbs syncEllaSlider(variant.featured_image.src); }, CONFIG.debounceTime); // --- OBSERVADORES --- // 1. Monitora mudanças na URL (Troca de variante via Swatches ou Selects) let lastUrl = location.href; const urlObserver = new MutationObserver(() => { if (location.href !== lastUrl) { lastUrl = location.href; updateUI(); } }); urlObserver.observe(document.querySelector('body'), { childList: true, subtree: true }); // 2. Monitora o Customily (Aparecimento/Desaparecimento do Design) const canvasElement = document.querySelector(CONFIG.selectors.canvas); if (canvasElement) { const customilyObserver = new MutationObserver(() => { // Se o design sumiu, restauramos a variante if (!hasCustomilyDesign()) updateUI(); }); customilyObserver.observe(canvasElement, { childList: true, subtree: true }); } // Helper: Debounce function debounce(fn, ms) { let timeout; return () => { clearTimeout(timeout); timeout = setTimeout(() => fn.apply(this, arguments), ms); }; } // Execução inicial setTimeout(updateUI, 500); })();