$.ajaxSetup({ cache: true }); //carregamento assíncrono CSS. (function ($) { $.getStylesheet = function (href) { var $d = $.Deferred(); var $link = $('', { rel: 'stylesheet', type: 'text/css', href: href }).appendTo('head'); $d.resolve($link); return $d.promise(); }; })(jQuery); //carregamento assíncrono das dependências. $.when( /*---- get CSS ----*/ $.getStylesheet("https://cdn.jsdelivr.net/npm/sweetalert2@11.7.29/dist/sweetalert2.min.css"), //Sweetalert 2. /*---- get JS ----*/ $.getScript("https://cdnjs.cloudflare.com/ajax/libs/jquery-watch/1.21.0/jquery-watch.min.js"), //jQuery Watch. $.getScript("https://cdn.jsdelivr.net/npm/mobile-detect@1.4.5/mobile-detect.min.js"), //Mobile Detect. $.getScript("https://cdn.jsdelivr.net/npm/js-cookie@3.0.5/dist/js.cookie.min.js"), //Js cookie. $.getScript("https://cdn.jsdelivr.net/npm/sweetalert2@11.7.29/dist/sweetalert2.all.min.js"), //Sweetalert 2. $.Deferred(function (deferred) { $(deferred.resolve); }) ).done(function () { //scripts carregados, inserir seus códigos abaixo. console.log("#### script-ic load! ####"); //############################## /*---- função watch geral ----*/ var watchMain = $("*").watch({ id: "watch", properties: "prop_innerHTML, attr_class", watchChildren: true, callback: function (data, i) { //importante! [instruções executadas uma única vez], quando houver uma alteração html detectada pelo Observer Event. if(data.id){ watchMain.unwatch(data.id); //importante! para destruir o objeto. data.id = false; //importante! para evitar repetições. //---- inserir scripts abaixo ---- var mobileDetect = new MobileDetect(window.navigator.userAgent); //política de privacidade. (function(){ var policyCookies = "policyCookies"; if(!Cookies.get(policyCookies)){ const Toast = Swal.mixin({ toast: true, position: mobileDetect.phone()? 'bottom' : 'bottom', showConfirmButton: true, confirmButtonText: 'continuar' }); Toast.fire({ icon: mobileDetect.phone() ? "" : 'info', title: '', html: 'Usamos cookies para uma experiência melhor de navegação. Ao continuar navegando, você concorda com a nossa Política de Privacidade ', width: "auto", customClass: { container: mobileDetect.phone() ? "w-100" : "auto", popup: mobileDetect.phone() ? "small" : 'container d-flex align-items-center justify-content-center small', title: "d-none", actions: mobileDetect.phone() ? "d-table mx-auto" : "", confirmButton: "bg-warning px-5 px-lg-3", htmlContainer: mobileDetect.phone() ? "text-center small" : "small" } }).then((result) => { if(result.isConfirmed){ Swal.fire({ toast: true, position: mobileDetect.phone()? 'bottom' : 'bottom', showConfirmButton: false, icon: 'success', title: ' ', html: 'Confirmado!', timer: 1000, timerProgressBar: true }); Cookies.set(policyCookies, "true", {expires: 30}); } }); } })(); } //!importante! [instruções executadas indeterminadas vezes], quando houver uma alteração html detectada pelo Observer Event. //---- inserir scripts abaixo ---- //verificar quantos itens tem no carrinho. (function(){ $(".cart-sumary").click(function(){ window.headerCartBtn = false; }); if($(".shopping-cart-content .item").length > 2 && !window.headerCartBtn){ var obj = $(".shopping-cart-content:first .text-end > a").clone().prependTo(".shopping-cart-content"); $(obj).addClass("sticky-top"); window.headerCartBtn = true; } })(); //capturar valores do frete. (function(){ var isLog = false; $(".f2-shipping-estimate-action").removeAttr("disabled"); if(!$(".shipping-estimate > .estimation").is(":visible")){ $(".price-total-frete").hide(); $(".price-unit-frete").hide(); return false; }else{ //get cep. var cep = $("input[name=zipCode]").val(); if(cep.length >= 9){ //set cep cookie. setFreteCookie(cep); } } var lines = $(".shipping-estimate > .estimation:first").text().split('\n'); if(lines){ var freteValor = ""; //encontrar o primeiro valor de frete. $(lines).each(function(key){ var value = $.trim(this); if(value !== ""){ if(value = value.match(/\d/g)){ freteValor = parseFloat(value.join('')) / 100; return false; } } }); //atualizar o total com frete na página do produto. if($(".price-total-frete").length > 0){ $(".price-total-frete").css("display", "").show(); if(isLog) console.log("freteValor: " + freteValor); if(isLog) console.log("priceTotal: " + priceTotal); $(".price-total-frete-num").html((freteValor + priceTotal).toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 2, maximumFractionDigits: 2 })); } //atualizar o preço da unidade com frete na página do produto. if($(".price-unit-frete").length > 0){ $(".price-unit-frete").css("display", "").show(); priceUnitFrete = (freteValor + priceTotal) / qtdeTotal; if(isLog) console.log("priceUnitFrete: " + priceUnitFrete); $(".price-unit-frete-num").html(priceUnitFrete.toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 2, maximumFractionDigits: 2 })); } } })(); } }); }); $(document).ready(function(){ console.log("### Script - iC ###"); var mobileDetect = new MobileDetect(window.navigator.userAgent); //ajustes no formulário de cadastro. (function(){ isLog = true; if(!location.pathname === "/customer/create"){ return false; } //remover CPF do formulário de cadastro. $("#customer_type > option[value=cpf]").remove(); //$("#customer_firstname, #customer_cpf_cpf, #customer_gender, #customer_dateOfBirth_presentation").removeAttr("required").hide(); $(".cpf").hide(); $(".cpf input, .cpf select").removeAttr("required").hide(); //trigger no campo tipo. $("#customer_type").trigger("blur"); //remover "selecione" do campo perfil do formulário de cadastro. $("#customer_customerType > option[value='']").remove(); //selecionar a primeira opção. $("#customer_customerType > option[value='1']").attr("selected"); //máscara no campo de telefone. if($("#customer_primaryPhone").length > 0){ IMask(document.getElementById('customer_primaryPhone'), { mask: [ { mask: '(00) 0000-0000' //máscara fixo. }, { mask: '(00) 00000-0000' //máscara celular. } ] }); } //checagem checkbox isento. $("input#check").on("change", function(e){ if($(this).is(":checked")){ $("#customer_cnpj_stateRegistration").val("ISENTO"); console.log("checked"); }else{ $("#customer_cnpj_stateRegistration").val(""); } }); })(); //funções de cep do cliente. (function(){ //máscara para o CEP. if($("#customerCep").length > 0){ IMask(document.getElementById('customerCep'), { mask: '00000-000', //lazy: false, //placeholderChar: "" }); } if(!$.cookie('customerCep') && !$.cookie('customerCepShow')){ //show modal. showFreteModal(); } $("#cepLocation button:first").click(function(){ //show modal. showFreteModal(); }); function showFreteModal(){ //show modal. freteModal = Fancybox.show([{ src: "#modalCep", type: "inline" }]); //set cookie show modal. $.cookie('customerCepShow', true, { expires: 45, path: "/" }); } //set input. if($.cookie('customerCep')){ $(".input-customer-cep").val($.cookie('customerCep')); $("#cepLocation").removeClass("d-none"); $("#cepLocation .cepLocation").html($.cookie('customerCep')); //set input no carrinho de compras. $("input[name=zipCode]").val($.cookie('customerCep')); } //check submit cep from modal. $("form[name=formCustomerCep]").on("submit", function(e){ e.preventDefault(); var cep = $(".input-customer-cep").val(); if(cep !== ""){ //set cep cookie. setFreteCookie(cep); freteCalculate(); } Fancybox.close(); }); //trigger calculate cep página do produto. if($.cookie('customerCep')){ $(".product-information #zipCode").val($.cookie('customerCep')); $(".product-information #calculate").trigger("click", function(){ return true; }); } })(); //cabeçalho. (function(){ var bannerVisible = false; $(window).scroll(function(){ if(mobileDetect.phone()){ var scrollTop = $(window).scrollTop(); if(scrollTop === 0){ bannerVisible = true; }else{ bannerVisible = false; } toggleBannerVisibility(); }else{ if($(this).scrollTop() > 0){ $(".header-top-row").hide(); $(".header-middle-row").hide(); $(".header-middle-fixed-row").show().animate({ top: '-100px' }, 500); }else{ $(".header-middle-fixed-row").hide(); $(".header-top-row").show(); $(".header-middle-row").show(); } } }); function toggleBannerVisibility(){ var headerMobile = $(".header-middle-row"); var bannerFilete = $(".header-top-row"); if(bannerVisible){ bannerFilete.show(); headerMobile.css("position", "relative"); }else{ bannerFilete.hide(); headerMobile.css("position", "fixed"); headerMobile.css("z-index", "999"); } } })(); //menu. (function(){ $("#menu-lg .nav .dropdown.nav-item").on('mouseenter', function() { $(this).addClass('open'); }); //ocultar submenu. $('#menu-lg .nav .dropdown.nav-item').on('mouseleave', function() { $(this).removeClass('open'); }); /* //ativar submenu. $('.d-lg-block .nav .dropdown.nav-item').on('mouseenter', function() { $(this).addClass('open'); }); //ocultar submenu. $('.d-lg-block .nav .dropdown.nav-item').on('mouseleave', function() { $(this).removeClass('open'); }); */ // make it as accordion for smaller screens if (window.innerWidth < 992) { // close all inner dropdowns when parent is closed document.querySelectorAll('.navbar .dropdown').forEach(function(everydropdown){ everydropdown.addEventListener('hidden.bs.dropdown', function () { // after dropdown is hidden, then find all submenus this.querySelectorAll('.submenu').forEach(function(everysubmenu){ // hide every submenu as well everysubmenu.style.display = 'none'; }); }); }); document.querySelectorAll('.dropdown-menu a').forEach(function(element){ element.addEventListener('click', function (e) { let nextEl = this.nextElementSibling; if(nextEl && nextEl.classList.contains('submenu')) { // prevent opening link if link needs to open dropdown e.preventDefault(); if(nextEl.style.display == 'block'){ nextEl.style.display = 'none'; } else { nextEl.style.display = 'block'; } } }); }); } })(); //swiper top condições; (function(){ const swiper = new Swiper('.swiper-conditions', { // Optional parameters slidesPerView: 1, centeredSlides: true, direction: 'horizontal', autoHeight: true, loop: true, autoplay:{ delay: 3500 } }); })(); //swiper banner home; (function(){ const swiper = new Swiper('.swiper-banner-home', { // Optional parameters slidesPerView: 1, centeredSlides: true, direction: 'horizontal', autoHeight: true, loop: true, autoplay:{ delay: 4500 } }); })(); //buscador (function(){ var speed = 500; $("#btn-search-edireto").on("click", function(){ $("#btn-search-edireto").hide(); $("#btn-close-edireto").show(); searchOpen(); }); $("#btn-close-edireto").on("click", function(){ $("#btn-search-edireto").show(); $("#btn-close-edireto").hide(); searchClose(); }); function searchOpen(){ $(".header-middle-row .header-row > div:first").animate({ width: "0px" }, speed); $(".header-middle-row .header-row > div:nth-child(2)").removeClass("col-4").addClass("col-2"); $(".header-middle-row .header-row > div:nth-child(3)").removeClass("col-lg-4").addClass("col-lg"); $(".header-middle-row .top-search-form").addClass("d-block").removeClass("d-none").animate({ width: '100%' }, { duration: speed, complete: function(){ $(".header-middle-row .top-search-form").css({ "overflow": "visible"}); } }); $(".header-middle-row .top-search-form form input").focus(); } function searchClose(){ $(".header-middle-row .header-row > div:first").animate({ width: "auto" }, speed); $(".header-middle-row .header-row > div:nth-child(2)").removeClass("col-2").addClass("col-4"); $(".header-middle-row .header-row > div:nth-child(3)").removeClass("col-lg").addClass("col-lg-4"); $(".header-middle-row .top-search-form").addClass("d-none").removeClass("d-block").animate({ width: '0%' }, { duration: speed, }); } })(); /* //Buscador (function(){ var speed = 500; $(".btn-search").on("click", function(e){ e.preventDefault(); console.log( "ready!" ); if(!$(".top-search-form").is(":visible")){ searchOpen(); }else{ //$(".top-search-form form").submit(); searchClose(); } }); $(".top-search-form").on("blur", function(){ setTimeout(function(){ searchClose(); }, 200000); }); function searchOpen(){ //exibir buscador. $(".header-row > div:first").animate({ width: "0px" }, speed); $(".header-row > div:nth-child(2)").removeClass("col-4").addClass("col-2"); $(".header-row > div:nth-child(3)").removeClass("col-lg-4").addClass("col-lg"); $(".top-search-form").addClass("d-block").animate({ width: '100%' }, { duration: speed, complete: function(){ $(".top-search-form").css({ "overflow": "visible"}); } }); $(".top-search-form form input").focus(); searchClose(); } function searchClose(){ if($(".top-search-form").is(":visible")){ $(".btn-search").hide(); $(".btn-close").show(); $(".btn-close").on("click", function(){ $(".btn-search").show(); $(".btn-close").hide(); $(".header-row > div:first").animate({ width: "auto" }, speed); $(".header-row > div:nth-child(2)").removeClass("col-2").addClass("col-4"); $(".header-row > div:nth-child(3)").removeClass("col-lg").addClass("col-lg-4"); $(".top-search-form").addClass("d-none").animate({ width: '0' }, { duration: speed, complete: function(){ $(".top-search-form").css({ "overflow": "hidden"}); } }); }); } } })(); */ //carrossel de filtros mobile v2 - swiper. (function(){ const swiper = new Swiper (".swiperBussines, .swiperPackage",{ preloadImages: false, lazy: true, grabCursor: true, centeredSlides: false, centeredSlidesBounds: true, loop: false, rewind: true, freeMode: false, navigation:{ nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, pagination: { el: '.swiper-pagination', type: "bullets" }, breakpoints:{ '@0.50': { slidesPerView: 2, spaceBetween: 10, centeredSlides: false, centeredSlidesBounds: true, freeMode: true, }, '@0.75': { slidesPerView: 3, spaceBetween: 20, centeredSlides: false, centeredSlidesBounds: true, freeMode: true, }, '@1.00': { slidesPerView: 3, spaceBetween: 20, centeredSlides: false, centeredSlidesBounds: true }, '@1.50': { slidesPerView: 5, spaceBetween: 0, centeredSlides: false, centeredSlidesBounds: true, } }, on:{ beforeInit: function(swiper){ $(swiper.el).css("display", "block"); }, init: function(){ if(mobileDetect.phone && this.slides.length <= this.params.slidesPerView){ this.navigation.destroy(); } } } }); })(); // carrossel produtos 01. (function(){ const swiper = new Swiper (".swiperProducts",{ preloadImages: false, lazy: true, grabCursor: true, centeredSlides: false, centeredSlidesBounds: true, loop: false, rewind: true, freeMode: false, uniqueNavElements: true, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, pagination: { el: '.swiper-pagination', type: "bullets" }, breakpoints:{ 300: { slidesPerView: 2, centeredSlides: false, centeredSlidesBounds: true, freeMode: true, }, 700: { slidesPerView: 3, centeredSlides: false, centeredSlidesBounds: true, freeMode: true, }, 1400: { slidesPerView: 4, centeredSlides: false, centeredSlidesBounds: true, } }, on:{ beforeInit: function(swiper){ $(swiper.el).css("display", "block"); }, init: function(){ if(mobileDetect.phone && this.slides.length <= this.params.slidesPerView){ this.navigation.destroy(); } } } }); })(); //botões quantidade produto. (function(){ var qtdeMin = $("#quantity").data("minimum-quantity") ? $("#quantity").data("minimum-quantity") : 1; var qtdeMax = $("#quantity").data("maximum-quantity") ? $("#quantity").data("maximum-quantity") : 1; $(".quantity-down").click(function(){ var quantity = parseFloat($("#quantity").val()) - 1; if(quantity >= qtdeMin && quantity <= qtdeMax){ $("#quantity").val(quantity); //freteCalculate(); }else{ alert("Quantidade mínima permitida: " + qtdeMin); } }); $(".quantity-up").click(function(){ var quantity = parseFloat($("#quantity").val()) + 1; if(quantity >= qtdeMin && quantity <= qtdeMax){ $("#quantity").val(quantity); //freteCalculate(); }else{ alert("Quantidade máxima permitida: " + qtdeMax); } }); })(); //Cálcular e exibir o preço total. (function(){ //calcular preço no load da página. priceCalculate(); $("#quantity, .quantity-down, .quantity-up").on("change, click", function(){ freteHide(); //ocultar o preço com frete. priceCalculate(); //recalcular. }); })(); //calcular o preço na página do produto. function priceCalculate(){ if(location.pathname === "/checkout/") return false; var isLog = true; if(isLog) console.log("priceCalculate();"); var quantity = parseFloat($("#quantity").val()); //verificar se existe desconto progressivo. var finalValue = null; if(typeof promotionProgressive !== "undefined" && Array.isArray(promotionProgressive)){ $(promotionProgressive).each(function(){ if(quantity >= this.start && quantity <= this.end){ finalValue = this.finalValue; if(isLog) console.log("finalValue: " + finalValue); return true; } }); } if(finalValue){ //preço com desconto progressivo. priceTotal = quantity * finalValue; //preço unitário com desconto progressivo. //var priceUnit = {{ (promotion ? promotion.finalPrice : price) / qtdePorCaixa }}; priceUnit = finalValue / qtdePorCaixa; }else{ //preço conforme DE ou POR. priceTotal = quantity * productPrice; //preço unitário onforme DE ou POR.. priceUnit = productPrice / qtdePorCaixa; } $(".price-total-num").html(priceTotal.toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 2, maximumFractionDigits: 2 })); $(".price-unit-num").html(priceUnit.toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 2, maximumFractionDigits: 2 })); return priceTotal; } //Cálcular e exibir a quantidade total. (function(){ $("#quantity, .quantity-down, .quantity-up").on("change, click", function(){ var quantity = parseInt($("#quantity").val()); qtdeTotal = quantity * qtdePorCaixa; $(".qtde-total").html(qtdeTotal.toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 0 })); }); })(); //reescrevar modal retirada em loja (function(){ $('.f2-shipping-estimate-action-new').on('click', function (e) { e.preventDefault(); //console.log("CEP: " + cepEncontrado) var cepFormatado = cepEncontrado.slice(0, -3) + '-' + cepEncontrado.slice(-3); //console.log(cepFormatado); var postcode = $('.f2-shipping-estimate-postcode').val(); var quantity = $('.f2-shipping-estimate-quantity').val(); var container = $('.f2-shipping-estimate-container'); var variantId = $('.f2-shipping-estimate-variant-id').val(); quantity = quantity == undefined ? 1 : quantity; if (variantId == undefined) { alert('Informe o produto'); return; } if (postcode == undefined) { alert('Informe o CEP'); return; } $.ajax( { url: '/shipping-method/list-by-variant', type: 'GET', data: { zipCode: postcode, quantity: quantity, variantId: variantId, responseType: 'html' }, beforeSend: function (data) { container.html(' Calculando frete...

