Page 1 of 9
System Requirements Document for loja-produtos
1. Introduction
loja-produtos é uma loja online brasileira para vender produtos. O produto existe para que um responsável pela loja (Store Owner) publique e mantenha um catálogo de produtos durável, e para que visitantes (Shoppers) naveguem esse catálogo pelo celular e concluam a compra por meio do checkout externo hospedado em https://pay.kaiross.com.br/SAxOzfHaKl6S.
O público é local, compra predominantemente pelo celular e espera confiança imediata: sinalização de "Checkout Seguro", prova social de "10.000+ clientes satisfeitos", preço claro em reais (valor original e valor promocional), frete calculado por CEP e campos brasileiros como CPF/CNPJ, CEP e UF. O registro emocional é moderno, confiável e levemente aspiracional — não corporativo, não infantil.
O pagamento e o checkout não são construídos neste produto: eles pertencem ao provedor externo acessado pelo link informado. A loja é responsável pela vitrine, pelo catálogo, pela identidade do Store Owner e pela apresentação do resumo do pedido e do ponto de entrada para o checkout externo.
Page 2 of 9
2. System Overview
O sistema atual é composto por:
- Vitrine pública (Landing e Products) acessível anonimamente, que apresenta a loja, o produto em destaque, o preço promocional em reais e o catálogo de produtos disponíveis.
- Identidade própria da aplicação para o Store Owner: autoinscrição (Sign Up) e verificação de retorno (Login), necessárias para que o catálogo durável permaneça vinculado ao participante correto e possa ser retomado.
- Área protegida de gestão (Product Management) onde o Store Owner adiciona e mantém os produtos do catálogo.
- Checkout externo hospedado em
https://pay.kaiross.com.br/SAxOzfHaKl6S, com formulário seguro embutido, campos brasileiros, resumo do pedido e carregamento de opções de frete após o preenchimento do endereço.
Atores aceitos (conjunto fechado): Store Owner e Shopper. O provedor de pagamento em pay.kaiross.com.br é um ator não-humano externo, responsável pelo checkout e pelo processamento do pagamento.
Exclusões estreitas: a loja não processa pagamentos, não emite cobranças, não calcula frete por conta própria e não gerencia contas além da identidade mínima necessária do Store Owner. Nenhuma capacidade adjacente de e-commerce (carrinho próprio com pagamento interno, gestão de pedidos, cupons, avaliações, painel financeiro) é assumida.
Page 3 of 9
2a. Product Interpretation and Delivery Boundary
A entrega atual é uma loja com interface própria (custom UI) para vitrine, catálogo e gestão de produtos, combinada com uma superfície de checkout pertencente ao provedor externo. O visitante navega e escolhe produtos na loja; ao decidir comprar, é encaminhado ao checkout seguro do provedor, onde informa e-mail, confirmação de e-mail, nome completo, CPF/CNPJ, CEP, endereço, número, complemento (opcional), bairro, cidade, UF e celular com código do país +55, e onde as opções de frete são exibidas após o preenchimento do endereço.
A identidade é de propriedade da aplicação e existe apenas para o Store Owner: sem ela, o catálogo durável não poderia ser retomado nem permanecer vinculado ao responsável correto. A entrada para essa identidade é anônima (Sign Up e Login), e apenas a área de gestão de produtos exige identidade estabelecida. A navegação pública do catálogo permanece anônima.
Fronteira atual: Landing, Login, Sign Up, Products e Product Management, além do checkout externo do provedor.
Fora do horizonte atual: qualquer capacidade não listada acima permanece não comprometida e não deve ser construída nesta geração.
Page 4 of 9
2b. Source Content Inventory
Fatos verificados da fonte de referência de checkout (https://pay.kaiross.com.br/SAxOzfHaKl6S), preservados item a item:
Formulário de checkout (hospedado, seguro, embutido):
- E-mail
- Confirme o e-mail
- Nome completo
- CPF / CNPJ
- CEP
- Endereço
- Número
- Complemento (opcional)
- Bairro
- Cidade
- UF (seleção de estado)
- Celular (com código do país +55)
Resumo do pedido:
- Rótulo: "Resumo do pedido"
- Preço original: R$ 292,05
- Preço com desconto: R$ 253,96
Frete:
- Comportamento: as opções de frete são carregadas/exibidas após o preenchimento dos campos de endereço.
- Texto de instrução: "Preencha seu endereço para ver as opções de frete."
Sinais de confiança da marca:
- "Checkout Seguro"
- "10.000+ CLIENTES SATISFEITOS"
Page 5 of 9
2c. Page Content and Component Coverage
Landing
- Informação/estado: promessa da loja ("Sua loja de produtos com checkout seguro", com "seguro" em rosa #FF4D9D), produto em destaque com imagem, preço promocional em rosa e preço original riscado, linha de confiança com "10.000+ clientes satisfeitos" e "Checkout Seguro".
- Ações primárias: "Comprar agora" (abre o checkout externo
https://pay.kaiross.com.br/SAxOzfHaKl6S); navegação para o catálogo (Products).
- Ações de apoio: acesso a Login e Sign Up para o Store Owner.
- Entidades de domínio: Produto (nome, imagem, preço original, preço promocional), Loja.
- Responsabilidades de componente: hero em duas camadas (título à esquerda, painel de vidro com produto em destaque à direita), chip de confiança com ícone de cadeado e brilho pulsante lento, painel de resumo do pedido em vidro fosco.
- Estados: carregando (esqueleto do painel de vidro e do produto em destaque); vazio (nenhum produto em destaque disponível — exibe convite para ver o catálogo); sucesso (produto em destaque e preços renderizados); erro (falha ao carregar o destaque — mantém a promessa da loja e o link para o catálogo); recuperação (recarregar o destaque sem perder a navegação para Products).
Login
- Informação/estado: formulário de verificação de retorno do Store Owner; mensagem de erro de credenciais; estado de envio.
- Ações primárias: autenticar e retomar o controle do catálogo.
- Ações de apoio: ir para Sign Up; voltar para a Landing.
- Entidades de domínio: Identidade do Store Owner, Sessão.
- Responsabilidades de componente: campos de vidro com label flutuante em caixa alta e tracking 0.08em, botão pill violeta, mensagens de erro acessíveis.
- Estados: carregando (envio em andamento com botão desabilitado); vazio (formulário limpo); sucesso (redireciona para Product Management); erro (credenciais inválidas — mensagem clara e formulário preservado); recuperação (nova tentativa sem perder os dados digitados).
Sign Up
- Informação/estado: formulário de autoinscrição do Store Owner; requisitos mínimos de identidade; estado de envio.
- Ações primárias: criar a identidade do Store Owner e iniciar a gestão do catálogo.
- Ações de apoio: ir para Login; voltar para a Landing.
- Entidades de domínio: Identidade do Store Owner, Sessão.
- Responsabilidades de componente: campos de vidro com label flutuante, validação em linha, botão pill violeta.
- Estados: carregando (envio em andamento); vazio (formulário limpo); sucesso (identidade criada e encaminhamento para Product Management); erro (dados inválidos ou identidade já existente — mensagem específica); recuperação (correção do campo indicado sem perder o restante do formulário).
Page 6 of 9
Products
- Informação/estado: grade de tiles de vidro com imagem quadrada, nome do produto, preço em duas linhas (original riscado e promocional em rosa #FF4D9D) e botão de compra; resumo do pedido como painel fixo no desktop e barra inferior flutuante no mobile, com total em rosa #FF4D9D e botão de checkout sempre visível.
- Ações primárias: selecionar produto e iniciar a compra pelo checkout externo.
- Ações de apoio: navegar de volta para a Landing; acessar Login/Sign Up.
- Entidades de domínio: Produto, Preço original, Preço promocional, Resumo do pedido.
- Responsabilidades de componente: tile de produto com borda luminosa de 1px que acende em #7C5CFF no hover e brilho percorrendo a borda superior em 400ms; painel/barra de resumo do pedido; selo "Checkout Seguro".
- Estados: carregando (esqueleto de tiles); vazio (nenhum produto publicado — mensagem informativa e caminho para a Landing); sucesso (tiles renderizados com preços); erro (falha ao carregar o catálogo — mensagem e ação de tentar novamente); recuperação (recarregar a grade preservando o resumo do pedido).
Product Management
- Informação/estado: lista dos produtos do catálogo do Store Owner com seus dados atuais; estado de cada operação de criação e edição.
- Ações primárias: adicionar produto ao catálogo; editar dados de um produto existente.
- Ações de apoio: sair da área protegida; revisar o catálogo público.
- Entidades de domínio: Produto (nome, imagem, preço original, preço promocional, disponibilidade), Identidade do Store Owner.
- Responsabilidades de componente: formulário de produto com campos de vidro e label flutuante, lista de produtos com ações por item, confirmação de operação.
- Estados: carregando (esqueleto da lista); vazio (nenhum produto cadastrado — convite para adicionar o primeiro produto); sucesso (produto criado ou atualizado e visível na lista); erro (falha ao salvar — mensagem específica e dados preservados); recuperação (reenviar a operação sem redigitar o formulário).
Page 7 of 9
3. Functional Requirements
FR-01 — Vitrine pública da loja [explicit]
As a Shopper, I should see a public store page that presents the store and its products so that I understand what is being sold and how to buy.
- Gatilho/entrada: acesso anônimo à Landing.
- Resultado observável: promessa da loja, produto em destaque com preço promocional em reais e preço original riscado, e linha de confiança com "10.000+ clientes satisfeitos" e "Checkout Seguro".
- Acesso: anônimo.
- Falha/recuperação: se o destaque não carregar, a promessa da loja e o caminho para o catálogo permanecem disponíveis.
- Continuação: navegação para o catálogo (Products).
FR-02 — Catálogo de produtos navegável [explicit]
As a Shopper, I should browse the store's product catalog so that I can choose what to buy.
- Gatilho/entrada: acesso anônimo a Products.
- Resultado observável: grade de tiles com imagem, nome, preço original riscado e preço promocional em rosa #FF4D9D.
- Acesso: anônimo.
- Falha/recuperação: se o catálogo falhar, exibir mensagem e ação de tentar novamente, preservando o resumo do pedido.
- Continuação: seleção de um produto e início da compra.
FR-03 — Resumo do pedido persistente [explicit]
As a Shopper, I should always see the order summary with the total in reais while I browse so that I know what I am about to pay.
- Gatilho/entrada: navegação no catálogo.
- Resultado observável: painel de vidro fixo à direita no desktop e barra inferior flutuante no mobile, com o total em rosa #FF4D9D e o botão de checkout sempre visível.
- Acesso: anônimo.
- Falha/recuperação: se o resumo não puder ser atualizado, o último total válido permanece visível e o botão de checkout continua acessível.
- Continuação: abertura do checkout externo.
FR-04 — Checkout externo pelo link do provedor [explicit]
As a Shopper, I should complete my purchase through the store's external checkout link https://pay.kaiross.com.br/SAxOzfHaKl6S so that my payment is processed securely.
- Gatilho/entrada: acionamento de "Comprar agora" na Landing ou do botão de checkout no catálogo.
- Resultado observável: abertura do checkout hospedado do provedor, com formulário seguro embutido e resumo do pedido.
- Acesso: anônimo (o checkout pertence ao provedor externo).
- Falha/recuperação: se o checkout não abrir, a loja mantém o link visível e permite nova tentativa.
- Continuação: conclusão do pedido no provedor.
FR-05 — Formulário de checkout com campos brasileiros [explicit]
As a Shopper, I should fill the checkout form with the provider's required fields so that my order and delivery can be completed.
- Gatilho/entrada: checkout externo aberto.
- Resultado observável: campos E-mail, Confirme o e-mail, Nome completo, CPF / CNPJ, CEP, Endereço, Número, Complemento (opcional), Bairro, Cidade, UF (seleção de estado) e Celular (com código do país +55).
- Acesso: provedor externo.
- Falha/recuperação: validação e correção pertencem ao provedor.
- Continuação: carregamento das opções de frete.
FR-06 — Frete exibido após o endereço [explicit]
As a Shopper, I should see shipping options after I fill in my address so that I know the delivery cost before paying.
- Gatilho/entrada: preenchimento dos campos de endereço no checkout.
- Resultado observável: opções de frete carregadas/exibidas; antes disso, o texto "Preencha seu endereço para ver as opções de frete."
- Acesso: provedor externo.
- Falha/recuperação: pertence ao provedor.
- Continuação: conclusão do pedido.
FR-07 — Resumo do pedido no checkout [explicit]
As a Shopper, I should see the order summary with original and discounted prices in the checkout so that I can confirm the value.
- Gatilho/entrada: checkout externo aberto.
- Resultado observável: rótulo "Resumo do pedido", preço original R$ 292,05 e preço com desconto R$ 253,96.
- Acesso: provedor externo.
- Falha/recuperação: pertence ao provedor.
- Continuação: conclusão do pedido.
FR-08 — Sinais de confiança [explicit]
As a Shopper, I should see trust signals while I shop so that I feel safe buying.
- Gatilho/entrada: navegação na Landing e no catálogo.
- Resultado observável: selo "Checkout Seguro" e contador "10.000+ clientes satisfeitos" renderizados como chip de vidro com ícone de cadeado e brilho pulsante lento.
- Acesso: anônimo.
- Falha/recuperação: os sinais permanecem visíveis mesmo se outros conteúdos falharem.
- Continuação: abertura do checkout externo.
FR-09 — Autoinscrição do Store Owner [required_inference]
As a Store Owner, I should create my own identity on first use so that I can begin managing the store's catalog.
- Gatilho/entrada: acesso anônimo a Sign Up.
- Resultado observável: identidade criada e encaminhamento para a área protegida de gestão.
- Acesso: entrada anônima; a área protegida só fica disponível após a identidade ser estabelecida.
- Falha/recuperação: dados inválidos ou identidade já existente produzem mensagem específica e o formulário é preservado para correção.
- Continuação: adição do primeiro produto.
FR-10 — Verificação de retorno do Store Owner [required_inference]
As a Store Owner, I should verify my identity when I return so that I can resume control of the durable catalog.
- Gatilho/entrada: acesso anônimo a Login.
- Resultado observável: sessão restabelecida e encaminhamento para a área protegida de gestão.
- Acesso: entrada anônima; a área protegida só fica disponível após a verificação.
- Falha/recuperação: credenciais inválidas produzem mensagem clara e o formulário é preservado para nova tentativa.
- Continuação: manutenção do catálogo.
FR-11 — Adicionar produto ao catálogo [required_inference]
As a Store Owner, I should add products to the store catalog so that they become available for purchase.
- Gatilho/entrada: ação de adicionar produto em Product Management, com identidade estabelecida.
- Resultado observável: produto criado e visível na lista de gestão e no catálogo público.
- Acesso: protegido (Store Owner autenticado).
- Falha/recuperação: falha ao salvar exibe mensagem específica e preserva os dados digitados para reenvio.
- Continuação: revisão do catálogo público.
FR-12 — Manter produtos existentes [required_inference]
As a Store Owner, I should edit the products already in the catalog so that the store keeps selling accurate items.
- Gatilho/entrada: seleção de um produto na lista de gestão, com identidade estabelecida.
- Resultado observável: dados do produto atualizados na lista de gestão e no catálogo público.
- Acesso: protegido (Store Owner autenticado).
- Falha/recuperação: falha ao salvar exibe mensagem específica e preserva os dados digitados para reenvio.
- Continuação: retorno à lista de produtos.
FR-13 — Catálogo durável vinculado ao Store Owner [required_inference]
As a Store Owner, I should have my catalog remain bound to my identity across sessions so that my work is not lost or attributed to another participant.
- Gatilho/entrada: criação ou edição de produtos sob identidade estabelecida.
- Resultado observável: os produtos permanecem associados ao Store Owner correto e reaparecem ao retomar a sessão.
- Acesso: protegido.
- Falha/recuperação: se a sessão expirar, a verificação de retorno restaura o acesso ao mesmo catálogo.
- Continuação: manutenção contínua do catálogo.
Page 8 of 9
4. User Personas
Store Owner
- Contexto de produto: é quem pediu a loja para vender produtos. Precisa colocar a loja no ar com itens disponíveis para compra por meio do link de pagamento informado.
- Objetivo principal: ter uma loja ativa com produtos publicados e compráveis pelo checkout externo.
- Responsabilidades aceitas: criar sua própria identidade na primeira utilização; verificar sua identidade ao retornar; adicionar produtos ao catálogo; manter os produtos existentes; manter o catálogo vinculado à sua identidade entre sessões.
- Entradas e decisões: dados de identidade na autoinscrição e no retorno; dados de cada produto (nome, imagem, preço original, preço promocional, disponibilidade) ao adicionar ou editar.
- Interações com outros participantes: o Shopper é o destinatário final do catálogo que o Store Owner publica; o provedor externo em
pay.kaiross.com.br é quem processa o pagamento dos pedidos gerados a partir desse catálogo.
- Sucesso observável: a loja está no ar, os produtos aparecem no catálogo público e podem ser comprados pelo link de checkout.
- O que distingue este papel: o Store Owner é o único ator que cria e altera estado durável no produto; seu trabalho é de autoria e manutenção, não de navegação e compra.
Shopper
- Contexto de produto: visitante da loja, majoritariamente no celular, que chega sem conta e quer avaliar e comprar produtos.
- Objetivo principal: concluir a compra de um produto pelo checkout da loja.
- Responsabilidades aceitas: navegar pelo catálogo; escolher produtos; acompanhar o resumo do pedido e o total em reais; abrir o checkout externo; preencher os campos exigidos pelo provedor; ver as opções de frete após informar o endereço; concluir o pedido.
- Entradas e decisões: seleção de produto; decisão de compra; dados pessoais e de endereço no checkout (E-mail, Confirme o e-mail, Nome completo, CPF / CNPJ, CEP, Endereço, Número, Complemento opcional, Bairro, Cidade, UF, Celular com +55).
- Interações com outros participantes: consome o catálogo publicado pelo Store Owner; entrega seus dados de pedido ao provedor externo de checkout.
- Sucesso observável: pedido concluído no checkout seguro, com preço e frete conhecidos antes do pagamento.
- O que distingue este papel: o Shopper nunca cria nem altera o catálogo; sua jornada é de descoberta, decisão e pagamento, e termina fora da loja, no provedor.
5. Core User Flows
Page 9 of 9
Fluxo A — Store Owner publica a loja e o primeiro produto
- O Store Owner acessa a Landing anonimamente e entende a promessa da loja e o caminho de compra.
- Ele escolhe criar sua identidade e vai para Sign Up.
- Em Sign Up, ele informa os dados de identidade exigidos e envia o formulário. A identidade é criada e ele é encaminhado à área protegida.
- Em Product Management, ele encontra a lista vazia e o convite para adicionar o primeiro produto.
- Ele adiciona um produto informando nome, imagem, preço original e preço promocional.
- Resultado observável: o produto aparece na lista de gestão e passa a integrar o catálogo público.
- Continuação: ele revisa o catálogo público em Products para confirmar que o item está visível e comprável.
- Falha/recuperação: se o salvamento falhar, a mensagem de erro é exibida e os dados digitados permanecem no formulário para reenvio.
Fluxo B — Store Owner retorna e mantém o catálogo
- O Store Owner acessa Login anonimamente.
- Ele informa suas credenciais e envia o formulário.
- Resultado observável: a sessão é restabelecida e ele é encaminhado a Product Management, onde seu catálogo anterior reaparece vinculado à sua identidade.
- Ele seleciona um produto existente e edita seus dados.
- Resultado observável: os dados atualizados aparecem na lista de gestão e no catálogo público.
- Continuação: ele retorna à lista de produtos.
- Falha/recuperação: credenciais inválidas exibem mensagem clara e preservam o formulário; falha ao salvar preserva os dados digitados para reenvio.
Fluxo C — Shopper descobre produtos e compra
- O Shopper acessa a Landing anonimamente pelo celular.
- Ele vê a promessa da loja, o
No comments yet. Be the first!