====== Integração com a 99Food ======
Esta página explica como configurar o Ello para receber pedidos da **99Food** (aplicativo de delivery) e enviar o cardápio da loja para lá. Depois de configurada, a integração funciona sozinha: os pedidos feitos pelos clientes no aplicativo da 99Food aparecem no Ello, e as mudanças feitas no Ello (aceitar, pronto, despachar, cancelar) são avisadas à 99Food.
===== Antes de começar =====
Confira com o cliente se ele já tem tudo isto:
* **Módulo 99Food liberado** na empresa, no Ello. Sem o módulo, a tela da 99Food não funciona.
* **Loja cadastrada na 99Food e vinculada ao aplicativo "Ello ERP"** no portal da 99Food. Quem faz esse vínculo é a própria 99Food ou o responsável pela loja no portal.
* **Código da loja na 99Food (AppShopID).** É o código que identifica a loja do cliente na 99Food. Ele é informado no momento do vínculo da loja com o aplicativo "Ello ERP".
* **Serviço Gollum instalado e funcionando** no computador servidor da loja. É ele que conversa com a 99Food: sem o Gollum ligado, nenhum pedido chega e o cardápio não é enviado.
* **Cardápio de produtos cadastrado no Ello** com **pelo menos 5 produtos ativos**. A 99Food não aceita cardápio menor. Produtos do tipo pizza não são enviados para a 99Food.
* **Um cliente cadastrado para os pagamentos online** (por exemplo, "99FOOD"). Quando o cliente final paga pelo aplicativo, o valor fica a receber da 99Food, e o Ello lança esse valor no contas a receber em nome desse cliente.
===== Passo a passo da configuração =====
==== 1. Preencher os dados da 99Food ====
- No Ello, abra **Parâmetros > Foods > Integrações**.
- No quadro **99Food**, preencha:
* **AppShopID**: o código da loja na 99Food.
* **Cardápio**: o cardápio de produtos que será mostrado na 99Food.
* **Cliente**: o cliente usado para os pagamentos online (veja "Antes de começar").
- Clique em **Testar comunicação**. A mensagem "99Food: comunicação OK" confirma que o código da loja está certo e que a 99Food reconheceu a loja. Se aparecer falha, confira o AppShopID e se a loja está vinculada ao aplicativo "Ello ERP" no portal da 99Food.
==== 2. Confirmar e enviar o cardápio ====
- Clique em **Confirmar** para salvar os parâmetros.
- Ao salvar com um cardápio novo (ou com outro código de loja), o Ello avisa que o cardápio será enviado à 99Food.
- **Atenção:** o envio **substitui todo o cardápio** que a loja tem hoje na 99Food. Itens que estão na 99Food e não estão no cardápio do Ello deixam de aparecer lá.
- O envio é feito pelo Gollum, em segundo plano. Acompanhe o resultado no Gollum, na aba **Comunicação Delivery**.
- Salvar de novo sem mudar o cardápio nem o código da loja **não** reenvia o cardápio. Alterações nos produtos do cardápio (preço, nome, foto, disponibilidade) são enviadas sozinhas depois.
==== 3. Reiniciar o Gollum na primeira configuração ====
Na **primeira vez** que a 99Food é configurada, feche e abra o Gollum depois de salvar os parâmetros. A comunicação com a 99Food só começa quando o Gollum é iniciado com o código da loja já preenchido. Depois disso, trocar o código da loja não exige reiniciar.
==== 4. Deixar a loja recebendo pedidos ====
No aplicativo da loja da 99Food, a loja precisa estar **aberta e aceitando pedidos**, com o modo de integração ativado. Nesse modo, os pedidos são tratados pelo Ello, não pelo aplicativo da loja.
===== Como o pedido anda =====
Nos desenhos abaixo, **Gollum** é o serviço instalado no servidor da loja que conversa com a 99Food, e **Ello** é a tela de pedidos de delivery usada pelo operador.
==== Como o pedido chega ao Ello ====
Vale para qualquer tipo de entrega. O Gollum pergunta à 99Food, a cada 30 segundos, se há pedidos novos. Por isso o pedido pode levar até meio minuto para aparecer.
actor "Cliente" as cli
participant "99Food" as food
participant "Gollum" as gol
participant "Ello" as ello
actor "Operador" as op
cli -> food : faz o pedido no aplicativo
loop a cada 30 segundos
gol -> food : "tem pedido novo?"
end
food --> gol : pedido novo
gol -> ello : grava o pedido
gol -> food : "pedido recebido"
ello -> op : pedido aparece na tela
op -> ello : aceita o pedido
ello -> gol : pedido aceito
gol -> food : avisa que a loja aceitou
food --> cli : "pedido aceito pela loja"
==== Entrega feita pela loja ====
A loja prepara e entrega com o próprio entregador. Cada etapa marcada no Ello é avisada à 99Food, que mostra o andamento para o cliente.
actor "Operador" as op
participant "Ello" as ello
participant "Gollum" as gol
participant "99Food" as food
actor "Cliente" as cli
op -> ello : marca "Pedido pronto"
note right of ello
Pagamento pelo aplicativo:
o valor a receber da 99Food
é lançado aqui (caixa aberto)
end note
ello -> gol : pronto
gol -> food : avisa "pronto"
op -> ello : despacha o pedido
ello -> gol : despachado
gol -> food : avisa "saiu para entrega"
food --> cli : "seu pedido saiu para entrega"
op -> ello : marca "entregue"\n(com o código do cliente, se pedido)
ello -> gol : entregue
gol -> food : avisa "entregue"
food --> cli : "pedido entregue"
==== Entrega feita pela 99Food ====
A loja só prepara o pedido. O **último passo da loja é o "Pedido pronto"**: a partir daí, quem cuida da entrega é a 99Food, que chama o entregador. O Ello acompanha o que a 99Food informa.
actor "Operador" as op
participant "Ello" as ello
participant "Gollum" as gol
participant "99Food" as food
actor "Entregador da 99Food" as ent
op -> ello : marca "Pedido pronto"
note right of ello
Pagamento pelo aplicativo:
o valor a receber da 99Food
é lançado aqui (caixa aberto)
end note
ello -> gol : pronto
gol -> food : avisa "pronto"
ello -> op : tela mostra\n"Aguardando entregador da 99Food"
food -> ent : chama um entregador
ent -> food : retira o pedido na loja\ne sai para entregar
food --> gol : "pedido saiu para entrega"
gol -> ello : pedido passa a "Despachado"
ent -> food : entrega ao cliente
food --> gol : "pedido concluído"
gol -> ello : pedido fica "Concluído"
note over op, ello
Se o operador faturar antes,
o pedido é concluído na hora
e o aviso da 99Food só é registrado.
end note
===== Como funciona no dia a dia =====
* **Pedido novo:** aparece no Ello em até 30 segundos depois de o cliente pedir. O operador aceita o pedido normalmente na tela de pedidos de delivery.
* **Pedido pronto:** o operador marca o pedido como pronto, e a 99Food é avisada.
* **Entrega feita pela loja:** depois do pronto, o operador despacha o pedido e, na entrega, marca como entregue. Se a 99Food pedir, informe o código de entrega dado pelo cliente.
* **Entrega feita pela 99Food:** o último passo da loja é o **"Pedido pronto"**. Depois disso o entregador da 99Food busca o pedido. A tela mostra "Aguardando entregador da 99Food" e, quando o entregador sai, o pedido passa a "Despachado". O pedido é concluído sozinho quando a 99Food conclui a entrega, ou quando o operador fatura.
* **Retirada no balcão:** depois do pronto, o operador marca como retirado.
* **Pagamento pelo aplicativo (online):** quando o pedido fica pronto (ou é despachado), o Ello lança o valor a receber da 99Food em nome do cliente configurado. Para isso, o **caixa precisa estar aberto**.
* **Cancelamento:**
* Se o cliente pedir o cancelamento pelo aplicativo, o pedido mostra "Solicitação de cancelamento pendente", e o operador aceita ou recusa.
* Se a loja quiser cancelar, cancele pelo Ello informando o motivo; a 99Food confirma em seguida.
===== Problemas comuns =====
^ O que aparece ^ O que fazer ^
| "Configure o Cliente da 99Food nos parâmetros" ao marcar pronto ou despachar | Preencha o campo **Cliente** no quadro 99Food e salve. O pedido volta para o operador e pode ser marcado de novo. |
| "Não há período (caixa) aberto" ao marcar pronto ou despachar | Abra o caixa e marque o pedido de novo. Em pedido pago online, o Ello não avisa a 99Food enquanto não puder lançar o valor a receber. |
| Pedido feito na 99Food não aparece no Ello | Confira se o Gollum está ligado, se a loja está aberta no aplicativo da 99Food e a aba **Comunicação Delivery** do Gollum. Se a aba disser que o pedido tem um produto sem correspondência no Ello, inclua esse produto no cardápio e aguarde: o pedido entra sozinho na consulta seguinte. |
| O cardápio não foi enviado | Veja a aba **Comunicação Delivery**. O cardápio precisa ter pelo menos 5 produtos ativos. A 99Food aceita um envio completo por minuto; se houver muitos envios seguidos, o Gollum espera e tenta de novo sozinho. |
| A foto do produto não aparece na 99Food | A 99Food analisa as fotos antes de mostrar, e isso pode levar alguns minutos. Fotos com pessoas costumam ser recusadas pela 99Food. O motivo da recusa só aparece no portal da 99Food. |
| "Falha de comunicação com a 99Food" no Testar comunicação | Confira o AppShopID e se a loja está vinculada ao aplicativo "Ello ERP" no portal da 99Food. |
| A loja foi trocada (novo código de loja) | Informe o novo AppShopID e confirme. O cardápio é enviado para a loja nova, e os pedidos passam a vir dela. |
===== Observações =====
* Os dados do entregador da 99Food (nome, telefone) não aparecem no Ello.
* O ambiente de testes da 99Food não simula a entrega feita pela plataforma: esse fluxo só pode ser conferido com um pedido real.