Skip to content

ENVIAR_PRODUTOS_INTERVALO

Envia os produtos criados ou modificados no intervalo para a Maggu. Mantém o catálogo sincronizado de forma incremental, sem precisar re-enviar tudo.

Argumentos: de, ate (datetime ISO 8601 UTC)

Herda de ComandoComIntervaloDeDatas

Payload recebido

json
{
  "id": 5006,
  "tipo": "ENVIAR_PRODUTOS_INTERVALO",
  "argumentos": {
    "de": "2026-05-12T00:00:00Z",
    "ate":    "2026-05-13T23:59:59Z"
  },
  "criadoEm": "2026-05-13T10:25:00Z"
}

Implementação .NET

csharp
public class EnviarProdutosIntervaloComando : ComandoComIntervaloDeDatas
{
    protected override async Task ExecutarAsync(CancellationToken ct)
    {
        // Filtra por data de criação OU data de última modificação
        var produtos = await _erp.BuscarProdutosCriadosOuModificadosAsync(
            Argumentos.De, Argumentos.Ate, ct);

        foreach (var lote in produtos.Chunk(400))
        {
            var requisicao = new RestRequest("api/v3/produtos/registrar-em-lote", Method.Post);
            requisicao.AddJsonBody(new { comandoId = Id, conteudo = lote });
            await _provedor.Client.PostAsync(requisicao, ct);
        }
    }
}

Chamada à API Maggu

O endpoint e o payload são idênticos ao ENVIAR_TODOS_PRODUTOS — a diferença está apenas no conjunto de registros enviados (parcial vs. total).

POST /v3/produtos/registrar-em-lote

json
{
  "comandoId": 5006,
  "conteudo": [
    {
      "ean": "7891000315507",
      "nome": "Paracetamol 750mg 20 comprimidos",
      "precoVenda": "9.50",
      "precoVendaDesconto": "8.00",
      "estoqueUnidades": 120
    }
  ]
}

Respostas:

CódigoSignificado
202 AcceptedLote em processamento
400 Bad RequestErro de validação
403 ForbiddenToken inválido

Sincronização de preços e estoque

Para atualizações frequentes somente de preço ou estoque (sem re-enviar todos os campos), use PUT /v3/produtos/{ean} com apenas os campos alterados — mais eficiente para lojas com catálogo grande.