Combo perfeito para cuidar da sua beleza de dentro para fora. O melhor colágeno para pele, cabelo e unhas e o fibras, que auxilia na digestão e na regularidade do intestino. 

 

COLÁGENO PRÓ SKIN

- Peptídeos de Colágeno Verisol

 

- Bioativos Amazônicos que auxiliam a sintetizar o colágeno

 

- Fonte de Vitamina C

 

- Fonte de Zinco e Ferro

 

- Sabor natural de Camu-camu (cítrico, semelhante ao sabor da Acerola)

 

- 30 doses em 210g

O Colágeno Pro Skin é a combinação perfeita de bioativos e nutrientes servindo como um alimento funcional para uma pele mais firme e viçosa, unhas e cabelos mais fortes, melhora da saúde e da qualidade de vida. É fonte de vitamina C, zinco e ferro. O Verisol®, que são os Peptídeos de Colágeno, é obtido a partir de uma tecnologia exclusiva alemã, comprovada como o melhor colágeno para pele do mundo. Atua nas células da pele, restaurando a jovialidade de dentro para fora e prevenindo o envelhecimento cutâneo.

O Camu-Camu acumula nutrientes essenciais e sintetiza mais vitamina C do que qualquer outra fonte natural, o qual é um ativo essencial para a ação do colágeno no organismo. O Cubiu conta com altíssimas propriedades nutricionais e atua como precursor de hormônios essenciais para manutenção de uma pele saudável.

 

Vitalidade para seu cabelo, pele e unhas

O colágeno é um componente essencial para manter a saúde do cabelo, as unhas e as articulações, além da elasticidade da pele que se perde ao longo do tempo. A principal função deste suplemento é fornecer resistência ao alongamento dos tecidos e colaborar com o correto funcionamento da cartilagem e dos ossos.

 

**Por ser um produto natural e sem aditivos químicos, pode haver uma pequena variação de cor, textura e sabor entre um lote e outro. São usados frutos integrais na composição do produto, portanto há a presença de fibras residuais.**

 

Sugestão de uso

Adicione 7g (1 medidor) em 200ml de água, suco ou outra bebida de sua preferência. O colágeno pode ser consumido a qualquer momento do dia. 

*Para um melhor resultado sugerimos o uso do produto de forma regular e contínua.

*Este produto não substitui uma alimentação equilibrada.

Ingredientes

Colágeno Verisol, Camu-camu, Cubiu, glicosídeo de esteviol, bisglicinato de zinco, aroma natural de morango, ácido ascórbico, beterraba em pó. Não contém Glúten, Não contém Lactose. 

 

fibras - SEU INTESTINO REGULADO

  • Fonte de fibras - 4g por dose
  • Baixo teor calórico
  • Saúde dos intestinos - regularidade e bom funcionamento

DESCRIÇÃO

O Fibras é um suplemento natural de fibras solúveis e insolúveis que auxiliam no funcionamento do intestino e promove o controle da absorção de carboidratos e lipídios.  A sua ingestão regular promove um ambiente favorável à microbiota intestinal.  Pode ser adicionado a qualquer tipo de alimento ou bebida. 

Sem adição de açúcares ou de ingredientes sintéticos na formulação.

ATIVOS NATURAIS

✓ Farinha de casca do maracujá: A farinha da casca do maracujá é rica em fibras, vitaminas e minerais, podendo ser considerada uma ótima aliada do processo de emagrecimento. Além disso, devido às suas propriedades, ajuda a regular os níveis de colesterol e glicose, além de garantir a sensação de saciedade.Esta farinha ajuda a emagrecer porque contém pectina, o que ajuda a diminuir os picos de glicemia na corrente sanguínea, que são responsáveis por gerar fome e vontade de comer doces.

✓ Farinha de banana verde: Esta farinha é produzida da fruta quando ela ainda não amadureceu. O alimento possui fibras, proteínas, minerais e vitaminas como zinco, magnésio, manganês e potássio, além de ter baixo índice glicêmico. E também contém baixos teores de gorduras e sódio. Quando a fruta ainda não amadureceu, seu teor de amido resistente é ainda maior do que na fruta madura. E há diversas pesquisas científicas que comprovam seus benefícios para a saúde.

✓ Farinha de cubiu: É rica em fibras, proteínas, vitaminas e sais minerais. O cubiu é rico também em ferro, fósforo, vitamina B5, vitamina C e possui elevada concentração de Niacina (vitamina B3), três vezes maior que a beringela e doze vezes mais que a beterraba. A vitamina B3 é essencial para o funcionamento do sistema nervoso e para o bom desempenho das funções cerebrais e, além de promover benefícios para a pele, auxilia na redução da taxa de colesterol, dos triglicérides e dos níveis de glicemia no sangue.

✓ Polidextrose: A polidextrose é uma fibra alimentar prebiótica natural solúvel em água. Conhecida como superfibra, ela é capaz de reduzir a absorção de gorduras e calorias pelo organismo humano e melhorar o funcionamento do intestino.

SUGESTÕES DE USO

Diluir 1 porção (10g) em 200 mL de água ou outras bebidas de sua preferência como leite ou suco de frutas. Mexer com auxílio de uma colher ou misturador de bebidas e consumir imediatamente. Consumir duas vezes ao dia. Pode ser usado no preparo de receitas culinárias ou ser adicionado diretamente sobre o alimento.

INGREDIENTES

Farinha da casca do maracujá, Farinha de banana verde, Farinha de cubiu, Polidextrose, Goma xantana e Goma guar.

R$165,00

R$148,50

3 x de R$49,50 sem juros
meios de pagamento
Meios de envio
Descrição

Combo perfeito para cuidar da sua beleza de dentro para fora. O melhor colágeno para pele, cabelo e unhas e o fibras, que auxilia na digestão e na regularidade do intestino. 

 

COLÁGENO PRÓ SKIN

- Peptídeos de Colágeno Verisol

 

- Bioativos Amazônicos que auxiliam a sintetizar o colágeno

 

- Fonte de Vitamina C

 

- Fonte de Zinco e Ferro

 

- Sabor natural de Camu-camu (cítrico, semelhante ao sabor da Acerola)

 

- 30 doses em 210g

O Colágeno Pro Skin é a combinação perfeita de bioativos e nutrientes servindo como um alimento funcional para uma pele mais firme e viçosa, unhas e cabelos mais fortes, melhora da saúde e da qualidade de vida. É fonte de vitamina C, zinco e ferro. O Verisol®, que são os Peptídeos de Colágeno, é obtido a partir de uma tecnologia exclusiva alemã, comprovada como o melhor colágeno para pele do mundo. Atua nas células da pele, restaurando a jovialidade de dentro para fora e prevenindo o envelhecimento cutâneo.

O Camu-Camu acumula nutrientes essenciais e sintetiza mais vitamina C do que qualquer outra fonte natural, o qual é um ativo essencial para a ação do colágeno no organismo. O Cubiu conta com altíssimas propriedades nutricionais e atua como precursor de hormônios essenciais para manutenção de uma pele saudável.

 

Vitalidade para seu cabelo, pele e unhas

O colágeno é um componente essencial para manter a saúde do cabelo, as unhas e as articulações, além da elasticidade da pele que se perde ao longo do tempo. A principal função deste suplemento é fornecer resistência ao alongamento dos tecidos e colaborar com o correto funcionamento da cartilagem e dos ossos.

 

**Por ser um produto natural e sem aditivos químicos, pode haver uma pequena variação de cor, textura e sabor entre um lote e outro. São usados frutos integrais na composição do produto, portanto há a presença de fibras residuais.**

 

Sugestão de uso

Adicione 7g (1 medidor) em 200ml de água, suco ou outra bebida de sua preferência. O colágeno pode ser consumido a qualquer momento do dia. 

*Para um melhor resultado sugerimos o uso do produto de forma regular e contínua.

*Este produto não substitui uma alimentação equilibrada.

Ingredientes

Colágeno Verisol, Camu-camu, Cubiu, glicosídeo de esteviol, bisglicinato de zinco, aroma natural de morango, ácido ascórbico, beterraba em pó. Não contém Glúten, Não contém Lactose. 

 

fibras - SEU INTESTINO REGULADO

  • Fonte de fibras - 4g por dose
  • Baixo teor calórico
  • Saúde dos intestinos - regularidade e bom funcionamento

DESCRIÇÃO

O Fibras é um suplemento natural de fibras solúveis e insolúveis que auxiliam no funcionamento do intestino e promove o controle da absorção de carboidratos e lipídios.  A sua ingestão regular promove um ambiente favorável à microbiota intestinal.  Pode ser adicionado a qualquer tipo de alimento ou bebida. 

Sem adição de açúcares ou de ingredientes sintéticos na formulação.

ATIVOS NATURAIS

