VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

E-mail da loja

Como a loja envia e-mails transacionais, como personalizar cabeçalho, rodapé e fragmentos e como auditar o que foi entregue ou falhou.

Toda loja Venddor envia e-mails para clientes e para a própria equipe: confirmação de pedido, mudança de status, carrinho abandonado, avisos de CRM. Esta seção cobre as peças ao redor dos modelos de e-mail: o envio manual de uma mensagem avulsa, o layout (cabeçalho e rodapé que moldura todo e-mail), os fragmentos (trechos de HTML reutilizáveis) e o log de entrega, onde você descobre se uma mensagem saiu, falhou e por quê.

Pontos-chave
  • O layout tem só dois tipos, header e footer, e existe um de cada por idioma (pt-BR e en). Editar o layout muda todos os e-mails da loja de uma vez.
  • Um fragmento (snippet) é identificado por um code único. Fragmentos de sistema (is_system: true) podem ser editados, mas não apagados.
  • O log guarda uma linha por tentativa de envio. Só e-mails com status failed ou bounced podem ser reenviados.
  • Com o módulo email-notifications desligado, as rotas de layout, fragmentos e logs respondem 403 module_disabled. O envio manual (POST /email) não é bloqueado, mas a mensagem é descartada em silêncio.
  • Ler exige o privilégio de ver e-mail; escrever exige manage_email ou manage_settings.

Como funciona

Um e-mail da plataforma é montado em três camadas: o modelo do evento (por exemplo "pedido criado"), o layout que envolve o modelo com cabeçalho e rodapé, e os fragmentos que o modelo inclui pelo código. Os modelos têm seção própria; aqui você gerencia as outras duas camadas e o resultado.

Evento→Fila de envio→Provedor (SMTP)→Log: sent ou failed

Cada linha do log tem um destes status:

statusSignificado
queuedNa fila, aguardando envio ou reenvio.
sentEntregue ao provedor de e-mail.
failedO provedor recusou ou a conexão falhou. A causa fica em error_message.
bouncedO destinatário rejeitou a mensagem.

Fluxo típico de operação

  1. Ver a saúde do envio

    Chame Estatísticas do log para ver quantos e-mails saíram e quantos falharam hoje.

  2. Investigar falhas

    Liste o log com status=failed, abra uma linha e leia error_message. Erros de configuração do SMTP aparecem aqui em texto claro.

  3. Corrigir e reenviar

    Depois de corrigir a configuração, reenvie a linha. O mesmo registro volta para queued e termina em sent ou failed de novo.

Conceitos-chave

Layout: cabeçalho e rodapé

Os dois HTMLs são trechos de tabela (<tr>...</tr>) que a plataforma encaixa antes e depois do corpo do modelo. Aceitam marcadores no formato {{store_name}}, {{logo_url}}, {{store_url}}, {{support_email}} e {{current_year}}. A prévia usa dados de exemplo, não os da sua loja.

Fragmentos

Um fragmento é um pedaço de HTML com um code (por exemplo email_footer). Os modelos o incluem com {{snippet "code"}}. O idioma do fragmento é fixado na criação e não pode ser trocado depois.

Status em letra ou em palavra

O banco guarda o status do log e do fragmento em uma letra, mas a API do log devolve a palavra (failed). Nos filtros, aceite-se tanto a palavra quanto a letra (failed, f). Nos fragmentos, o status é A (ativo) ou D (desativado) e a API devolve a letra.

Datas

Todas as datas saem em RFC 3339 em UTC (2026-10-11T21:03:49Z). No filtro date_to o dia informado entra por inteiro, até 23:59:59 UTC.

Endpoints

Método e caminhoPara que serveAutenticaçãoPágina
POST /api/v1/admin/emailEnvia uma mensagem avulsaadministradorEnviar e-mail
GET /api/v1/admin/email-layoutLista cabeçalhos e rodapésadministradorLayout
GET /api/v1/admin/email-layout/previewPrévia renderizadaadministradorLayout
PUT /api/v1/admin/email-layout/{type}Altera o HTMLadministradorLayout
POST /api/v1/admin/email-layout/{type}/resetVolta ao padrãoadministradorLayout
GET /api/v1/admin/email-snippetsLista fragmentosadministradorFragmentos
POST /api/v1/admin/email-snippetsCria fragmentoadministradorFragmentos
PUT /api/v1/admin/email-snippets/{id}Altera fragmentoadministradorFragmentos
DELETE /api/v1/admin/email-snippets/{id}Apaga fragmentoadministradorFragmentos
GET /api/v1/admin/email-logsLista o históricoadministradorLog de entrega
GET /api/v1/admin/email-logs/statsTotais do diaadministradorLog de entrega
GET /api/v1/admin/email-logs/{id}Detalhe de uma linhaadministradorLog de entrega
POST /api/v1/admin/email-logs/{id}/resendReenvia uma falhaadministradorLog de entrega

Erros comuns

  • Achar que 200 em POST /email significa entregue. Com o módulo de e-mail desligado, ou com o provedor console (ambientes de teste), a resposta é 200 "email sent" e nada sai. Leia provider e log na resposta.
  • Mandar type diferente de header ou footer no layout. É 400.
  • Esperar que PUT /email-snippets/{id} limpe um campo. Campos vazios são ignorados, então não dá para esvaziar content por aqui.
  • Tentar apagar um fragmento de sistema. Responde 500 (veja a página de fragmentos).
  • Reenviar um e-mail com status sent. Só failed e bounced são aceitos.
  • Paginar o log pedindo per_page maior que 100. Valores fora de 1 a 100 voltam silenciosamente para 20.

Próximos passos

Enviar e-mail
Mensagem avulsa, com ou sem modelo.
Log de entrega
Descubra por que um e-mail falhou e reenvie.
Layout
Mude cabeçalho e rodapé de todos os e-mails.
Anterior
Resumo por IA
Próxima
Enviar e-mail
Nesta página
  • Como funciona
  • Fluxo típico de operação
  • Conceitos-chave
  • Layout: cabeçalho e rodapé
  • Fragmentos
  • Status em letra ou em palavra
  • Datas
  • Endpoints
  • Erros comuns
  • Próximos passos