Skip to content

ENVIAR_VENDAS_INTERVALO

Envia todas as vendas finalizadas do período deate 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"
        }
      ]
    }
  ]
}
CampoTipoObrigatórioDescrição
codigoExternostringSimChave única da venda no ERP
codigoExternoDaPreVendastringSimCódigo da pré-venda vinculada
codigoExternoDoUsuariostringSimUsuário que realizou a venda
realizadaEmdatetimeSimMomento da venda (ISO 8601)
cpfCnpjDoClientestringNãoCPF/CNPJ do comprador
itens[].eanstringSimEAN do produto
itens[].quantidadeintegerSimQuantidade vendida (mínimo 1)
itens[].precoVendadecimalSimPreço unitário sem desconto
itens[].precoVendaDescontodecimalSimPreço unitário com desconto
itens[].custoCompradecimalSimCusto unitário de compra

Respostas:

CódigoSignificado
202 AcceptedLote em processamento
400 Bad RequestErro de validação
403 ForbiddenToken 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.