✓ Farinha de casca do maracujá: A farinha da casca do maracujá é rica em fibras, vitaminas e minerais, podendo ser considerada uma ótima aliada do processo de emagrecimento. Além disso, devido às suas propriedades, ajuda a regular os níveis de colesterol e glicose, além de garantir a sensação de saciedade.Esta farinha ajuda a emagrecer porque contém pectina, o que ajuda a diminuir os picos de glicemia na corrente sanguínea, que são responsáveis por gerar fome e vontade de comer doces.

✓ Farinha de banana verde: Esta farinha é produzida da fruta quando ela ainda não amadureceu. O alimento possui fibras, proteínas, minerais e vitaminas como zinco, magnésio, manganês e potássio, além de ter baixo índice glicêmico. E também contém baixos teores de gorduras e sódio. Quando a fruta ainda não amadureceu, seu teor de amido resistente é ainda maior do que na fruta madura. E há diversas pesquisas científicas que comprovam seus benefícios para a saúde.

✓ Farinha de cubiu: É rica em fibras, proteínas, vitaminas e sais minerais. O cubiu é rico também em ferro, fósforo, vitamina B5, vitamina C e possui elevada concentração de Niacina (vitamina B3), três vezes maior que a beringela e doze vezes mais que a beterraba. A vitamina B3 é essencial para o funcionamento do sistema nervoso e para o bom desempenho das funções cerebrais e, além de promover benefícios para a pele, auxilia na redução da taxa de colesterol, dos triglicérides e dos níveis de glicemia no sangue.

✓ Polidextrose: A polidextrose é uma fibra alimentar prebiótica natural solúvel em água. Conhecida como superfibra, ela é capaz de reduzir a absorção de gorduras e calorias pelo organismo humano e melhorar o funcionamento do intestino.

SUGESTÕES DE USO

Diluir 1 porção (10g) em 200 mL de água ou outras bebidas de sua preferência como leite ou suco de frutas. Mexer com auxílio de uma colher ou misturador de bebidas e consumir imediatamente. Consumir duas vezes ao dia. Pode ser usado no preparo de receitas culinárias ou ser adicionado diretamente sobre o alimento.

INGREDIENTES

Farinha da casca do maracujá, Farinha de banana verde, Farinha de cubiu, Polidextrose, Goma xantana e Goma guar.

