Item em Meu negócio

A aposta: em vez de empurrar a instalação com um banner, o Engrenou deixa um caminho fixo dentro de "Meu negócio" e gasta um único convite discreto, tarde, pra quem já usa o app de verdade - respeitar quem não quer sai mais barato do que insistir com quem talvez queira.

19/ago/2026 · PWA já em produção (manifesto, service worker e ícones no ar). Falta só o convite dentro do app. Medidas, classes e regras tiradas de NegocioHub.jsx, negocio-v3.css, Hoje.jsx, shell-v2.css e pwa.js.

a · no celular

O caminho fixo e o convite único

Duas peças, uma permanente e uma efêmera. A permanente mora no rodapé pessoal do hub "Meu negócio" (onde já vivem "Minha conta", "Ocultar valores", "Tutorial" e "Sair") - pôr o app na tela é assunto da pessoa e do aparelho dela, não do negócio, e por isso não entra nos blocos Vender/Cozinha/Pessoas/O negócio, que são gateados por papel. A efêmera é um aviso do dia no Hoje, no padrão que já existe, com a menor prioridade da fila.

1. Meu negócio, rolado até o fim o item permanente, sempre lá
9:41
Cantina da Ana
Pessoas
Clientes4 sumidos faz 2 meses
Equipequem trabalha com você
O negócio
A cara do negócionome, logo, cor e WhatsApp
O que o app mostraligue só as áreas que você usa
Pôr o Engrenou no celularabre direto, sem procurar no navegador
Minha contaseus dados e sua senha
Ocultar valores
Hoje
Pedidos
Produção
Dinheiro
Negócio

Por que no rodapé pessoal e não num bloco: os blocos são gateados por papel (dono, atendente, financeiro) e a fonte é lib/negocioItens.js, que a barra lateral do computador também lê. Instalar não tem gate nenhum e não existe no computador. Uma linha nova ali economiza um item gateado na fonte única e ainda diz a verdade: é do aparelho da pessoa, igual "Minha conta".

Já instalado? A linha some. Dentro do app instalado ela não serve pra nada, e matchMedia('(display-mode: standalone)') resolve isso sem pedir nada a ninguém.

2. O convite único, no Hoje uma vez na vida da conta, por último na fila
9:41
Cantina da Ana

Bom dia, Ana

terça, 19 de agosto

2 pedidos pra entregar hojee um ainda não saiu da cozinha
Dá pra deixar o Engrenou na tela do celularFica junto com o WhatsApp e abre com um toque. Toque aqui pra ver como.
Entrou hojeR$ 340
Pedidos6
Dona Rita14h
Marcos (bolo 2kg)17h
Salgado da Cris18h30
Hoje
Pedidos
Produção
Dinheiro
Negócio

Não é um quarto padrão de aviso. É o .hjv2-alerta.teal que o Hoje já tem, com X de 34px e o teto de 2 avisos visíveis. A diferença é a chave: em vez de eng_hj_dis_<id>_<key> guardando a data de hoje (volta amanhã), guarda eng_pwa_convite_<id> = {vezes, fechado_em}. Fechou, acabou.

Entra sempre por último. Se houver 2 avisos de operação, o convite fica atrás do "ver mais avisos" e nem conta como aparição. Pedido atrasado vale mais que instalar app.

3. O destino, no Android aqui existe API: um botão que instala de verdade
9:41
Cantina da Ana
O negócio
A cara do negócionome, logo, cor e WhatsApp
O que o app mostraligue só as áreas que você usa

Deixe o Engrenou na tela do celular

Vira um ícone junto com os outros. Você abre com um toque, sem digitar endereço nem procurar a aba certa.

Não é da Play Store: é o mesmo Engrenou que você já usa. Precisa de internet do mesmo jeito, porque seus pedidos ficam salvos na nuvem, não no aparelho.

Hoje
Pedidos
Produção
Dinheiro
Negócio

