T3

function gerarComprovante(){ let comprovante = "🧾 Comprovante de Pedido\n\n"; let total=0; carrinho.forEach(item=>{ const unit = isNaN(parseFloat(item.preco))?0:parseFloat(item.preco); const qtd = parseInt(item.quantidade||1,10); const sub = unit*qtd; comprovante += `${item.nome} (${qtd}x) - R$ ${sub.toFixed(2)}\n`; total+=sub; }); comprovante += `\nTotal: R$ ${total.toFixed(2)}\n`; const pixKey = localStorage.getItem('pixKey'); if(pixKey){ comprovante += `\n💳 Chave Pix para pagamento: ${pixKey}\n`; } else { comprovante += `\n⚠️ Nenhuma chave Pix cadastrada.\n`; } comprovante += `\nAcompanhe seu pedido: https://www.appcreator24.com/app3699570-ip7ogd`; alert(comprovante); try { navigator.clipboard.writeText(comprovante); } catch(e){} } function finalizarPedido(){ if(carrinho.length===0){ alert("Carrinho vazio!"); return; } // valida estoque antes de finalizar for(const item of carrinho){ const prod = produtos.find(p=>p.nome === item.nome); const qtd = parseInt(item.quantidade||1,10); if(prod && (prod.estoque||0) < qtd){ alert(`Estoque insuficiente para: ${prod.nome}. Ajuste a quantidade antes de finalizar.`); return; } } let texto="🛒 Pedido:\n"; let total=0; carrinho.forEach(item=>{ const unit = isNaN(parseFloat(item.preco))?0:parseFloat(item.preco); const qtd = parseInt(item.quantidade||1,10); const sub = unit*qtd; texto+=`${item.nome} (${qtd}x) - R$ ${sub.toFixed(2)}\n`; total+=sub; // reduz estoque const idx = produtos.findIndex(p=>p.nome === item.nome); if(idx>=0){ produtos[idx].estoque = Math.max(0,(produtos[idx].estoque||0) - qtd); } }); texto+=`\nTotal: R$ ${total.toFixed(2)}`; const pixKey = localStorage.getItem('pixKey'); if(pixKey){ texto+=`\n\n💳 Pague via Pix: ${pixKey}`; } const msg = encodeURIComponent(texto); window.open(`https://wa.me/?text=${msg}`,"_blank"); gerarComprovante(); carrinho = []; salvarLocalStorage(); renderProdutos(); fecharCarrinho(); } /* 🆕 Opções de pagamento no modal */ function finalizarPedidoPix(){ let total = calcularTotalCarrinho().toFixed(2); const pixKey = localStorage.getItem('pixKey'); if(pixKey){ alert("🔐 Pagamento via Pix\n\nChave Pix: " + pixKey + "\nValor total: R$ " + total); } else { alert("⚠️ Nenhuma chave Pix cadastrada!\nCadastre no modo administrador."); } closeCheckout(); } function finalizarPedidoEntrega(){ alert("✅ Pedido confirmado! Pague em Dinheiro ou Cartão na entrega."); closeCheckout(); } function finalizarPedidoCartao(){ alert("Você será redirecionado para o pagamento com cartão."); // 🔗 Substitua pelo seu link real de checkout do Mercado Pago window.open("https://www.mercadopago.com.br/checkout/v1/redirect?pref_id=SEU_ID_AQUI", "_blank"); closeCheckout(); } function abrirCarrinho(){ document.getElementById('carrinhoModal').style.display='flex'; atualizarCarrinho(); } function fecharCarrinho(event){ if(!event || event.target.id==='carrinhoModal'){ document.getElementById('carrinhoModal').style.display='none'; } } /* 🔇 alternarTema removido */ function mudarCor(varName,value){ try { document.documentElement.style.setProperty(varName,value); document.body.style.setProperty(varName,value); } catch(e){} } /* ✅ alternarModo agora também controla a classe .admin-mode no */ function alternarModo() { const modoTop = document.getElementById('modoBtn'); const modoFoot = document.getElementById('modoBtnFooter'); if (!modoAdmin) { const senha = prompt("Digite a senha para entrar no modo administrador:"); if (senha === "2010") { modoAdmin = true; if(modoTop) modoTop.textContent = 'Versão Cliente'; if(modoFoot) modoFoot.textContent = 'Versão Cliente'; document.body.classList.add('admin-mode'); // <<<<<< ADICIONA CLASSE atualizarBannerUI(); renderProdutos(); } else { alert("Senha incorreta!"); } } else { modoAdmin = false; if(modoTop) modoTop.textContent = 'Versão Administrador'; if(modoFoot) modoFoot.textContent = 'Versão Administrador'; document.body.classList.remove('admin-mode'); // <<<<<< REMOVE CLASSE atualizarBannerUI(); renderProdutos(); } } function enviarLink(){ const linkCliente = "https://www.appcreator24.com/app3699570-ip7ogd"; try { navigator.clipboard.writeText(linkCliente); } catch(e){} alert('Link do modo cliente copiado!'); } function enviarWhatsappEmail(){ const linkCliente = "https://www.appcreator24.com/app3699570-ip7ogd"; const texto = encodeURIComponent(`Confira nosso app de mercado: ${linkCliente}`); window.open(`https://wa.me/?text=${texto}`, '_blank'); } /* atualiza o texto dos botões de carrinho no footer (e no topo se existir) */ function atualizarBadgeCarrinho(){ const btnTop = document.getElementById("btnCarrinho"); const btnFoot = document.getElementById("btnCarrinhoFooter"); const qtd = carrinho.reduce((soma, i)=> soma + parseInt(i.quantidade||1,10), 0); const text = qtd > 0 ? `Carrinho 🛒 (${qtd})` : "Carrinho 🛒"; if(btnTop) btnTop.textContent = text; if(btnFoot) btnFoot.textContent = text; } function salvarPix(){ const pixKeyInput = document.getElementById('pixKey'); if(!pixKeyInput) return; const pixKey = pixKeyInput.value.trim(); if(pixKey === ""){ alert("Digite uma chave Pix válida!"); return; } localStorage.setItem('pixKey', pixKey); alert("✅ Chave Pix salva com sucesso!"); } // 🔎 eventos de busca e ordenação const searchEl = document.getElementById('searchInput'); if (searchEl) { searchEl.addEventListener('input', ()=>{ paginaAtual = 1; renderProdutos(); }); } const sortEl = document.getElementById('sortSelect'); if (sortEl) { sortEl.addEventListener('change', ()=>{ paginaAtual = 1; renderProdutos(); }); } /* 🎯 ZOOM — lógica (funciona só no modo cliente) */ const imgZoom = document.getElementById('imgZoom'); const imgZoomSrc = document.getElementById('imgZoomSrc'); const imgZoomClose = document.getElementById('imgZoomClose'); function abrirZoomImagem(src){ if(!imgZoom || !imgZoomSrc) return; imgZoomSrc.src = src; imgZoom.style.display = 'flex'; document.body.style.overflow = 'hidden'; /* evita rolar por trás */ } function fecharZoomImagem(){ if(!imgZoom) return; imgZoom.style.display = 'none'; if(imgZoomSrc) imgZoomSrc.src = ''; document.body.style.overflow = ''; } /* Fecha clicando fora da imagem */ if(imgZoom){ imgZoom.addEventListener('click', (e)=>{ if(e.target === imgZoom) fecharZoomImagem(); }); } /* Fecha no botão X */ if(imgZoomClose) imgZoomClose.addEventListener('click', fecharZoomImagem); /* Fecha com ESC */ document.addEventListener('keydown', (e)=>{ if(e.key === 'Escape'){ if(imgZoom && imgZoom.style.display === 'flex'){ fecharZoomImagem(); } const cm = document.getElementById('checkoutModal'); if(cm && cm.style.display === 'flex'){ closeCheckout(); } } }); /* Delegação de evento: captura cliques nas imagens dos produtos renderizadas dinamicamente */ document.addEventListener('click', (e)=>{ if(!modoAdmin && e.target && e.target.matches('.produto img')){ abrirZoomImagem(e.target.src); } }); /* 🆕 EDITAR ESTOQUE (ADMIN) */ function editarEstoque(prodId){ const idx = produtos.findIndex(p=>p.id===prodId); if(idx<0) return; const atual = produtos[idx].estoque || 0; const novo = prompt("Digite o novo estoque:", atual); if(novo!==null){ const n = parseInt(novo,10); if(!isNaN(n) && n>=0){ produtos[idx].estoque = n; salvarLocalStorage(); renderProdutos(); } } } /* Boot */ carregarLocalStorage(); renderProdutos(); atualizarBadgeCarrinho(); Mercado Online

Finalizar Pedido











Mercado Online

Comentários

Postagens mais visitadas deste blog

Atualização 1

P

Paula