Uma aplicação Next.js para consultar, visualizar e exportar pedidos da plataforma VTEX.
- ✅ Consulta de pedidos via API VTEX
- ✅ Filtros por período de data
- ✅ Tabela interativa com ordenação e paginação
- ✅ Exportação para Excel (.xlsx)
- ✅ Interface responsiva e moderna
- ✅ Configuração via variáveis de ambiente
- Node.js 18+
- npm ou yarn
- Conta VTEX com acesso às APIs OMS
- Credenciais de autenticação VTEX
- Clone o repositório:
git clone <url-do-repositorio>
cd vtex-csv-client-orders- Instale as dependências:
npm install- Configure as variáveis de ambiente:
cp .env.local.example .env.local- Edite o arquivo
.env.localcom suas credenciais:
# Configurações da VTEX
VTEX_ACCOUNT=seu-nome-da-loja
VTEX_AUTH_COOKIE=seu-VtexIdclientAutCookie
# Opcional: AppKey e AppToken (caso necessário)
# VTEX_APP_KEY=sua-app-key
# VTEX_APP_TOKEN=seu-app-token- Acesse sua loja VTEX no navegador
- Faça login na conta administrativa
- Abra as ferramentas de desenvolvedor (F12)
- Vá para a aba "Application" > "Cookies"
- Copie o valor do cookie
VtexIdclientAutCookie - Cole no arquivo
.env.local
- Acesse o VTEX IO
- Crie uma aplicação ou use uma existente
- Obtenha a AppKey e AppToken
- Configure no arquivo
.env.local
npm run devAcesse http://localhost:3000 no seu navegador.
npm run build
npm start- Configurar Período: Use os filtros de data para selecionar o período desejado
- Visualizar Dados: A tabela exibe todos os pedidos com informações completas
- Ordenar: Clique nos cabeçalhos das colunas para ordenar
- Paginizar: Use os controles de paginação na parte inferior
- Exportar: Clique no botão "Exportar para Excel" para baixar os dados
src/
├── app/
│ ├── layout.tsx # Layout principal
│ ├── page.tsx # Página principal
│ └── globals.css # Estilos globais
├── components/
│ ├── DateFilter.tsx # Componente de filtros de data
│ └── OrdersTable.tsx # Componente da tabela
├── services/
│ ├── vtexApi.ts # Serviço de integração VTEX
│ └── exportService.ts # Serviço de exportação
└── types/
└── vtex.ts # Tipos TypeScript
- Endpoint:
GET /api/oms/pvt/orders - Parâmetros: page, per_page, f_creationDate
- Endpoint:
GET /api/oms/pvt/orders/{orderId} - Retorna: Dados completos do cliente e endereço
- ID do Pedido - Identificador único
- Data de Criação - Data e hora do pedido
- Nome do Cliente - Nome completo (limpo de caracteres especiais)
- Email - Email limpo sem máscaras VTEX
- Documento - CPF/CNPJ formatado (123.456.789-00)
- Telefone - Telefone formatado ((11) 99999-9999)
- Endereço de Entrega - Endereço completo
- Valor Total - Valor em reais (R$ 1.234,56)
- Status do Pedido - Status atual com cores
A aplicação automaticamente:
- ✅ Remove máscaras de email, telefone e documento
- ✅ Formata CPF/CNPJ para exibição
- ✅ Formata telefones brasileiros
- ✅ Remove caracteres especiais de nomes
- ✅ Valida emails e alerta sobre inválidos
- Máximo de 5000 pedidos por consulta (configurável via
NEXT_PUBLIC_MAX_ORDERS) - Requer autenticação válida na VTEX
- Taxa de requisições limitada pela API VTEX
- Timeout de requisições pode ocorrer com períodos muito longos
Adicione ao .env.local para personalizar:
# Limite máximo de pedidos (padrão: 5000)
NEXT_PUBLIC_MAX_ORDERS=10000
# Limite máximo de páginas (padrão: 100)
NEXT_PUBLIC_MAX_PAGES=200
# Tamanho do lote por requisição (padrão: 50)
NEXT_PUBLIC_PER_PAGE=100
# Timeout das requisições em ms (padrão: 30000)
NEXT_PUBLIC_REQUEST_TIMEOUT=60000- Next.js 15 - Framework React
- TypeScript - Tipagem estática
- Tailwind CSS - Estilização
- @tanstack/react-table - Tabela interativa
- Axios - Cliente HTTP
- XLSX - Exportação Excel
- date-fns - Manipulação de datas
Problema mais comum! O VtexIdclientAutCookie expira em ~24 horas.
Solução:
- Acesse https://taiff.vtexcommercestable.com.br/admin
- F12 > Application > Cookies > copie o novo VtexIdclientAutCookie
- Atualize o arquivo
.env.local - Reinicie o servidor (
npm run dev)
📋 Instruções detalhadas: Veja o arquivo INSTRUCOES_TOKEN.md
- Verifique se as credenciais estão corretas
- Confirme se o cookie não expirou (erro mais comum)
- Teste com AppKey/AppToken se disponível
- Execute a aplicação localmente
- Não acesse via IP, use localhost
- Reduza o período de busca
- Verifique a conexão com a internet
- Tente novamente em alguns minutos
Este projeto é de uso interno e educacional.
Para contribuir com o projeto:
- Faça um fork do repositório
- Crie uma branch para sua feature
- Commit suas mudanças
- Push para a branch
- Abra um Pull Request
Desenvolvido para consulta eficiente de pedidos VTEX 🚀