Appearance
ENVIAR_VENDAS_INTERVALO
Envia todas as vendas finalizadas do período de–ate para a Maggu. É o comando mais importante para manter o histórico de transações sincronizado.
Argumentos: de, ate (datetime ISO 8601 UTC)
Herda de ComandoComIntervaloDeDatas
Payload recebido
json
{
"id": 5004,
"tipo": "ENVIAR_VENDAS_INTERVALO",
"argumentos": {
"de": "2026-05-01T00:00:00Z",
"ate": "2026-05-13T23:59:59Z"
},
"criadoEm": "2026-05-13T10:15:00Z"
}Implementação .NET
csharp
// Commands/EnviarVendasIntervaloComando.cs
public class EnviarVendasIntervaloComando : ComandoComIntervaloDeDatas
{
protected override async Task ExecutarAsync(CancellationToken ct)
{
var vendas = await _erp.BuscarVendasFinalizadasAsync(
Argumentos.De, Argumentos.Ate, ct);
// Sinalizar início com o total (opcional, recomendado para diagnóstico)
var iniciou = new RestRequest("api/v3/comandos/iniciou", Method.Post);
iniciou.AddJsonBody(new { id = Id, total = vendas.Count });
await _provedor.Client.PostAsync(iniciou, ct);
foreach (var lote in vendas.Chunk(400))
{
var requisicao = new RestRequest("api/v3/vendas/registrar-em-lote", Method.Post);
requisicao.AddJsonBody(new { comandoId = Id, conteudo = lote });
await _provedor.Client.PostAsync(requisicao, ct);
}
}
}Chamada à API Maggu
POST /v3/vendas/registrar-em-lote
json
{
"comandoId": 5004,
"conteudo": [
{
"codigoExterno": "VND-2026-00123",
"codigoExternoDaPreVenda": "PRE-00456",
"codigoExternoDoUsuario": "USR-001",
"realizadaEm": "2026-05-10T14:32:00Z",
"cpfCnpjDoCliente": "123.456.789-00",
"itens": [
{
"ean": "7891000315507",
"quantidade": 2,
"precoVenda": "8.90",
"precoVendaDesconto": "7.50",
"custoCompra": "4.20"
}
]
}
]
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
codigoExterno | string | Sim | Chave única da venda no ERP |
codigoExternoDaPreVenda | string | Sim | Código da pré-venda vinculada |
codigoExternoDoUsuario | string | Sim | Usuário que realizou a venda |
realizadaEm | datetime | Sim | Momento da venda (ISO 8601) |
cpfCnpjDoCliente | string | Não | CPF/CNPJ do comprador |
itens[].ean | string | Sim | EAN do produto |
itens[].quantidade | integer | Sim | Quantidade vendida (mínimo 1) |
itens[].precoVenda | decimal | Sim | Preço unitário sem desconto |
itens[].precoVendaDesconto | decimal | Sim | Preço unitário com desconto |
itens[].custoCompra | decimal | Sim | Custo unitário de compra |
Respostas:
| Código | Significado |
|---|---|
202 Accepted | Lote em processamento |
400 Bad Request | Erro de validação |
403 Forbidden | Token inválido |
Vínculo com pré-venda
Sempre informe codigoExternoDaPreVenda quando a venda originou-se de uma pré-venda Maggu. Sem esse vínculo, funcionalidades como pontuação de campanha e atualização de status da pré-venda não funcionarão.
Metadados por item
Use o campo metadata em cada item para guardar informações extras do ERP. Esses dados são retornados ao buscar a venda depois.