Fluxo completo: do pedido do cliente até o fechamento do caixa. Para operadores, cozinha, entregador e administradores.
| Perfil | Login / E-mail | Senha | Acessa |
|---|---|---|---|
| Administrador | admin@bar-choperia-carioca.com | carioca@123 | Tudo — kanban, caixa, configurações |
| Cozinha | cozinha_bar | Cozinha@123 | Tela da Cozinha (iniciar/pronto) |
| Entregador | entregador_bar | Entregador@123 | Tela do entregador (saiu/entregue) |
Abra /delivery/loja-demo. Adicione produtos ao carrinho, preencha nome, telefone, endereço, bairro e forma de pagamento. Clique Enviar Pedido 🚀.
A página de acompanhamento é exibida com o número do pedido (ex: PD-0004).
No Kanban de pedidos, o pedido aparece na coluna Recebido com som de alerta. Clique Aceitar → move para Aceito. Clique Enviar p/ Cozinha → move para Em Preparo.
Na Tela da Cozinha, o pedido aparece em laranja. Clique Iniciar Preparo e depois Pronto. Também pode ser feito pelo operador no kanban (coluna Em Preparo → Marcar Pronto).
Na Tela do Entregador, o pedido aparece como Pronto. Clique Saiu para entrega → status vai para saiu_entrega.
Após entregar ao cliente, clique Confirmar entrega. O pedido vai para entregue e aparece na coluna A Fechar no kanban.
No kanban, coluna A Fechar, clique Confirmar Pagamento. Uma venda é criada automaticamente com canal=delivery, vinculada ao caixa aberto. O pedido vai para finalizado.
⚠ O caixa precisa estar aberto. Acesse /caixa/abrir se necessário.
entregue e aparece em A Fechar para confirmar o pagamento.| Etapa | Quem muda | Ação no sistema | Visível em |
|---|---|---|---|
| Recebido | Automático (cliente fez pedido) | Pedido criado no cardápio público | Kanban — coluna Recebido |
| Aceito | Operador / Admin | Clicar "Aceitar" no kanban | Kanban — coluna Aceito |
| Em Preparo | Operador ou Cozinha | "Enviar p/ Cozinha" no kanban ou "Iniciar Preparo" no KDS | Kanban · Tela da Cozinha |
| Pronto | Cozinha ou Operador | "Pronto" no KDS ou "Marcar Pronto" no kanban | Kanban · Tela do Entregador |
| Saiu p/ Entrega | Entregador | "Saiu para entrega" na Tela do Entregador | Kanban · Tela do Entregador |
| Entregue | Entregador | "Confirmar entrega" na Tela do Entregador | Kanban — coluna A Fechar |
| Finalizado | Operador / Admin | "Confirmar Pagamento" no kanban (requer caixa aberto) | Contador diário no topo do kanban |
| Cancelado | Operador / Admin | Botão ✕ vermelho em qualquer coluna do kanban | Contador diário no topo do kanban |
| Tela / Ação | Admin | Gerente | Operador | Cozinha | Entregador | Cliente (público) |
|---|---|---|---|---|---|---|
| Cardápio público | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kanban de pedidos | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
| Confirmar pagamento (caixa) | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
| Tela da Cozinha (ver) | ✓ | ✓ | ✓ | ✓ | ✕ | ✓* |
| Tela da Cozinha (ações POST) | ✓ | ✓ | ✕ | ✓ | ✕ | ✓† |
| Tela do Entregador | ✓ | ✓ | ✓ | ✕ | ✓ | ✕ |
| Caixa (abrir/fechar) | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
| Relatórios | ✓ | ✓ | ✕ | ✕ | ✕ | ✕ |
| Configurações | ✓ | ✓ | ✕ | ✕ | ✕ | ✕ |
* Via GET /cozinha?tenant_id=X — público para compatibilidade. Use o link seguro por token para produção.
† Via POST /cozinha/kds/{token}/... — token de dispositivo, sem login necessário.
Ao clicar Confirmar Pagamento no kanban, o sistema executa numa transação:
canal=delivery, estado=aprovado, vinculada ao caixa abertovenda_id no pedido e muda para finalizadoA venda criada fica vinculada ao caixa pelo caixa_id. No Fechamento de Caixa, o resumo inclui automaticamente todas as vendas delivery do período — mesma lógica das vendas de balcão e PDV.
venda_id já estiver preenchido, aparece "Baixado" sem botão.Em vez de usar ?tenant_id=X (que expõe o ID do tenant), use o link com token de dispositivo:
Este token está vinculado à loja. Qualquer tablet que acesse esse URL verá os pedidos sem precisar fazer login.
Se o token for comprometido, regenere-o em Configurações do Delivery (em breve). Por ora, pode ser atualizado via banco de dados:
UPDATE delivery_configs SET kds_token = SUBSTRING(MD5(RAND()), 1, 32) WHERE slug = 'loja-demo';
Após regenerar, atualize o link em todos os tablets da cozinha.
/cozinha?tenant_id=1 continua funcionando para facilitar testes sem configuração.
Todos os canais externos são importados como pedidos_delivery com o campo canal marcado com a plataforma de origem.
A Central de Pedidos (/delivery/pedidos) exibe todos os canais em um único kanban com cores por plataforma.
| Plataforma | Canal (DB) | Como chega | Vai ao Caixa | EagleSync |
|---|---|---|---|---|
| iFood | ifood |
Webhook + polling a cada 1min (PollIfoodEventsJob) | Sim — baixa manual na tela de pedidos | Via eagle agent (não duplica) |
| 99food | 99food |
Webhook POST /api/webhooks/food99 | Sim — baixa manual | Via eagle_order_queue |
| Mercado Livre | mercado_livre |
Webhook + SyncMercadoLivreJob a cada 15min | Sim — automático em alguns fluxos | Via eagle_order_queue |
| Zé Delivery | zedelivery |
Polling manual ou webhook (configurar) | Sim — baixa manual | Via eagle_order_queue |
| Rappi | rappi |
Polling manual ou webhook (configurar) | Sim — baixa manual | Via eagle_order_queue |
| Amazon | amazon |
SP-API polling (configurar) | Sim — baixa manual | Via eagle_order_queue |
| Delivery Próprio | delivery_proprio |
Cardápio público + checkout | Sim — automático | Via eagle_order_queue |
whatsapp |
Registro manual na tela de pedidos | Sim — baixa manual | Via eagle_order_queue |
php artisan migrate --force via Terminal cPanel para criar as tabelas.
Se o teste de heartbeat falhar com mensagem "escopo da loja recebido, esperado escopo de aplicação", o campo Client ID está configurado com credenciais de loja (merchant:…) em vez de credenciais de aplicação (client:…). Use o Client ID da Aplicação registrada no Portal do Desenvolvedor iFood.
O EagleSync é um agente desktop instalado nos computadores físicos. Ele lê a fila eagle_order_queue e registra as vendas no Firebird (EagleSystem/ERP offline).
failed são reprocessadas automaticamente pelo comando eagle:retry-queue (a cada 5min).
aceito ou em_preparo. Se o pedido ainda está recebido, aceite-o primeiro no kanban. Se está pronto ou além, já saiu do KDS.pronto ou saiu_entrega e do tipo entrega. Pedidos de retirada não aparecem aqui — são gerenciados pelo operador no kanban.