Registrando uma venda no balcão (PDV)
Como vender serviço, produto ou misto, aplicar desconto e definir forma de pagamento.
O PDV do PetShop Flow aceita venda só de serviço, só de produto ou misto. O preço de cada item é resolvido no servidor — você não consegue forjar valores pelo navegador.
Passo a passo
- Acesse /vendas e clique em Nova venda.
- (Opcional) Selecione o cliente e o cão. Se selecionar cão, o sistema valida que ele pertence ao cliente.
- Adicione itens:
- Tipo
serviceouproduct. - Quantidade (1 a 99).
- Tipo
- (Opcional) Defina desconto em reais. O PetShop Flow limita o desconto ao subtotal — não tem subtotal negativo.
- Escolha forma de pagamento:
pix,credito,debito,dinheiro,transferencia,boletoououtro. - Marque pago ou deixe como aguardando pagamento.
- (Opcional) Observações.
- Clique em Finalizar venda.
[SCREENSHOT: Tela do PDV com serviço e produto adicionados]
Como o preço é calculado
O PetShop Flow busca cada item no banco e usa o preço cadastrado, ignorando qualquer valor que venha do navegador:
- Serviço: começa com
basePriceCents. Se houver cão selecionado e existir preço pro porte daquele cão (priceBySizeCents.pequeno|medio|grande|gigante), usa esse. - Produto: usa
priceCents. Verifica também o estoque — se a quantidade pedida for maior que ostockQtyatual, a venda falha com mensagem mostrando o estoque disponível.
Subtotal = soma de (preço unitário × quantidade). Desconto = mínimo entre o que você pediu e o subtotal. Total = subtotal − desconto.
O que acontece ao finalizar
Em uma transação só, o PetShop Flow:
- Cria o registro
salescom subtotal, desconto e total. - Cria os
saleItemscom descrição, quantidade e preço. - Pra cada produto: decrementa o estoque e registra um
stock_movementdo tipovenda. - Cria um
paymentcom método, valor total e status. Se você marcou pago, registra a data de pagamento. - Redireciona pra /vendas.
Vendas avulsas (sem cliente)
Se você não selecionar cliente, a venda fica avulsa. Funciona pra balcão rápido — produto de prateleira sem identificar o tutor. Mas perde:
- Vínculo com programa de fidelidade.
- Histórico de compras do cliente.
- Possibilidade de emitir NFS-e (serviço precisa de tomador).
Perguntas frequentes
Posso editar uma venda depois de finalizada?
Não. A venda é um registro fiscalizável. Pra corrigir, registre uma nova venda com valor negativo (estorno) ou fala com o suporte.
O cliente paga depois. Como faço?
Marque a venda como aguardando_pagamento. Quando o cliente quitar, abra a venda e atualize o pagamento.
Vendi produto sem estoque cadastrado. Posso?
O PetShop Flow bloqueia: se stockQty < quantidade, a venda falha. Veja Controle de estoque na venda.