Toda solicitação de troca ou devolução deve ser comunicada à Central de Atendimento para instruções detalhadas sobre o processo. No rodapé do site ou na página de Fale Conosco possui os dados de contato com a nossa central de atendimento.
Condições para Troca, Devolução ou Arrependimento da compra
O prazo máximo é de 7 dias após o recebimento do produto.
A mercadoria deverá retornar nas mesmas condições em que foi entregue, ou seja: lacres intactos do fabricante e na embalagem original e com todos acessórios que acompanham o produto. É importante ressaltar que a caixa do produto também deve estar em perfeitas condições, isto é, a embalagem não pode ter sido danificada ou violada.
Esclarece-se que o produto NÃO PODE TER SIDO USADO.
Envio para Troca , Devolução ou Arrependimento da compra
O custo de frete para o retorno da mercadoria será de responsabilidade da loja virtual, não tendo custo adicional ao consumidor.
Sendo necessário que o consumidor solicite a troca, devolução ou direito de arrependimento no prazo máximo de 7 dias após o recebimento da mercadoria.
O fluxo de envio será explicado por nossa equipe de atendimento, onde irá depender da quantidade e tamanho do produto que será retornado.
Atenção! Ao chegar o produto será analisado sua condição e caso seja constatado uso do produto, poderá ser recusado a troca ou devolução, sendo retornado o produto.
Devolução do valor para Cartão
Após o recebimento do produto em nosso Centro de Distribuição e aprovação da devolução ou troca mediante análise dos itens, enviaremos a solicitação de estorno para a administradora do cartão de crédito que esta por sua vez tem o prazo para processar a requisição de acordo com a política de cada administradora de cartão de crédito.
Poderá ocorrer do valor estornado ser devolvido em faturas futuras, sendo política da administradora de cartão.
Devolução do valor Boleto, Pix ou Transferência
A restituição do valor será processada após a aprovação da devolução mediante análise dos itens em nosso Centro de Distribuição e será realizada através de reembolso em uma conta corrente ou poupança.
No momento da solicitação da troca ou devolução deverá ser informado os dados bancários.
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();
})();