// Move to our_content window.urls = { "shippingUrl": "\/frete\/" } document.addEventListener('lazybeforeunveil', function(e){ if ((e.target.parentElement) && (e.target.nextElementSibling)) { var parent = e.target.parentElement; var sibling = e.target.nextElementSibling; if (sibling.classList.contains('js-lazy-loading-preloader')) { sibling.style.display = 'none'; parent.style.display = 'block'; } } }); window.lazySizesConfig = window.lazySizesConfig || {}; lazySizesConfig.hFac = 0.4; DOMContentLoaded.addEventOrExecute(() => { jQueryNuvem(".js-notification-close, .js-tooltip-close").on( "click", function(e) { e.preventDefault(); jQueryNuvem(e.currentTarget).closest(".js-notification, .js-tooltip").hide(); }); jQueryNuvem(document).on("click", ".js-tooltip-open", function(e) { e.preventDefault(); jQueryNuvem(this).next(".js-tooltip").show(); }); var $notification_status_page = jQueryNuvem(".js-notification-status-page"); var $fixed_bottom_button = jQueryNuvem(".js-btn-fixed-bottom"); var head_height = jQueryNuvem(".js-head-main").height(); if ($notification_status_page.length > 0){ if (LS.shouldShowOrderStatusNotification($notification_status_page.data('url'))){ $notification_status_page.css("top" , head_height + 15 + "px"); $notification_status_page.show(); }; jQueryNuvem(".js-notification-status-page-close").on( "click", function(e) { e.preventDefault(); LS.dontShowOrderStatusNotificationAgain($notification_status_page.data('url')); }); } jQueryNuvem(".js-cart-notification-close").on("click", function(){ jQueryNuvem(".js-alert-added-to-cart").removeClass("notification-visible").addClass("notification-hidden"); setTimeout(function(){ jQueryNuvem('.js-cart-notification-item-img').attr('src', ''); jQueryNuvem(".js-alert-added-to-cart").hide(); },2000); }); const footerLegal = jQueryNuvem(".js-footer-legal"); restoreNotifications = function(){ // Whatsapp button position $fixed_bottom_button.css("marginBottom", "0"); footerLegal.removeAttr("style"); }; if (!window.cookieNotificationService.isAcknowledged()) { jQueryNuvem(".js-notification-cookie-banner").show(); const cookieBannerHeight = jQueryNuvem(".js-notification-cookie-banner").outerHeight(); footerLegal.css("paddingBottom", cookieBannerHeight + 40 + "px"); if (window.innerWidth < 768) { $fixed_bottom_button.css("marginBottom", cookieBannerHeight + 20 + "px"); } } jQueryNuvem(".js-acknowledge-cookies").on( "click", function(e) { window.cookieNotificationService.acknowledge(); footerLegal.removeAttr("style"); restoreNotifications(); }); restoreQuickshopForm = function(){ jQueryNuvem("#quickshop-modal .js-item-product").removeClass("js-swiper-slide-visible js-item-slide"); jQueryNuvem("#quickshop-modal .js-quickshop-container").attr( { 'data-variants' : '' , 'data-quickshop-id': '' } ); jQueryNuvem("#quickshop-modal .js-item-product").attr('data-product-id', ''); setTimeout(function(){ var $quickshop_form = jQueryNuvem("#quickshop-form").find('.js-product-form'); var $item_form_container = jQueryNuvem(".js-quickshop-opened").find(".js-item-variants"); $quickshop_form.detach().appendTo($item_form_container); jQueryNuvem(".js-quickshop-opened").removeClass("js-quickshop-opened"); jQueryNuvem("#quickshop-modal .js-quickshop-img").attr('srcset', ''); jQueryNuvem("#quickshop-form").removeAttr("style"); },350); }; resetSearchBox = function(){ jQueryNuvem(".js-search-input").val(""); jQueryNuvem(".js-search-form-suggestions").hide(); const empty_search = jQueryNuvem(".js-empty-search"); const empty_submit = jQueryNuvem(".js-search-input-submit"); empty_search.fadeOut(100); empty_submit.fadeIn(100); }; if (window.innerWidth < 768) { cleanURLHash = function(){ const uri = window.location.toString(); const clean_uri = uri.substring(0, uri.indexOf("#")); window.history.replaceState({}, document.title, clean_uri); }; goBackBrowser = function(){ cleanURLHash(); history.back(); }; if(window.location.href.indexOf("modal-fullscreen") > -1) { cleanURLHash(); } jQueryNuvem(document).on("click", ".js-fullscreen-modal-open", function(e) { e.preventDefault(); var modal_url_hash = jQueryNuvem(this).data("modalUrl"); window.location.hash = modal_url_hash; }); jQueryNuvem(document).on("click", ".js-fullscreen-modal-close", function(e) { e.preventDefault(); goBackBrowser(); }); window.onhashchange = function() { if(window.location.href.indexOf("modal-fullscreen") <= -1) { if(jQueryNuvem(".js-fullscreen-modal").hasClass("modal-show")){ if(jQueryNuvem(".js-modal.modal-show").length == 1){ jQueryNuvem("body").removeClass("overflow-none"); } var $opened_modal = jQueryNuvem(".js-fullscreen-modal.modal-show"); var $opened_modal_overlay = $opened_modal.prev(); $opened_modal.removeClass("modal-show"); setTimeout(() => $opened_modal.hide(), 500); $opened_modal_overlay.fadeOut(500); resetSearchBox(); restoreQuickshopForm(); } } } } modalOpen = function(modal_id){ var $overlay_id = jQueryNuvem('.js-modal-overlay[data-modal-id="' + modal_id + '"]'); if (jQueryNuvem(modal_id).hasClass("modal-show")) { if(jQueryNuvem(".js-modal.modal-show").length == 1){ jQueryNuvem("body").removeClass("overflow-none"); } let modal = jQueryNuvem(modal_id).removeClass("modal-show"); setTimeout(() => modal.hide(), 500); } else { if(!jQueryNuvem(".js-modal.modal-show").length){ jQueryNuvem("body").addClass("overflow-none move-right"); } jQueryNuvem(modal_id).detach().appendTo("body"); jQueryNuvem(modal_id).show().addClass("modal-show"); if (((jQueryNuvem(modal_id).hasClass("js-modal-overlay-md")) && (window.innerWidth > 768)) || (!jQueryNuvem(modal_id).hasClass("js-modal-overlay-md"))) { $overlay_id.fadeIn(400); $overlay_id.detach().insertBefore(modal_id); } } }; jQueryNuvem(document).on("click", ".js-modal-open", function(e) { e.preventDefault(); const modal_id = jQueryNuvem(this).data('toggle'); modalOpen(modal_id); }); jQueryNuvem(document).on("click", ".js-modal-close", function(e) { e.preventDefault(); if(jQueryNuvem(".js-modal.modal-show").length == 1){ jQueryNuvem("body").removeClass("overflow-none"); } var $modal = jQueryNuvem(this).closest(".js-modal"); var modal_id = $modal.attr('id'); var $overlay_id = jQueryNuvem('.js-modal-overlay[data-modal-id="#' + modal_id + '"]'); $modal.removeClass("modal-show"); setTimeout(() => $modal.hide(), 500); $overlay_id.fadeOut(500); if ((window.innerWidth < 768) && (jQueryNuvem(this).hasClass(".js-fullscreen-modal-close"))) { goBackBrowser(); } resetSearchBox(); restoreQuickshopForm(); }); jQueryNuvem(document).on("click", ".js-modal-overlay", function(e) { e.preventDefault(); if(jQueryNuvem(".js-modal.modal-show").length == 1){ jQueryNuvem("body").removeClass("overflow-none"); } var modal_id = jQueryNuvem(this).data('modalId'); let modal = jQueryNuvem(modal_id).removeClass("modal-show"); setTimeout(() => modal.hide(), 500); jQueryNuvem(this).fadeOut(500); resetSearchBox(); restoreQuickshopForm(); }); jQueryNuvem(document).on("click", ".js-card-collapse-toggle", function(e) { e.preventDefault(); var parent = jQueryNuvem(this).closest(".js-card-collapse"); parent.find(".js-card-collapse-icon").toggle(); parent.toggleClass('active'); }); const inViewport = (entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting && !entry.target.observed) { entry.target.classList.add("is-inViewport"); entry.target.observed = true; } }); }; // Attach observer to every [data-transition] element: const ELs_inViewport = document.querySelectorAll('[data-transition]'); ELs_inViewport.forEach(EL => { EL.observed = false; // Initialize the observed flag for each element const Obs = new IntersectionObserver(inViewport); Obs.observe(EL); }); applyMarqueeAnimation = function(marqueeSelector, textSelector){ var defaultDelay = 5; var defaultWidth = 300; var animatedWidth = jQueryNuvem(textSelector).first(el => el.offsetWidth); var newDelay = defaultDelay*(animatedWidth/defaultWidth)*1.5; if((window.innerWidth > 768) && (newDelay < 40)){ var newDelay = newDelay + 20; } jQueryNuvem(marqueeSelector).css("animation", "marquee " + newDelay + "s linear infinite"); }; jQueryNuvem(".js-toggle-menu-panel").click(function (e) { e.preventDefault(); jQueryNuvem(this).next(".js-menu-panel").show().addClass("nav-list-panel-show"); }); jQueryNuvem(".js-toggle-menu-back").click(function (e) { e.preventDefault(); var $panel_to_change = jQueryNuvem(this).closest(".js-menu-panel"); $panel_to_change.removeClass("nav-list-panel-show"); setTimeout(function(){ $panel_to_change.hide(); },600); }); closeHamburgerSubpanels = function() { jQueryNuvem("#nav-hamburger").addClass("modal-transition-fast"); jQueryNuvem(".js-menu-panel").removeClass("nav-list-panel-show"); setTimeout(function(){ jQueryNuvem(".js-menu-panel").hide(); jQueryNuvem("#nav-hamburger").removeClass("modal-transition-fast"); },1000); }; jQueryNuvem(".js-toggle-menu-close, .js-modal-overlay[data-modal-id='#nav-hamburger'").click(function () { closeHamburgerSubpanels(); }); var win_height = window.innerHeight; const logoContainer = jQueryNuvem('.js-logo-container'); jQueryNuvem(".js-desktop-dropdown").css('maxHeight', (win_height - head_height - 50).toString() + 'px'); jQueryNuvem(".js-item-subitems-desktop").on("mouseenter", function (e) { jQueryNuvem(e.currentTarget).addClass("active"); }).on("mouseleave", function(e) { jQueryNuvem(e.currentTarget).removeClass("active"); }); jQueryNuvem(".js-nav-main-item").on("mouseenter", function (e) { jQueryNuvem('.js-nav-desktop-list').children(".selected").removeClass("selected"); jQueryNuvem(e.currentTarget).addClass("selected"); }).on("mouseleave", function(e) { const self = jQueryNuvem(this); setTimeout(function(){ self.removeClass("selected"); },500); }); jQueryNuvem(".js-nav-desktop-list-arrow").on("mouseenter", function (e) { jQueryNuvem('.js-desktop-nav-item').removeClass("selected"); }); const menuContainer = jQueryNuvem('.js-nav-desktop-list').first(el => el.offsetWidth); const logoColWidth = logoContainer.first(el => el.offsetWidth); let utilityColWidth = 0; jQueryNuvem('.js-utility-col').each(function(el) { utilityColWidth += jQueryNuvem(el).first(el => el.offsetWidth); }); const totalColsWidth = logoColWidth + utilityColWidth; let menuItems = 0; jQueryNuvem('.js-nav-desktop-list > .js-desktop-nav-item').each(function(el) { menuItems += jQueryNuvem(el).first(el => el.offsetWidth); }); jQueryNuvem(".js-nav-desktop-list").on("scroll", function() { var position = jQueryNuvem('.js-nav-desktop-list').prop("scrollLeft"); if(position == 0) { jQueryNuvem(".js-nav-desktop-list-arrow-left").addClass('disable'); } else { jQueryNuvem(".js-nav-desktop-list-arrow-left").removeClass('disable'); } if(position == ( menuItems - menuContainer )) { jQueryNuvem(".js-nav-desktop-list-arrow-right").addClass('disable'); } else { jQueryNuvem(".js-nav-desktop-list-arrow-right").removeClass('disable'); } }); if (menuContainer < menuItems) { jQueryNuvem('.js-nav-desktop-list').addClass('nav-desktop-with-scroll'); jQueryNuvem('.js-nav-desktop-list-arrow').show(); } setTimeout(function(){ jQueryNuvem(".js-desktop-nav-col, .js-utility-col").css("visibility", "visible").css("height", "auto"); },200); jQueryNuvem(".js-menu-and-banners-row").css("visibility" , "visible").css("height" , "auto").css("overflow" , "initial"); jQueryNuvem('.js-nav-desktop-list-arrow-right').on("click", function() { var posL = jQueryNuvem('.js-nav-desktop-list').prop("scrollLeft") + 400; jQueryNuvem('.js-nav-desktop-list').each((el) => el.scroll({ left: posL, behavior: 'smooth' })); }); jQueryNuvem('.js-nav-desktop-list-arrow-left').on("click", function() { var posR = jQueryNuvem('.js-nav-desktop-list').prop("scrollLeft") - 400; jQueryNuvem('.js-nav-desktop-list').each((el) => el.scroll({ left: posR, behavior: 'smooth' })); }); jQueryNuvem(".js-desktop-dropdown").on("mouseleave", function (e) { const self = jQueryNuvem(this); self.css("pointer-events" , "none"); setTimeout(function(){ self.css("pointer-events" , "initial"); },1000); }); const search_input = jQueryNuvem(".js-search-input"); jQueryNuvem(".js-search-button").on("click", function (e) { setTimeout(function(){ search_input.val('').each(el => el.focus()); },10); }); var $category_controls = jQueryNuvem(".js-category-controls"); function applyOffset(selector){ // Get nav height on load if (window.innerWidth > 768) { setTimeout(function(){ var head_height = jQueryNuvem(".js-head-main").outerHeight(); jQueryNuvem(selector).css("paddingTop", head_height.toString() - 1 + 'px'); },210); }else{ var head_height = 0; } // Apply offset nav height on load window.addEventListener("resize", function() { // Get nav height on resize var head_height = jQueryNuvem(".js-head-main").height(); // Apply offset on resize if (window.innerWidth > 768) { jQueryNuvem(selector).css("paddingTop", head_height.toString() + 'px'); }else{ jQueryNuvem(selector).css("paddingTop", "0px"); } }); } applyOffset(".js-head-offset"); var topbarHeight = jQueryNuvem(".js-topbar").outerHeight(); window.addEventListener("scroll", function() { var scrolledPosition = window.pageYOffset; var header = jQueryNuvem(".js-head-main"); var navbarHeight = header.outerHeight(); if (scrolledPosition > navbarHeight) { header.addClass('compress').css('top', -topbarHeight + 'px' ); } else { header.removeClass('compress').css("top", "0px"); } }); changeLang = function(element) { var selected_country_url = element.find("option").filter((el) => el.selected).attr("data-country-url"); location.href = selected_country_url; }; jQueryNuvem('.js-lang-select').on("change", function (e) { lang_select_option = jQueryNuvem(this); changeLang(lang_select_option); }); var slidesPerViewDesktopVal = 4; var slidesPerViewMobileVal = 2.25; var itemSwiperSpaceBetween = 15; hideSwiperControls = function(elemPrev, elemNext) { if((jQueryNuvem(elemPrev).hasClass("swiper-button-disabled") && jQueryNuvem(elemNext).hasClass("swiper-button-disabled"))){ jQueryNuvem(elemPrev).remove(); jQueryNuvem(elemNext).remove(); } }; // Set loop for related products products sliders function calculateRelatedLoopVal(sectionSelector) { let productsAmount = jQueryNuvem(sectionSelector).attr("data-related-amount"); let loopVal = false; const applyLoop = (window.innerWidth < 768 && productsAmount > slidesPerViewMobileVal) || (window.innerWidth > 768 && productsAmount > slidesPerViewDesktopVal); if (applyLoop) { loopVal = true; } return loopVal; } let alternativeLoopVal = calculateRelatedLoopVal(".js-related-products"); let complementaryLoopVal = calculateRelatedLoopVal(".js-complementary-products"); createSwiper('.js-swiper-related', { lazy: true, loop: alternativeLoopVal, watchOverflow: true, threshold: 5, watchSlideProgress: true, watchSlidesVisibility: true, spaceBetween: itemSwiperSpaceBetween, slideVisibleClass: 'js-swiper-slide-visible', slidesPerView: slidesPerViewMobileVal, navigation: { nextEl: '.js-swiper-related-next', prevEl: '.js-swiper-related-prev', }, on: { afterInit: function () { hideSwiperControls(".js-swiper-related-prev", ".js-swiper-related-next"); }, }, breakpoints: { 768: { slidesPerView: slidesPerViewDesktopVal, } } }); createSwiper('.js-swiper-complementary', { lazy: true, loop: complementaryLoopVal, watchOverflow: true, threshold: 5, watchSlideProgress: true, watchSlidesVisibility: true, spaceBetween: itemSwiperSpaceBetween, slideVisibleClass: 'js-swiper-slide-visible', slidesPerView: slidesPerViewMobileVal, navigation: { nextEl: '.js-swiper-complementary-next', prevEl: '.js-swiper-complementary-prev', }, on: { afterInit: function () { hideSwiperControls(".js-swiper-complementary-prev", ".js-swiper-complementary-next"); }, }, breakpoints: { 768: { slidesPerView: slidesPerViewDesktopVal, } } }); if (window.innerWidth > 767) { jQueryNuvem(document).on("mouseover", ".js-item-with-secondary-image:not(.item-with-two-images)", function(e) { var secondary_image_to_show = jQueryNuvem(this).find(".js-item-image-secondary"); secondary_image_to_show.show(); secondary_image_to_show.on('lazyloaded', function(e){ jQueryNuvem(e.currentTarget).closest(".js-item-with-secondary-image").addClass("item-with-two-images"); }); }); } var nav_height = jQueryNuvem(".js-head-main").innerHeight(); const noStockVariants = (container = null) => { const config = { variantsGroup: ".js-product-variants-group", variantButton: ".js-insta-variant", noStockClass: "btn-variant-no-stock", dataVariationId: "data-variation-id", dataOption: "data-option" }; const wrapper = container ? container : jQueryNuvem('#single-product'); if (!wrapper) return; const dataVariants = wrapper.data('variants'); const variantsLength = wrapper.find(config.variantsGroup).length; const getOptions = (productVariationId, variantOption) => { if (productVariationId === 2) { return { option0: String(wrapper.find(`${config.variantsGroup}[${config.dataVariationId}="0"] select`).val()), option1: String(wrapper.find(`${config.variantsGroup}[${config.dataVariationId}="1"] select`).val()), option2: String(jQueryNuvem(variantOption).attr('data-option')), }; } else if (productVariationId === 1) { return { option0: String(wrapper.find(`${config.variantsGroup}[${config.dataVariationId}="0"] select`).val()), option1: String(jQueryNuvem(variantOption).attr('data-option')), }; } else { return { option0: String(jQueryNuvem(variantOption).attr('data-option')), }; } }; const filterVariants = (options) => { return dataVariants.filter(variant => { return Object.keys(options).every(optionKey => variant[optionKey] === options[optionKey]) && variant.available; }); }; const updateStockStatus = (productVariationId) => { const variationGroup = wrapper.find(`${config.variantsGroup}[${config.dataVariationId}="${productVariationId}"]`); variationGroup.find(`${config.variantButton}.${config.noStockClass}`).removeClass(config.noStockClass); variationGroup.find(config.variantButton).each((variantOption, item) => { const options = getOptions(productVariationId, variantOption); const itemsAvailable = filterVariants(options); const button = wrapper.find(`${config.variantButton}[${config.dataOption}="${options[`option${productVariationId}`].replace(/"/g, '\\"')}"]`); if (!itemsAvailable.length) { button.addClass(config.noStockClass); } }); }; for (let productVariationId = variantsLength - 1; productVariationId >= 0; productVariationId--) { updateStockStatus(productVariationId); } }; noStockVariants(); jQueryNuvem(document).on("click", ".js-quickshop-modal-open", function (e) { e.preventDefault(); var $this = jQueryNuvem(this); if($this.hasClass("js-quickshop-slide")){ jQueryNuvem("#quickshop-modal .js-item-product").addClass("js-swiper-slide-visible js-item-slide"); } let container = jQueryNuvem(this).closest('.js-quickshop-container'); if (!container.length) return; noStockVariants(container); LS.fillQuickshop($this); if (window.innerWidth < 768) { var product_image_dimension = jQueryNuvem(this).closest('.js-item-product').find('.js-item-image-padding').attr("style"); jQueryNuvem("#quickshop-modal .js-quickshop-image-padding").attr("style", product_image_dimension); var quickshop_height = jQueryNuvem("#quickshop-modal").height(); var quickshop_header_height = jQueryNuvem("#quickshop-modal .js-quickshop-header").height(); if(window.innerHeight < (quickshop_height + 1)){ jQueryNuvem("#quickshop-form").css("marginBottom" , quickshop_header_height + "px"); } } }); changeVariantButton = function(selector, parentSelector) { selector.siblings().removeClass("selected"); selector.addClass("selected"); var option_id = selector.attr('data-option'); var parent = selector.closest(parentSelector); var selected_option = parent.find('.js-variation-option option').filter(function (el) { return el.value == option_id; }); selected_option.prop('selected', true).trigger('change'); parent.find('.js-insta-variation-label').html(option_id); } jQueryNuvem(document).on("click", ".js-insta-variant", function (e) { e.preventDefault(); $this = jQueryNuvem(this); changeVariantButton($this, '.js-product-variants-group'); }); LS.registerOnChangeVariant(function(variant){ var current_image = jQueryNuvem('.js-item-product[data-product-id="'+variant.product_id+'"] .js-item-image'); current_image.attr('srcset', variant.image_url); current_image.closest(".js-item-with-secondary-image").removeClass("item-with-two-images"); }); function get_max_installments_without_interests(number_of_installment, installment_data, max_installments_without_interests) { if (parseInt(number_of_installment) > parseInt(max_installments_without_interests[0])) { if (installment_data.without_interests) { return [number_of_installment, installment_data.installment_value.toFixed(2)]; } } return max_installments_without_interests; } function get_max_installments_with_interests(number_of_installment, installment_data, max_installments_with_interests) { if (parseInt(number_of_installment) > parseInt(max_installments_with_interests[0])) { if (installment_data.without_interests == false) { return [number_of_installment, installment_data.installment_value.toFixed(2)]; } } return max_installments_with_interests; } function refreshInstallmentv2(price){ jQueryNuvem(".js-modal-installment-price" ).each(function( el ) { const installment = Number(jQueryNuvem(el).data('installment')); jQueryNuvem(el).text(LS.currency.display_short + (price/installment).toLocaleString('de-DE', {maximumFractionDigits: 2, minimumFractionDigits: 2})); }); } function refreshPaymentDiscount(price){ jQueryNuvem(".js-price-with-discount" ).each(function( el ) { const payment_discount = jQueryNuvem(el).data('paymentDiscount'); jQueryNuvem(el).text(LS.formatToCurrency(price - ((price * payment_discount) / 100))) }); } function changeVariant(variant) { jQueryNuvem(".js-product-detail .js-shipping-calculator-response").hide(); jQueryNuvem("#shipping-variant-id").val(variant.id); var parent = jQueryNuvem("body"); if (variant.element) { parent = jQueryNuvem(variant.element); if(parent.hasClass("js-quickshop-container")){ var quick_id = parent.attr("data-quickshop-id"); var parent = jQueryNuvem('.js-quickshop-container[data-quickshop-id="'+quick_id+'"]'); } } // === ADICIONE ESTAS LINHA === // Atualiza imagem da variação se houver if (variant.image_url && typeof atualizarImagemPrincipal === 'function') { atualizarImagemPrincipal(variant.image_url); } // === FIM DA ADIÇÃO === if(parent.hasClass("js-quickshop-container")){ var itemContainer = parent.closest('.js-item-product'); if(itemContainer.hasClass("js-item-slide")){ var parent = jQueryNuvem('.js-swiper-slide-visible .js-quickshop-container[data-quickshop-id="'+quick_id+'"]'); } noStockVariants(parent); } else { noStockVariants(); } var sku = parent.find('.js-product-sku'); if(sku.length) { sku.text(variant.sku).show(); } var installment_helper = function($element, amount, price){ $element.find('.js-installment-amount').text(amount); $element.find('.js-installment-price').attr("data-value", price); $element.find('.js-installment-price').text(LS.currency.display_short + parseFloat(price).toLocaleString('de-DE', { minimumFractionDigits: 2 })); if(variant.price_short && Math.abs(variant.price_number - price * amount) < 1) { $element.find('.js-installment-total-price').text((variant.price_short).toLocaleString('de-DE', { minimumFractionDigits: 2 })); } else { $element.find('.js-installment-total-price').text(LS.currency.display_short + (price * amount).toLocaleString('de-DE', { minimumFractionDigits: 2 })); } }; if (variant.installments_data) { var variant_installments = JSON.parse(variant.installments_data); var max_installments_without_interests = [0,0]; var max_installments_with_interests = [0,0]; jQueryNuvem('.js-payment-provider-installments-row').hide(); for (let payment_method in variant_installments) { var paymentMethodId = '#installment_' + payment_method.replace(" ", "_") + '_1'; var minimumInstallmentValue = jQueryNuvem(paymentMethodId).closest('.js-info-payment-method').attr("data-minimum-installment-value"); let installments = variant_installments[payment_method]; for (let number_of_installment in installments) { let installment_data = installments[number_of_installment]; max_installments_without_interests = get_max_installments_without_interests(number_of_installment, installment_data, max_installments_without_interests); max_installments_with_interests = get_max_installments_with_interests(number_of_installment, installment_data, max_installments_with_interests); var installment_container_selector = '#installment_' + payment_method.replace(" ", "_") + '_' + number_of_installment; if(minimumInstallmentValue <= installment_data.installment_value) { jQueryNuvem(installment_container_selector).show(); } if(!parent.hasClass("js-quickshop-container")){ installment_helper(jQueryNuvem(installment_container_selector), number_of_installment, installment_data.installment_value.toFixed(2)); } } } var $installments_container = jQueryNuvem(variant.element + ' .js-max-installments-container .js-max-installments'); var $installments_modal_link = jQueryNuvem(variant.element + ' #btn-installments'); var $payments_module = jQueryNuvem(variant.element + ' .js-product-payments-container'); var $installmens_card_icon = jQueryNuvem(variant.element + ' .js-installments-credit-card-icon'); var installments_to_use = max_installments_without_interests[0] > 1 ? max_installments_without_interests : max_installments_with_interests; if(installments_to_use[0] <= 1 ) { $installments_container.hide(); $installments_modal_link.hide(); $payments_module.hide(); $installmens_card_icon.hide(); } else { $installments_container.show(); $installments_modal_link.show(); $payments_module.show(); $installmens_card_icon.show(); installment_helper($installments_container, installments_to_use[0], installments_to_use[1]); } } if(!parent.hasClass("js-quickshop-container")){ jQueryNuvem('#installments-modal .js-installments-one-payment').text(variant.price_short).attr("data-value", variant.price_number); } if (variant.price_short){ parent.find('.js-price-display').text(variant.price_short).show(); parent.find('.js-price-display').attr("content", variant.price_number).data('productPrice', variant.price_number_raw); parent.find('.js-payment-discount-price-product').text(variant.price_with_payment_discount_short); parent.find('.js-payment-discount-price-product-container').show(); } else { parent.find('.js-price-display, .js-payment-discount-price-product-container').hide(); } if ((variant.compare_at_price_short) && !(parent.find(".js-price-display").css("display") == "none")) { parent.find('.js-compare-price-display').text(variant.compare_at_price_short).show(); } else { parent.find('.js-compare-price-display').hide(); } var button = parent.find('.js-addtocart'); const quickshopButtonWording = parent.find('.js-open-quickshop-wording'); const quickshopButtonIcon = parent.find('.js-open-quickshop-icon'); button.removeClass('cart').removeClass('contact').removeClass('nostock'); var $product_shipping_calculator = parent.find("#product-shipping-container"); if (!variant.available){ button.val('Esgotado'); button.addClass('nostock'); button.attr('disabled', 'disabled'); quickshopButtonWording.text('Esgotado'); quickshopButtonIcon.addClass("d-none").removeClass("d-md-inline"); $product_shipping_calculator.hide(); } else if (variant.contact) { button.val('Preço sob Consulta'); button.addClass('contact'); button.removeAttr('disabled'); quickshopButtonWording.text('Preço sob Consulta'); quickshopButtonIcon.addClass("d-none").removeClass("d-md-inline"); $product_shipping_calculator.hide(); } else { button.val('Comprar'); button.addClass('cart'); button.removeAttr('disabled'); quickshopButtonWording.text('Comprar'); quickshopButtonIcon.addClass("d-md-inline"); $product_shipping_calculator.show(); } const base_price = Number(jQueryNuvem("#price_display").attr("content")); refreshInstallmentv2(base_price); refreshPaymentDiscount(variant.price_number); if(variant.stock == 1) { parent.find('.js-last-product').show(); } else { parent.find('.js-last-product').hide(); } LS.updateShippingProduct(); zipcode_on_changevariant = jQueryNuvem("#product-shipping-container .js-shipping-input").val(); jQueryNuvem("#product-shipping-container .js-shipping-calculator-current-zip").text(zipcode_on_changevariant); } jQueryNuvem(document).on("change", ".js-variation-option", function(e) { var $parent = jQueryNuvem(this).closest(".js-product-variants"); var $variants_group = jQueryNuvem(this).closest(".js-product-variants-group"); var $quickshop_parent_wrapper = jQueryNuvem(this).closest(".js-quickshop-container"); var quick_id = $quickshop_parent_wrapper.attr("data-quickshop-id"); if($parent.hasClass("js-product-quickshop-variants")){ var $quickshop_parent = jQueryNuvem(this).closest(".js-item-product"); if($quickshop_parent.hasClass("js-item-slide")){ var $quickshop_variant_selector = '.js-swiper-slide-visible .js-quickshop-container[data-quickshop-id="'+quick_id+'"]'; }else{ var $quickshop_variant_selector = '.js-quickshop-container[data-quickshop-id="'+quick_id+'"]'; } LS.changeVariant(changeVariant, $quickshop_variant_selector); var selected_option_id = jQueryNuvem(this).val(); var $color_parent_to_update = jQueryNuvem('.js-quickshop-container[data-quickshop-id="'+quick_id+'"]'); $color_parent_to_update.find('.js-color-variant[data-option="'+selected_option_id+'"]').addClass("selected").siblings().removeClass("selected"); $variants_group.find('.js-insta-variant[data-option="'+selected_option_id+'"]').addClass("selected").siblings().removeClass("selected"); } else { LS.changeVariant(changeVariant, '#single-product'); } var $this_product_container = jQueryNuvem(this).closest(".js-product-container"); if($this_product_container.hasClass("js-quickshop-container")){ var this_quickshop_id = $this_product_container.attr("data-quickshop-id"); var $this_product_container = jQueryNuvem('.js-product-container[data-quickshop-id="'+this_quickshop_id+'"]'); } var $this_compare_price = $this_product_container.find(".js-compare-price-display"); var $this_price = $this_product_container.find(".js-price-display"); var $installment_container = $this_product_container.find(".js-product-payments-container"); var $installment_text = $this_product_container.find(".js-max-installments-container"); var $this_add_to_cart = $this_product_container.find(".js-prod-submit-form"); // Get the current product discount percentage value var current_percentage_value = $this_product_container.find(".js-offer-percentage"); // Get the current product price and promotional price var compare_price_value = $this_compare_price.html(); var price_value = $this_price.html(); // Calculate new discount percentage based on difference between filtered old and new prices const percentageDifference = window.moneyDifferenceCalculator.percentageDifferenceFromString(compare_price_value, price_value); if(percentageDifference){ $this_product_container.find(".js-offer-percentage").text(percentageDifference); $this_product_container.find(".js-offer-label").css("display" , "table"); } if ($this_compare_price.css("display") == "none" || !percentageDifference) { $this_product_container.find(".js-offer-label").hide(); } if ($this_add_to_cart.hasClass("nostock")) { $this_product_container.find(".js-stock-label").show(); $this_product_container.find(".js-offer-label").hide(); } else { $this_product_container.find(".js-stock-label").hide(); } if ($this_price.css('display') == 'none'){ $installment_container.hide(); $installment_text.hide(); }else{ $installment_text.show(); } }); jQueryNuvem(".js-product-form").on("submit", function (e) { var button = jQueryNuvem(e.currentTarget).find('[type="submit"]'); button.attr('disabled', 'disabled'); if ((button.hasClass('contact')) || (button.hasClass('catalog'))) { e.preventDefault(); var product_id = jQueryNuvem(e.currentTarget).find("input[name='add_to_cart']").val(); window.location = "\/contato\/?product=" + product_id; } else if (button.hasClass('cart')) { button.val('Incluindo...'); } }); var has_multiple_slides = false; var has_multiple_slides = true; Fancybox.bind('[data-fancybox="product-gallery"]', { Toolbar: { items: { close: { html: '', }, counter: { class: 'pt-2 mt-1', type: 'div', html: ' / ', position: 'center', }, }, }, Carousel: { Navigation: { classNames: { button: 'btn', next: 'swiper-button-next', prev: 'swiper-button-prev', }, prevTpl: '', nextTpl: '', }, }, Thumbs: { autoStart: false }, on: { shouldClose: (fancybox, slide) => { productSwiper.slideTo( fancybox.getSlide().index, 0 ); }, }, }); function productSliderNav(){ var width = window.innerWidth; var productSwiper = null; createSwiper( '.js-swiper-product', { lazy: true, slidesPerView: 'auto', threshold: 5, centerInsufficientSlides: true, watchOverflow: true, pagination: { el: '.js-swiper-product-pagination', }, navigation: { nextEl: '.js-swiper-product-next', prevEl: '.js-swiper-product-prev', }, on: { init: function () { jQueryNuvem(".js-product-slider-placeholder").hide(); jQueryNuvem(".js-swiper-product").css("visibility", "visible").css("height", "auto"); }, }, }, function(swiperInstance) { productSwiper = swiperInstance; } ); Fancybox.bind('[data-fancybox="product-gallery"]', { Toolbar: { items: { close: { html: '', }, counter: { class: 'pt-2 mt-1', type: 'div', html: ' / ', position: 'center', }, }, }, Carousel: { Navigation: { classNames: { button: 'btn', next: 'swiper-button-next', prev: 'swiper-button-prev', }, prevTpl: '', nextTpl: '', }, }, Thumbs: { autoStart: false }, on: { shouldClose: (fancybox, slide) => { productSwiper.slideTo( fancybox.getSlide().index, 0 ); }, }, }); if(has_multiple_slides){ LS.registerOnChangeVariant(function(variant){ var liImage = jQueryNuvem('.js-swiper-product').find("[data-image='"+variant.image+"']"); var selectedPosition = liImage.data('imagePosition'); var slideToGo = parseInt(selectedPosition); productSwiper.slideTo(slideToGo); jQueryNuvem(".js-product-slide-img").removeClass("js-active-variant"); liImage.find(".js-product-slide-img").addClass("js-active-variant"); }); jQueryNuvem(".js-product-thumb").on("click", function(e){ e.preventDefault(); jQueryNuvem(".js-product-thumb").removeClass("selected"); jQueryNuvem(e.currentTarget).addClass("selected"); var thumbLoop = jQueryNuvem(e.currentTarget).data("thumbLoop"); var slideToGo = parseInt(thumbLoop); productSwiper.slideTo(slideToGo); if(jQueryNuvem(e.currentTarget).hasClass("js-product-thumb-modal")){ jQueryNuvem('.js-swiper-product').find("[data-image-position='"+slideToGo+"'] .js-product-slide-link").trigger('click'); } }); } } var directionVal = 'vertical'; if (window.innerWidth < 767 || '' === 'pdp2') { var directionVal = 'horizontal'; } createSwiper('.js-swiper-product-thumbs', { lazy: true, watchOverflow: true, threshold: 5, direction: directionVal, navigation: { nextEl: '.js-swiper-product-thumbs-next', prevEl: '.js-swiper-product-thumbs-prev', }, slidesPerView: 'auto', on: { afterInit: function () { hideSwiperControls(".js-swiper-product-thumbs-prev", ".js-swiper-product-thumbs-next"); }, }, }); productSliderNav() jQueryNuvem('.js-pinterest-share').on("click", function(e){ e.preventDefault(); jQueryNuvem(".pinterest-hidden a").get()[0].click(); }); jQueryNuvem(document).on("click", ".js-quantity .js-quantity-up", function (e) { $quantity_input = jQueryNuvem(this).closest(".js-quantity").find(".js-quantity-input"); $quantity_input.val( parseInt($quantity_input.val(), 10) + 1); }); jQueryNuvem(document).on("click", ".js-quantity .js-quantity-down", function (e) { $quantity_input = jQueryNuvem(this).closest(".js-quantity").find(".js-quantity-input"); quantity_input_val = $quantity_input.val(); if (quantity_input_val>1) { $quantity_input.val( parseInt($quantity_input.val(), 10) - 1); } }); var head_height = jQueryNuvem(".js-head-main").outerHeight(); if (window.innerWidth > 768) { jQueryNuvem("#cart-sticky-summary").css("top" , (head_height + 10).toString() + 'px'); } function getQuickShopImgSrc(element){ const image = jQueryNuvem(element).closest('.js-quickshop-container').find('img'); return String(image.attr('srcset')); } jQueryNuvem(document).on("click", ".js-addtocart:not(.js-addtocart-placeholder)", function (e) { var $productContainer = jQueryNuvem(this).closest('.js-product-container'); var $productVariants = $productContainer.find(".js-variation-option"); var $productButton = $productContainer.find("input[type='submit'].js-addtocart"); var productButtonWidth = $productButton.first(el => el.offsetWidth); var isQuickShop = $productContainer.hasClass('js-quickshop-container'); if (isQuickShop) { var $productButtonContainer = $productButton.closest(".js-item-submit-container"); } var $productButtonPlaceholder = $productContainer.find(".js-addtocart-placeholder"); var $productButtonText = $productButtonPlaceholder.find(".js-addtocart-text"); var $productButtonAdding = $productButtonPlaceholder.find(".js-addtocart-adding"); var $productButtonSuccess = $productButtonPlaceholder.find(".js-addtocart-success"); if (!isQuickShop) { if(jQueryNuvem(".js-product-slide-img.js-active-variant").length) { var imageSrc = $productContainer.find('.js-product-slide-img.js-active-variant').data('srcset').split(' ')[0]; } else { var imageSrc = $productContainer.find('.js-product-slide-img').data('srcset').split(' ')[0]; } var quantity = $productContainer.find('.js-quantity-input').val(); var name = $productContainer.find('.js-product-name').text(); var price = $productContainer.find('.js-price-display').text(); var addedToCartCopy = "Comprar"; } else { var imageSrc = getQuickShopImgSrc(this); var quantity = 1; var name = $productContainer.find('.js-item-name').text(); var price = $productContainer.find('.js-price-display').text().trim(); var addedToCartCopy = "Comprar"; if ($productContainer.hasClass("js-quickshop-has-variants")) { var addedToCartCopy = "Comprar"; }else{ var addedToCartCopy = "Comprar"; } } if (!jQueryNuvem(this).hasClass('contact')) { e.preventDefault(); $productButton.hide(); if (isQuickShop) { $productButtonContainer.hide(); } $productButtonPlaceholder.width(productButtonWidth).css('display' , 'block'); $productButtonText.fadeOut(); $productButtonAdding.addClass("active"); var callback_add_to_cart = function(html_notification_related_products){ jQueryNuvem('.js-cart-notification-item-img').attr('srcset', imageSrc); jQueryNuvem('.js-cart-notification-item-name').text(name); jQueryNuvem('.js-cart-notification-item-quantity').text(quantity); jQueryNuvem('.js-cart-notification-item-price').text(price); if($productVariants.length){ var output = []; $productVariants.each( function(el){ var variants = jQueryNuvem(el); output.push(variants.val()); }); jQueryNuvem(".js-cart-notification-item-variant-container").show(); jQueryNuvem(".js-cart-notification-item-variant").text(output.join(', ')) }else{ jQueryNuvem(".js-cart-notification-item-variant-container").hide(); } var cartItemsBadge = jQueryNuvem(".js-cart-widget-amount"); var cartItemsMoney = jQueryNuvem(".js-cart-widget-total"); var cartItemsAmount = cartItemsBadge.text(); cartItemsBadge.removeClass("d-none d-md-inline-block"); if (window.innerWidth > 768) { cartItemsMoney.removeClass("d-none d-md-inline-block"); } if(cartItemsAmount > 1){ jQueryNuvem(".js-cart-counts-plural").show(); jQueryNuvem(".js-cart-counts-singular").hide(); }else{ jQueryNuvem(".js-cart-counts-singular").show(); jQueryNuvem(".js-cart-counts-plural").hide(); } $productButtonAdding.removeClass("active"); $productButtonSuccess.addClass("active"); setTimeout(function(){ $productButtonSuccess.removeClass("active"); $productButtonText.fadeIn(); },2000); setTimeout(function(){ $productButtonPlaceholder.removeAttr("style").hide(); $productButton.show(); if (isQuickShop) { $productButtonContainer.show(); } },3000); $productContainer.find(".js-added-to-cart-product-message").slideDown(); if (isQuickShop) { jQueryNuvem("#quickshop-modal").removeClass('modal-show'); jQueryNuvem(".js-modal-overlay[data-modal-id='#quickshop-modal']").hide(); jQueryNuvem("body").removeClass("overflow-none"); restoreQuickshopForm(); if (window.innerWidth < 768) { cleanURLHash(); } } let notificationWithRelatedProducts = false; if(!notificationWithRelatedProducts){ setTimeout(function(){ jQueryNuvem(".js-alert-added-to-cart").show().addClass("notification-visible").removeClass("notification-hidden"); },500); if (!cookieService.get('first_product_added_successfully')) { cookieService.set('first_product_added_successfully', 1, 7 ); } else{ setTimeout(function(){ jQueryNuvem(".js-alert-added-to-cart").removeClass("notification-visible").addClass("notification-hidden"); setTimeout(function(){ jQueryNuvem('.js-cart-notification-item-img').attr('src', ''); jQueryNuvem(".js-alert-added-to-cart").hide(); },2000); },8000); } } if (jQueryNuvem("#product-shipping-container .js-shipping-input").val()) { zipcode_on_addtocart = jQueryNuvem("#product-shipping-container .js-shipping-input").val(); jQueryNuvem("#cart-shipping-container .js-shipping-input").val(zipcode_on_addtocart); jQueryNuvem(".js-shipping-calculator-current-zip").text(zipcode_on_addtocart); } else if (cookieService.get('calculator_zipcode')){ var zipcode_from_cookie = cookieService.get('calculator_zipcode'); jQueryNuvem('.js-shipping-input').val(zipcode_from_cookie); jQueryNuvem(".js-shipping-calculator-current-zip").text(zipcode_from_cookie); } jQueryNuvem(".js-fs-add-this-product").hide(); jQueryNuvem(".js-fs-add-one-more").show(); } var callback_error = function(){ $productButtonAdding.removeClass("active"); $productButtonText.fadeIn(); $productButtonPlaceholder.removeAttr("style").hide(); $productButton.show(); if (isQuickShop) { $productButtonContainer.show(); } } $prod_form = jQueryNuvem(this).closest("form"); LS.addToCartEnhanced( $prod_form, addedToCartCopy, 'Incluindo...', 'Este produto está fora de estoque.', false, callback_add_to_cart, callback_error ); } }); jQueryNuvem(document).on("keypress", ".js-cart-quantity-input", function (e) { if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { return false; } }); jQueryNuvem(document).on("focusout", ".js-cart-quantity-input", function (e) { var itemID = jQueryNuvem(this).attr("data-item-id"); var itemVAL = jQueryNuvem(this).val(); if (itemVAL == 0) { var r = confirm("Tem certeza de que deseja excluir este item?"); if (r == true) { LS.removeItem(itemID, true); } else { jQueryNuvem(this).val(1); } } else { LS.changeQuantity(itemID, itemVAL, true); } }); jQueryNuvem(".js-trigger-empty-cart-alert").on("click", function (e) { e.preventDefault(); let emptyCartAlert = jQueryNuvem(".js-mobile-nav-empty-cart-alert").fadeIn(100); setTimeout(() => emptyCartAlert.fadeOut(500), 1500); }); document.addEventListener( 'cart.released', () => { const cart_amount = jQueryNuvem(".js-cart-widget-amount").text(); if(cart_amount == 1) { jQueryNuvem(".js-amount-one-item").show(); jQueryNuvem(".js-amount-many-items").hide(); }else{ jQueryNuvem(".js-amount-one-item").hide(); jQueryNuvem(".js-amount-many-items").show(); } }); jQueryNuvem('form[action="\/comprar\/"]').on("submit", function() { cookieService.remove('first_product_added_successfully'); }); if (jQueryNuvem('.js-selected-shipping-method').length) { var shipping_cost = jQueryNuvem('.js-selected-shipping-method').data("cost"); var $shippingCost = jQueryNuvem("#shipping-cost"); $shippingCost.text(shipping_cost); $shippingCost.removeClass('opacity-40'); } selectShippingOption = function(elem, save_option) { jQueryNuvem(".js-shipping-method, .js-branch-method").removeClass('js-selected-shipping-method'); jQueryNuvem(elem).addClass('js-selected-shipping-method'); var shipping_cost = jQueryNuvem(elem).data("cost"); var shipping_price_clean = jQueryNuvem(elem).data("price"); if(shipping_price_clean = 0.00){ var shipping_cost = '' } // Updates shipping (ship and pickup) cost on cart var $shippingCost = jQueryNuvem("#shipping-cost"); $shippingCost.text(shipping_cost); $shippingCost.removeClass('opacity-40'); if (save_option) { LS.saveCalculatedShipping(true); } if (jQueryNuvem(elem).hasClass("js-shipping-method-hidden")) { if (jQueryNuvem(elem).hasClass("js-pickup-option")) { jQueryNuvem(".js-other-pickup-options, .js-show-other-pickup-options .js-shipping-see-less").show(); jQueryNuvem(".js-show-other-pickup-options .js-shipping-see-more").hide(); } else { jQueryNuvem(".js-other-shipping-options, .js-show-more-shipping-options .js-shipping-see-less").show(); jQueryNuvem(".js-show-more-shipping-options .js-shipping-see-more").hide() } } }; if (cookieService.get('calculator_zipcode')) { var zipcode_from_cookie = cookieService.get('calculator_zipcode'); jQueryNuvem('#product-shipping-container .js-shipping-input').val(zipcode_from_cookie); jQueryNuvem(".js-shipping-calculator-current-zip").text(zipcode_from_cookie); jQueryNuvem(".js-shipping-calculator-head").addClass("with-zip").removeClass("with-form"); jQueryNuvem(".js-shipping-calculator-with-zipcode").addClass("transition-up-active"); jQueryNuvem(".js-shipping-calculator-spinner").show(); } else { jQueryNuvem(".js-shipping-calculator-form").addClass("transition-up-active"); } removeShippingSuboptions = function(){ var shipping_suboptions_id = jQueryNuvem(".js-modal-shipping-suboptions").attr("id"); jQueryNuvem("#" + shipping_suboptions_id).remove(); jQueryNuvem('.js-modal-overlay[data-modal-id="#' + shipping_suboptions_id + '"').remove(); }; jQueryNuvem(".js-calculate-shipping").on("click", function (e) { e.preventDefault(); let shipping_input_val = jQueryNuvem(e.currentTarget).closest(".js-shipping-calculator-form").find(".js-shipping-input").val(); jQueryNuvem(".js-shipping-input").val(shipping_input_val); if (jQueryNuvem(".js-cart-item").length) { LS.calculateShippingAjax( jQueryNuvem('#cart-shipping-container').find(".js-shipping-input").val(), '\/frete\/', jQueryNuvem("#cart-shipping-container").closest(".js-shipping-calculator-container") ); } jQueryNuvem(".js-shipping-calculator-current-zip").html(shipping_input_val); removeShippingSuboptions(); }); jQueryNuvem(".js-shipping-input").on('keydown', function (e) { var key = e.which ? e.which : e.keyCode; var enterKey = 13; if (key === enterKey) { e.preventDefault(); jQueryNuvem(e.currentTarget).closest(".js-shipping-calculator-form").find(".js-calculate-shipping").trigger('click'); if (window.innerWidth < 768) { jQueryNuvem(e.currentTarget).trigger('blur'); } } }); jQueryNuvem(document).on("change", ".js-shipping-method, .js-branch-method", function (e) { selectShippingOption(this, true); jQueryNuvem(".js-shipping-method-unavailable").hide(); }); jQueryNuvem(document).on('shipping.options.checked', '.js-shipping-method', function (e) { let shippingPrice = jQueryNuvem(this).attr("data-price"); LS.addToTotal(shippingPrice); let total = (LS.data.cart.total / 100) + parseFloat(shippingPrice); jQueryNuvem(".js-cart-widget-total").html(LS.formatToCurrency(total)); selectShippingOption(this, false); }); jQueryNuvem(document).on("click", ".js-toggle-more-shipping-options", function(e) { e.preventDefault(); if(jQueryNuvem(this).hasClass("js-show-other-pickup-options")){ jQueryNuvem(".js-other-pickup-options").slideToggle(600); jQueryNuvem(".js-show-other-pickup-options .js-shipping-see-less, .js-show-other-pickup-options .js-shipping-see-more").toggle(); }else{ jQueryNuvem(".js-other-shipping-options").slideToggle(600); jQueryNuvem(".js-show-more-shipping-options .js-shipping-see-less, .js-show-more-shipping-options .js-shipping-see-more").toggle(); } }); calculateCartShippingOnLoad = function() { if (jQueryNuvem("#cart-shipping-container .js-shipping-input").val()) { // If user already had calculated shipping: recalculate shipping setTimeout(function() { LS.calculateShippingAjax( jQueryNuvem('#cart-shipping-container').find(".js-shipping-input").val(), '\/frete\/', jQueryNuvem("#cart-shipping-container").closest(".js-shipping-calculator-container") ); removeShippingSuboptions(); window.toggleAccordionPrivate("#cart-shipping-container .js-toggle-shipping"); }, 100); } if (jQueryNuvem(".js-branch-method").hasClass('js-selected-shipping-method')) { } }; jQueryNuvem(document).on("click", ".js-shipping-calculator-change-zipcode", function(e) { e.preventDefault(); jQueryNuvem(".js-shipping-calculator-response").fadeOut(100); jQueryNuvem(".js-shipping-calculator-head").addClass("with-form").removeClass("with-zip"); jQueryNuvem(".js-shipping-calculator-with-zipcode").removeClass("transition-up-active"); jQueryNuvem(".js-shipping-calculator-form").addClass("transition-up-active"); }); jQueryNuvem(document).on("click", ".js-save-shipping-country", function(e) { e.preventDefault(); lang_select_option = jQueryNuvem(this).closest(".js-modal-shipping-country"); changeLang(lang_select_option); jQueryNuvem(this).text('Aplicando...').addClass("disabled"); }); var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; if (isIOS) { var ios_input_fields = jQueryNuvem("input[type='text'], input[type='number'], input[type='password'], input[type='tel'], textarea, input[type='search'], input[type='hidden'], input[type='email']"); ios_input_fields.addClass("form-control-ios"); jQueryNuvem(".js-quantity").addClass("form-group-quantity-ios"); jQueryNuvem(".js-cart-quantity-container").addClass("cart-quantity-container-ios"); jQueryNuvem(".js-search-form").toggleClass("search-form-ios"); jQueryNuvem(".js-price-filter-btn").addClass("price-btn-ios"); jQueryNuvem(".js-price-filter-empty").addClass("input-clear-content-ios"); } }); // ✅ Inicializa LS.variants com fallback seguro window.LS = window.LS || {}; LS.variants = LS.variants || (function() { try { const container = jQueryNuvem('#single-product, .js-product-detail'); if (!container.length) return []; const raw = container.attr('data-variants'); if (!raw) return []; const variants = JSON.parse(raw); console.log('Variantes carregadas:', variants.length); return Array.isArray(variants) ? variants : []; } catch (e) { console.warn("Erro ao carregar variações:", e); return []; } })(); // ✅ Reforça LS.changeVariant com comparação mais robusta const originalChangeVariant = LS.changeVariant; LS.changeVariant = function(callback, contextSelector) { console.log('LS.changeVariant chamado com:', contextSelector); const context = jQueryNuvem(contextSelector || '#single-product'); const selects = context.find('.js-variation-option'); if (!selects.length) { console.warn('Nenhum seletor de variação encontrado em:', contextSelector); return; } const selectedOptions = selects.map((i, el) => { const value = jQueryNuvem(el).val(); return value ? String(value).trim() : null; }).get().filter(opt => opt !== null); console.log('Opções selecionadas:', selectedOptions); // Busca a variação com comparação flexível const variant = LS.variants.find(v => { return selectedOptions.every((opt, i) => { const variantOption = v[`option${i}`]; if (!variantOption && !opt) return true; if (!variantOption || !opt) return false; return String(variantOption).trim().toLowerCase() === String(opt).trim().toLowerCase(); }); }); if (variant) { console.log('Variação encontrada:', variant); variant.element = contextSelector; callback(variant); // Dispara evento customizado para outros scripts jQueryNuvem(document).trigger('variant:changed', [variant]); } else { console.warn("Variação não encontrada para opções:", selectedOptions); // Fallback: usa a primeira variação disponível if (LS.variants.length > 0) { const fallbackVariant = LS.variants[0]; fallbackVariant.element = contextSelector; callback(fallbackVariant); } } }; // ✅ Sistema de atualização de imagem melhorado function atualizarImagemVariacao(variant) { if (!variant || !variant.image_url) { console.warn('Variação sem imagem:', variant); return; } console.log('Atualizando imagem para:', variant.image_url); // Atualiza imagem principal const mainImage = jQueryNuvem('.js-product-slide-img:first, .js-active-variant'); if (mainImage.length) { mainImage.attr('src', variant.image_url); mainImage.attr('srcset', variant.image_url); mainImage.attr('data-srcset', variant.image_url); } // Atualiza link do fancybox const link = jQueryNuvem('.js-product-slide-link'); if (link.length) { link.attr('href', variant.image_url); } // Sincroniza com swiper se disponível if (typeof productSwiper !== 'undefined') { const imageName = variant.image_url.split('/').pop().split('.')[0]; const $liImage = jQueryNuvem('.js-swiper-product').find(`[data-image*="${imageName}"]`); if ($liImage.length) { const slideToGo = parseInt($liImage.data('imagePosition')); if (!isNaN(slideToGo)) { productSwiper.slideTo(slideToGo); // Atualiza estado visual jQueryNuvem(".js-product-slide-img").removeClass("js-active-variant"); $liImage.find(".js-product-slide-img").addClass("js-active-variant"); jQueryNuvem(".js-product-thumb").removeClass("selected"); jQueryNuvem(`.js-product-thumb[data-thumbLoop="${slideToGo}"]`).addClass("selected"); } } } } // ✅ Registra callback para mudanças de variação LS.registerOnChangeVariant(function(variant){ console.log('Variação alterada:', variant); // Executa a função changeVariant original do tema if (typeof changeVariant === 'function') { changeVariant(variant); } // Atualiza imagem atualizarImagemVariacao(variant); // Atualiza preço principal const priceDisplay = jQueryNuvem('.js-price-display'); if (variant.price_short && priceDisplay.length) { priceDisplay.text(variant.price_short); priceDisplay.attr('content', variant.price_number); priceDisplay.data('productPrice', variant.price_number_raw); } // Atualiza preço comparativo const comparePrice = jQueryNuvem('.js-compare-price-display'); if (variant.compare_at_price_short && comparePrice.length) { comparePrice.text(variant.compare_at_price_short).show(); } else { comparePrice.hide(); } // Atualiza funções de pagamento se disponíveis const functions = [ 'togglePaymentDiscounts', 'updateDiscountDisclaimers', 'refreshInstallmentv2', 'refreshPaymentDiscount' ]; functions.forEach(funcName => { if (typeof window[funcName] === 'function') { try { window[funcName](variant); } catch (e) { console.warn(`Erro em ${funcName}:`, e); } } }); // Atualiza estoque máximo if (variant.stock > 0) { jQueryNuvem(".js-quantity-input").attr("max", variant.stock); // Ajusta quantidade se exceder o estoque const currentQty = parseInt(jQueryNuvem(".js-quantity-input").val(), 10); if (currentQty > variant.stock) { jQueryNuvem(".js-quantity-input").val(variant.stock); } } // Atualiza frete LS.updateShippingProduct(); }); // ✅ Sistema de quantidade melhorado jQueryNuvem(document).on("click", ".js-quantity .js-quantity-up", function (e) { e.preventDefault(); const $input = jQueryNuvem(this).closest(".js-quantity").find(".js-quantity-input"); let current = parseInt($input.val(), 10) || 1; const max = parseInt($input.attr("max")) || 9999; if (current < max) { $input.val(current + 1).trigger('change'); } }); jQueryNuvem(document).on("click", ".js-quantity .js-quantity-down", function (e) { e.preventDefault(); const $input = jQueryNuvem(this).closest(".js-quantity").find(".js-quantity-input"); let current = parseInt($input.val(), 10) || 1; if (current > 1) { $input.val(current - 1).trigger('change'); } }); // ✅ Atualização de preço total por quantidade jQueryNuvem(document).on("change input", ".js-quantity-input", function () { const unitPrice = parseFloat(jQueryNuvem(".js-price-display").data('productPrice')); const quantity = parseInt(jQueryNuvem(this).val(), 10) || 1; if (!isNaN(unitPrice) && !isNaN(quantity)) { const total = unitPrice * quantity; const $totalDisplay = jQueryNuvem(".js-total-price-display"); if ($totalDisplay.length) { // Usa formatação do LS se disponível, caso contrário formata manualmente if (typeof LS.formatToCurrency === 'function') { $totalDisplay.text(LS.formatToCurrency(total)); } else { $totalDisplay.text('R$ ' + total.toFixed(2).replace('.', ',')); } } } }); // ✅ Inicialização para produtos sem interação inicial jQueryNuvem(document).ready(function() { // Força atualização inicial após 1 segundo setTimeout(() => { if (LS.variants.length > 0) { LS.changeVariant(function(variant) { console.log('Atualização inicial:', variant); }, '#single-product'); } }, 1000); }); });