O botão só existe se o navegador deixou. O app guarda o beforeinstallprompt quando ele dispara e chama prompt() aqui. Se o evento nunca veio (navegador sem suporte, ou já instalado), o botão não é desenhado: a folha cai no passo a passo do menu do Chrome. Botão que não faz nada é pior que nenhum botão.

4. O destino, no iPhone não existe API: a folha ENSINA, não promete
9:41
Cantina da Ana
O negócio
A cara do negócionome, logo, cor e WhatsApp

Deixe o Engrenou na tela do celular

No iPhone quem faz isso é o Safari, em três toques. O Engrenou não consegue fazer por você.

  1. 1 Toque em Compartilhar, na barra de baixo.
  2. 2 Role a lista e toque em Adicionar à Tela de Início.
  3. 3 Toque em Adicionar, no canto de cima. Pronto: o ícone do Engrenou aparece na sua tela.
Isso só funciona no Safari. Se você abriu o Engrenou por um link do Instagram ou do WhatsApp, abra o menu do navegador e escolha Abrir no Safari.
Hoje
Pedidos
Produção
Dinheiro
Negócio

Zero botão de ação. Nenhum "Instalar", nenhum "Adicionar" que a gente possa apertar - no iOS não existe API nenhuma. O único botão é Entendi, que fecha. Prometer um toque que não existe seria mentira, e o iPhone é metade do público.

O desenho do ícone importa mais que o texto. A dona não sabe o que é "Compartilhar", ela conhece o quadradinho com a seta. Por isso o ícone aparece duas vezes: dentro da frase e circulado na barra de baixo, no lugar onde ela vai olhar.

b · a copy

O texto, que é metade do trabalho

Ninguém no público-alvo quer "instalar um PWA". O que ela quer é não perder tempo procurando a aba certa às 6 da manhã com a mão suja de massa. A promessa é essa, e nada além dela.

Headline A · escolhida

Deixe o Engrenou na tela do celular

Vira um ícone junto com os outros. Você abre com um toque, sem digitar endereço nem procurar a aba certa.

Por que essa: fala do resultado que ela vê (o ícone) e usa um verbo tranquilo. "Deixe" não pressiona: dá permissão. E não usa a palavra "instalar", que no Brasil puxa medo de ocupar memória e de vírus.

Headline B · alternativa

O Engrenou pode ficar do lado do WhatsApp

Você põe o ícone na tela inicial e abre com um toque. É o mesmo Engrenou, só que mais perto.

Por que talvez: ancora no aplicativo que ela usa o dia inteiro, então o benefício fica óbvio sem explicação. Perde na neutralidade: cita uma marca de terceiro dentro do nosso app, e quem vende por Instagram ou telefone pode não se ver ali.

Item no hub (permanente)

  • Título: Pôr o Engrenou no celular
  • Subtítulo: abre direto, sem procurar no navegador
  • Some inteiro quando o app já está instalado.

Convite (uma vez)

  • Título: Dá pra deixar o Engrenou na tela do celular
  • Subtítulo: Fica junto com o WhatsApp e abre com um toque. Toque aqui pra ver como.
  • X: rótulo de acessibilidade "Não mostrar de novo" (o do Hoje hoje diz "Guardar aviso por hoje", e aqui seria falso).

A frase honesta, nas duas folhas

  • "Não é da Play Store: é o mesmo Engrenou que você já usa."
  • "Precisa de internet do mesmo jeito, porque seus pedidos ficam salvos na nuvem, não no aparelho."
  • Essa segunda linha não é enfeite: o sw.js é burro de propósito e só guarda a página de sem internet. Prometer "funciona offline" seria vender o que o produto não tem.
c · computador (≥781px)

No computador não existe item, e isso é de propósito

Três motivos, nessa ordem: (1) o prêmio é um ícone na tela do celular, e no computador esse prêmio não existe; (2) o Chrome e o Edge já oferecem a instalação sozinhos, com o ícone na barra de endereço - repetir a oferta ao lado seria o app disputando com o navegador; (3) os itens do hub vêm de lib/negocioItens.js, que a barra lateral do computador também lê, então um item só-celular ali obrigaria um gate novo na fonte única. Ficando no rodapé pessoal do hub (.neg3-sessao, que já é display:none acima de 780px), o computador não muda uma linha.