'); }, success: function (data) { container.html(processarResposta(data, "CEP: " + cepFormatado + " - " + enderecoCompleto)); }, error: function (data) { console.log('ERROR'); console.log(data); } } ); }); })(); function processarResposta(resposta, endereco) { // Expressão regular para encontrar a parte "A partir de x dias" var regexParte = /(A partir de\s*)(\d+\s*dia(s)?)/; // Encontra a parte "A partir de x dias" na resposta var matchParte = resposta.match(regexParte); var parteEncontrada = matchParte ? matchParte[0] : ''; if(resposta.includes("Retirar na loja")) { // Se estiver presente, adiciona o endereço completo resposta = resposta.replace(parteEncontrada, parteEncontrada + ` - ${endereco}`); } // Substitui a parte encontrada pelo mesmo texto seguido pelo endereço //resposta = resposta.replace(parteEncontrada, parteEncontrada + ` - ${endereco}`); return resposta; } //modal avaliações. (function(){ if($("body section div").hasClass("ic-product-details") >= 0){ $(".comments-btn a").click(function(){ $(".modal-comments").show(); $(".modal-comments #close-modal").click(function(){ $(".modal-comments").hide(); }); }); } })(); //modal complementares. (function(){ $.getJSON("/checkout/current-cart", function(cart){ var items = []; if(cart.items){ items = $.merge(items, cart.items); } if(cart.sales){ for(let i = 0; i < cart.sales.length; i++){ items = $.merge(items, cart.sales[i].items); } } //Pega os dados do produto atual da página const data = JSON.parse($("#produto-data").text()); const product = data.items[0]; //Usa o ID ou o código de referência do produto para comparação const productRefCode = product.id || product.referenceCode; // Verifica se o produto já está no carrinho const productCart = items.some(function(item) { return item.variant && item.variant.referenceCode === productRefCode; }); //produto já adicionado no carrinho, retorna o alert da Flexy. if(productCart) { return; } var btnBuyProduct = $(".product-information .btn-buy-edireto"); if(typeof tipoComplementar !== "undefined" && tipoComplementar){ btnBuyProduct.click(function(){ //show modal. complementarModal = Fancybox.show([{ src: "#modalComplementar", type: "inline" }]); itemsCart(); }); console.log("➕ Produto complementar - exibindo modal de complementares."); }else{ btnBuyProduct.click(function(){ Swal.fire({ icon: 'success', html: 'O que deseja agora?', showConfirmButton: true, confirmButtonText: 'IR PARA O CARRINHO', showCancelButton: true, cancelButtonText: 'CONTINUAR COMPRANDO', reverseButtons: true, buttonsStyling: false, customClass: { confirmButton: 'btn border border-dark rounded btn-light-gray mt-3 mt-lg-0 mx-2', cancelButton: 'btn border border-dark rounded btn-orange mt-3 mt-lg-0 mx-2' }, allowOutsideClick: false, timer: 0, timerProgressBar: false, heightAuto: false, width: '40em' }).then((result) => { if(result.isConfirmed){ window.location = "/cart/"; }; itemsCart(); }); }); console.log("➕ Produto normal - exibindo modal normal."); } }); /* return false; if(typeof tipoComplementar === 'undefined') return false; if(tipoComplementar){ $(".product-information .btn-buy-edireto").click(function(){ //show modal. complementarModal = Fancybox.show([{ src: "#modalComplementar", type: "inline" }]); }); } */ })(); //carrossel página de produto. (function(){ if(location.pathname === "/checkout/") return false; if($("body section div").hasClass("ic-product-details") >= 0){ const container = document.getElementById("fancyCarousel"); const options = { Dots: mobileDetect.phone() ? true : false, Thumbs: { type: "classic" }, adaptiveHeight: true, }; new Carousel(container, options, { Thumbs }); Fancybox.bind('[data-fancybox="gallery"]', { src: "https://www.youtube.com/" + urlVideoProduct, type: "iframe" }); } })(); function embedResponsiveV5(selector){ //função embedResponsive para Bootstrap 5. if(!selector){ selector = 'iframe[data-src*="youtube.com"], iframe[src*="youtube.com"], iframe[data-src*="google.com/maps"], iframe[src*="google.com/maps"]'; } $(selector).each(function(){ if(!$(this).data("ic") && !$(this).hasClass("embed-responsive-item") && !$(this).parent().hasClass("ratio")){ $(this).attr("data-ic", true); $(this).addClass("lazy"); $(this).removeAttr("height width"); //ratio-1x1. var clone = $(this).clone().insertBefore($(this)); $(clone).wrap('
'); //ratio-21x9. $(this).wrap('
'); } }); } embedResponsiveV5(); }); /*---- GLOBAL SCOPE ----*/ var freteModal = null; function freteCalculate(){ //calcular frete na página do produto. if($.cookie('customerCep')){ $(".product-information #calculate").trigger("click", function(){ return true; }); } } function freteHide(){ $(".shipping-estimate").hide(); } function setFreteCookie(cep){ if(cep !== ""){ //set cookie. $.cookie('customerCep', cep, { expires: 45, path: "/" }); } //change cep modal cep. if(freteModal){ if(freteModal.isClosing()){ $("#customerCep").val($.cookie('customerCep')); } } //change cep input page product. $("#zipCode").val($.cookie('customerCep')); //display cep bar header. $("#cepLocation").removeClass("d-none"); $("#cepLocation .cepLocation").html($.cookie('customerCep')); } //automatização do frete na página de checkout. function shippingAuto(){ if(location.pathname === "/checkout/"){ console.log("Iniciando automatização de frete..."); //Garante apenas um intervalo seja ativo. if(window.observerShippingLoad){ clearInterval(window.observerShippingLoad); } //inicio da execução. window.observerShippingLoad = setInterval(() => { //pegar os valores passado na opções de frete. const storeShippingMethods = $("#shipping-list .shopping-store-shipping"); if(storeShippingMethods.length > 0){ //array passando os valores para o ajax var shippingData = []; //checa opções de fretes disponíveis. storeShippingMethods.each(function(){ const storeElement = $(this); const firstShipping = storeElement.find(".shipping-method").first(); //verifica se a primeira opção está marcado. if(firstShipping.length > 0 && !firstShipping.prop("checked")){ console.log("Selecionando o frete: " + firstShipping + firstShipping.val()); firstShipping.prop("checked", true).trigger("click").trigger("change").trigger("input"); //valores que serão passados ao AJAX const configurationId = firstShipping.val(); // valor do metodo const referenceCode = storeElement.attr("referencecode"); // valor do lojista if (configurationId && referenceCode) { shippingData.push({ configurationId, referenceCode }); } }; }); //Finaliza o loop de verificação clearInterval(window.observerShippingLoad); console.log("Opções de frete carregadas e processadas."); if(shippingData.length > 0){ var requestData = { value: 0 }; shippingData.forEach((item, index) => { requestData[`shippingMethods[${index}][configurationId]`] = item.configurationId; requestData[`shippingMethods[${index}][referenceCode]`] = item.referenceCode; }); console.log("Enviando requisição AJAX com:", requestData); $.ajax({ url: "/checkout/boleto/rules?", type: "GET", data: requestData, success: function (response) { console.log("Frete atualizado com sucesso:", response); $("#shipping-list").trigger("change").trigger("input"); }, error: function (error) { console.error("Erro ao atualizar frete:", error); } }); } } }, 200); } } //inicia a função shippingAuto(); //quando alterado o endereço de entrega resetar a função. $(".address-box .radio").off("click").on("click", function(){ console.log("Endereço alterado, reiniciando processo de frete..."); shippingAuto(); }); //ajuste de formas de pagamento. (function(){ if(location.pathname === "/checkout/"){ $(".payment-box .nav-tabs li").removeClass("active"); $(".payment-box .tab-pane").removeClass("active"); //define "Boleto" como padrão $(".payment-box .nav-tabs li#tab-pix").addClass("active"); $(".payment-box .payment-tabs #pix").addClass("active"); //manipula a troca de abas corretamente $(".nav-tabs li a").click(function (e) { e.preventDefault(); var target = $(this).attr('href'); // Obtém o ID da aba alvo //remove as classes "active" das abas e painéis $(".nav-tabs li").removeClass("active"); $(".tab-pane").removeClass("active"); //adiciona "active" na aba e no painel correspondente $(this).parent().addClass("active"); $(target).addClass("active"); }); } })(); //fazer o badge no icone de carrinho. function itemsCart(){ $.getJSON("/checkout/current-cart", function(cart) { var items = []; if (cart.items && cart.items.length > 0) { items = $.merge(items, cart.items); } if (cart.sales && cart.sales.length > 0) { for (var i = 0; i < cart.sales.length; i++) { items = $.merge(items, cart.sales[i].items); } } var count = 0; for (var j = 0; j < items.length; j++) { var item = items[j]; count += item.variant.isFractionalStock ? 1 : item.quantity; } var displayCount = (window.innerWidth < 991 || screen.width < 991) ? '' + count + '' : count; $(".cart-items-count").html(displayCount); }); } itemsCart();