Como os hóspedes pedem: os dois caminhos
Há duas maneiras de um hóspede da sua propriedade fazer um pedido de comida e bebida, e ambas terminam no mesmo lugar: a cozinha vê um pedido, e a cobrança cai no fólio dele (ou, quando não há fólio aberto, ele recebe um link seguro do Stripe).
A gastronomia é organizada por outlet: seu restaurante, bar, café e operações de room service aparecem cada um como seu próprio destino com foto, descrição, horários e um status de Aberto/Fechado ao vivo.
Caminho 1: Lucy no chat
A maioria dos hóspedes chega aqui naturalmente. Eles abrem o chat (pelo portal do hóspede, pela tela de WiFi ou pelo WhatsApp) e tocam em Comida e Bebida ou simplesmente perguntam:
- "O que tem no cardápio do room service?"
- "Estou com fome, o que posso pedir?"
- "Posso reservar uma mesa para 4 hoje à noite?"
- "Me manda um café."
O chat primeiro pergunta o que eles querem fazer: reservar uma mesa ou pedir comida.
Pedir comida
O hóspede navega pelos seus outlets. O card de cada outlet mostra sua foto, descrição e uma badge verde de Aberto ou cinza de Fechado. Escolher um outlet aberto mostra seu cardápio com fotos dos itens, preços e tags dietéticas. Os itens vão para um carrinho, e o carrinho mostra o panorama completo antes de qualquer coisa ser feita:
- Subtotal dos itens
- Gorjeta como uma linha separada, quando o outlet a exige (com a porcentagem mostrada)
- Taxa de entrega, quando o outlet cobra uma pelo room service
- Uma nota de "Os preços incluem X% de imposto" quando aplicável
Se o hóspede escolher um outlet fechado, um aviso âmbar explica que ele está fechado e quando abre em seguida; nada pode ser pedido até lá.
Reservar uma mesa
Para outlets que aceitam reservas, o hóspede escolhe um tamanho de grupo, data e horário direto no chat. O seletor de horários mostra disponibilidade ao vivo: apenas os turnos genuinamente reserváveis são selecionáveis, e horários cheios ou passados aparecem esmaecidos. O hóspede recebe um card de confirmação assim que a reserva é feita.

Caminho 2: A página /room-service
Para hóspedes que gostam de navegar:
- Eles abrem
/room-servicepelo card de ação rápida do painel (ele aparece automaticamente assim que o contexto do listing é definido durante a chegada ou via chat). - O cardápio carrega agrupado por outlet e categoria com fotos, preços e tags dietéticas.
- Toque em um item para adicionar ao carrinho. Uma pílula flutuante de "Ver carrinho" na parte inferior mostra o total em andamento.
- Abra a folha do carrinho, ajuste as quantidades ou remova itens, e toque em Continuar para confirmar. O carrinho mostra o mesmo detalhamento de gorjeta, taxa de entrega e imposto do chat.
- O diálogo de confirmação pede o quarto/local e quaisquer solicitações especiais, e então Fazer pedido — $X,YZ o envia.
Os hóspedes veem um banner de confirmação verde com a mensagem do resultado.
"Na conta do quarto" vs "Link de pagamento": quando cada um acontece
O endpoint do pedido escolhe automaticamente:
- Fólio aberto + cartão em arquivo → a cobrança é adicionada ao fólio aberto. O hóspede vê "Adicionado à conta do seu quarto — equipe notificada." Liquida no fechamento do fólio.
- Fólio aberto mas o incremento falha → recorre a um pagamento por cobrança no mesmo cartão. A mesma mensagem de UX, só um objeto do Stripe diferente nos bastidores.
- Sem fólio aberto → um pedido pendente é criado e uma URL de checkout do Stripe é retornada. O hóspede vê o botão "Pagar e confirmar" (no chat) ou um link de checkout (na SPA).
Outlets e horários de serviço
Cada outlet tem seus próprios horários, e os cardápios dentro de um outlet podem ter suas próprias janelas de serviço (Cardápio do Café, Minibar, Cardápio do Jantar). Os hóspedes sempre veem cada outlet e cardápio, mas os itens só podem ser pedidos enquanto seu outlet e cardápio estiverem dentro da janela:
- Os cards de outlet mostram uma badge de Aberto / Fechado ao vivo; os outlets fechados mostram quando abrem em seguida.
- O cabeçalho de cada grupo de cardápio mostra seu status atual, por exemplo "Servindo agora · 7h–11h" (verde) ou "Fechado · Abre às 17h" (cinza).
- Os itens em um cardápio fechado mostram um botão Adicionar esmaecido com um tooltip ("Disponível 17h–23h"). Tocar não faz nada.
- Se um hóspede já tem um item no carrinho que desde então saiu da janela (o cardápio fechou enquanto ele navegava), a folha do carrinho o sinaliza em âmbar e o botão Fazer pedido fica desabilitado até que ele o remova.
- A mesma regra se aplica à Lucy no chat: pedidos fora da janela retornam uma mensagem clara de "disponível apenas 17h–23h".
Cardápios sem janela de serviço definida são tratados como sempre abertos, e itens não atribuídos a um grupo de cardápio permanecem sempre pedíveis.
Alérgenos e tempo de preparo
Os itens podem carregar tags dietéticas (vegano, vegetariano, sem glúten, sem laticínios, picante, contém nozes); elas aparecem
como pequenas pílulas sob a descrição. O tempo de preparo, quando
definido, aparece ao lado do item ("8 min"), e os outlets de room
service mostram um tempo estimado de entrega.
Hóspedes com alergias podem adicioná-las no campo de Solicitações especiais do diálogo de confirmação. Essa nota é enviada à equipe na notificação da cozinha.
Contexto do listing: por que o ponto de entrada do room service às vezes se esconde
O card do painel e as sugestões iniciais do chat só aparecem quando a SPA sabe em qual propriedade o hóspede está. O id do listing é definido automaticamente:
- Quando o hóspede completa o fluxo de chegada em
/arrive/[token] - Quando ele acessa
/room-service?listing_id=…diretamente com uma string de consulta (deep link) - Quando a equipe envia a ele um link mágico com o id do listing codificado
Se um hóspede chega ao painel sem contexto de listing, o card de room service fica escondido em vez de incomodá-lo com um CTA vazio. A equipe pode corrigir isso enviando a ele um novo link de chegada ou pedindo que inicie o chat pela tela de WiFi, ambos os quais definem o cookie.