app.engrenou.com.br/negocio instalar (do navegador)
A cara do negócionome, logo, cor e WhatsApp
O que o app mostraligue só as áreas que você usa
Pôr o Engrenou no celular
Quem cadastra no computador e usa no celular vai encontrar o item quando abrir o app no telefone. É o mesmo lugar, no aparelho certo.
d · regras

Como funciona

Quando aparece

  • O item: sempre. Linha fixa no rodapé de "Meu negócio", no celular, pra qualquer papel (dono, atendente, quem for). Não depende de tempo de uso, de plano nem de número de pedidos.
  • O convite: uma vez, no Hoje, quando as três coisas forem verdade ao mesmo tempo: passaram 7 dias do primeiro acesso (eng_visita1_<id>), a conta já criou 5 pedidos, e a fila de avisos do dia tem no máximo 1 aviso de operação.
  • O convite entra sempre por último na fila. Pedido atrasado, ingrediente faltando e cobrança pendente passam na frente.

Quando NÃO aparece

  • Se o app já está instalado: matchMedia('(display-mode: standalone)') ou navigator.standalone no iOS. Some o item e some o convite.
  • No computador (acima de 780px).
  • Na primeira sessão. A doutrina do app é "uma voz na primeira sessão", e essa voz é o checklist de primeiro uso.
  • Nas telas da loja da cliente (/loja/:slug e /m/:slug). A mesma fronteira que já tira o manifesto dali: quem compra um bolo não vai instalar a ferramenta de gestão de outra pessoa.
  • No adm.engrenou.com.br, pelo mesmo motivo do pwa.js: backoffice não se instala.

Quantas vezes

  • O item: infinitas. É caminho, não aviso. Ele não pisca, não tem selo de "novo", não tem bolinha.
  • O convite: no máximo 3 aparições na vida da conta, e só conta quando aparece de verdade na tela (ficar atrás do "ver mais avisos" não gasta chance).
  • Tocar no convite gasta ele por inteiro: abriu a folha, some pra sempre, tenha instalado ou não. Quem viu como se faz não precisa ser lembrado.

Ao dispensar

  • O X some pra sempre. Nada de "volta em 30 dias" como o aviso do catálogo: aqui o não é não.
  • Chave eng_pwa_convite_<bakeryId> = {vezes, fechado_em, tocou}, embrulhada em try/catch como todo o resto (modo privado: só não lembra).
  • Dispensar tira o convite, nunca o item. Se ela mudar de ideia em novembro, o caminho está no mesmo lugar de sempre.

O que dá pra medir (pouco, e sem mentir)

  • Evento novo exigiria migração na policy de eventos. Então reusa o tipo nav com meta:{para:'pwa_convite'} e meta:{para:'pwa_folha'}, do jeito que o Tutorial já faz.
  • Isso mede abertura da folha, não instalação. No Android o navegador dispara appinstalled; no iPhone não dispara nada. Uma "taxa de instalação" tirada daí seria só-Android e enganaria a leitura.
  • Enquanto isso, o sinal honesto é indireto: quantas sessões chegam em modo standalone. Dá pra medir depois, quando valer uma migração.

O que reusa (nada novo pra manter)

  • Aviso: .hjv2-alerta.teal do Hoje, com X de 34px e o teto de 2 visíveis.
  • Folha: .np-ov + .np-sheet do Novo pedido (raio 26, alça 44x5, safe-area no rodapé; acima de 781px viraria modal de 560px, mas essa folha não existe no computador).
  • Linha do hub: .neg3-sessao .linha, altura mínima 56px aqui (as vizinhas têm 48px porque não têm subtítulo).
  • Cor: tudo em var(--brand) e derivados. Tenant com marca roxa vê convite roxo.