01. INTRODUÇÃO
Obter classificação de produto
- Requisição que retorna a classificação de um produto.
https://www30.bhan.com.br:9443/api/v1/produto/classificacaoproduto
POST
Token: "XXXXXXXXXXXXXX"
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
https://www30.bhan.com.br:9443/api/v1/produto/precoproduto |
---|
{ "produtos": [ { "cdProduto": "XXXXXXXXXXXXXXXXXXXX" } ], "cdPreco": 9999, "inPromocao": 9, "empresas": [ { "cdEmpresa": 9999, "nrCNPJEmpresa": "XXXXXXXXXXXXXX" } ] }
URL
https://www30.bhan.com.br:9443/api/v1/produto/precoproduto |
---|
HEADER
Authorization | Bearer {{token}} |
---|
BODY
{ "produtos": [ { "cdProduto": "100" } ], "cdPreco": 1, "inPromocao": 1, "empresas": [ { "cdEmpresa": 1 } ] }
Nome | Tipo | Descrição | Exemplo | VA |
---|---|---|---|---|
cdProduto | string | Código do produto * | "cdProduto": "100" | Referência 1 |
cdPreco | int | Código do Preço | "cdPreco": 1 | Referência 2 |
inPromocao | int | Valor de Promoção ** | "inPromocao": 1 | -- |
cdEmpresa | int | Código da Empresa *** | "cdEmpresa": 1 | Referência 3 |
nrCNPJEmpresa | string | CNPJ 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!
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!
{ "precos": [ { "cdSKU": 9999999, "cdProduto": "XXXXXXXXXX", "dsProduto": "XXXXXXXXXX", "cdReferencia": "XXXXXXXXXX", "cdCor": "XXXXXXXXX", "dsTamanho": "XXXXXXXXXX", "cdEmpresa": 999999999, "nrCNPJEmpresa": "XXXXXXXXXXX", "vlPreco": 999999999.99, "vlPrecoPromocao": 999999999.99 } ] }
{ "dsErro": "Mensagem informativa do erro" }
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) .ComEmpresas(ObterEmpresa()) .Build(); return dto; } private static List<Empresa> ObterEmpresa() { var empresas = new List<Empresa>(); empresas.Add( new DtoEnvioEmpresaBuilder() .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; } }
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 ComCodigoPreco(int codigoPreco) { _dto.CodigoPreco = codigoPreco; return this; } public DtoBuilder ComIncluiPromocao(int incluiPromocao) { _dto.IncluiPromocao = incluiPromocao; return this; } public DtoBuilder ComEmpresas(Empresa _empresa) { _dto.Empresas.Add(_empresa); return this; } public DtoBuilder ComEmpresas(List<Empresa> _empresas) { _dto.Empresas = _empresas; return this; } public PrecoProdutoDTO.Envio Build() => _dto; }
public class DtoEnvioProdutoBuilder { private readonly Produto _produto; public DtoEnvioProdutoBuilder() { _produto = new Produto(); } public DtoEnvioProdutoBuilder ComCodigoProduto(string codigoProduto) { _produto.CodigoProduto = codigoProduto; return this; } public Produto Build() => _produto; }
public class DtoEnvioEmpresaBuilder { private readonly Empresa _empresa; public DtoEnvioEmpresaBuilder() { _empresa = new Empresa(); } public DtoEnvioEmpresaBuilder ComCodigoEmpresa(int codigoEmpresa) { _empresa.CodigoEmpresa = codigoEmpresa; return this; } public DtoEnvioEmpresaBuilder ComNumeroCNPJEmpresa(string numeroCNPJEmpresa) { _empresa.NumeroCNPJEmpresa = numeroCNPJEmpresa; return this; } public Empresa Build() => _empresa; }
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 = "usuario"; private const string _senha = "senha"; public static string ObterToken() { LoginDTO.EnvioToken login = new LoginDTO.EnvioToken(_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.RetornoToken>(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; } }
public class LoginDTO { public class EnvioToken { [JsonProperty("usuario")] public string Usuario { get; set; } [JsonProperty("senha")] public string Senha { get; set; } public EnvioToken(string usuario, string senha) { Usuario = usuario; Senha = senha; } } public class RetornoToken { [JsonProperty("cdToken")] public string Token { get; set; } [JsonProperty("dtExpiracao")] public string DataExpiracao { get; set; } public RetornoToken(string token, string dataExpitacao) { Token = token; DataExpiracao = dataExpitacao; } } }
public class RequisicaoPrecoProduto { 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; } }
public class PrecoProdutoDTO { public class Envio { public List<Produto> Produtos { get; set; } public List<Empresa> Empresas { get; set; } public Envio() { Produtos = new List<Produto>(); Empresas = new List<Empresa>(); } [JsonProperty("cdPreco")] public int CodigoPreco { get; set; } [JsonProperty("inPromocao")] public int IncluiPromocao { get; set; } } public class Retorno { public List<RetornoPrecoProduto> precos { get; set; } public Retorno() { precos = new List<RetornoPrecoProduto>(); } } }
public class Produto { [JsonProperty("cdProduto")] public string CodigoProduto { get; set; } }
public class Empresa { [JsonProperty("cdEmpresa")] public int CodigoEmpresa { get; set; } [JsonProperty("nrCNPJEmpresa")] public string NumeroCNPJEmpresa { get; set; } }
01. INTRODUÇÃO
Obter saldo dos produtos de um grupo por empresa
- Requisição que retorna saldo de um grupo de produtos por empresa.
https://www30.bhan.com.br:9443/api/v1/produto/saldogrupo
POST
Token: "XXXXXXXXXXXXXX"
01. INTRODUÇÃO
Obter saldo em lote produto por empresa
- Requisição que retorna o saldo de lote de um ou mais produtos por empresa
https://www30.bhan.com.br:9443/api/v1/produto/saldoloteproduto
POST
Token: "XXXXXXXXXXXXXX"
01. INTRODUÇÃO
Obter saldo de produto por empresa
- Requisição que retorna saldo de um ou mais produtos por empresa.
https://www30.bhan.com.br:9443/api/v1/produto/saldoproduto
POST
Token: "XXXXXXXXXXXXXX"