0
Meu carrinho
Carrinho Vazio

Como comprar

Para comprar em nossa loja é muito fácil:

1) Basta navegar entre as diversas páginas de produtos ( categorias, novidades, ofertas, destaques) e clicar sobre o icone Comprar. Ou clique em Ver Detalhes para maiores informações sobre o produto. Após isso o produto será inserido em seu carrinho de compras


2) Continue navegando em nosso site até escolher todos os produtos que você deseja adquirir. Agora basta clicar no link a direita Finalizar que você estará concluindo sua compra.


3) Agora entre com o seu email e senha. Caso não for cadastrado, cadastre-se rapidamente clicando no link de Cadastro.


4) Feito isso, escolha a forma de envio do produto. Trabalhamos com envio via Correio. Você pode optar por sedex ou encomenda simples, sendo que o sedex é mais caro só que muito mais ágil logo, recomendamos escolher Sedex.


5) Agora basta escolher a forma de pagamento.


6) Demais instruções serão enviadas via email para você após a finalização de sua venda.
Ganhe mais ${CONFIG.discountPercent} com o cupom ${CONFIG.couponCode} ao finalizar a compra
⏰ Expira em: 10:00
`; return div; } // ============================================ // FUNÇÃO: INSERIR TIMER NO DOM // ============================================ function insertTimer() { const wrapper = document.querySelector(CONFIG.timerWrapperSelector); if (!wrapper) { console.warn('EVUS Timer: Wrapper não encontrado:', CONFIG.timerWrapperSelector); return false; } // Verificar se já existe if (wrapper.querySelector('[data-evus-timer]')) { return true; } // Criar e inserir timerElement = createTimerElement(); wrapper.appendChild(timerElement); isTimerInserted = true; console.log('EVUS Timer: Timer inserido com sucesso'); return true; } // ============================================ // FUNÇÃO: ATUALIZAR DISPLAY DO TIMER // ============================================ function updateDisplay() { if (!timerElement || !isTimerInserted) { return; } const now = Date.now(); const remaining = Math.max(0, endTime - now); const seconds = Math.floor(remaining / 1000); if (seconds <= 0) { onTimerExpired(); return; } const minutes = Math.floor(seconds / 60); const secs = seconds % 60; const formatted = `${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`; const displayElement = timerElement.querySelector('[data-timer-display]'); if (displayElement) { displayElement.textContent = formatted; } // Modo urgente if (seconds <= CONFIG.urgentThreshold) { timerElement.classList.add('urgent'); } else { timerElement.classList.remove('urgent'); } } // ============================================ // FUNÇÃO: INICIAR CONTAGEM REGRESSIVA // ============================================ function startCountdown() { if (timerInterval) { clearInterval(timerInterval); } updateDisplay(); timerInterval = setInterval(updateDisplay, 1000); } // ============================================ // FUNÇÃO: TIMER EXPIRADO // ============================================ function onTimerExpired() { clearInterval(timerInterval); const displayElement = timerElement?.querySelector('[data-timer-display]'); if (displayElement) { displayElement.textContent = '00:00'; } // Remover após 3 segundos setTimeout(() => { if (timerElement) { timerElement.style.animation = 'slideIn 0.5s ease-out reverse'; setTimeout(() => { timerElement.remove(); isTimerInserted = false; }, 500); } }, 3000); } // ============================================ // FUNÇÃO: INICIALIZAR TIMER // ============================================ function initTimer() { // Verificar localStorage if (CONFIG.useLocalStorage) { const savedEndTime = localStorage.getItem(CONFIG.storageKey); if (savedEndTime) { endTime = parseInt(savedEndTime, 10); const now = Date.now(); if (endTime > now) { // Timer ainda válido if (insertTimer()) { startCountdown(); } return; } else { // Verificar se deve resetar const timeSinceExpiry = now - endTime; const resetThreshold = CONFIG.resetAfterMinutes * 60 * 1000; if (timeSinceExpiry < resetThreshold) { // Não mostrar timer return; } } } } // Criar novo timer endTime = Date.now() + (CONFIG.durationSeconds * 1000); if (CONFIG.useLocalStorage) { localStorage.setItem(CONFIG.storageKey, endTime.toString()); } if (insertTimer()) { startCountdown(); } } // ============================================ // FUNÇÃO: CONFIGURAR MUTATION OBSERVER // ============================================ function setupObserver() { const priceContainer = document.querySelector(CONFIG.priceContainerSelector); if (!priceContainer) { console.warn('EVUS Timer: Container de preço não encontrado:', CONFIG.priceContainerSelector); console.warn('EVUS Timer: Verifique o seletor nas configurações!'); return; } console.log('EVUS Timer: Observando container:', CONFIG.priceContainerSelector); observer = new MutationObserver((mutations) => { // Verificar se timer ainda existe const wrapper = document.querySelector(CONFIG.timerWrapperSelector); const timerExists = wrapper?.querySelector('[data-evus-timer]'); if (!timerExists && endTime && Date.now() < endTime) { console.log('EVUS Timer: Timer removido, reinserindo...'); isTimerInserted = false; insertTimer(); } }); // Observar mudanças no container e seus filhos observer.observe(priceContainer, { childList: true, subtree: true, attributes: false }); // Também observar o wrapper do timer const wrapper = document.querySelector(CONFIG.timerWrapperSelector); if (wrapper) { observer.observe(wrapper, { childList: true, subtree: true }); } } // ============================================ // INICIALIZAÇÃO // ============================================ function init() { // Aguardar DOM estar pronto if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); return; } console.log('EVUS Timer: Inicializando...'); // Verificar se estamos na página de produto const wrapper = document.querySelector(CONFIG.timerWrapperSelector); if (!wrapper) { console.log('EVUS Timer: Não é página de produto, abortando'); return; } // Inicializar timer initTimer(); // Configurar observer setupObserver(); console.log('EVUS Timer: Inicialização completa'); } // Executar init(); })();