01. INTRODUÇÃOObter classificação de produto - Requisição que retorna a classificação de um produto.
https://www30.bhan.com.br:9443/api/v1/produto/classificacaoproduto |
{
"cdProduto": 999999999,
"cdBarra": "XXXXXXXXXXXXX"
} |
[
{
"cdProduto": 10, //Código do produto
"cdBarra": "5809600000107", //Código de barras do produto
"dsProduto": "BASICA AMARELO DV", //Descrição do produto
"cdTpClassificacao": 22, //Código do tipo de classificação
"dsTpClassificacao": "MARCA", //Descrição do tipo de classificação
"cdClassificacao": "3", //Código da classificação
"dsClassificacao": "CLAS 3", //Descrição classificação
"cdGrupo": "2", //Código do grupo
"dsGrupo": "BASICA", //Descrição do grupo
"cdNivel": "300 2", //Código do nível
"dsNivel": "BASICA", //Descrição do nível
"cdCor": "1", //Código da cor
"dsCor": "UN", //Descrição da cor
"cdTamanho": 1, //Código do tamanho
"dsTamanho": "34", //Descrição do tamanho
"cdEspecie": "SVC" //Código da espécie
}
] |
|
|
01. INTRODUÇÃORequisiçã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ÇÃOObter 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 |
{
"cdReferencia": "XXXXXXXXXXXXXXXXXXXX",
"cdGrupo": "XXXXXXXXXX",
"cdCor": "XXXXXXXXXX",
"dsTamanho": "XXXXXXXXXX",
"cdSaldo": 9999,
"inEstoque": 9,
"inPedidoVenda": 9,
"empresas": [
{
"cdEmpresa": 9999,
"nrCNPJEmpresa": "XXXXXXXXXXXXXX"
}
]
} |
{
"saldos": [
{
"cdSKU": 999999999, "Código reduzido do produto"
"cdProduto": "XXXXXXXXXXXXXXXXXXXX", "Código de barras do produto"
"cdReferencia": "XXXXXXXXXXXXXXXXXXXX", "Código da Referência"
"cdCor": "XXXXXXXXXX", "Código da Cor"
"dsTamanho": "XXXXXXXXXX", "Descrição do Tamanho"
"cdEmpresa": 9999, "Código da Empresa"
"nrCNPJEmpresa": "XXXXXXXXXXXXXX", "CNPJ da Empresa"
"qtEstoque":9999999.999, "Quantidade em estoque"
"qtPedidoVenda":9999999.999 "Quantidade em Pedido de Venda"
}
]
} |
|
|
01. INTRODUÇÃOObter 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 |
{
"produtos": [
{
"cdProduto": "XXXXXXXXXXXXXXXXXXXX"
}
],
"cdSaldo": 9999,
"inEstoque": 9,
"inPedidoVenda": 9,
"inTransacao": 9,
"empresas": [
{
"cdEmpresa": 9999,
"nrCNPJEmpresa": "XXXXXXXXXXXXXX"
}
]
} |
{
"lotes": [
{
"cdSKU": 999999999, "Código reduzido do produto"
"cdProduto": "XXXXXXXXXXXXXXXXXXXX", "Código de barras do produto"
"cdEmpresa": 9999, "Código da Empresa"
"nrCNPJEmpresa": "XXXXXXXXXXXXXX", "CNPJ da Empresa"
"nrLote": 999999999, "Número do Lote"
"nrItem": 999999999, "Número do Item do Lote"
"cdLote": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "Código do Lote"
"qtEstoque":9999999.999, "Quantidade em estoque"
"qtPedidoVenda":9999999.999, "Quantidade em Pedido de Venda"
"qtTransacao":9999999.999 "Quantidade em Transação"
}
]
} |
|
|
01. INTRODUÇÃOObter 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 |
{
"produtos": [
{
"cdProduto": "XXXXXXXXXXXXXXXXXXXX"
}
],
"cdSaldo": 9999, // informar o código do saldo desejado
"inEstoque": 9, // informar igual a 1 para retornar o saldo em estoque
"inPedidoVenda": 9, // informar igual a 1 para retornar o saldo em pedido de venda
"empresas": [
{
"cdEmpresa": 9999,
"nrCNPJEmpresa": "XXXXXXXXXXXXXX"
}
]
} |
{
"saldos": [
{
"cdSKU": 999999999, "Código reduzido do produto"
"cdProduto": "XXXXXXXXXXXXXXXXXXXX", "Código de barras do produto"
"cdReferencia": "XXXXXXXXXXXXXXXXXXXX", "Código da Referência"
"cdCor": "XXXXXXXXXX", "Código da Cor"
"dsTamanho": "XXXXXXXXXX", "Descrição do Tamanho"
"cdEmpresa": 9999, "Código da Empresa"
"nrCNPJEmpresa": "XXXXXXXXXXXXXX", "CNPJ da Empresa"
"qtEstoque":9999999.999, "Quatidade em Estoque"
"qtPedidoVenda":9999999.999 "Quantidade em Pedido de Venda"
}
]
} |
|
|
|