FAÇA LOGIN OU CADASTRE-SE
ClubeB2B
Categorias
Combos Bicicleta BMX Infantis Kits MTB Freeride Triciclos Scooters Acessórios Bar Ends Bolsas Bombas Cadeados Cadeirinhas Campainhas Capacetes Caramanhola Cestões Descansos Faróis Ferramentas GPS Óculos Sinalizadores Paralamas Partes Aros Guidões Kit Elétrico Pedais Quadros Rodas Selins Suporte Guidão Suspensões Peças Abraçadeiras Cabos e Conduítes Canotes Cubos Eixos Espaçadores Freios Jogo de direção Maçanetas Manoplas Movimento central Raio Reposição Relação Alavancas Câmbios Cassetes Correntes Graxas Lubrificantes Pedivelas Roda Dentada Roda Livre Pneumáticos Pneus Câmaras Fitas de Aro Remendos Selantes SCA Lançamentos
Categorias

Sua busca por "lotus" não encontrou resultados

$(document).ready(function() { $('[data-toggle="tooltip"]').tooltip(); // Detectar suporte ao object-fit e aplicar fallback se necessário function supportsObjectFit() { return 'objectFit' in document.documentElement.style; } if (!supportsObjectFit()) { document.body.classList.add('no-object-fit'); // Aplicar background-image como fallback para imagens de produtos $('.product-image-container').each(function() { const $img = $(this).find('img'); const imgSrc = $img.attr('data-src') || $img.attr('src'); if (imgSrc && imgSrc !== 'imgs/loading.webp') { $(this).css('background-image', `url(${imgSrc})`); } }); } // Altera o modo de exibição quando trocar o raidio const changeLayout = (mode = '', init = false) => { localStorage.setItem("produtos-exibicao", mode) $(".products-container").fadeOut(init ? 0 : 300, function() { if (mode === 'lista') { $(".products-container .product-col").each(function() { $(this).removeClass("col-sm-6 col-md-4 col-lg-3").find(".new-single-product").addClass("line") }) } else { $(".products-container .product-col").each(function() { $(this).addClass("col-sm-6 col-md-4 col-lg-3").find(".new-single-product").removeClass("line") }) } }).fadeIn(init ? 0 : 300) } const initialMode = localStorage.getItem("produtos-exibicao") || "grade" $(`input[name='exibicao'][value="${initialMode}"]`).prop("checked", true) changeLayout(initialMode, true) $("input[name='exibicao']").on("change", function() { const mode = $(this).val() changeLayout(mode) }) // Filtra os produtos que estiverem estoque (sem chegada) let estoqueState = localStorage.getItem("produtos-estoque") ? localStorage.getItem("produtos-estoque") === "true" : false $("#estoque_checkbox").change(function(event, isInitial) { if (!isInitial) { estoqueState = !estoqueState localStorage.setItem("produtos-estoque", estoqueState) } $(".products-container").fadeOut(isInitial ? 0 : 300, function() { $(this).find(".product-col").each(function() { if ($(this).data("estoque") == 0) { if (estoqueState) $(this).show() else $(this).hide() } }) $(this).fadeIn(isInitial ? 0 : 300) }) }).prop("checked", estoqueState).trigger("change", [true]); // Dispara o submit quando o select muda o valor const initialOrder = localStorage.getItem("produtos-order") $("#order-select").on("change", function(event, isInit) { const selectedValue = $(this).val() localStorage.setItem("produtos-order", selectedValue) // Para o filtro de distribuidor, não fazer submit - será tratado no switch abaixo let productCols = $(".products-container").find(".product-col").toArray(); $(".products-container").fadeOut(isInit ? 0 : 300, function() { switch (selectedValue) { case "codigo_produto ASC": productCols.sort((a, b) => { return $(a).data("codigo") - $(b).data("codigo"); }); break; case "informacoes_tecnicas ASC": if (typeof searchKeywords !== 'undefined' && searchKeywords.length > 0) { var stripAccents = (s) => s.normalize('NFD').replace(/[̀-ͯ]/g, ''); var getScore = (nome) => { for (var kw of searchKeywords) { if (nome.indexOf(kw.toLowerCase()) === 0) return 1; } return 2; }; productCols.sort((a, b) => { var nA = stripAccents(($(a).data("nome") || '').toLowerCase()); var nB = stripAccents(($(b).data("nome") || '').toLowerCase()); var diff = getScore(nA) - getScore(nB); return diff !== 0 ? diff : nA.localeCompare(nB); }); } else { productCols.sort((a, b) => $(a).data("nome").localeCompare($(b).data("nome"))); } break; case "marca ASC, estoque DESC, preco ASC": productCols.sort((a, b) => { return $(a).data("preco") - $(b).data("preco"); }); productCols.sort((a, b) => { return $(b).data("estoque") - $(a).data("estoque"); }); productCols.sort((a, b) => { return $(a).data("marca").localeCompare($(b).data("marca")); }); break; case "preco ASC": productCols.sort((a, b) => { return $(a).data("preco") - $(b).data("preco"); }); break; case "preco DESC": productCols.sort((a, b) => { return $(b).data("preco") - $(a).data("preco"); }); break; case "DISTRIBUIDOR_FILTER": // Filtro por fornecedor - apenas produtos de distribuidores ativos (s.ativo = 1) productCols = productCols.filter(function(element) { const produtoElement = $(element); const sellerId = produtoElement.data("seller-id"); const sellerAtivo = produtoElement.data("seller-ativo"); // Filtrar produtos de sellers ativos (incluindo Clube B2B - ID 1) return sellerId && sellerAtivo == 1; }); // Ordenar primeiro por seller_id (ID 1 primeiro) e depois por nome productCols.sort((a, b) => { const sellerIdA = $(a).data("seller-id"); const sellerIdB = $(b).data("seller-id"); // Se os seller_id são diferentes, ordenar por ID (1 primeiro, depois crescente) if (sellerIdA !== sellerIdB) { return sellerIdA - sellerIdB; } // Se mesmo seller_id, ordenar por nome return $(a).data("nome").localeCompare($(b).data("nome")); }); break; default: $("#filter-form").submit() break; } // Limpar container e adicionar apenas os produtos filtrados $(".products-container").empty().append(productCols).fadeIn(isInit ? 0 : 300); }); }).find(`option[value="${initialOrder || "informacoes_tecnicas ASC"}"]`).prop("selected", true).trigger("change", [true]); $(window).on("resize", function() { $(".new-single-product").each(function() { const textHeight = $(".product-name h4 a", this).outerHeight() const containerHeight = $(".product-name h4", this).outerHeight() if (textHeight <= containerHeight) { $(".product-name", this).removeClass("use-tooltip") } else { $(".product-name", this).addClass("use-tooltip") const width = $(this).outerWidth() $(this).css("--tooltip-max-width", `${width}px`) } }) }).trigger("resize") // Adicionando classe para padding da label $(".new-single-product").each(function() { const hasLabel = $(this).find(".pro-badge:not(.marca)").length > 0 if (hasLabel) { $(this).addClass("with-label") } }) }) document.addEventListener("DOMContentLoaded", function() { const lazyImages = document.querySelectorAll("img[data-src]"); const observer = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { let img = entry.target; const newSrc = img.dataset.src; img.src = newSrc; img.removeAttribute("data-src"); observer.unobserve(img); // Aplicar fallback object-fit se necessário if (document.body.classList.contains('no-object-fit')) { const container = img.closest('.product-image-container'); if (container) { container.style.backgroundImage = `url(${newSrc})`; } } } }); }); lazyImages.forEach(img => observer.observe(img)); }); setTimeout(() => { $(window).trigger("resize") }, 1000);