Endpoints - Produto

1. Exemplo do json:

[ { "codigo": 1, "codigo_semente_categoria": 1, "codigo_unidade_medida": 1, "codigo_semente_cultivar": 1, "codigo_cultura_padrao": 1, "codigo_equipamento_aplicacao": 1, "codigo_produto_grupo": 1, "codigo_produto_marca": 1, "codigo_peneira": 1, "descricao": "Descrição do produto", "ativo": "S", "desconto_maximo": 10.5, "quantidade_multiplo": 2.0, "registro_ma": "12345678", "peso_liquido": 1.5, "peso_bruto": 2.0, "aceita_saldo_negativo": "N", "controla_semente": "S", "kit": "N", "codigo_externo": "1", "produto_embalagem": [ { "codigo_filial": 1, "codigo_embalagem": 1, "multiplicador": 2, "padrao": "S" }, { "codigo_filial": 1, "codigo_embalagem": 2, "multiplicador": 5, "padrao": "N" } ], "produto_filial": [ { "codigo_filial": 1, "codigo_local_estoque_padrao": 1, "codigo_cotacao": 1, "valor_venda": 9.99, "valor_promocao": 8.5, "valor_custo_gerencial": 8.0 }, { "codigo_filial": 2, "codigo_local_estoque_padrao": 2, "codigo_cotacao": 2, "valor_venda": 230.5, "valor_promocao": 199.9, "valor_custo_gerencial": 150 } ] } ]

Campos:

  • codigo: Código do registro no banco de dados do CRM

  • codigo_semente_categoria: Código da categoria de semente

  • codigo_unidade_medida: Código da unidade de medida

  • codigo_semente_cultivar: Código da cultivar de semente

  • codigo_cultura_padrao: Código da cultura padrão do produto

  • codigo_equipamento_aplicacao: Código do equipamento de aplicação do produto

  • codigo_produto_grupo: Código do grupo do produto;

  • codigo_produto_marca: Código da marca do produto

  • codigo_peneira: Código da peneira do produto

  • descricao: Descrição do produto;

  • ativo: Campo para indicar se o produto está ativo (S) ou inativo (N);

  • desconto_maximo: Desconto máximo que o produto pode ter no pedido;

  • quantidade_multiplo: Quantidade multipla do produto

  • registro_ma: Registro do ministério da agricultura

  • peso_liquido: Peso liquido do produto

  • peso_bruto: Peso bruto do produto

  • aceita_saldo_negativo: Define se aceita emitir um pedido para o produto quando o mesmo não possui saldo

  • controla_semente: Define se o item controla dados de semente para o pedido

  • kit: Define se o item faz parte de um kit

  • codigo_externo: Código do produto no sistema integrado;

  • produto_embalagem: Lista das embalagens do produto

    • codigo_filial: Código da filial que possui a embalagem;

    • codigo_embalagem: Código da embalagem

    • multiplicador: Valor do multiplicador da embalagem

    • padrao: Define se é a embalagem padrão do produto

  • produto_filial: Dados únicos do produto por filial

    • codigo_filial: Código da filial

    • codigo_local_estoque_padrao: Código do local de estoque padrão do produto

    • codigo_cotacao: Código da cotação

    • valor_venda: Valor de venda do produto na filial

    • valor_promocao: Valor de promoção do produto na filial

    • valor_custo_gerencial: Valor do custo gerencial do produto na filial

Todos os endpoints, com exceção do deletar, retornam o json nesse formato.


2. Endpoints

2.1 - Buscar produto pelo código

Endpoint: /produto

Tipo: get

Parâmetros:

  • codigoInterno: Tipo: Inteiro. Código do produto no banco de dados do CRM.

  • codigoExterno: Tipo: String. Código da produto produto no banco de dados do sistema integrado

Validações: É necessário informar pelo menos um dos parâmetros. Caso informado os dois o sistema prioriza o código externo.

Resposta: Status 200 - Retorna o produto no formato documentado na sessão Exemplo do json

2.2 - Buscar todas os produtos

Endpoint: /produto/todos

Tipo: get

Resposta: Status 200 - Retorna a lista dos produtos no formato documentado na sessão Exemplo do json

2.3 - Cadastrar ou editar produto

Endpoint: /produto

Tipo: post

Notas:

  • Informe no corpo da requisição o json conforme exemplo na sessão 1.

  • Para cadastrar um novo produto não informe o campo “codigo”;

  • Para editar um produto já existente informe o campo “codigo” com o código do produto que deseja editar;

  • Serão permitidos o cadastro/edição de até 20 itens por vez.

Resposta: Status 200 - Retorna o produto cadastrado, no formato documentado na sessão Exemplo do json

2.4 - Inativar um produto

Não é possível deletar um produto, apenas inativar, pois o produto pode ter vinculo com pedidos e outros registros. Nesse caso, o produto continua no banco de dados porém com o status inativo.

Endpoint: /produto

Tipo: delete

Parâmetros:

  • codigoInterno: Tipo: Inteiro. Código do produto no banco de dados do CRM.

  • codigoExterno: Tipo: String. Código do produto no banco de dados do sistema integrado, caso existir.

Resposta: Status 200 - Mensagem: Registro inativado com sucesso.

2.5 - Retornar os metadados do produto

Endpoint: /produto/metadados

Tipo: get

Descrição: Retorna os campos do json, com as informações de tipo, tamanho máximo, se o campo é requerido, filtrável e/ou ordenável

Resposta: Status 200 - Retorna um json com as informações dos campos do produto

2.6 - Pesquisar

Endpoint: /produto/pesquisa

Tipo: post

Notas:

  • Esse endpoint retorna as peneiras baseado nos filtros e na ordenação informados;

  • Exemplo do corpo da requisição:

{ "pagina": 1, "quantidadeRegistros": 10, "filtros": [ { "campo": "descricao", "comparacao": "CONTEM", "valor": "2" } ], "ordenacao": [ { "campo": "peneira", "ordenacao": "ASC" } ] }
  • Nesse exemplo, estamos filtrando todas as peneiras cuja descrição possua o texto “VIASOFT”, também estamos ordenando os registros pela descrição de forma ascendente.

2.7 - Vincular embalagens ao produto

Endpoint: /produto-embalagem

Tipo: post

Parâmetro:

  • codigoProduto: Código do produto no banco de dados do CRM

Corpo da requisição:

{ }

2.8 - Cadastrar dados da filial do produto

Endpoint: /produto-filial

Tipo: post

Parâmetro:

  • codigoProduto: Código do produto no banco de dados do CRM

Corpo da requisição: