Páginas filhas
  • DR VA Integração API Produto - Requisições de Produto

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Totvs custom tabs box
tabsClassificação de Produto, Preço do Produto, Saldo de Produtos por Grupo, Saldo de Produto por Lote, Saldo de Produto por Empresa
idsclassificacaoproduto,precoproduto,saldogrupo,saldoloteproduto,saldoproduto
Totvs custom tabs box items
defaultyes
referenciaclassificacaoproduto

01. INTRODUÇÃO

Obter classificação de produto 

Totvs custom tabs box items
defaultno
referenciaprecoproduto

01. INTRODUÇÃO

Requisição que tem a finalidade de retornar os preços de um ou mais produtos, incluindo os valores promocionais.

Observação: Se a grade possuir um produto padrão configurado, todos os produtos receberão o mesmo valor do produto padrão.


02. UTILIZAÇÃO


Totvs custom tabs box
tabsEnvio, Retorno, Exemplo de Implementação
idsenvio,retorno,cod
Totvs custom tabs box items
defaultyes
referenciaenvio
Totvs custom tabs box
tabsURL, Body, Exemplo de Requisição, Detalhamento dos Campos
idsurlE,corpoE,exE,campE
Totvs custom tabs box items
defaultyes
referenciaurlE

Button
Cor#61affe
TextoPOST
Link.
 https://www30.bhan.com.br:9443/api/v1/produto/precoproduto

Totvs custom tabs box items
defaultno
referenciacorpoE
Bloco de código
languagexml
themeRDark
firstline1
titleBody
linenumberstrue
{
    "produtos": [
        {
            "cdProduto": "XXXXXXXXXXXXXXXXXXXX"
        }
    ],
    "cdPreco": 9999,
    "inPromocao": 9,
    "empresas": [
        {
            "cdEmpresa": 9999,
            "nrCNPJEmpresa": "XXXXXXXXXXXXXX"
        }
    ]
}
Totvs custom tabs box items
defaultno
referenciaexE

URL

Button
Cor#61affe
TextoPOST
Link.
 https://www30.bhan.com.br:9443/api/v1/produto/precoproduto


HEADER

AuthorizationBearer {{token}}


BODY


Bloco de código
languagexml
themeRDark
firstline1
titleBody
linenumberstrue
{
    "produtos": [
        {
            "cdProduto": "100"
        }
    ],
    "cdPreco": 1,
    "inPromocao": 1,
    "empresas": [
        {
            "cdEmpresa": 1
        }
    ]
}
Totvs custom tabs box items
defaultno
referenciacampE


NomeTipoDescriçãoExemploVA
cdProdutostringCódigo do produto *"cdProduto": "100"Referência 1
cdPrecointCódigo do Preço"cdPreco": 1Referência 2
inPromocaointValor de Promoção **"inPromocao": 1--
cdEmpresaintCódigo da Empresa ***"cdEmpresa": 1Referência 3
nrCNPJEmpresastringCNPJ da Empresa ***"nrCNPJEmpresa": "12345678901234"--



*Neste campo podemos informar o código sku do produto ou o código de barras do produto.

**Neste campo podemos informar 1 (um) para retornar os valores promocionais ou 0 (zero) para NÃO retornar os valores promocionais.

***Neste campo quando Código da Empresa for informado, não existe a necessidade de informar o CNPJ. Porém, caso o Código não for informado, o documento se torna obrigatório!

Informações

Todos os campos são obrigatórios. Caso possua a opção de informar  código e/ou documento, pelo menos um dos campos deve ser informado!

Totvs custom tabs box items
defaultno
referenciaretorno
Totvs custom tabs box
tabsSucesso, Erro
idssucesso,erro
Totvs custom tabs box items
defaultyes
referenciasucesso
Bloco de código
languagexml
themeRDark
firstline1
titleStatus 200 OK
linenumberstrue
{
    "precos": [
        {
            "cdSKU": 9999999,
            "cdProduto": "XXXXXXXXXX",
            "dsProduto": "XXXXXXXXXX",
            "cdReferencia": "XXXXXXXXXX",
            "cdCor": "XXXXXXXXX",
            "dsTamanho": "XXXXXXXXXX",
            "cdEmpresa": 999999999,
            "nrCNPJEmpresa": "XXXXXXXXXXX",
            "vlPreco": 999999999.99,
            "vlPrecoPromocao": 999999999.99
        }
    ]
}
Totvs custom tabs box items
defaultno
referenciaerro
Bloco de código
languagexml
themeRDark
firstline1
titleStatus 400 Bad Request
linenumberstrue
{
    "dsErro": "Mensagem informativa do erro"
}
Totvs custom tabs box items
defaultno
referenciacod
Totvs custom tabs box
tabsConsulta Preço Produto, Token, Preço Produto
idsapi,token,prproduto
Totvs custom tabs box items
defaultyes
referenciaapi
Totvs custom tabs box
tabsMain, DtoBuilder, DtoEnvioPrecoProdutoBuilderDtoEnvioProdutoBuilder, DtoEnvioEmpresaBuilder
idsmain,dtoB,dtoIdtoProduto,envioPrecoProdutodtoEmpresa
Totvs custom tabs box items
defaultyes
referenciamain
Bloco de código
languagec#
themeRDark
firstline1
titleMain
linenumberstrue
using System.Collections.Generic;

namespace Project1
{
public class ApiPrecoProduto
    {
        static void Main(string[] args)
        {
            var token = Token.ObterToken();
            var dto = PopularDto();
            RequisicaoPrecoProduto.PrecoProdutoConsulta(token, dto);
        }

        private static PrecoProdutoDTO.Envio PopularDto()
        {
            var dto = new DtoBuilder()
                .ComProdutos(ObterProduto())
                .ComCodigoPreco(1)
.ComIncluiPromocao(1)
                .ComIncluiPromocao(1)
                .ComEmpresas(ObterEmpresa())                
                .Build();
            return dto;
}

private static        }

        private static List<Empresa> ObterEmpresa()
        {
            var empresas = new List<Empresa>();

            empresas.Add(
                new DtoEnvioEmpresaBuilder()
.ComCodigoEmpresa(1)
                .ComCodigoEmpresa(1)
                .ComNumeroCNPJEmpresa("12345678901234")
                .Build()
);
return empresas;
}

private static List<Produto> ObterProduto()
{
var produtos = new List<Produto>();

produtos.Add(
new DtoEnvioProdutoBuilder()
.ComCodigoProduto("100")
.Build()
);
return produtos;
}
} 
}                );
            return empresas;
        }

        private static List<Produto> ObterProduto()
        {
            var produtos = new List<Produto>();

            produtos.Add(
                new DtoEnvioProdutoBuilder()
                .ComCodigoProduto("100")
                .Build()
                );
            return produtos;
        }
    }
Totvs custom tabs box items
defaultno
referenciadtoB
Bloco de código
languagec#
theme
Totvs custom tabs box items
defaultno
referenciadtoB
Bloco de código
languagec#
themeRDark
firstline1
linenumberstruetrue
public class DtoBuilder
    {
        private readonly PrecoProdutoDTO.Envio _dto;

        public DtoBuilder()
        {
            _dto = new PrecoProdutoDTO.Envio();
        }

        public DtoBuilder ComProdutos(Produto _produto)
        {
            _dto.Produtos.Add(_produto);
            return this;
        }

        public DtoBuilder ComProdutos(List<Produto> _produtos)
        {
            _dto.Produtos = _produtos;
            return this;
        }

        public DtoBuilder class DtoBuilder
ComCodigoPreco(int codigoPreco)
        {
        private  readonly PrecoProdutoDTO.Envio _dto.CodigoPreco = codigoPreco;
            return this;
        }

        public DtoBuilder ComIncluiPromocao(int incluiPromocao)
        {
            _dto = new PrecoProdutoDTO.Envio()dto.IncluiPromocao = incluiPromocao;
            return this;
        }

        public DtoBuilder ComProdutosComEmpresas(PrecoProdutoDTO.EnvioPrecoProdutoEmpresa _produtoempresa)
        {
            _dto.ProdutosEmpresas.Add(_produtoempresa);
            return this;
        }

        public DtoBuilder ComProdutosComEmpresas(List<PrecoProdutoDTO.EnvioPrecoProduto>List<Empresa> _produtosempresas)
        {
            _dto.ProdutosEmpresas = _produtosempresas;
            return this;
        }

        public PrecoProdutoDTO.Envio Build() => _dto;
    }    
Totvs custom tabs box items
defaultno
referenciadtoIdtoProduto
Bloco de código
languagec#
themeRDark
firstline1
linenumberstrue
    public class DtoEnvioPrecoProdutoBuilderDtoEnvioProdutoBuilder
    {
        private readonly PrecoProdutoDTO.EnvioPrecoProdutoProduto _produto;

        public DtoEnvioPrecoProdutoBuilderDtoEnvioProdutoBuilder()
        {
            _produto = new PrecoProdutoDTO.EnvioPrecoProdutoProduto();
        }

        public DtoEnvioPrecoProdutoBuilderDtoEnvioProdutoBuilder ComCodigoProduto(string codigoProduto)
        {
            _produto.CodigoProduto = codigoProduto;
            return this;
        }
        public DtoEnvioPrecoProdutoBuilder ComCodigoPreco(int codigoPreco)return this;
        {}

        public Produto Build() => _produto.CodigoPreco = codigoPreco;
    }
Totvs custom tabs box items
defaultno
referenciadtoEmpresa
Bloco de código
languagec#
themeRDark
firstline1
linenumberstrue
    public class DtoEnvioEmpresaBuilder
   return this;{
        } private readonly Empresa _empresa;

        public DtoEnvioPrecoProdutoBuilder ComIncluiPromocao(int incluiPromocaoDtoEnvioEmpresaBuilder()
        {
            _produto.IncluiPromocaoempresa = incluiPromocao;
            return thisnew Empresa();
        }

        public DtoEnvioPrecoProdutoBuilderDtoEnvioEmpresaBuilder ComCodigoEmpresa(int codigoEmpresa)
        {
            _produtoempresa.CodigoEmpresa = codigoEmpresa;
            return this;
        }

        public DtoEnvioPrecoProdutoBuilderDtoEnvioEmpresaBuilder ComNumeroCNPJEmpresa(string numeroCNPJEmpresa)
        {
            _produtoempresa.NumeroCNPJEmpresa = numeroCNPJEmpresa;
            return this;
        }
        public PrecoProdutoDTO.EnvioPrecoProduto Build() => _produto;

    }
Totvs custom tabs box items
defaultno
referenciatoken
Totvs custom tabs box
tabsObter Token, LoginDTO
idsobterToken,login
Totvs custom tabs box items
defaultyes
referenciaobterToken
Bloco de código
languagec#
themeRDark
firstline1
titleToken
linenumberstrue
public class Token
    {
        private const string _applicationJson = "application/json";
        private const string _baseUri = @"http://www30.bhan.com.br:9443/api/v1/";
        private const string _usuario = "desen";
        private const string _senha = "123456";


        public static string ObterToken()
        {
            LoginDTO.Envio login = new LoginDTO.Envio(_usuario, _senha);

            var cliente = PopularCliente();
            
            
            var uri = @"autorizacao/token";
            var conteudo = new StringContent(_applicationJson);
            var response = cliente.PostAsync(uri, conteudo).Result;

            if (!response.IsSuccessStatusCode)
                throw new Exception();

            var retorno = JsonConvert.DeserializeObject<LoginDTO.Retorno>(response.Content.ReadAsStringAsync().Result);
            return retorno.Token.Replace("Bearer", "").Trim();

        }


        private static HttpClient PopularCliente()
        {
            HttpClient cliente = new HttpClient();
            cliente.BaseAddress = new Uri($"{_baseUri}");
            cliente.DefaultRequestHeaders.Accept.Clear();
            cliente.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(_applicationJson));
            cliente.DefaultRequestHeaders.Add("usuario", _usuario);
            cliente.DefaultRequestHeaders.Add("senha", _senha);
            cliente.Timeout = TimeSpan.FromDays(1);

            return cliente;
        }
    }
Totvs custom tabs box items
defaultno
referencialogin
Bloco de código
languagec#
themeRDark
firstline1
titleLogin
linenumberstrue
public class LoginDTO
    {
        public class Envio
        {
            [JsonProperty("usuario")]
            public string Usuario { get; set; }

            [JsonProperty("senha")]
            public string Senha { get; set; }

            public Envio(string usuario, string senha)
            {
                Usuario = usuario;
                Senha = senha;
            }
        }

        public class Retorno
        {
            [JsonProperty("cdToken")]
            public string Token { get; set; }

            [JsonProperty("dtExpiracao")]
            public string DataExpiracao { get; set; }

            public Retorno(string token, string dataExpitacao)
            {
                Token = token;
                DataExpiracao = dataExpitacao;
            }
        }

    }
Totvs custom tabs box items
defaultno
referenciaprproduto
Totvs custom tabs box
tabsConsultarPrecoProduto, ConsultarPrecoProdutoDTO
idsconsultar,dto
Totvs custom tabs box items
defaultyes
referenciaconsultar
Bloco de código
languagec#
themeRDark
firstline1
linenumberstrue
    public class PrecoProduto
    {
        private const string _balseUri = @"http://www30.bhan.com.br:9443/api/v1/";
        private const string _applicationJson = "application/json";

        public static PrecoProdutoDTO.Retorno PrecoProdutoConsulta(string token, PrecoProdutoDTO.Envio dto)
        {
            var uri = @"produto/precoproduto";
            var json = JsonConvert.SerializeObject(dto);
            var cliente = PopularCliente(token);
            var conteudo = new StringContent(json, Encoding.UTF8, _applicationJson);
            var response = cliente.PostAsync(uri, conteudo).Result;

            if (!response.IsSuccessStatusCode)
                throw new Exception();

            return JsonConvert.DeserializeObject<PrecoProdutoDTO.Retorno>(response.Content.ReadAsStringAsync().Result);
        }

        private static HttpClient PopularCliente(string token)
        {
            HttpClient cliente = new HttpClient();
            cliente.BaseAddress = new Uri($"{_balseUri}");
            cliente.DefaultRequestHeaders.Accept.Clear();
            cliente.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(_applicationJson));
            cliente.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

            return cliente;
        }
    }
Totvs custom tabs box items
defaultno
referenciadto
Bloco de código
languagec#
themeRDark
firstline1
linenumberstrue
    public class PrecoProdutoDTO
    {
        public class Envio
        {
            public List<EnvioPrecoProduto> Produtos { get; set; }

            public Envio()
            {
                Produtos = new List<EnvioPrecoProduto>();
            }
        }

        public class EnvioPrecoProduto
        {
            [JsonProperty("cdProduto")]
            public string CodigoProduto { get; set; }

            [JsonProperty("cdPreco")]
            public int CodigoPreco { get; set; }

            [JsonProperty("inPromocao")]
            public int IncluiPromocao { get; set; }

            [JsonProperty("cdEmpresa")]
            public int CodigoEmpresa { get; set; }

            [JsonProperty("nrCNPJEmpresa")]
            public string NumeroCNPJEmpresa { get; set; }
        }
           
            
        

        public class Retorno
        {
            public List<RetornoPrecoProduto> precos { get; set; }

            public Retorno()
            {
                precos = new List<RetornoPrecoProduto>();
            }
        }

        public class RetornoPrecoProduto
        {
            [JsonProperty("cdSKU")]
            public int CodigoSKU { get; set; }

            [JsonProperty("cdProduto")]
            public string CodigoProduto { get; set; }

            [JsonProperty("dsProduto")]
            public string DescricaoProduto { get; set; }

            [JsonProperty("cdReferencia")]
            public string CodigoReferencia { get; set; }

            [JsonProperty("cdCor")]
            public string CodigoCor { get; set; }

            [JsonProperty("dsTamanho")]
            public string DescricaoTamanho { get; set; }

            [JsonProperty("cdEmpresa")]
            public int CodigoEmpresa { get; set; }

            [JsonProperty("nrCNPJEmpresa")]
            public string NumeroCNPJEmpresa { get; set; }

            [JsonProperty("vlPreco")]
            public double ValorPreco { get; set; }

            [JsonProperty("vlPrecoPromocao")]
            public double ValorPrecoPromocao { get; set; }
        }
    }
Totvs custom tabs box items
defaultno
referenciasaldogrupo

01. INTRODUÇÃO

Obter saldo dos produtos de um grupo por empresa

Totvs custom tabs box items
defaultno
referenciasaldoloteproduto

01. INTRODUÇÃO

Obter saldo em lote produto por empresa

Totvs custom tabs box items
defaultno
referenciasaldoproduto

01. INTRODUÇÃO

Obter saldo de produto por empresa

...