Er

Minha Loja Sincronizada

🛒 Minha Loja

Modo Cliente

🚫 Loja temporariamente FECHADA para pedidos

Configurações da Loja

🎨 Cores da Loja

Cor Primária
Card
Fundo
Texto

Status da Loja


WhatsApp para receber pedidos


Produto


Vendas Hoje: R$ 0.00

Vendas no Mês: R$ 0.00

Total Geral: R$ 0.00

Total de Pedidos: 0

Produto Mais Vendido: Nenhum ainda

🛒 Carrinho

Total: R$ 0,00
×
/* ================= PRODUTOS ================= */ produtosRef.on("value",snap=>{ listaProdutos=[]; snap.forEach(i=>{ const val=i.val(); val.id=i.key; listaProdutos.push(val); }); filtrarProdutos(); }); function renderProdutos(lista){ produtos.innerHTML=""; lista.forEach(function(p){ const estoqueAtual=p.estoque||0; const precoNum=Number(p.preco||0); const bloqueado = (!LOJA_ABERTA || estoqueAtual<=0); produtos.innerHTML+=`

${p.titulo||""}

${p.descricao||""}

R$ ${precoNum.toFixed(2)}
Estoque: ${estoqueAtual}
`; }); } function filtrarProdutos(){ const termo=(buscaInput.value||"").toLowerCase(); renderProdutos(listaProdutos.filter(p=>{ return (p.titulo||"").toLowerCase().includes(termo) || (p.descricao||"").toLowerCase().includes(termo); })); } function lerImagemProduto(i){ const r=new FileReader(); r.onload=()=>imagemProduto=r.result; r.readAsDataURL(i.files[0]); } function salvarProduto(){ const p={ titulo:titulo.value, descricao:descricao.value, preco:Number(preco.value||0), imagem:imagemProduto, estoque:Number(estoque.value||0) }; if(editando){produtosRef.child(editando).set(p);} else{produtosRef.push(p);} cancelarEdicao(); } function editarProduto(id){ produtosRef.child(id).once("value").then(s=>{ const p=s.val(); titulo.value=p.titulo; descricao.value=p.descricao; preco.value=p.preco; estoque.value=p.estoque||0; imagemProduto=p.imagem; editando=id; }); } function removerProduto(id){ if(confirm("Remover?")) produtosRef.child(id).remove(); } function cancelarEdicao(){ titulo.value="";descricao.value="";preco.value="";estoque.value=""; imagemProduto="";editando=null; } /* ================= CARRINHO ================= */ function addCarrinho(id){ if(!LOJA_ABERTA){ alert("A loja está fechada para pedidos!"); return; } const p = listaProdutos.find(x=>x.id===id); if(!p) return; if((p.estoque||0)<=0){ alert("Sem estoque"); return; } produtosRef.child(id).child("estoque").transaction(e=>{ if(!e || e<=0) return e; return e-1; }); let item=carrinho.find(x=>x.id===id); if(item) item.qtd++; else carrinho.push({id:p.id,titulo:p.titulo,preco:Number(p.preco||0),qtd:1}); renderCarrinho(); } function alterarQtd(id,delta){ let item=carrinho.find(x=>x.id===id); if(!item) return; const prod=listaProdutos.find(p=>p.id===id); if(delta>0){ if((prod.estoque||0)<=0) return alert("Sem estoque"); produtosRef.child(id).child("estoque").transaction(e=>{ if(!e || e<=0) return e; return e-1; }); item.qtd++; }else{ if(item.qtd>1){ produtosRef.child(id).child("estoque").transaction(e=>(e||0)+1); item.qtd--; }else{ removerDoCarrinho(id); return; } } renderCarrinho(); } function removerDoCarrinho(id){ let item=carrinho.find(x=>x.id===id); if(!item) return; produtosRef.child(id).child("estoque").transaction(e=>(e||0)+item.qtd); carrinho=carrinho.filter(x=>x.id!==id); renderCarrinho(); } function renderCarrinho(){ itens.innerHTML=""; let totalValor=0; carrinho.forEach(p=>{ totalValor+=p.preco*p.qtd; itens.innerHTML+=`
${p.titulo}
R$ ${p.preco.toFixed(2)} ${p.qtd}
`; }); total.innerText="Total: R$ "+totalValor.toFixed(2); } /* ================= REGISTRAR VENDAS ================= */ function registrarVenda() { let total = 0; let itensVenda = []; carrinho.forEach(p => { total += p.preco * p.qtd; itensVenda.push({ id: p.id, titulo: p.titulo, qtd: p.qtd, total: p.preco * p.qtd }); }); vendasRef.push({ data: Date.now(), total: total, itens: itensVenda }); } /* ================= RELATÓRIO ================= */ function toggleRelatorio() { const div = document.getElementById("relatoriosBox"); div.style.display = div.style.display === "none" ? "block" : "none"; } vendasRef.on("value", snap => { let hojeTotal = 0, mesTotal = 0, geralTotal = 0, pedidos = 0; let contadorProdutos = {}; const agora = new Date(); const diaHoje = agora.getDate(); const mesHoje = agora.getMonth(); const anoHoje = agora.getFullYear(); snap.forEach(s => { const v = s.val(); pedidos++; geralTotal += v.total; const d = new Date(v.data); if(d.getDate() === diaHoje && d.getMonth() === mesHoje && d.getFullYear() === anoHoje) { hojeTotal += v.total; } if(d.getMonth() === mesHoje && d.getFullYear() === anoHoje) { mesTotal += v.total; } (v.itens || []).forEach(i => { if(!contadorProdutos[i.titulo]) contadorProdutos[i.titulo] = 0; contadorProdutos[i.titulo] += i.qtd; }); }); document.getElementById("relHoje").innerText = hojeTotal.toFixed(2); document.getElementById("relMes").innerText = mesTotal.toFixed(2); document.getElementById("relTotal").innerText = geralTotal.toFixed(2); document.getElementById("relPedidos").innerText = pedidos; let topNome = "Nenhum ainda"; let maior = 0; for(let k in contadorProdutos){ if(contadorProdutos[k] > maior){ maior = contadorProdutos[k]; topNome = k; } } document.getElementById("relTop").innerText = topNome; // alerta estoque baixo let alerta = ""; listaProdutos.forEach(p => { if((p.estoque || 0) <= 2){ alerta += `⚠ ${p.titulo} com estoque baixo (${p.estoque})\n`; } }); document.getElementById("estoqueAviso").innerText = alerta; }); /* ================= ENVIAR WHATSAPP ================= */ function pedidoWhats(){ if(!LOJA_ABERTA){ alert("A loja está fechada para pedidos!"); return; } if(!WHATSAPP_SALVO){ alert("Nenhum número de WhatsApp configurado!"); return; } if(carrinho.length === 0){ alert("Carrinho vazio!"); return; } let msg = "*Pedido realizado na loja:*%0A%0A"; let total = 0; carrinho.forEach(p=>{ msg += `• ${p.titulo} | Qtde: ${p.qtd} | R$ ${(p.preco*p.qtd).toFixed(2)}%0A`; total += p.preco*p.qtd; }); msg += `%0A*Total:* R$ ${total.toFixed(2)}`; window.open(`https://wa.me/${WHATSAPP_SALVO}?text=${msg}`); // registrar venda registrarVenda(); carrinho = []; renderCarrinho(); } /* ================= UTIL ================= */ function abrirZoom(src){ if(src){ zoomImg.src=src; zoom.style.display="flex"; } } function fecharZoom(){ zoom.style.display="none"; } function toggleCarrinho(){ let c=document.getElementById("carrinho"); c.classList.toggle("aberto"); document.querySelector("#carrinho .seta").innerText= c.classList.contains("aberto")?"▼":"▲"; }

Comentários

Postagens mais visitadas deste blog

Atualização 1

P

Paula