> ## Documentation Index
> Fetch the complete documentation index at: https://docs-loja.usecorvex.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Páginas de sistema (404, senha, manutenção)

> Templates do tema para erro 404, loja com senha e modo manutenção na vitrine publicada.

O lojista personaliza no editor o que o visitante vê quando:

* a URL **não existe** ou aponta para um template que **não foi publicado**;
* o produto ou a coleção da URL **não existe** no catálogo;
* a loja está em **manutenção** ou pede **senha** (configuração da plataforma).

Isso vale na **vitrine publicada**: no primeiro carregamento e quando o visitante navega entre páginas da loja.

***

## Templates no tema

Arquivos em `templates/` (recomendados no contrato atual):

| Arquivo | `type` no JSON | Página no editor | Slug na vitrine |
| - | - | - | - |
| `404.json` | `404` | Página não encontrada | `not-found` |
| `password.json` | `password` | Senha da loja | `password` |
| `maintenance.json` | `maintenance` | Manutenção | `maintenance` |

Inclua os três no `theme.json` → `templates` (o **theme-starter** já traz exemplo). Eles são recomendados: `corvex validate` não falha se faltarem.

Depois de **publicar** a loja, a vitrine usa o conteúdo desses templates. Sem o template publicado, a loja cai no visual padrão da plataforma.

Relacionado: [Templates](https://docs-loja.usecorvex.com.br/themes/templates.md), [Defaults de section e block](https://docs-loja.usecorvex.com.br/guides/theme-defaults.md).

***

## Quando cai na 404 personalizada

A vitrine escolhe a página antes de montar o tema. Se o resultado é a página não encontrada, usa o template **404** (se estiver publicado) e responde **HTTP 404** no primeiro carregamento. Navegação dentro da loja mostra o mesmo template; o status HTTP 404 vale no carregamento pelo servidor.

Exemplos:

| Situação | Comportamento |
| - | - |
| `/blog` e o tema **não** publicou o template de blog | 404 personalizada |
| `/pagina-que-nao-existe` e não há página de conteúdo com esse endereço | 404 personalizada |
| `/products/handle-inexistente` (produto não encontrado no catálogo) | 404 personalizada |
| `/collections/handle-inexistente` | 404 personalizada |
| Link interno no menu para uma rota inválida (navegação na loja, sem recarregar o site) | Mesma regra: 404 personalizada |

Home, carrinho, busca e blog **só abrem** se o template correspondente estiver publicado. Caso contrário, a vitrine mostra a 404.

Se o tema não tiver `404.json` publicado, a página inexistente ainda abre, com o visual padrão da plataforma.

***

## Senha e manutenção

Senha e manutenção são definidas no **painel da loja** (acesso público). Na vitrine:

* **Manutenção**: se o template `maintenance.json` estiver publicado, o visitante vê essa página do tema. Senão, a tela padrão da plataforma.
* **Senha**: se o template `password.json` estiver publicado, o fundo segue o tema e o **formulário de senha** da plataforma continua na frente. O tema ainda não substitui esse formulário.

O visitante **não** navega pelo restante da loja até passar pelo gate.

***

## O que o tema **não** precisa fazer

* Ler `presets` do schema na vitrine (só no modal Adicionar no editor).
* Implementar roteamento: a Corvex resolve o endereço, o catálogo e o template publicado.
* Substituir a API de verificação de senha por campos só visuais no tema (MVP atual).

***

## Checklist para agências

1. Criar `templates/404.json`, `password.json`, `maintenance.json` com seções do tema.
2. Listar os três em `theme.json`.
3. Rodar `corvex validate` no pacote do tema.
4. Publicar a loja e testar: URL inválida, produto inexistente, `/blog` sem blog no tema, senha e manutenção.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.